diff --git a/.vscode/settings.json b/.vscode/settings.json index f4d558fa..5343bec3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -17,6 +17,7 @@ "*.s": "plaintext", "*.json": "jsonc", "*.c": "c", + "*.asm": "masm", "*.inc": "c", ".clangd": "yaml", "m443dll.h": "c", @@ -25,7 +26,15 @@ "m438dll.h": "c", "audio.h": "c", "musyx.h": "c", - "math.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" }, "search.useIgnoreFiles": false, "search.exclude": { diff --git a/config/GMPE01_00/rels/m418Dll/symbols.txt b/config/GMPE01_00/rels/m418Dll/symbols.txt index f9b964c5..ad0f568b 100644 --- a/config/GMPE01_00/rels/m418Dll/symbols.txt +++ b/config/GMPE01_00/rels/m418Dll/symbols.txt @@ -128,134 +128,134 @@ 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 scope:local data:string diff --git a/config/GMPE01_00/rels/m438Dll/symbols.txt b/config/GMPE01_00/rels/m438Dll/symbols.txt index e1febc85..94448680 100644 --- a/config/GMPE01_00/rels/m438Dll/symbols.txt +++ b/config/GMPE01_00/rels/m438Dll/symbols.txt @@ -434,7 +434,7 @@ 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_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +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 diff --git a/configure.py b/configure.py index 83619991..ee154540 100644 --- a/configure.py +++ b/configure.py @@ -1001,7 +1001,7 @@ config.libs = [ "m418Dll", # Hide and Go BOOM! objects={ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m418Dll/main.c"), - Object(NonMatching, "REL/m418Dll/sequence.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m418Dll/sequence.c"), }, ), Rel( diff --git a/include/REL/m418Dll.h b/include/REL/m418Dll.h index cd283bde..f21c4256 100644 --- a/include/REL/m418Dll.h +++ b/include/REL/m418Dll.h @@ -3,6 +3,10 @@ #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); @@ -11,33 +15,36 @@ typedef s32 (*M418DllInRetFunc)(s32); typedef struct M418DllUnkStruct { M418DllFunc unk0; Vec center; - char unk10[0xC]; + Vec unk10; // sequence center Vec rot; - char unk28[0xC]; + Vec unk28; // sequence rot f32 zoom; - char unk38[0x4]; + f32 unk38; // sequence zoom f32 unk3C[3]; f32 unk48; } M418DllUnkStruct; // sizeof 0x4C -typedef struct M418DllUnkStruct7 { - char unk[0x10]; - M418DllFunc unk10; - M418DllRetFunc unk14; -} M418DllUnkStruct7; // sizeof 0x18 - 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 + f32 fn_1_A920(f32, f32, f32); f32 fn_1_A940(f32, f32, f32, f32); f32 fn_1_AA30(f32, f32, f32, f32); void fn_1_ABC4(omObjData*, s32, s32, s32, s32); void fn_1_AD14(omObjData*, s32, s32, s32, s32); -void fn_1_AEDC(M418DllUnkStruct7*, M418DllUnkStruct8**); +void fn_1_AEDC(M418DllUnkStruct7*, M418DllUnkStruct8*); s32 fn_1_AF38(M418DllUnkStruct7*); s32 fn_1_B034(M418DllUnkStruct7*, s32); s32 fn_1_B0C8(M418DllUnkStruct7*, s32); diff --git a/src/REL/m418Dll/main.c b/src/REL/m418Dll/main.c index 4618d902..c2794f39 100644 --- a/src/REL/m418Dll/main.c +++ b/src/REL/m418Dll/main.c @@ -2,9 +2,7 @@ #include "ext_math.h" #include "game/chrman.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/wipe.h" @@ -1377,7 +1375,7 @@ M418DllUnkStruct8 lbl_1_data_294[3] = { }; void fn_1_5D28(void) { - fn_1_AEDC(&lbl_1_bss_50, (M418DllUnkStruct8**)&lbl_1_data_294); + fn_1_AEDC(&lbl_1_bss_50, &lbl_1_data_294[0]); } s32 fn_1_5D58(void) { @@ -2155,7 +2153,7 @@ M418DllUnkStruct8 lbl_1_data_348[11] = { }; void fn_1_8480(void) { - fn_1_AEDC(&lbl_1_bss_38, (M418DllUnkStruct8**)&lbl_1_data_348); + fn_1_AEDC(&lbl_1_bss_38, &lbl_1_data_348[0]); } s32 fn_1_84B0(void) { @@ -2527,7 +2525,7 @@ M418DllUnkStruct8 lbl_1_data_444[8] = { }; void fn_1_9334(void) { - fn_1_AEDC(&lbl_1_bss_20, (M418DllUnkStruct8**)&lbl_1_data_444); + fn_1_AEDC(&lbl_1_bss_20, &lbl_1_data_444[0]); } s32 fn_1_9364(void) { diff --git a/src/REL/m418Dll/sequence.c b/src/REL/m418Dll/sequence.c index e69de29b..9ccd5985 100644 --- a/src/REL/m418Dll/sequence.c +++ 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); +}