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/GMPJ01_00/config.yml b/config/GMPJ01_00/config.yml index f074a33e..253a517d 100644 --- a/config/GMPJ01_00/config.yml +++ b/config/GMPJ01_00/config.yml @@ -309,8 +309,8 @@ modules: links: [] - object: files/dll/m456Dll.rel - symbols: config/GMPJ01_00/rels/m456Dll/symbols.txt - splits: config/GMPJ01_00/rels/m456Dll/splits.txt + symbols: config/GMPE01_00/rels/m456Dll/symbols.txt + splits: config/GMPE01_00/rels/m456Dll/splits.txt links: [] - object: files/dll/m457Dll.rel diff --git a/config/GMPJ01_00/rels/m456Dll/splits.txt b/config/GMPJ01_00/rels/m456Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m456Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -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/m456Dll/symbols.txt b/config/GMPJ01_00/rels/m456Dll/symbols.txt deleted file mode 100644 index fbdbf93f..00000000 --- a/config/GMPJ01_00/rels/m456Dll/symbols.txt +++ /dev/null @@ -1,282 +0,0 @@ -_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: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:0x7C -fn_1_1304 = .text:0x00001304; // type:function size:0xD3C -fn_1_2040 = .text:0x00002040; // type:function size:0x50 -fn_1_2090 = .text:0x00002090; // type:function size:0x104 -fn_1_2194 = .text:0x00002194; // type:function size:0x64 -fn_1_21F8 = .text:0x000021F8; // type:function size:0x250 -fn_1_2448 = .text:0x00002448; // type:function size:0x4D0 -fn_1_2918 = .text:0x00002918; // type:function size:0x1AC -fn_1_2AC4 = .text:0x00002AC4; // type:function size:0x330 -fn_1_2DF4 = .text:0x00002DF4; // type:function size:0x148 -fn_1_2F3C = .text:0x00002F3C; // type:function size:0x70 -fn_1_2FAC = .text:0x00002FAC; // type:function size:0x960 -fn_1_390C = .text:0x0000390C; // type:function size:0x328 -fn_1_3C34 = .text:0x00003C34; // type:function size:0x7C -fn_1_3CB0 = .text:0x00003CB0; // type:function size:0x82C -fn_1_44DC = .text:0x000044DC; // type:function size:0x68 -fn_1_4544 = .text:0x00004544; // type:function size:0x108 -fn_1_464C = .text:0x0000464C; // type:function size:0x348 -fn_1_4994 = .text:0x00004994; // type:function size:0xB3C -fn_1_54D0 = .text:0x000054D0; // type:function size:0x6E8 -fn_1_5BB8 = .text:0x00005BB8; // type:function size:0xBC -fn_1_5C74 = .text:0x00005C74; // type:function size:0x450 -fn_1_60C4 = .text:0x000060C4; // type:function size:0x104 -fn_1_61C8 = .text:0x000061C8; // type:function size:0x1E4 -fn_1_63AC = .text:0x000063AC; // type:function size:0x4C -fn_1_63F8 = .text:0x000063F8; // type:function size:0x4C -fn_1_6444 = .text:0x00006444; // type:function size:0x158 -fn_1_659C = .text:0x0000659C; // type:function size:0x1F4 -fn_1_6790 = .text:0x00006790; // type:function size:0x50 -fn_1_67E0 = .text:0x000067E0; // type:function size:0x5D0 -fn_1_6DB0 = .text:0x00006DB0; // type:function size:0xE8 -fn_1_6E98 = .text:0x00006E98; // type:function size:0xC8 -fn_1_6F60 = .text:0x00006F60; // type:function size:0x4 -fn_1_6F64 = .text:0x00006F64; // type:function size:0x18C -fn_1_70F0 = .text:0x000070F0; // type:function size:0xF0 -fn_1_71E0 = .text:0x000071E0; // type:function size:0x2C4 -fn_1_74A4 = .text:0x000074A4; // type:function size:0x54 -fn_1_74F8 = .text:0x000074F8; // type:function size:0x280 -fn_1_7778 = .text:0x00007778; // type:function size:0x3D8 -fn_1_7B50 = .text:0x00007B50; // type:function size:0x424 -fn_1_7F74 = .text:0x00007F74; // type:function size:0x4 -fn_1_7F78 = .text:0x00007F78; // type:function size:0x100 -fn_1_8078 = .text:0x00008078; // type:function size:0x104 -fn_1_817C = .text:0x0000817C; // type:function size:0x2A0 -fn_1_841C = .text:0x0000841C; // type:function size:0x474 -fn_1_8890 = .text:0x00008890; // type:function size:0x11C -fn_1_89AC = .text:0x000089AC; // type:function size:0x2BC -fn_1_8C68 = .text:0x00008C68; // type:function size:0x50 -fn_1_8CB8 = .text:0x00008CB8; // type:function size:0xB44 -fn_1_97FC = .text:0x000097FC; // type:function size:0x104 -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_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: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: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: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:0x8 data:double -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_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double -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_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:0x8 data:double -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_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_310 = .rodata:0x00000310; // 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: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_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:0x1 data:byte -lbl_1_data_31C = .data:0x0000031C; // type:object size:0x50 -lbl_1_data_36C = .data:0x0000036C; // type:object size:0x7 data:string -lbl_1_data_373 = .data:0x00000373; // type:object size:0x7 data:string -lbl_1_data_37A = .data:0x0000037A; // type:object size:0x1 data:byte -lbl_1_data_37E = .data:0x0000037E; // type:object size:0x1 data:byte -lbl_1_data_382 = .data:0x00000382; // type:object size:0x6 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:0x1 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: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_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/m456Dll/splits.txt b/config/GMPP01_00/rels/m456Dll/splits.txt index 531cd645..ba1c0109 100644 --- a/config/GMPP01_00/rels/m456Dll/splits.txt +++ b/config/GMPP01_00/rels/m456Dll/splits.txt @@ -5,3 +5,18 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/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 index 3dfe3a85..b5353f63 100644 --- a/config/GMPP01_00/rels/m456Dll/symbols.txt +++ b/config/GMPP01_00/rels/m456Dll/symbols.txt @@ -1,6 +1,6 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x300 +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 @@ -12,207 +12,207 @@ 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_1360 = .text:0x00001360; // type:function size:0xD9C -fn_1_20FC = .text:0x000020FC; // type:function size:0x50 -fn_1_214C = .text:0x0000214C; // type:function size:0x104 -fn_1_2250 = .text:0x00002250; // type:function size:0x64 -fn_1_22B4 = .text:0x000022B4; // type:function size:0x250 -fn_1_2504 = .text:0x00002504; // type:function size:0x4D0 -fn_1_29D4 = .text:0x000029D4; // type:function size:0x1AC -fn_1_2B80 = .text:0x00002B80; // type:function size:0x330 -fn_1_2EB0 = .text:0x00002EB0; // type:function size:0x148 -fn_1_2FF8 = .text:0x00002FF8; // type:function size:0x70 -fn_1_3068 = .text:0x00003068; // type:function size:0x960 -fn_1_39C8 = .text:0x000039C8; // type:function size:0x328 -fn_1_3CF0 = .text:0x00003CF0; // type:function size:0x7C -fn_1_3D6C = .text:0x00003D6C; // type:function size:0x82C -fn_1_4598 = .text:0x00004598; // type:function size:0x68 -fn_1_4600 = .text:0x00004600; // type:function size:0x108 -fn_1_4708 = .text:0x00004708; // type:function size:0x348 -fn_1_4A50 = .text:0x00004A50; // type:function size:0xB3C -fn_1_558C = .text:0x0000558C; // type:function size:0x6E8 -fn_1_5C74 = .text:0x00005C74; // type:function size:0xBC -fn_1_5D30 = .text:0x00005D30; // type:function size:0x450 -fn_1_6180 = .text:0x00006180; // type:function size:0x104 -fn_1_6284 = .text:0x00006284; // type:function size:0x1E4 -fn_1_6468 = .text:0x00006468; // type:function size:0x4C -fn_1_64B4 = .text:0x000064B4; // type:function size:0x4C -fn_1_6500 = .text:0x00006500; // type:function size:0x158 -fn_1_6658 = .text:0x00006658; // type:function size:0x1F4 -fn_1_684C = .text:0x0000684C; // type:function size:0x50 -fn_1_689C = .text:0x0000689C; // type:function size:0x5D0 -fn_1_6E6C = .text:0x00006E6C; // type:function size:0xE8 -fn_1_6F54 = .text:0x00006F54; // type:function size:0xC8 -fn_1_701C = .text:0x0000701C; // type:function size:0x4 -fn_1_7020 = .text:0x00007020; // type:function size:0x18C -fn_1_71AC = .text:0x000071AC; // type:function size:0xF0 -fn_1_729C = .text:0x0000729C; // type:function size:0x2C4 -fn_1_7560 = .text:0x00007560; // type:function size:0x54 -fn_1_75B4 = .text:0x000075B4; // type:function size:0x2B0 -fn_1_7864 = .text:0x00007864; // type:function size:0x3D8 -fn_1_7C3C = .text:0x00007C3C; // type:function size:0x444 -fn_1_8080 = .text:0x00008080; // type:function size:0x4 -fn_1_8084 = .text:0x00008084; // type:function size:0x100 -fn_1_8184 = .text:0x00008184; // type:function size:0x104 -fn_1_8288 = .text:0x00008288; // type:function size:0x2A0 -fn_1_8528 = .text:0x00008528; // type:function size:0x474 -fn_1_899C = .text:0x0000899C; // type:function size:0x11C -fn_1_8AB8 = .text:0x00008AB8; // type:function size:0x2BC -fn_1_8D74 = .text:0x00008D74; // type:function size:0x50 -fn_1_8DC4 = .text:0x00008DC4; // type:function size:0xB44 -fn_1_9908 = .text:0x00009908; // type:function size:0x104 -fn_1_9A0C = .text:0x00009A0C; // type:function size:0x118 -fn_1_9B24 = .text:0x00009B24; // type:function size:0x250 +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 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: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: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: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_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: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_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 @@ -222,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: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 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 @@ -236,26 +236,28 @@ 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:0x1 data:byte +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 data:string -lbl_1_data_373 = .data:0x00000373; // type:object size:0x7 data:string -lbl_1_data_37A = .data:0x0000037A; // type:object size:0x1 data:byte -lbl_1_data_37E = .data:0x0000037E; // type:object size:0x1 data:byte -lbl_1_data_382 = .data:0x00000382; // type:object size:0x6 data:byte +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:0x1 data:byte +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:0x8 data:byte -lbl_1_data_7AC = .data:0x000007AC; // type:object size:0x1 data:byte +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 diff --git a/configure.py b/configure.py index ac7d5cd7..c9d90084 100644 --- a/configure.py +++ b/configure.py @@ -1249,8 +1249,8 @@ config.libs = [ 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( 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/src/REL/m456Dll/main.c b/src/REL/m456Dll/main.c new file mode 100644 index 00000000..8604098f --- /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; + PSVECNormalize(&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] = { + { 0x5F0000, 0 }, + { 0x55001C, 1 }, + { 0x550024, 1 }, + { 0x55002C, 1 }, + { 0x550034, 1 }, + { 0x5F002A, 0 }, + { 0x5F0005, 0 }, + { 0x5F0017, 0 }, + { 0x5F0018, 0 }, + { 0x55003C, 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); + PSVECSubtract(&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] = { + { 0x550044, 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..072377d8 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_s16 > 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->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->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) { + if (++temp_r30->unk00_s16 > 360) { temp_r30->unk00_s16 -= 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_s16); 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_s16 = (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 +}