From 70ceb03218421cd9e24a470f5eb1457bc2879558 Mon Sep 17 00:00:00 2001 From: Adrien Girardeau Date: Mon, 9 Nov 2026 21:51:39 +0000 Subject: [PATCH 1/4] feat: match 62 US and 29 PAL functions, mostly shape twins Functions whose code is a matched function with other constants and addresses, ported from that C (constants from retail, callees and globals renamed to what the disc reaches), plus mid-size functions decompiled by hand. PAL functions get src/pal/ files with PAL addresses. Superseded nonmatching/ drafts are removed. Co-Authored-By: Claude Opus 5.5 --- README.md | 44 +- config/pal/map.tsv | 103 +- config/us/map.tsv | 103 +- nonmatching/README.md | 1 - nonmatching/game/func_004D3060.c | 51 - nonmatching/game/func_0054ACE8.c | 36 - .../l00_multiplayer_menu/func_L00_00776698.c | 18 - progress/pal/report.json | 2904 ++++++++++------- progress/report.json | 2390 ++++++++++---- src/core/0012AA70.c | 30 + src/core/0012CA90.c | 27 + src/core/001373B0.c | 23 + src/core/00137FB0.c | 23 + src/core/00138100.c | 24 + src/core/0013A0F0.c | 17 + src/core/0013B460.c | 35 + src/core/001464C0.c | 9 + src/core/0014C168.c | 30 + src/core/0014CCA0.c | 20 + src/core/001501B0.c | 18 + src/core/00160FD8.c | 57 + src/game/00481100.c | 67 + src/game/00484F68.c | 96 + src/game/0048D228.c | 59 + src/game/0049B960.c | 48 + src/game/004CEB68.c | 35 + src/game/004D3060.c | 36 + src/game/004E7990.c | 23 + src/game/004FAFE8.c | 78 + src/game/00505F98.c | 49 + src/game/00506508.c | 51 + src/game/0050C638.c | 46 + src/game/00512650.c | 39 + src/game/00525CB0.c | 55 + src/game/0054A4A0.c | 38 + src/game/0054ACE8.c | 40 + src/net/01EA4570.c | 10 + src/net/01EAEBE0.c | 36 + src/net/01EB36A0.c | 52 + src/net/01EB5FB0.c | 46 + src/net/01ED66B0.c | 16 + src/net/01EDA668.c | 64 + src/net/01EEE13C.c | 22 + src/net/01EF2CC4.c | 17 + src/net/01EF7830.c | 75 + src/net/01F047A0.c | 45 + src/net/01F07100.c | 17 + .../l00_multiplayer_menu/L00_0070B400.c | 50 + .../l00_multiplayer_menu/L00_00714AD8.c | 41 + .../l00_multiplayer_menu/L00_00719248.c | 47 + .../l00_multiplayer_menu/L00_00729600.c | 10 + .../l00_multiplayer_menu/L00_007458C8.c | 32 + .../l00_multiplayer_menu/L00_00755A20.c | 15 + .../l00_multiplayer_menu/L00_0075C8C0.c | 10 + .../l00_multiplayer_menu/L00_00762030.c | 59 + .../l00_multiplayer_menu/L00_00776698.c | 26 + src/overlays/shared/L00_00593EC8.c | 28 + src/overlays/shared/L01_0045D4F0.c | 21 + src/overlays/shared/L01_0048F9F8.c | 29 + src/overlays/shared/L01_004AFD28.c | 19 + src/overlays/shared/L01_004B2DC8.c | 22 + src/overlays/shared/L01_004EBC88.c | 28 + src/overlays/shared/L01_005334B0.c | 68 + src/overlays/shared/L01_00585DB0.c | 15 + src/overlays/shared/L05_004DF580.c | 18 + src/overlays/shared/L06_00416C20.c | 48 + src/overlays/shared/L06_004DE3B8.c | 66 + src/overlays/shared/L06_00565628.c | 25 + src/overlays/shared/L11_003FEB88.c | 17 + src/overlays/shared/L41_0043A858.c | 83 + src/overlays/shared/L41_00625710.c | 40 + src/pal/game/00405D38.c | 24 + src/pal/game/004071B0.c | 27 + src/pal/game/00407408.c | 27 + src/pal/game/004074A8.c | 27 + src/pal/game/00484F88.c | 22 + src/pal/game/004AA180.c | 21 + src/pal/game/004AF7A0.c | 85 + src/pal/game/00505148.c | 79 + src/pal/game/00509248.c | 79 + src/pal/game/00522238.c | 19 + src/pal/game/005230A8.c | 81 + src/pal/game/005237C8.c | 55 + src/pal/net/01ED66B0.c | 16 + src/pal/net/01EEE13C.c | 22 + src/pal/net/01EF2CC4.c | 17 + src/pal/net/01F04C2C.c | 8 + src/pal/net/01F07100.c | 17 + .../l00_multiplayer_menu/L00_0051E6D8.c | 24 + .../l00_multiplayer_menu/L00_00546148.c | 24 + .../l00_multiplayer_menu/L00_00565650.c | 24 + .../l00_multiplayer_menu/L00_005666C8.c | 24 + .../l00_multiplayer_menu/L00_0071F4F8.c | 41 + src/pal/overlays/shared/L00_0062B4F0.c | 79 + src/pal/overlays/shared/L00_00647FE0.c | 40 + src/pal/overlays/shared/L00_00650F58.c | 40 + src/pal/overlays/shared/L00_006A3E80.c | 79 + src/pal/overlays/shared/L00_006BEA78.c | 85 + src/pal/overlays/shared/L01_0046A2F0.c | 7 + src/pal/overlays/shared/L01_006B8CC0.c | 102 + 100 files changed, 7106 insertions(+), 2029 deletions(-) delete mode 100644 nonmatching/game/func_004D3060.c delete mode 100644 nonmatching/game/func_0054ACE8.c delete mode 100644 nonmatching/l00_multiplayer_menu/func_L00_00776698.c create mode 100644 src/core/0012AA70.c create mode 100644 src/core/0012CA90.c create mode 100644 src/core/001373B0.c create mode 100644 src/core/00137FB0.c create mode 100644 src/core/00138100.c create mode 100644 src/core/0013A0F0.c create mode 100644 src/core/0013B460.c create mode 100644 src/core/001464C0.c create mode 100644 src/core/0014C168.c create mode 100644 src/core/0014CCA0.c create mode 100644 src/core/001501B0.c create mode 100644 src/core/00160FD8.c create mode 100644 src/game/00481100.c create mode 100644 src/game/00484F68.c create mode 100644 src/game/0048D228.c create mode 100644 src/game/0049B960.c create mode 100644 src/game/004CEB68.c create mode 100644 src/game/004D3060.c create mode 100644 src/game/004E7990.c create mode 100644 src/game/004FAFE8.c create mode 100644 src/game/00505F98.c create mode 100644 src/game/00506508.c create mode 100644 src/game/0050C638.c create mode 100644 src/game/00512650.c create mode 100644 src/game/00525CB0.c create mode 100644 src/game/0054A4A0.c create mode 100644 src/game/0054ACE8.c create mode 100644 src/net/01EA4570.c create mode 100644 src/net/01EAEBE0.c create mode 100644 src/net/01EB36A0.c create mode 100644 src/net/01EB5FB0.c create mode 100644 src/net/01ED66B0.c create mode 100644 src/net/01EDA668.c create mode 100644 src/net/01EEE13C.c create mode 100644 src/net/01EF2CC4.c create mode 100644 src/net/01EF7830.c create mode 100644 src/net/01F047A0.c create mode 100644 src/net/01F07100.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_0070B400.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00714AD8.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00719248.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00729600.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_007458C8.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00755A20.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_0075C8C0.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00762030.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00776698.c create mode 100644 src/overlays/shared/L00_00593EC8.c create mode 100644 src/overlays/shared/L01_0045D4F0.c create mode 100644 src/overlays/shared/L01_0048F9F8.c create mode 100644 src/overlays/shared/L01_004AFD28.c create mode 100644 src/overlays/shared/L01_004B2DC8.c create mode 100644 src/overlays/shared/L01_004EBC88.c create mode 100644 src/overlays/shared/L01_005334B0.c create mode 100644 src/overlays/shared/L01_00585DB0.c create mode 100644 src/overlays/shared/L05_004DF580.c create mode 100644 src/overlays/shared/L06_00416C20.c create mode 100644 src/overlays/shared/L06_004DE3B8.c create mode 100644 src/overlays/shared/L06_00565628.c create mode 100644 src/overlays/shared/L11_003FEB88.c create mode 100644 src/overlays/shared/L41_0043A858.c create mode 100644 src/overlays/shared/L41_00625710.c create mode 100644 src/pal/game/00405D38.c create mode 100644 src/pal/game/004071B0.c create mode 100644 src/pal/game/00407408.c create mode 100644 src/pal/game/004074A8.c create mode 100644 src/pal/game/00484F88.c create mode 100644 src/pal/game/004AA180.c create mode 100644 src/pal/game/004AF7A0.c create mode 100644 src/pal/game/00505148.c create mode 100644 src/pal/game/00509248.c create mode 100644 src/pal/game/00522238.c create mode 100644 src/pal/game/005230A8.c create mode 100644 src/pal/game/005237C8.c create mode 100644 src/pal/net/01ED66B0.c create mode 100644 src/pal/net/01EEE13C.c create mode 100644 src/pal/net/01EF2CC4.c create mode 100644 src/pal/net/01F04C2C.c create mode 100644 src/pal/net/01F07100.c create mode 100644 src/pal/overlays/l00_multiplayer_menu/L00_0051E6D8.c create mode 100644 src/pal/overlays/l00_multiplayer_menu/L00_00546148.c create mode 100644 src/pal/overlays/l00_multiplayer_menu/L00_00565650.c create mode 100644 src/pal/overlays/l00_multiplayer_menu/L00_005666C8.c create mode 100644 src/pal/overlays/l00_multiplayer_menu/L00_0071F4F8.c create mode 100644 src/pal/overlays/shared/L00_0062B4F0.c create mode 100644 src/pal/overlays/shared/L00_00647FE0.c create mode 100644 src/pal/overlays/shared/L00_00650F58.c create mode 100644 src/pal/overlays/shared/L00_006A3E80.c create mode 100644 src/pal/overlays/shared/L00_006BEA78.c create mode 100644 src/pal/overlays/shared/L01_0046A2F0.c create mode 100644 src/pal/overlays/shared/L01_006B8CC0.c diff --git a/README.md b/README.md index de6ebfda..53c44ddb 100644 --- a/README.md +++ b/README.md @@ -47,20 +47,20 @@ A function counts as matched on a version when its C, built with its file's own | | Functions (exact) | Code (exact) | Fuzzy | | --- | ---: | ---: | ---: | -| **Main program** | 4,254 of 8,989 | 423,948 of 2,193,276 bytes (19.33%) | 20.58% | -| Engine core (core.text) | 866 of 1,663 | 84,272 of 288,080 bytes (29.25%) | 29.64% | +| **Main program** | 4,291 of 8,989 | 432,432 of 2,193,276 bytes (19.72%) | 20.95% | +| Engine core (core.text) | 878 of 1,663 | 86,556 of 288,080 bytes (30.05%) | 30.43% | | libgcc | 26 of 33 | 6,148 of 10,836 bytes (56.74%) | 56.74% | -| Network (net.text) | 937 of 2,441 | 53,568 of 465,620 bytes (11.50%) | 11.95% | -| Resident menus (.text) | 2,420 of 4,827 | 278,760 of 1,416,572 bytes (19.68%) | 21.39% | +| Network (net.text) | 948 of 2,441 | 55,544 of 465,620 bytes (11.93%) | 12.37% | +| Resident menus (.text) | 2,434 of 4,827 | 282,984 of 1,416,572 bytes (19.98%) | 21.66% | | frontbin's own code | 5 of 25 | 1,200 of 12,168 bytes (9.86%) | 9.86% | -| **Shared level code** | 1,984 of 5,096 | 163,332 of 1,980,624 bytes (8.25%) | 8.69% | -| **Level-specific code** | 1,435 of 4,085 | 157,600 of 1,607,532 bytes (9.80%) | 10.67% | -| Level 00: Multiplayer Menu | 1,037 of 2,810 | 126,588 of 942,664 bytes (13.43%) | 14.64% | -| Level 01: Dreadzone Station (and 21) | 122 of 373 | 7,800 of 189,416 bytes (4.12%) | 4.12% | +| **Shared level code** | 1,993 of 5,096 | 164,492 of 1,980,624 bytes (8.31%) | 8.75% | +| **Level-specific code** | 1,449 of 4,085 | 161,720 of 1,607,532 bytes (10.06%) | 10.92% | +| Level 00: Multiplayer Menu | 1,045 of 2,810 | 128,572 of 942,664 bytes (13.64%) | 14.84% | +| Level 01: Dreadzone Station (and 21) | 123 of 373 | 8,424 of 189,416 bytes (4.45%) | 4.45% | | Level 02: Catacrom Graveyard (and 22) | 7 of 34 | 328 of 26,572 bytes (1.23%) | 1.23% | | Level 04: Sarathos Swamp (and 24) | 4 of 19 | 224 of 11,708 bytes (1.91%) | 1.91% | | Level 05: Dark Cathedral (and 25) | 24 of 102 | 1,076 of 59,824 bytes (1.80%) | 1.96% | -| Level 06: Temple Of Shaar (and 26) | 8 of 30 | 492 of 9,312 bytes (5.28%) | 5.28% | +| Level 06: Temple Of Shaar (and 26) | 11 of 30 | 1,476 of 9,312 bytes (15.85%) | 15.85% | | Level 07: Valix Lighthouse (and 27) | 6 of 46 | 588 of 28,304 bytes (2.08%) | 2.08% | | Level 08: Mining Facility (and 28) | 11 of 48 | 1,428 of 24,400 bytes (5.85%) | 5.85% | | Level 10: Torval Ruins (and 30) | 7 of 37 | 312 of 20,140 bytes (1.55%) | 1.55% | @@ -68,10 +68,10 @@ A function counts as matched on a version when its C, built with its file's own | Level 13: Maraxus Prison (and 33) | 12 of 33 | 700 of 15,548 bytes (4.50%) | 4.50% | | Level 14: Ghost Station (and 34) | 6 of 29 | 444 of 14,548 bytes (3.05%) | 3.05% | | Level 15: Control Level (and 35) | 26 of 134 | 1,700 of 116,336 bytes (1.46%) | 1.46% | -| Level 41: Battledome Tower (all 22 multiplayer maps) | 162 of 375 | 15,708 of 139,984 bytes (11.22%) | 12.93% | -| **Total** | 7,673 of 18,170 | 744,880 of 5,781,432 bytes (12.88%) | 13.75% | +| Level 41: Battledome Tower (all 22 multiplayer maps) | 164 of 375 | 16,236 of 139,984 bytes (11.60%) | 13.31% | +| **Total** | 7,733 of 18,170 | 758,644 of 5,781,432 bytes (13.12%) | 13.98% | -Each distinct function counts once: frontbin's copy of the menus is the main image's, and a level function counts once however many of the 47 levels have it. 423,948 bytes (7.33%) are in units with nothing left to decompile. +Each distinct function counts once: frontbin's copy of the menus is the main image's, and a level function counts once however many of the 47 levels have it. 432,432 bytes (7.48%) are in units with nothing left to decompile. **PAL (`SCES_532.85`)** @@ -79,20 +79,20 @@ Each distinct function counts once: frontbin's copy of the menus is the main ima | | Functions (exact) | Code (exact) | Fuzzy | | --- | ---: | ---: | ---: | -| **Main program** | 4,406 of 8,952 | 475,892 of 2,202,184 bytes (21.61%) | 22.64% | +| **Main program** | 4,429 of 8,952 | 481,196 of 2,202,184 bytes (21.85%) | 22.88% | | Engine core (core.text) | 895 of 1,666 | 90,168 of 288,232 bytes (31.28%) | 31.67% | | libgcc | 26 of 33 | 6,148 of 10,836 bytes (56.74%) | 56.74% | -| Network (net.text) | 936 of 2,441 | 53,548 of 465,620 bytes (11.50%) | 11.94% | -| Resident menus (.text) | 2,547 of 4,797 | 325,468 of 1,422,048 bytes (22.89%) | 24.26% | +| Network (net.text) | 946 of 2,441 | 55,476 of 465,620 bytes (11.91%) | 12.36% | +| Resident menus (.text) | 2,560 of 4,797 | 328,844 of 1,422,048 bytes (23.12%) | 24.49% | | frontbin's own code | 2 of 15 | 560 of 15,448 bytes (3.63%) | 3.63% | -| **Shared level code** | 2,108 of 5,089 | 195,480 of 2,008,632 bytes (9.73%) | 10.14% | -| **Level-specific code** | 1,530 of 4,093 | 178,224 of 1,600,040 bytes (11.14%) | 11.90% | -| Level 00: Multiplayer Menu | 1,090 of 2,834 | 135,108 of 943,896 bytes (14.31%) | 15.34% | +| **Shared level code** | 2,116 of 5,089 | 198,876 of 2,008,632 bytes (9.90%) | 10.31% | +| **Level-specific code** | 1,541 of 4,093 | 180,412 of 1,600,040 bytes (11.28%) | 12.03% | +| Level 00: Multiplayer Menu | 1,098 of 2,834 | 136,512 of 943,896 bytes (14.46%) | 15.48% | | Level 01: Dreadzone Station (and 21) | 136 of 371 | 12,148 of 190,296 bytes (6.38%) | 6.38% | | Level 02: Catacrom Graveyard (and 22) | 7 of 29 | 328 of 21,232 bytes (1.54%) | 1.54% | | Level 04: Sarathos Swamp (and 24) | 5 of 19 | 600 of 11,868 bytes (5.06%) | 5.06% | | Level 05: Dark Cathedral (and 25) | 28 of 102 | 2,688 of 60,096 bytes (4.47%) | 4.63% | -| Level 06: Temple Of Shaar (and 26) | 12 of 30 | 1,888 of 9,316 bytes (20.27%) | 20.27% | +| Level 06: Temple Of Shaar (and 26) | 13 of 30 | 2,144 of 9,316 bytes (23.01%) | 23.01% | | Level 07: Valix Lighthouse (and 27) | 6 of 44 | 588 of 27,640 bytes (2.13%) | 2.13% | | Level 08: Mining Facility (and 28) | 14 of 48 | 1,828 of 24,900 bytes (7.34%) | 7.34% | | Level 10: Torval Ruins (and 30) | 8 of 37 | 452 of 20,276 bytes (2.23%) | 2.23% | @@ -100,10 +100,10 @@ Each distinct function counts once: frontbin's copy of the menus is the main ima | Level 13: Maraxus Prison (and 33) | 14 of 33 | 1,344 of 15,872 bytes (8.47%) | 8.47% | | Level 14: Ghost Station (and 34) | 7 of 23 | 1,000 of 8,884 bytes (11.26%) | 11.26% | | Level 15: Control Level (and 35) | 34 of 134 | 3,448 of 116,624 bytes (2.96%) | 2.96% | -| Level 41: Battledome Tower (all 22 multiplayer maps) | 165 of 374 | 16,304 of 140,340 bytes (11.62%) | 13.33% | -| **Total** | 8,044 of 18,134 | 849,596 of 5,810,856 bytes (14.62%) | 15.36% | +| Level 41: Battledome Tower (all 22 multiplayer maps) | 167 of 374 | 16,832 of 140,340 bytes (11.99%) | 13.70% | +| **Total** | 8,086 of 18,134 | 860,484 of 5,810,856 bytes (14.81%) | 15.55% | -Each distinct function counts once: frontbin's copy of the menus is the main image's, and a level function counts once however many of the 47 levels have it. 475,892 bytes (8.19%) are in units with nothing left to decompile. +Each distinct function counts once: frontbin's copy of the menus is the main image's, and a level function counts once however many of the 47 levels have it. 481,196 bytes (8.28%) are in units with nothing left to decompile. diff --git a/config/pal/map.tsv b/config/pal/map.tsv index af838c1e..eab9174a 100644 --- a/config/pal/map.tsv +++ b/config/pal/map.tsv @@ -159,7 +159,7 @@ func_0012A688 src/core/0012A688.c match func_0012A688 main:core.text:0012A688:14 func_0012A918 src/core/0012A918.c match func_0012A918 main:core.text:0012A918:60 100.00 func_0012A970 src/core/0012A970.c match func_0012A970 main:core.text:0012A970:112 100.00 func_0012A9E8 src/core/0012A9E8.c match func_0012A9E8 main:core.text:0012A9E8:136 100.00 -func_0012AA70 src/pal/core/0012AA70.c match func_0012AA70 main:core.text:0012AA70:236 100.00 +func_0012AA70 src/core/0012AA70.c match func_0012AA70 main:core.text:0012AA70:236 100.00 func_0012AB60 src/pal/core/0012AB60.c match func_0012AB60 main:core.text:0012AB60:108 100.00 func_0012AF88 src/core/0012AF88.c match func_0012AF88 main:core.text:0012AF88:84 100.00 func_0012AFE0 src/core/0012AFE0.c match func_0012AFE0 main:core.text:0012AFE0:44 100.00 @@ -178,7 +178,7 @@ func_0012C5B8 src/core/0012C5B8.c match func_0012C5B8 main:core.text:0012C5B8:14 func_0012C648 src/core/0012C648.c match func_0012C648 main:core.text:0012C648:56 100.00 func_0012C680 src/core/0012C680.c match func_0012C680 main:core.text:0012C680:520 100.00 func_0012C888 src/core/0012C888.c match func_0012C888 main:core.text:0012C888:520 100.00 -func_0012CA90 src/pal/core/0012CA90.c match func_0012CA90 main:core.text:0012CA90:144 100.00 +func_0012CA90 src/core/0012CA90.c match func_0012CA90 main:core.text:0012CA90:144 100.00 func_0012CBC0 src/core/0012CBC0.c match func_0012CBC0 main:core.text:0012CBC0:28 100.00 func_0012CBE0 src/libm/w_drem.c differs - - 0.00 func_0012CC30 src/core/0012CC30.c match func_0012CC30 main:core.text:0012CC30:340 100.00 @@ -268,14 +268,14 @@ func_00136E10 src/core/00136E10.c match func_00136E10 main:core.text:00136E10:16 func_00136F70 src/core/00136F70.c match func_00136F70 main:core.text:00136F70:228 100.00 func_001371D0 src/core/001371D0.c match func_001371D0 main:core.text:001371D0:120 100.00 func_00137258 src/core/00137258.c match func_00137258 main:core.text:00137258:344 100.00 -func_001373B0 src/pal/core/001373B0.c match func_001373B0 main:core.text:001373B0:152 100.00 +func_001373B0 src/core/001373B0.c match func_001373B0 main:core.text:001373B0:152 100.00 func_00137448 src/core/00137448.c match func_00137448 main:core.text:00137448:160 100.00 func_001374E8 src/core/001374E8.c match func_001374E8 main:core.text:001374E8:108 100.00 func_00137558 src/core/00137558.c match func_00137558 main:core.text:00137558:344 100.00 func_00137998 src/core/00137998.c match func_00137998 main:core.text:00137998:536 100.00 func_00137BB0 src/core/00137BB0.c match func_00137BB0 main:core.text:00137BB0:544 100.00 -func_00137FB0 src/pal/core/00137FB0.c match func_00137FB0 main:core.text:00137FB0:152 100.00 -func_00138100 src/pal/core/00138100.c match func_00138100 main:core.text:00138100:180 100.00 +func_00137FB0 src/core/00137FB0.c match func_00137FB0 main:core.text:00137FB0:152 100.00 +func_00138100 src/core/00138100.c match func_00138100 main:core.text:00138100:180 100.00 func_001384E0 src/core/001384E0.c match func_001384E0 main:core.text:001384E0:12 100.00 func_001384F0 src/core/001384F0.c match func_001384F0 main:core.text:001384F0:160 100.00 func_001389D8 src/core/001389D8.c match func_001389D8 main:core.text:001389D8:200 100.00 @@ -288,7 +288,7 @@ func_00139A80 src/core/00139A80.c match func_00139A80 main:core.text:00139A80:52 func_00139AB8 src/core/00139AB8.c match func_00139AB8 main:core.text:00139AB8:40 100.00 func_00139AE0 src/core/00139AE0.c match func_00139AE0 main:core.text:00139AE0:220 100.00 func_00139DA0 src/pal/core/00139DA0.c match func_00139DA0 main:core.text:00139DA0:104 100.00 -func_0013A0F0 src/pal/core/0013A0F0.c match func_0013A0F0 main:core.text:0013A0F0:88 100.00 +func_0013A0F0 src/core/0013A0F0.c match func_0013A0F0 main:core.text:0013A0F0:88 100.00 func_0013A148 src/core/0013A148.c match func_0012B010 main:core.text:0012B010:12 100.00 func_0013A160 src/core/0013A160.c match func_0013A160 main:core.text:0013A160:296 100.00 func_0013A288 src/core/0013A288.c match func_0013A288 main:core.text:0013A288:52 100.00 @@ -309,7 +309,7 @@ func_0013B018 src/core/0013B018.c match func_0013B018 main:core.text:0013B018:10 func_0013B088 src/core/0013B088.c match func_0013B088 main:core.text:0013B088:108 100.00 func_0013B0F8 src/core/0013B0F8.c match func_0013B0F8 main:core.text:0013B0F8:108 100.00 func_0013B168 src/core/0013B168.c match func_0013B168 main:core.text:0013B168:100 100.00 -func_0013B460 src/pal/core/0013B460.c match func_0013B460 main:core.text:0013B460:172 100.00 +func_0013B460 src/core/0013B460.c match func_0013B460 main:core.text:0013B460:172 100.00 func_0013B8C8 src/core/0013B8C8.c match func_0013B8C8 main:core.text:0013B8C8:344 100.00 func_0013BA20 src/core/0013BA20.c match func_0013BA20 main:core.text:0013BA20:116 100.00 func_0013BA98 src/core/0013BA98.c match func_0013BA98 main:core.text:0013BA98:120 100.00 @@ -374,7 +374,7 @@ func_00142B60 src/core/00142B60.c match func_00142B60 main:core.text:00142B60:10 func_00143040 src/core/00143040.c match func_00143040 main:core.text:00143040:144 100.00 func_00143990 src/core/00143990.c match func_00143990 main:core.text:00143990:464 100.00 func_00143B60 src/core/00143B60.c match func_00143B60 main:core.text:00143B60:1704 100.00 -func_001464C0 src/pal/core/001464C0.c match func_001464C0 main:core.text:001464C0:16 100.00 +func_001464C0 src/core/001464C0.c match func_001464C0 main:core.text:001464C0:16 100.00 func_001464D0 src/core/001464D0.c match func_001464D0 main:core.text:001464D0:160 100.00 func_00146638 src/core/00146638.c match func_00146638 main:core.text:00146638:84 100.00 func_00146690 src/core/00146690.c match func_00146690 main:core.text:00146690:64 100.00 @@ -424,9 +424,9 @@ func_0014B218 src/core/0014B218.c match func_0014B218 main:core.text:0014B218:92 func_0014B808 src/core/0014B808.c match func_0014B808 main:core.text:0014B808:128 100.00 func_0014B890 src/core/0014B890.c match func_0014B890 main:core.text:0014B890:104 100.00 func_0014B8F8 src/core/0014B8F8.c match func_0014B8F8 main:core.text:0014B8F8:60 100.00 -func_0014C168 src/pal/core/0014C168.c match func_0014C168 main:core.text:0014C168:336 100.00 +func_0014C168 src/core/0014C168.c match func_0014C168 main:core.text:0014C168:336 100.00 func_0014C368 src/core/0014C368.c match func_0014C368 main:core.text:0014C368:68 100.00 -func_0014CCA0 src/pal/core/0014CCA0.c match func_0014CCA0 main:core.text:0014CCA0:340 100.00 +func_0014CCA0 src/core/0014CCA0.c match func_0014CCA0 main:core.text:0014CCA0:340 100.00 func_0014D010 src/core/0014D010.c match func_0014D010 main:core.text:0014D010:68 100.00 func_0014D058 src/core/0014D058.c match func_0014D058 main:core.text:0014D058:132 100.00 func_0014D1D8 src/core/0014D1D8.c match func_0014D1D8 main:core.text:0014D1D8:52 100.00 @@ -447,7 +447,7 @@ func_0014E3B8 src/pal/core/0014E3B8.c match func_0014E3B8 main:core.text:0014E3B func_0014E498 src/pal/core/0014E498.c match func_0014E498 main:core.text:0014E498:260 100.00 func_0014EDE0 src/core/0014EDE0.c match func_0014EDE0 main:core.text:0014EDE0:212 100.00 func_0014F378 src/core/0014F378.c match func_0014F378 main:core.text:0014F378:212 100.00 -func_001501B0 src/pal/core/001501B0.c match func_001501B0 main:core.text:001501B0:148 100.00 +func_001501B0 src/core/001501B0.c match func_001501B0 main:core.text:001501B0:148 100.00 func_001502F8 src/core/001502F8.c match func_001502F8 main:core.text:001502F8:116 100.00 func_00150370 src/core/00150370.c match func_00150370 main:core.text:00150370:60 100.00 func_00150DC8 src/core/00150DC8.c match func_00150DC8 main:core.text:00150DC8:176 100.00 @@ -901,6 +901,7 @@ func_0015F3B8 src/core/0015F3B8.c match func_0015F3C8 main:core.text:0015F3C8:52 func_00160870 src/core/00160870.c match func_00160880 main:core.text:00160880:92 100.00 func_00160A70 src/core/00160A70.c match func_00160A80 main:core.text:00160A80:76 100.00 func_00160AC0 src/core/00160AC0.c match func_00160AD0 main:core.text:00160AD0:52 100.00 +func_00160FD8 src/core/00160FD8.c match func_00160FE8 main:core.text:00160FE8:320 100.00 func_00160FE8 src/pal/core/00160FE8.c match func_00160FE8 main:core.text:00160FE8:320 100.00 func_00161118 src/core/00161118.c match func_00161128 main:core.text:00161128:12 100.00 func_00161128 src/core/00161128.c match func_00161138 main:core.text:00161138:12 100.00 @@ -979,13 +980,17 @@ func_00403468 src/game/00403468.c match func_00403468 main:.text:00403468:20,fro func_00403480 src/game/00403480.c match func_00403480 main:.text:00403480:20,frontbin:.text:00403200:20 100.00 func_00404C90 src/game/00404C90.c differs - - 0.00 func_004052B0 src/game/004052B0.c match func_L00_00534340 level_00:.text:00534340:276 100.00 +func_00405D38 src/pal/game/00405D38.c match func_00405D38 main:.text:00405D38:104 100.00 func_00406680 src/game/00406680.c match func_00406680 main:.text:00406680:104,frontbin:.text:00406400:104 100.00 func_00406838 src/game/00406838.c match func_00406838 main:.text:00406838:16,frontbin:.text:004065B8:16 100.00 func_00407198 src/game/00407198.c match func_00407198 main:.text:00407198:24,frontbin:.text:00406F18:24 100.00 +func_004071B0 src/pal/game/004071B0.c match func_004071B0 main:.text:004071B0:60 100.00 func_004071F0 src/game/004071F0.c match func_004071F0 main:.text:004071F0:48,frontbin:.text:00406F70:48 100.00 func_004073F0 src/game/004073F0.c match func_004073F0 main:.text:004073F0:24,frontbin:.text:00407170:24 100.00 +func_00407408 src/pal/game/00407408.c match func_00407408 main:.text:00407408:60 100.00 func_00407448 src/game/00407448.c match func_00407448 main:.text:00407448:44,frontbin:.text:004071C8:44 100.00 func_00407478 src/game/00407478.c match func_00407478 main:.text:00407478:44,frontbin:.text:004071F8:44 100.00 +func_004074A8 src/pal/game/004074A8.c match func_004074A8 main:.text:004074A8:60 100.00 func_004074E8 src/game/004074E8.c match func_004074E8 main:.text:004074E8:12,frontbin:.text:00407268:12 100.00 func_00409FC8 src/game/00409FC8.c match func_00409FC8 main:.text:00409FC8:104,frontbin:.text:00409D48:104 100.00 func_0040A0E8 src/game/0040A0E8.c match func_0040A0E8 main:.text:0040A0E8:60,frontbin:.text:00409E68:60 100.00 @@ -1467,6 +1472,7 @@ func_0047F640 src/pal/game/0047F640.c match func_0047F640 main:.text:0047F640:25 func_0047F870 src/game/0047F870.c match func_004801B8 main:.text:004801B8:48,frontbin:.text:0047FA78:48 100.00 func_0047FE68 src/pal/game/0047FE68.c match func_0047FE68 main:.text:0047FE68:32 100.00 func_00480F40 src/game/00480F40.c match func_00481888 main:.text:00481888:76,frontbin:.text:00481148:76 100.00 +func_00481100 src/game/00481100.c match func_00481A48 main:.text:00481A48:320,frontbin:.text:00481308:320 100.00 func_00481240 src/game/00481240.c match func_00481B88 main:.text:00481B88:84,frontbin:.text:00481448:84 100.00 func_00481A48 src/pal/game/00481A48.c match func_00481A48 main:.text:00481A48:320 100.00 func_00482888 src/game/00482888.c match func_00483248 main:.text:00483248:40,frontbin:.text:00482B08:40 100.00 @@ -1475,6 +1481,8 @@ func_00483368 src/game/00483368.c match func_00483D30 main:.text:00483D30:40,fro func_004844E0 src/game/004844E0.c match func_00484EB0 main:.text:00484EB0:184,frontbin:.text:00484770:184 100.00 func_00484598 src/game/00484598.c match func_00484F68 main:.text:00484F68:28,frontbin:.text:00484828:28 100.00 func_00484670 src/game/00484670.c match func_00485050 main:.text:00485050:156,frontbin:.text:00484910:156 100.00 +func_00484F68 src/game/00484F68.c match func_00485948 main:.text:00485948:560,frontbin:.text:00485208:560 100.00 +func_00484F88 src/pal/game/00484F88.c match func_00484F88 main:.text:00484F88:200 100.00 func_00485948 src/pal/game/00485948.c match func_00485948 main:.text:00485948:560 100.00 func_00486188 src/game/00486188.c match func_00486BC0 main:.text:00486BC0:96,frontbin:.text:00486480:96 100.00 func_004869D8 src/game/004869D8.c match func_00487440 main:.text:00487440:8,frontbin:.text:00486D00:8 100.00 @@ -1547,6 +1555,7 @@ func_0048CD00 src/pal/game/0048CD00.c match func_0048CD00 main:.text:0048CD00:22 func_0048CDE8 src/pal/game/0048CDE8.c match func_0048CDE8 main:.text:0048CDE8:268 100.00 func_0048CEF8 src/pal/game/0048CEF8.c match func_0048CEF8 main:.text:0048CEF8:384 100.00 func_0048D038 src/game/0048D038.c match func_0048DAF0 main:.text:0048DAF0:28,frontbin:.text:0048D3B0:28 100.00 +func_0048D228 src/game/0048D228.c match func_0048DCE0 main:.text:0048DCE0:264,frontbin:.text:0048D5A0:264 100.00 func_0048D758 src/game/0048D758.c match func_0048E210 main:.text:0048E210:796,frontbin:.text:0048DAD0:796 100.00 func_0048DCE0 src/pal/game/0048DCE0.c match func_0048DCE0 main:.text:0048DCE0:264 100.00 func_0048DEB0 src/game/0048DEB0.c match func_0048E968 main:.text:0048E968:16,frontbin:.text:0048E228:16 100.00 @@ -1747,6 +1756,7 @@ func_0049B8A8 src/game/0049B8A8.c match func_0049C5E0 main:.text:0049C5E0:52,fro func_0049B8E0 src/game/0049B8E0.c match func_0049C618 main:.text:0049C618:28,frontbin:.text:0049BED8:28 100.00 func_0049B900 src/game/0049B900.c match func_0049C638 main:.text:0049C638:28,frontbin:.text:0049BEF8:28 100.00 func_0049B920 src/game/0049B920.c match func_0049C658 main:.text:0049C658:60,frontbin:.text:0049BF18:60 100.00 +func_0049B960 src/game/0049B960.c match func_0049C698 main:.text:0049C698:336,frontbin:.text:0049BF58:336 100.00 func_0049B9B0 src/pal/game/0049B9B0.c match func_0049B9B0 main:.text:0049B9B0:204 100.00 func_0049BA80 src/pal/game/0049BA80.c match func_0049BA80 main:.text:0049BA80:540 100.00 func_0049C158 src/game/0049C158.c match func_0049CE90 main:.text:0049CE90:168,frontbin:.text:0049C750:168 100.00 @@ -1965,6 +1975,7 @@ func_004A9CE0 src/pal/game/004A9CE0.c match func_004A9CE0 main:.text:004A9CE0:30 func_004A9E50 src/game/004A9E50.c match func_004AABC8 main:.text:004AABC8:336,frontbin:.text:004AA488:336 100.00 func_004A9FA0 src/game/004A9FA0.c match func_004AAD18 main:.text:004AAD18:196,frontbin:.text:004AA5D8:196 100.00 func_004AA068 src/game/004AA068.c match func_004AADE0 main:.text:004AADE0:68,frontbin:.text:004AA6A0:68 100.00 +func_004AA180 src/pal/game/004AA180.c match func_004AA180 main:.text:004AA180:164 100.00 func_004AA9E0 src/game/004AA9E0.c match func_004AB788 main:.text:004AB788:120,frontbin:.text:004AB048:120 100.00 func_004AAA48 src/pal/game/004AAA48.c match func_004AAA48 main:.text:004AAA48:276 100.00 func_004AAC9C src/game/004AAC9C.c match func_004ABA44 main:.text:004ABA44:8,frontbin:.text:004AB304:8 100.00 @@ -2012,6 +2023,7 @@ func_004AF168 src/game/004AF168.c match func_004AFFF8 main:.text:004AFFF8:36,fro func_004AF198 src/game/004AF198.c match func_004B0028 main:.text:004B0028:228,frontbin:.text:004AF8E8:228 100.00 func_004AF710 src/game/004AF710.c match func_004B05A0 main:.text:004B05A0:28,frontbin:.text:004AFE60:28 100.00 func_004AF740 src/game/004AF740.c match func_004B05D0 main:.text:004B05D0:336,frontbin:.text:004AFE90:336 100.00 +func_004AF7A0 src/pal/game/004AF7A0.c match func_004AF7A0 main:.text:004AF7A0:744 100.00 func_004AF890 src/game/004AF890.c match func_004B0720 main:.text:004B0720:60,frontbin:.text:004AFFE0:60 100.00 func_004AF8D0 src/game/004AF8D0.c match func_004B0760 main:.text:004B0760:120,frontbin:.text:004B0020:120 100.00 func_004AF948 src/game/004AF948.c match func_004B07D8 main:.text:004B07D8:76,frontbin:.text:004B0098:76 100.00 @@ -2475,7 +2487,7 @@ func_004CE598 src/game/004CE598.c match func_004CF438 main:.text:004CF438:40,fro func_004CE5C0 src/game/004CE5C0.c match func_004CF460 main:.text:004CF460:104,frontbin:.text:004CED20:104 100.00 func_004CE628 src/game/004CE628.c match func_004CF4C8 main:.text:004CF4C8:56,frontbin:.text:004CED88:56 100.00 func_004CEAB0 src/game/004CEAB0.c match func_004CF950 main:.text:004CF950:184,frontbin:.text:004CF210:184 100.00 -func_004CEB68 src/pal/game/004CEB68.c match func_004CEB68 main:.text:004CEB68:308 100.00 +func_004CEB68 src/game/004CEB68.c match func_004CEB68 main:.text:004CEB68:308,frontbin:.text:004CE428:308 100.00 func_004CEC50 src/game/004CEC50.c match func_004CFAF0 main:.text:004CFAF0:288,frontbin:.text:004CF3B0:288 100.00 func_004CED70 src/game/004CED70.c match func_004CFC10 main:.text:004CFC10:64,frontbin:.text:004CF4D0:64 100.00 func_004CEDA8 src/pal/game/004CEDA8.c match func_004CEDA8 main:.text:004CEDA8:212 100.00 @@ -2574,6 +2586,7 @@ func_004D2BC0 src/game/004D2BC0.c match func_004D3AD0 main:.text:004D3AD0:368,fr func_004D2E08 src/pal/game/004D2E08.c match func_004D2E08 main:.text:004D2E08:320 100.00 func_004D2FF8 src/game/004D2FF8.c match func_004D3F08 main:.text:004D3F08:28,frontbin:.text:004D37C8:28 100.00 func_004D3030 src/game/004D3030.c match func_004D3F40 main:.text:004D3F40:8,frontbin:.text:004D3800:8 100.00 +func_004D3060 src/game/004D3060.c match func_004D3F70 main:.text:004D3F70:232,frontbin:.text:004D3830:232 100.00 func_004D3148 src/game/004D3148.c match func_004D4058 main:.text:004D4058:88,frontbin:.text:004D3918:88 100.00 func_004D31A0 src/game/004D31A0.c match func_004D40B0 main:.text:004D40B0:76,frontbin:.text:004D3970:76 100.00 func_004D31F0 src/game/004D31F0.c match func_004D4100 main:.text:004D4100:324,frontbin:.text:004D39C0:324 100.00 @@ -2806,6 +2819,7 @@ func_004E7688 src/game/004E7688.c match func_004E85B0 main:.text:004E85B0:128,fr func_004E7830 src/game/004E7830.c match func_004E8758 main:.text:004E8758:72,frontbin:.text:004E8058:72 100.00 func_004E7878 src/game/004E7878.c match func_004E87A0 main:.text:004E87A0:76,frontbin:.text:004E80A0:76 100.00 func_004E78D0 src/game/004E78D0.c match func_004E87F8 main:.text:004E87F8:164,frontbin:.text:004E80F8:164 100.00 +func_004E7990 src/game/004E7990.c match func_004E88B8 main:.text:004E88B8:216,frontbin:.text:004E81B8:216 100.00 func_004E7A70 src/game/004E7A70.c match func_004E8998 main:.text:004E8998:276,frontbin:.text:004E8298:276 100.00 func_004E7B88 src/game/004E7B88.c match func_004E8AB0 main:.text:004E8AB0:92,frontbin:.text:004E83B0:92 100.00 func_004E7BE8 src/game/004E7BE8.c match func_004E8B10 main:.text:004E8B10:92,frontbin:.text:004E8410:92 100.00 @@ -3003,6 +3017,7 @@ func_004FA838 src/game/004FA838.c match func_004FB8B8 main:.text:004FB8B8:152,fr func_004FA8D0 src/game/004FA8D0.c match func_004FB950 main:.text:004FB950:472,frontbin:.text:004FB250:472 100.00 func_004FAB80 src/game/004FAB80.c match func_004FBC00 main:.text:004FBC00:180,frontbin:.text:004FB500:180 100.00 func_004FAF08 src/game/004FAF08.c match func_004FBF88 main:.text:004FBF88:224,frontbin:.text:004FB888:224 100.00 +func_004FAFE8 src/game/004FAFE8.c match func_004FC068 main:.text:004FC068:552,frontbin:.text:004FB968:552 100.00 func_004FB860 src/game/004FB860.c differs - - 0.00 func_004FB940 src/game/004FB940.c match func_004FC9B0 main:.text:004FC9B0:64,frontbin:.text:004FC2B0:64 100.00 func_004FBB28 src/pal/game/004FBB28.c match func_004FBB28 main:.text:004FBB28:212 100.00 @@ -3173,6 +3188,7 @@ func_00504D68 src/game/00504D68.c match func_00505E00 main:.text:00505E00:244,fr func_00504E68 src/game/00504E68.c match func_00505F00 main:.text:00505F00:244,frontbin:.text:00505800:244 100.00 func_00505040 src/game/00505040.c match func_005060D8 main:.text:005060D8:212,frontbin:.text:005059D8:212 100.00 func_00505118 src/game/00505118.c match func_005061B0 main:.text:005061B0:276,frontbin:.text:00505AB0:276 100.00 +func_00505148 src/pal/game/00505148.c match func_00505148 main:.text:00505148:376 100.00 func_005052D0 src/pal/game/005052D0.c match func_005052D0 main:.text:005052D0:244 100.00 func_00505410 src/game/00505410.c match func_005064A8 main:.text:005064A8:228,frontbin:.text:00505DA8:228 100.00 func_005054F8 src/game/005054F8.c match func_00506590 main:.text:00506590:228,frontbin:.text:00505E90:228 100.00 @@ -3192,6 +3208,7 @@ func_00505C90 src/game/00505C90.c match func_00506D28 main:.text:00506D28:128,fr func_00505D30 src/game/00505D30.c match func_00506DC8 main:.text:00506DC8:124,frontbin:.text:005066C8:124 100.00 func_00505DD0 src/game/00505DD0.c match func_00506E68 main:.text:00506E68:236,frontbin:.text:00506768:236 100.00 func_00505ED0 src/game/00505ED0.c match func_00506F68 main:.text:00506F68:200,frontbin:.text:00506868:200 100.00 +func_00505F98 src/game/00505F98.c match func_00507030 main:.text:00507030:200,frontbin:.text:00506930:200 100.00 func_00506000 src/pal/game/00506000.c match func_00506000 main:.text:00506000:212 100.00 func_00506060 src/game/00506060.c match func_005070F8 main:.text:005070F8:188,frontbin:.text:005069F8:188 100.00 func_00506120 src/game/00506120.c match func_005071B8 main:.text:005071B8:184,frontbin:.text:00506AB8:184 100.00 @@ -3200,6 +3217,7 @@ func_005062D0 src/pal/game/005062D0.c match func_005062D0 main:.text:005062D0:22 func_00506358 src/game/00506358.c match func_005073F0 main:.text:005073F0:172,frontbin:.text:00506CF0:172 100.00 func_005063C0 src/pal/game/005063C0.c match func_005063C0 main:.text:005063C0:228 100.00 func_00506408 src/game/00506408.c match func_005074A0 main:.text:005074A0:236,frontbin:.text:00506DA0:236 100.00 +func_00506508 src/game/00506508.c match func_005075A0 main:.text:005075A0:200,frontbin:.text:00506EA0:200 100.00 func_00506590 src/pal/game/00506590.c match func_00506590 main:.text:00506590:228 100.00 func_005065D8 src/game/005065D8.c match func_00507670 main:.text:00507670:32,frontbin:.text:00506F70:32 100.00 func_005065F8 src/game/005065F8.c match func_00507690 main:.text:00507690:200,frontbin:.text:00506F90:200 100.00 @@ -3264,6 +3282,7 @@ func_00509088 src/game/00509088.c match func_0050A120 main:.text:0050A120:100,fr func_005090F0 src/game/005090F0.c match func_0050A188 main:.text:0050A188:80,frontbin:.text:00509A88:80 100.00 func_00509140 src/game/00509140.c match func_0050A1D8 main:.text:0050A1D8:232,frontbin:.text:00509AD8:232 100.00 func_00509228 src/game/00509228.c match func_0050A2C0 main:.text:0050A2C0:192,frontbin:.text:00509BC0:192 100.00 +func_00509248 src/pal/game/00509248.c match func_00509248 main:.text:00509248:376 100.00 func_005092E8 src/game/005092E8.c match func_0050A380 main:.text:0050A380:80,frontbin:.text:00509C80:80 100.00 func_00509338 src/game/00509338.c match func_0050A3D0 main:.text:0050A3D0:216,frontbin:.text:00509CD0:216 100.00 func_00509410 src/game/00509410.c match func_0050A4A8 main:.text:0050A4A8:100,frontbin:.text:00509DA8:100 100.00 @@ -3368,6 +3387,7 @@ func_0050C568 src/game/0050C568.c match func_0050D600 main:.text:0050D600:8,fron func_0050C570 src/game/0050C570.c match func_0050D608 main:.text:0050D608:76,frontbin:.text:0050CF08:76 100.00 func_0050C5C0 src/game/0050C5C0.c match func_0050D658 main:.text:0050D658:112,frontbin:.text:0050CF58:112 100.00 func_0050C630 src/game/0050C630.c match func_0050D6C8 main:.text:0050D6C8:8,frontbin:.text:0050CFC8:8 100.00 +func_0050C638 src/game/0050C638.c match func_0050D6D0 main:.text:0050D6D0:264,frontbin:.text:0050CFD0:264 100.00 func_0050C740 src/game/0050C740.c match func_0050D7D8 main:.text:0050D7D8:28,frontbin:.text:0050D0D8:28 100.00 func_0050C768 src/game/0050C768.c match func_0050D800 main:.text:0050D800:108,frontbin:.text:0050D100:108 100.00 func_0050CC98 src/game/0050CC98.c match func_0050DD30 main:.text:0050DD30:280,frontbin:.text:0050D630:280 100.00 @@ -3467,6 +3487,7 @@ func_00511740 src/pal/game/00511740.c match func_00511740 main:.text:00511740:54 func_00512138 src/pal/game/00512138.c match func_00512138 main:.text:00512138:240 100.00 func_005125F8 src/pal/game/005125F8.c match func_005125F8 main:.text:005125F8:200 100.00 func_00512610 src/game/00512610.c match func_005136E8 main:.text:005136E8:60,frontbin:.text:00512FE8:60 100.00 +func_00512650 src/game/00512650.c match func_00513728 main:.text:00513728:248,frontbin:.text:00513028:248 100.00 func_00512748 src/game/00512748.c match func_00513820 main:.text:00513820:92,frontbin:.text:00513120:92 100.00 func_00512938 src/game/00512938.c match func_00513A10 main:.text:00513A10:8,frontbin:.text:00513310:8 100.00 func_00512D08 src/game/00512D08.c differs - - 0.00 @@ -3510,6 +3531,7 @@ func_00521078 src/game/00521078.c differs - - 0.00 func_005210B0 src/game/005210B0.c match func_00522270 main:.text:00522270:416,frontbin:.text:00521B70:416 100.00 func_00521720 src/game/00521720.c match func_005228E0 main:.text:005228E0:248,frontbin:.text:005221E0:248 100.00 func_00521EB0 src/game/00521EB0.c differs - - 0.00 +func_00522238 src/pal/game/00522238.c match func_00522238 main:.text:00522238:56 100.00 func_00522270 src/pal/game/00522270.c match func_00522270 main:.text:00522270:416 100.00 func_00522518 src/pal/game/00522518.c match func_00522518 main:.text:00522518:344 100.00 func_005225D0 src/game/005225D0.c differs - - 0.00 @@ -3520,10 +3542,12 @@ func_00522AF8 src/game/00522AF8.c match func_00523CF0 main:.text:00523CF0:252,fr func_00522BF8 src/game/00522BF8.c match func_00523DF0 main:.text:00523DF0:116,frontbin:.text:005236F0:116 100.00 func_00522C70 src/game/00522C70.c differs - - 0.00 func_00522E18 src/game/00522E18.c match func_00524010 main:.text:00524010:24,frontbin:.text:00523910:24 100.00 +func_005230A8 src/pal/game/005230A8.c match func_005230A8 main:.text:005230A8:612 100.00 func_00523208 src/game/00523208.c match func_00524400 main:.text:00524400:8,frontbin:.text:00523D00:8 100.00 func_00523210 src/game/00523210.c match func_00524408 main:.text:00524408:172,frontbin:.text:00523D08:172 100.00 func_00523578 src/pal/game/00523578.c match func_00523578 main:.text:00523578:184 100.00 func_00523780 src/game/00523780.c match func_00524978 main:.text:00524978:580,frontbin:.text:00524278:580 100.00 +func_005237C8 src/pal/game/005237C8.c match func_005237C8 main:.text:005237C8:300 100.00 func_005239C8 src/game/005239C8.c match func_00524BC0 main:.text:00524BC0:312,frontbin:.text:005244C0:312 100.00 func_00523B00 src/game/00523B00.c match func_00524CF8 main:.text:00524CF8:60,frontbin:.text:005245F8:60 100.00 func_00523CF0 src/pal/game/00523CF0.c match func_00523CF0 main:.text:00523CF0:252 100.00 @@ -3536,6 +3560,7 @@ func_00525910 src/game/00525910.c match func_00526B08 main:.text:00526B08:744,fr func_00525BF8 src/game/00525BF8.c match func_00526DF0 main:.text:00526DF0:8,frontbin:.text:005266F0:8 100.00 func_00525C00 src/game/00525C00.c match func_00526DF8 main:.text:00526DF8:56,frontbin:.text:005266F8:56 100.00 func_00525C58 src/game/00525C58.c match func_00526E50 main:.text:00526E50:80,frontbin:.text:00526750:80 100.00 +func_00525CB0 src/game/00525CB0.c match func_00526EA8 main:.text:00526EA8:384,frontbin:.text:005267A8:384 100.00 func_005263E0 src/game/005263E0.c match func_005275D8 main:.text:005275D8:136,frontbin:.text:00526ED8:136 100.00 func_00526EA8 src/pal/game/00526EA8.c match func_00526EA8 main:.text:00526EA8:384 100.00 func_00526FD8 src/game/00526FD8.c match func_005281D0 main:.text:005281D0:112,frontbin:.text:00527AD0:112 100.00 @@ -3646,6 +3671,7 @@ func_0054A190 src/game/0054A190.c match func_0054B6F8 main:.text:0054B6F8:204,fr func_0054A268 src/game/0054A268.c match func_0054B7D0 main:.text:0054B7D0:36,frontbin:.text:0054B0D0:36 100.00 func_0054A360 src/pal/game/0054A360.c match func_0054A360 main:.text:0054A360:336 100.00 func_0054A400 src/game/0054A400.c match func_0054B968 main:.text:0054B968:160,frontbin:.text:0054B268:160 100.00 +func_0054A4A0 src/game/0054A4A0.c match func_0054BA08 main:.text:0054BA08:224,frontbin:.text:0054B308:224 100.00 func_0054A580 src/game/0054A580.c match func_0054BAE8 main:.text:0054BAE8:136,frontbin:.text:0054B3E8:136 100.00 func_0054A608 src/game/0054A608.c match func_0054BB70 main:.text:0054BB70:124,frontbin:.text:0054B470:124 100.00 func_0054A688 src/game/0054A688.c match func_0054BBF0 main:.text:0054BBF0:124,frontbin:.text:0054B4F0:124 100.00 @@ -3668,6 +3694,7 @@ func_0054AB78 src/game/0054AB78.c match func_0054C0E0 main:.text:0054C0E0:32,fro func_0054AB98 src/game/0054AB98.c match func_0054C100 main:.text:0054C100:80,frontbin:.text:0054BA00:80 100.00 func_0054ABE8 src/game/0054ABE8.c match func_0054C150 main:.text:0054C150:52,frontbin:.text:0054BA50:52 100.00 func_0054AC20 src/game/0054AC20.c match func_0054C188 main:.text:0054C188:52,frontbin:.text:0054BA88:52 100.00 +func_0054ACE8 src/game/0054ACE8.c match func_0054C250 main:.text:0054C250:224,frontbin:.text:0054BB50:224 100.00 func_0054AFB8 src/game/0054AFB8.c match func_0054C520 main:.text:0054C520:68,frontbin:.text:0054BE20:68 100.00 func_0054B0E8 src/game/0054B0E8.c differs - - 0.00 func_0054B280 src/game/0054B280.c match func_0054C7E8 main:.text:0054C7E8:52,frontbin:.text:0054C0E8:52 100.00 @@ -3742,7 +3769,7 @@ func_01EA0E50 src/net/01EA0E50.c match func_01EA0E50 main:net.text:01EA0E50:100 func_01EA3348 src/net/01EA3348.c match func_01EA3348 main:net.text:01EA3348:116 100.00 func_01EA3778 src/net/01EA3778.c match func_01EA3778 main:net.text:01EA3778:52 100.00 func_01EA3F28 src/net/01EA3F28.c match func_01EA3F28 main:net.text:01EA3F28:48 100.00 -func_01EA4570 src/pal/net/01EA4570.c match func_01EA4570 main:net.text:01EA4570:48 100.00 +func_01EA4570 src/net/01EA4570.c match func_01EA4570 main:net.text:01EA4570:48 100.00 func_01EA4668 src/net/01EA4668.c match func_01EA4668 main:net.text:01EA4668:24 100.00 func_01EA4680 src/net/01EA4680.c match func_01EA4680 main:net.text:01EA4680:48 100.00 func_01EA4750 src/net/01EA4750.c match func_01EA4750 main:net.text:01EA4750:32 100.00 @@ -3821,6 +3848,7 @@ func_01EACB58 src/net/01EACB58.c match func_01EACB58 main:net.text:01EACB58:60 1 func_01EACEE0 src/net/01EACEE0.c match func_01EACEE0 main:net.text:01EACEE0:16 100.00 func_01EACF38 src/net/01EACF38.c match func_01EACF38 main:net.text:01EACF38:36 100.00 func_01EAE710 src/net/01EAE710.c match func_01EAE710 main:net.text:01EAE710:136 100.00 +func_01EAEBE0 src/net/01EAEBE0.c match func_01EAEBE0 main:net.text:01EAEBE0:268 100.00 func_01EAECF0 src/net/01EAECF0.c match func_01EAECF0 main:net.text:01EAECF0:40 100.00 func_01EB0D78 src/net/01EB0D78.c match func_01EB0D78 main:net.text:01EB0D78:28 100.00 func_01EB10A0 src/net/01EB10A0.c match func_01EB10A0 main:net.text:01EB10A0:60 100.00 @@ -3832,6 +3860,7 @@ func_01EB2EE0 src/net/01EB2EE0.c match func_01EB2EE0 main:net.text:01EB2EE0:64 1 func_01EB2F70 src/net/01EB2F70.c match func_01EB2F70 main:net.text:01EB2F70:128 100.00 func_01EB2FF0 src/net/01EB2FF0.c match func_01EB2FF0 main:net.text:01EB2FF0:56 100.00 func_01EB32C8 src/net/01EB32C8.c match func_01EB32C8 main:net.text:01EB32C8:44 100.00 +func_01EB36A0 src/net/01EB36A0.c match func_01EB36A0 main:net.text:01EB36A0:260 100.00 func_01EB3C70 src/net/01EB3C70.c match func_01EB3C70 main:net.text:01EB3C70:108 100.00 func_01EB3F10 src/net/01EB3F10.c match func_01EB3F10 main:net.text:01EB3F10:88 100.00 func_01EB4B40 src/net/01EB4B40.c match func_01EB4B40 main:net.text:01EB4B40:32 100.00 @@ -3842,6 +3871,7 @@ func_01EB4E40 src/net/01EB4E40.c match func_01EB4E40 main:net.text:01EB4E40:36 1 func_01EB4F80 src/net/01EB4F80.c match func_01EB4F80 main:net.text:01EB4F80:112 100.00 func_01EB4FF0 src/net/01EB4FF0.c match func_01EB4FF0 main:net.text:01EB4FF0:36 100.00 func_01EB5398 src/net/01EB5398.c match func_01EB5398 main:net.text:01EB5398:64 100.00 +func_01EB5FB0 src/net/01EB5FB0.c match func_01EB5FB0 main:net.text:01EB5FB0:260 100.00 func_01EB60B8 src/net/01EB60B8.c match func_01EB60B8 main:net.text:01EB60B8:72 100.00 func_01EB61E0 src/net/01EB61E0.c match func_01EB61E0 main:net.text:01EB61E0:112 100.00 func_01EB6408 src/net/01EB6408.c match func_01EB6408 main:net.text:01EB6408:28 100.00 @@ -3978,6 +4008,7 @@ func_01ED5D30 src/net/01ED5D30.c match func_01ED5D30 main:net.text:01ED5D30:52 1 func_01ED5DD0 src/net/01ED5DD0.c match func_01ED5DD0 main:net.text:01ED5DD0:52 100.00 func_01ED5F90 src/net/01ED5F90.c match func_01ED5F90 main:net.text:01ED5F90:72 100.00 func_01ED5FD8 src/net/01ED5FD8.c match func_01ED5FD8 main:net.text:01ED5FD8:16 100.00 +func_01ED66B0 src/net/01ED66B0.c match func_01ED66B0 main:net.text:01ED66B0:104 100.00 func_01ED68A0 src/net/01ED68A0.c match func_01ED68A0 main:net.text:01ED68A0:104 100.00 func_01ED6998 src/net/01ED6998.c match func_01ED6998 main:net.text:01ED6998:124 100.00 func_01ED6AA8 src/net/01ED6AA8.c match func_01ED6AA8 main:net.text:01ED6AA8:128 100.00 @@ -4024,6 +4055,7 @@ func_01ED9BE0 src/net/01ED9BE0.c match func_01ED9BE0 main:net.text:01ED9BE0:8 10 func_01ED9BE8 src/net/01ED9BE8.c match func_01ED9BE8 main:net.text:01ED9BE8:32 100.00 func_01EDA098 src/net/01EDA098.c match func_01EDA098 main:net.text:01EDA098:28 100.00 func_01EDA0B8 src/net/01EDA0B8.c match func_01EDA0B8 main:net.text:01EDA0B8:84 100.00 +func_01EDA668 src/net/01EDA668.c match func_01EDA668 main:net.text:01EDA668:260 100.00 func_01EDA770 src/net/01EDA770.c match func_01EDA770 main:net.text:01EDA770:36 100.00 func_01EDA870 src/net/01EDA870.c match func_01EDA870 main:net.text:01EDA870:76 100.00 func_01EDA908 src/net/01EDA908.c match func_01EDA908 main:net.text:01EDA908:24 100.00 @@ -4284,6 +4316,7 @@ func_01EEE028 src/net/01EEE028.c match func_01EEE028 main:net.text:01EEE028:72 1 func_01EEE070 src/net/01EEE070.c match func_01EEE070 main:net.text:01EEE070:12 100.00 func_01EEE0BC src/net/01EEE0BC.c match func_01EEE0BC main:net.text:01EEE0BC:112 100.00 func_01EEE12C src/net/01EEE12C.c match func_01EEE12C main:net.text:01EEE12C:16 100.00 +func_01EEE13C src/net/01EEE13C.c match func_01EEE13C main:net.text:01EEE13C:96 100.00 func_01EEE19C src/net/01EEE19C.c match func_01EEE19C main:net.text:01EEE19C:96 100.00 func_01EEE1FC src/net/01EEE1FC.c match func_01EEE1FC main:net.text:01EEE1FC:128 100.00 func_01EEE27C src/net/01EEE27C.c match func_01EEE27C main:net.text:01EEE27C:96 100.00 @@ -4339,6 +4372,7 @@ func_01EF28A4 src/net/01EF28A4.c match func_01EF28A4 main:net.text:01EF28A4:8 10 func_01EF2B20 src/net/01EF2B20.c match func_01EF2B20 main:net.text:01EF2B20:28 100.00 func_01EF2B3C src/net/01EF2B3C.c match func_01EF2B3C main:net.text:01EF2B3C:96 100.00 func_01EF2C14 src/net/01EF2C14.c match func_01EF2C14 main:net.text:01EF2C14:68 100.00 +func_01EF2CC4 src/net/01EF2CC4.c match func_01EF2CC4 main:net.text:01EF2CC4:76 100.00 func_01EF2DB8 src/net/01EF2DB8.c match func_01EF2DB8 main:net.text:01EF2DB8:60 100.00 func_01EF2DF4 src/net/01EF2DF4.c match func_01EF2DF4 main:net.text:01EF2DF4:48 100.00 func_01EF308C src/net/01EF308C.c match func_01EF308C main:net.text:01EF308C:96 100.00 @@ -4401,6 +4435,7 @@ func_01EF71E8 src/net/01EF71E8.c match func_01EF71E8 main:net.text:01EF71E8:96 1 func_01EF72C8 src/net/01EF72C8.c match func_01EF72C8 main:net.text:01EF72C8:68 100.00 func_01EF7348 src/net/01EF7348.c match func_01EF7348 main:net.text:01EF7348:168 100.00 func_01EF7688 src/net/01EF7688.c match func_01EF7688 main:net.text:01EF7688:28 100.00 +func_01EF7830 src/net/01EF7830.c match func_01EF7830 main:net.text:01EF7830:256 100.00 func_01EF7930 src/net/01EF7930.c match func_01EF7930 main:net.text:01EF7930:28 100.00 func_01EF7DAC src/net/01EF7DAC.c match func_01EF7DAC main:net.text:01EF7DAC:60 100.00 func_01EF7DE8 src/net/01EF7DE8.c match func_01EF7DE8 main:net.text:01EF7DE8:24 100.00 @@ -4497,6 +4532,7 @@ func_01F042B8 src/net/01F042B8.c match func_01F042B8 main:net.text:01F042B8:60 1 func_01F045E8 src/net/01F045E8.c match func_01F045E8 main:net.text:01F045E8:60 100.00 func_01F04624 src/net/01F04624.c match func_01F04624 main:net.text:01F04624:52 100.00 func_01F0471C src/net/01F0471C.c match func_01F0471C main:net.text:01F0471C:132 100.00 +func_01F047A0 src/net/01F047A0.c match func_01F047A0 main:net.text:01F047A0:264 100.00 func_01F048A8 src/net/01F048A8.c match func_01F048A8 main:net.text:01F048A8:28 100.00 func_01F04950 src/net/01F04950.c match func_01F04950 main:net.text:01F04950:8 100.00 func_01F04958 src/net/01F04958.c match func_01F04958 main:net.text:01F04958:96 100.00 @@ -4522,6 +4558,7 @@ func_01F07050 src/net/01F07050.c match func_01F07050 main:net.text:01F07050:16 1 func_01F07060 src/net/01F07060.c match func_01F07060 main:net.text:01F07060:52 100.00 func_01F07094 src/net/01F07094.c match func_01F07094 main:net.text:01F07094:60 100.00 func_01F070D0 src/net/01F070D0.c match func_01F070D0 main:net.text:01F070D0:48 100.00 +func_01F07100 src/net/01F07100.c match func_01F07100 main:net.text:01F07100:84 100.00 func_01F07154 src/net/01F07154.c match func_01F07154 main:net.text:01F07154:28 100.00 func_01F07170 src/net/01F07170.c match func_01F07170 main:net.text:01F07170:40 100.00 func_01F07300 src/net/01F07300.c match func_01F07300 main:net.text:01F07300:32 100.00 @@ -4813,6 +4850,7 @@ func_L00_0051D878 src/overlays/l00_multiplayer_menu/L00_0051D878.c match func_L0 func_L00_0051E250 src/overlays/l00_multiplayer_menu/L00_0051E250.c match func_L00_0051E750 level_00:.text:0051E750:104 100.00 func_L00_0051E2B8 src/overlays/l00_multiplayer_menu/L00_0051E2B8.c match func_L00_0051E7B8 level_00:.text:0051E7B8:764 100.00 func_L00_0051E6B8 src/overlays/l00_multiplayer_menu/L00_0051E6B8.c match func_L00_0051EBB8 level_00:.text:0051EBB8:476 100.00 +func_L00_0051E6D8 src/pal/overlays/l00_multiplayer_menu/L00_0051E6D8.c match func_L00_0051E6D8 level_00:.text:0051E6D8:104 100.00 func_L00_0051EB68 src/overlays/l00_multiplayer_menu/L00_0051EB68.c match func_L00_0051F068 level_00:.text:0051F068:104 100.00 func_L00_0051EBD0 src/overlays/l00_multiplayer_menu/L00_0051EBD0.c match func_L00_0051F0D0 level_00:.text:0051F0D0:48 100.00 func_L00_0051EC00 src/overlays/l00_multiplayer_menu/L00_0051EC00.c match func_L00_0051F100 level_00:.text:0051F100:76 100.00 @@ -5024,6 +5062,7 @@ func_L00_005421E0 src/overlays/l00_multiplayer_menu/L00_005421E0.c match func_L0 func_L00_005424F8 src/overlays/l00_multiplayer_menu/L00_005424F8.c match func_L00_005429F8 level_00:.text:005429F8:24 100.00 func_L00_00542FC0 src/overlays/l00_multiplayer_menu/L00_00542FC0.c match func_L00_005434C0 level_00:.text:005434C0:24 100.00 func_L00_00543218 src/overlays/l00_multiplayer_menu/L00_00543218.c match func_L00_00543718 level_00:.text:00543718:24 100.00 +func_L00_00546148 src/pal/overlays/l00_multiplayer_menu/L00_00546148.c match func_L00_00546148 level_00:.text:00546148:104 100.00 func_L00_005461D8 src/overlays/l00_multiplayer_menu/L00_005461D8.c match func_L00_005466D8 level_00:.text:005466D8:440 100.00 func_L00_00546390 src/overlays/l00_multiplayer_menu/L00_00546390.c match func_L00_00546890 level_00:.text:00546890:28 100.00 func_L00_005463F8 src/overlays/l00_multiplayer_menu/L00_005463F8.c match func_L00_005468F8 level_00:.text:005468F8:92 100.00 @@ -5057,6 +5096,7 @@ func_L00_00559B50 src/overlays/l00_multiplayer_menu/L00_00559B50.c match func_L0 func_L00_0055AB58 src/overlays/l00_multiplayer_menu/L00_0055AB58.c match func_L00_0055B058 level_00:.text:0055B058:64 100.00 func_L00_0055BD50 src/overlays/l00_multiplayer_menu/L00_0055BD50.c match func_L00_0055C250 level_00:.text:0055C250:24 100.00 func_L00_0055BD68 src/overlays/l00_multiplayer_menu/L00_0055BD68.c match func_L00_0055C268 level_00:.text:0055C268:24 100.00 +func_L00_00565650 src/pal/overlays/l00_multiplayer_menu/L00_00565650.c match func_L00_00565650 level_00:.text:00565650:104 100.00 func_L00_00566230 src/overlays/shared/L00_00566230.c match func_L00_00566730 level_00:.text:00566730:28 100.00 func_L00_00566250 src/overlays/shared/L00_00566250.c match func_L00_00566750 level_00:.text:00566750:28 100.00 func_L00_00566270 src/overlays/shared/L00_00566270.c match func_L00_00566770 level_00:.text:00566770:28 100.00 @@ -5065,6 +5105,7 @@ func_L00_005662C0 src/overlays/shared/L00_005662C0.c match func_L00_005667C0 lev func_L00_00566370 src/overlays/l00_multiplayer_menu/L00_00566370.c match func_L00_00566870 level_00:.text:00566870:28 100.00 func_L00_00566488 src/overlays/shared/L00_00566488.c match func_L00_00566988 level_00:.text:00566988:28 100.00 func_L00_005666A0 src/overlays/l00_multiplayer_menu/L00_005666A0.c match func_L00_00566BA0 level_00:.text:00566BA0:516 100.00 +func_L00_005666C8 src/pal/overlays/l00_multiplayer_menu/L00_005666C8.c match func_L00_005666C8 level_00:.text:005666C8:104 100.00 func_L00_005668D8 src/overlays/l00_multiplayer_menu/L00_005668D8.c match func_L00_00566DD8 level_00:.text:00566DD8:56 100.00 func_L00_00566910 src/overlays/l00_multiplayer_menu/L00_00566910.c match func_L00_00566E10 level_00:.text:00566E10:52 100.00 func_L00_005669A8 src/pal/overlays/l00_multiplayer_menu/L00_005669A8.c match func_L00_005669A8 level_00:.text:005669A8:40 100.00 @@ -5119,6 +5160,7 @@ func_L00_00591428 src/overlays/shared/L00_00591410.c match func_L00_00591E18 lev func_L00_00591AA8 src/pal/overlays/shared/L00_00591AA8.c match func_L00_00591AA8 level_00:.text:00591AA8:164 100.00 func_L00_00592378 src/overlays/shared/L00_00592378.c match func_L00_00592D68 level_00:.text:00592D68:220 100.00 func_L00_00593EC0 src/overlays/shared/L00_00593EC0.c match func_L00_005948C0 level_00:.text:005948C0:8 100.00 +func_L00_00593EC8 src/overlays/shared/L00_00593EC8.c match func_L00_005948C8 level_00:.text:005948C8:264 100.00 func_L00_00593FD0 src/overlays/shared/L00_00593FD0.c differs - - 0.00 func_L00_005949D0 src/pal/overlays/shared/L00_005949D0.c match func_L00_005949D0 level_00:.text:005949D0:244 100.00 func_L00_005956D0 src/overlays/shared/L00_005956D0.c match func_L00_005960F8 level_00:.text:005960F8:76 100.00 @@ -5450,6 +5492,7 @@ func_L00_0062A8B8 src/overlays/shared/L00_0062A8B8.c match func_L00_0062DAE0 lev func_L00_0062A8C0 src/overlays/shared/L00_0062A8C0.c match func_L00_0062DAE8 level_00:.text:0062DAE8:8 100.00 func_L00_0062A8C8 src/overlays/shared/L00_0062A8C8.c match func_L00_0062DAF0 level_00:.text:0062DAF0:92 100.00 func_L00_0062B4A8 src/overlays/shared/L00_0062B4A8.c match func_L00_0062E6D0 level_00:.text:0062E6D0:336 100.00 +func_L00_0062B4F0 src/pal/overlays/shared/L00_0062B4F0.c match func_L00_0062B4F0 level_00:.text:0062B4F0:376 100.00 func_L00_0062BF90 src/pal/overlays/shared/L00_0062BF90.c match func_L00_0062BF90 level_00:.text:0062BF90:72 100.00 func_L00_0062C7C8 src/overlays/shared/L00_0062C7C8.c match func_L00_0062FA08 level_00:.text:0062FA08:88 100.00 func_L00_0062C820 src/overlays/shared/L00_0062C820.c match func_L00_0062FA60 level_00:.text:0062FA60:72 100.00 @@ -5528,6 +5571,7 @@ func_L00_006437A0 src/overlays/shared/L00_006437A0.c match func_L00_00646A68 lev func_L00_00644F38 src/overlays/shared/L00_00644F38.c match func_L00_00648200 level_00:.text:00648200:108 100.00 func_L00_006452E8 src/overlays/shared/L00_006452E8.c match func_L00_006485B0 level_00:.text:006485B0:336 100.00 func_L00_00645760 src/overlays/shared/L00_00645760.c match func_L00_00648A28 level_00:.text:00648A28:156 100.00 +func_L00_00647FE0 src/pal/overlays/shared/L00_00647FE0.c match func_L00_00647FE0 level_00:.text:00647FE0:476 100.00 func_L00_00648E38 src/overlays/shared/L00_00648E38.c match func_L00_0064C128 level_00:.text:0064C128:64 100.00 func_L00_00648E78 src/overlays/shared/L00_00648E78.c match func_L00_0064C168 level_00:.text:0064C168:108 100.00 func_L00_00649370 src/overlays/shared/L00_00649370.c match func_L00_0064C660 level_00:.text:0064C660:336 100.00 @@ -5540,6 +5584,7 @@ func_L00_0064D4F0 src/overlays/shared/L00_0064D4F0.c match func_L00_006507E0 lev func_L00_0064EFA8 src/overlays/shared/L00_0064EFA8.c match func_L00_00652298 level_00:.text:00652298:64 100.00 func_L00_0064F4F0 src/overlays/shared/L00_0064F4F0.c match func_L00_006527E0 level_00:.text:006527E0:56 100.00 func_L00_00650148 src/overlays/shared/L00_00650148.c match func_L00_00653438 level_00:.text:00653438:92 100.00 +func_L00_00650F58 src/pal/overlays/shared/L00_00650F58.c match func_L00_00650F58 level_00:.text:00650F58:476 100.00 func_L00_00651088 src/overlays/shared/L00_00651088.c match func_L00_00654378 level_00:.text:00654378:56 100.00 func_L00_00651348 src/overlays/shared/L00_00651348.c match func_L00_00654638 level_00:.text:00654638:28 100.00 func_L00_00651378 src/overlays/shared/L00_00651378.c match func_L00_00654668 level_00:.text:00654668:336 100.00 @@ -5896,6 +5941,7 @@ func_L00_006A3B48 src/overlays/shared/L00_006A3B48.c match func_L00_006A7328 lev func_L00_006A3BB0 src/overlays/shared/L00_006A3BB0.c match func_L00_006A7390 level_00:.text:006A7390:232 100.00 func_L00_006A3CF0 src/overlays/shared/L00_006A3CF0.c match func_L00_006A74D0 level_00:.text:006A74D0:84 100.00 func_L00_006A3DD8 src/overlays/shared/L00_006A3DD8.c match func_L00_006A75B8 level_00:.text:006A75B8:192 100.00 +func_L00_006A3E80 src/pal/overlays/shared/L00_006A3E80.c match func_L00_006A3E80 level_00:.text:006A3E80:376 100.00 func_L00_006A3F40 src/overlays/shared/L00_006A3F40.c match func_L00_006A7720 level_00:.text:006A7720:192 100.00 func_L00_006A4000 src/overlays/shared/L00_006A4000.c match func_L00_006A77E0 level_00:.text:006A77E0:112 100.00 func_L00_006A4070 src/overlays/shared/L00_006A4070.c match func_L00_006A7850 level_00:.text:006A7850:104 100.00 @@ -5980,6 +6026,7 @@ func_L00_006BA7F0 src/pal/overlays/shared/L00_006BA7F0.c match func_L00_006BA7F0 func_L00_006BB188 src/overlays/shared/L00_006BB188.c differs - - 0.00 func_L00_006BB798 src/pal/overlays/shared/L00_006BB798.c match func_L00_006BB798 level_00:.text:006BB798:280 100.00 func_L00_006BD738 src/overlays/shared/L00_006BD738.c match func_L00_006C1070 level_00:.text:006C1070:172 100.00 +func_L00_006BEA78 src/pal/overlays/shared/L00_006BEA78.c match func_L00_006BEA78 level_00:.text:006BEA78:800 100.00 func_L00_006BEC80 src/overlays/shared/L00_006BEC80.c match func_L00_006C2610 level_00:.text:006C2610:32 100.00 func_L00_006C2808 src/overlays/shared/L00_006C2808.c match func_L00_006C6198 level_00:.text:006C6198:204 100.00 func_L00_006C69F0 src/overlays/shared/L00_006C69F0.c match func_L00_006CA3C0 level_00:.text:006CA3C0:180 100.00 @@ -6121,6 +6168,7 @@ func_L00_0070A5F8 src/overlays/shared/L00_0070A5F8.c match func_L00_0070E3E0 lev func_L00_0070A660 src/overlays/shared/L00_0070A660.c match func_L00_0070E448 level_00:.text:0070E448:8 100.00 func_L00_0070A808 src/overlays/l00_multiplayer_menu/L00_0070A808.c match func_L00_0070E5E8 level_00:.text:0070E5E8:40 100.00 func_L00_0070AC80 src/overlays/l00_multiplayer_menu/L00_0070AC80.c match func_L00_0070EA60 level_00:.text:0070EA60:200 100.00 +func_L00_0070B400 src/overlays/l00_multiplayer_menu/L00_0070B400.c match func_L00_0070F220 level_00:.text:0070F220:256 100.00 func_L00_0070B500 src/overlays/shared/L00_0070B500.c match func_L00_0070F320 level_00:.text:0070F320:8 100.00 func_L00_0070B508 src/overlays/l00_multiplayer_menu/L00_0070B508.c match func_L00_0070F328 level_00:.text:0070F328:44 100.00 func_L00_0070B538 src/overlays/shared/L00_0070B538.c match func_L00_0070F358 level_00:.text:0070F358:8 100.00 @@ -6364,7 +6412,7 @@ func_L00_007149E8 src/overlays/l00_multiplayer_menu/L00_007149E8.c match func_L0 func_L00_00714A08 src/overlays/l00_multiplayer_menu/L00_00714A08.c match func_L00_00718850 level_00:.text:00718850:76 100.00 func_L00_00714A58 src/overlays/l00_multiplayer_menu/L00_00714A58.c match func_L00_007188A0 level_00:.text:007188A0:40 100.00 func_L00_00714A80 src/overlays/l00_multiplayer_menu/L00_00714A80.c match func_L00_007188C8 level_00:.text:007188C8:88 100.00 -func_L00_00714AD8 src/pal/overlays/l00_multiplayer_menu/L00_00714AD8.c match func_L00_00714AD8 level_00:.text:00714AD8:76 100.00 +func_L00_00714AD8 src/overlays/l00_multiplayer_menu/L00_00714AD8.c match func_L00_00718850 level_00:.text:00718850:76 100.00 func_L00_00714B98 src/overlays/l00_multiplayer_menu/L00_00714B98.c match func_L00_007189E0 level_00:.text:007189E0:72 100.00 func_L00_00714BE0 src/overlays/shared/L00_00714BE0.c match func_L00_00718A28 level_00:.text:00718A28:8 100.00 func_L00_00714DD0 src/overlays/shared/L00_00714DD0.c match func_L00_00718C18 level_00:.text:00718C18:8 100.00 @@ -6436,6 +6484,7 @@ func_L00_00718458 src/pal/overlays/l00_multiplayer_menu/L00_00718458.c match fun func_L00_00718920 src/pal/overlays/l00_multiplayer_menu/L00_00718920.c match func_L00_00718920 level_00:.text:00718920:192 100.00 func_L00_00718C60 src/overlays/l00_multiplayer_menu/L00_00718C60.c match func_L00_0071CAB0 level_00:.text:0071CAB0:1508 100.00 func_L00_00718D58 src/pal/overlays/l00_multiplayer_menu/L00_00718D58.c match func_L00_00718D58 level_00:.text:00718D58:380 100.00 +func_L00_00719248 src/overlays/l00_multiplayer_menu/L00_00719248.c match func_L00_0071D098 level_00:.text:0071D098:488 100.00 func_L00_00719430 src/overlays/l00_multiplayer_menu/L00_00719430.c differs - - 0.00 func_L00_00719D28 src/overlays/l00_multiplayer_menu/L00_00719D28.c match func_L00_0071DB90 level_00:.text:0071DB90:44 100.00 func_L00_00719F68 src/overlays/l00_multiplayer_menu/L00_00719F68.c match func_L00_0071DDD0 level_00:.text:0071DDD0:112 100.00 @@ -6488,6 +6537,7 @@ func_L00_0071DF60 src/overlays/l00_multiplayer_menu/L00_0071DF60.c match func_L0 func_L00_0071E6B0 src/overlays/shared/L00_0071E6B0.c match func_L00_00722670 level_00:.text:00722670:28 100.00 func_L00_0071EA08 src/overlays/l00_multiplayer_menu/L00_0071EA08.c match func_L00_007229C8 level_00:.text:007229C8:88 100.00 func_L00_0071F430 src/overlays/l00_multiplayer_menu/L00_0071F430.c match func_L00_007233F0 level_00:.text:007233F0:40 100.00 +func_L00_0071F4F8 src/pal/overlays/l00_multiplayer_menu/L00_0071F4F8.c match func_L00_0071F4F8 level_00:.text:0071F4F8:212 100.00 func_L00_0071F7B0 src/overlays/shared/L00_0071F7B0.c match func_L00_00723770 level_00:.text:00723770:44 100.00 func_L00_0071FCD8 src/overlays/shared/L00_0071FCD8.c match func_L00_00723C98 level_00:.text:00723C98:28 100.00 func_L00_0071FFC0 src/pal/overlays/l00_multiplayer_menu/L00_0071FFC0.c match func_L00_0071FFC0 level_00:.text:0071FFC0:120 100.00 @@ -6518,6 +6568,7 @@ func_L00_007292C0 src/pal/overlays/l00_multiplayer_menu/L00_007292C0.c match fun func_L00_007292F8 src/pal/overlays/l00_multiplayer_menu/L00_007292F8.c match func_L00_007292F8 level_00:.text:007292F8:456 100.00 func_L00_007295D0 src/overlays/l00_multiplayer_menu/L00_007295D0.c match func_L00_0072D848 level_00:.text:0072D848:20 100.00 func_L00_007295E8 src/overlays/l00_multiplayer_menu/L00_007295E8.c match func_L00_0072D860 level_00:.text:0072D860:20 100.00 +func_L00_00729600 src/overlays/l00_multiplayer_menu/L00_00729600.c match func_L00_0072D878 level_00:.text:0072D878:536 100.00 func_L00_00729B70 src/overlays/l00_multiplayer_menu/L00_00729B70.c match func_L00_0072DDE8 level_00:.text:0072DDE8:40 100.00 func_L00_00729D38 src/overlays/l00_multiplayer_menu/L00_00729D38.c match func_L00_0072DFB0 level_00:.text:0072DFB0:156 100.00 func_L00_0072A108 src/overlays/shared/L00_0072A108.c match func_L00_0072E388 level_00:.text:0072E388:28 100.00 @@ -6588,6 +6639,7 @@ func_L00_00744510 src/overlays/shared/L00_00744510.c match func_L00_00748FF8 lev func_L00_00745338 src/overlays/l00_multiplayer_menu/L00_00745338.c match func_L00_00749E20 level_00:.text:00749E20:40 100.00 func_L00_007457B0 src/overlays/l00_multiplayer_menu/L00_007457B0.c match func_L00_0074A298 level_00:.text:0074A298:60 100.00 func_L00_007458A8 src/overlays/shared/L00_007458A8.c match func_L00_0074A390 level_00:.text:0074A390:28 100.00 +func_L00_007458C8 src/overlays/l00_multiplayer_menu/L00_007458C8.c match func_L00_0074A3B0 level_00:.text:0074A3B0:256 100.00 func_L00_00747118 src/overlays/l00_multiplayer_menu/L00_00747118.c match func_L00_0074BC00 level_00:.text:0074BC00:40 100.00 func_L00_00747398 src/overlays/l00_multiplayer_menu/L00_00747398.c match func_L00_0074BF48 level_00:.text:0074BF48:52 100.00 func_L00_00747860 src/overlays/l00_multiplayer_menu/L00_00747860.c match func_L00_0074C410 level_00:.text:0074C410:48 100.00 @@ -6629,6 +6681,7 @@ func_L00_007542C0 src/overlays/shared/L00_007542C0.c match func_L00_007590F0 lev func_L00_00754440 src/overlays/l00_multiplayer_menu/L00_00754440.c match func_L00_00759270 level_00:.text:00759270:28 100.00 func_L00_00754DA0 src/overlays/l00_multiplayer_menu/L00_00753C68.c match func_L00_00759C00 level_00:.text:00759C00:112 100.00 func_L00_00754E10 src/overlays/shared/L00_00754E10.c match func_L00_00759C70 level_00:.text:00759C70:8 100.00 +func_L00_00755A20 src/overlays/l00_multiplayer_menu/L00_00755A20.c match func_L00_0075A8B8 level_00:.text:0075A8B8:48 100.00 func_L00_00755AB0 src/overlays/l00_multiplayer_menu/L00_00755AB0.c match func_L00_0075A948 level_00:.text:0075A948:40 100.00 func_L00_007568E8 src/pal/overlays/l00_multiplayer_menu/L00_007568E8.c match func_L00_007568E8 level_00:.text:007568E8:44 100.00 func_L00_00756A48 src/overlays/l00_multiplayer_menu/L00_00756A48.c match func_L00_0075B8C0 level_00:.text:0075B8C0:40 100.00 @@ -6639,6 +6692,7 @@ func_L00_00757660 src/overlays/l00_multiplayer_menu/L00_00757660.c match func_L0 func_L00_00758C10 src/overlays/l00_multiplayer_menu/L00_00758C10.c match func_L00_0075DB08 level_00:.text:0075DB08:40 100.00 func_L00_00759E08 src/overlays/l00_multiplayer_menu/L00_00759E08.c match func_L00_0075EDA8 level_00:.text:0075EDA8:64 100.00 func_L00_0075A8B8 src/pal/overlays/l00_multiplayer_menu/L00_0075A8B8.c match func_L00_0075A8B8 level_00:.text:0075A8B8:48 100.00 +func_L00_0075C8C0 src/overlays/l00_multiplayer_menu/L00_0075C8C0.c match func_L00_00761860 level_00:.text:00761860:56 100.00 func_L00_0075CA50 src/overlays/l00_multiplayer_menu/L00_0075CA50.c match func_L00_007619F0 level_00:.text:007619F0:72 100.00 func_L00_0075D0E0 src/overlays/l00_multiplayer_menu/L00_0075D0E0.c match func_L00_00762080 level_00:.text:00762080:48 100.00 func_L00_0075DC10 src/overlays/l00_multiplayer_menu/L00_0075DC10.c match func_L00_00762BB0 level_00:.text:00762BB0:40 100.00 @@ -6650,6 +6704,7 @@ func_L00_007600C0 src/overlays/l00_multiplayer_menu/L00_007600C0.c match func_L0 func_L00_00761568 src/overlays/l00_multiplayer_menu/L00_00761568.c match func_L00_00766578 level_00:.text:00766578:28 100.00 func_L00_00761860 src/pal/overlays/l00_multiplayer_menu/L00_00761860.c match func_L00_00761860 level_00:.text:00761860:56 100.00 func_L00_00761C88 src/pal/overlays/l00_multiplayer_menu/L00_00713A78.c match func_L00_00761C88 level_00:.text:00761C88:328 100.00 +func_L00_00762030 src/overlays/l00_multiplayer_menu/L00_00762030.c match func_L00_00767040 level_00:.text:00767040:264 100.00 func_L00_00762570 src/overlays/l00_multiplayer_menu/L00_00762570.c match func_L00_00767580 level_00:.text:00767580:40 100.00 func_L00_00762780 src/overlays/l00_multiplayer_menu/L00_00762780.c match func_L00_00767790 level_00:.text:00767790:52 100.00 func_L00_007629C0 src/overlays/l00_multiplayer_menu/L00_007629C0.c match func_L00_007679D0 level_00:.text:007679D0:28 100.00 @@ -6827,6 +6882,7 @@ func_L00_00775E10 src/overlays/l00_multiplayer_menu/L00_00775E10.c match func_L0 func_L00_00776038 src/pal/overlays/l00_multiplayer_menu/L00_00776038.c match func_L00_00776038 level_00:.text:00776038:156 100.00 func_L00_007763A8 src/overlays/l00_multiplayer_menu/L00_007763A8.c match func_L00_0077B780 level_00:.text:0077B780:12 100.00 func_L00_00776680 src/overlays/l00_multiplayer_menu/L00_00776680.c match func_L00_0077BA58 level_00:.text:0077BA58:20 100.00 +func_L00_00776698 src/overlays/l00_multiplayer_menu/L00_00776698.c match func_L00_0077BA70 level_00:.text:0077BA70:80 100.00 func_L00_00776A58 src/pal/overlays/l00_multiplayer_menu/L00_00776A58.c match func_L00_00776A58 level_00:.text:00776A58:60 100.00 func_L00_00776DE8 src/pal/overlays/l00_multiplayer_menu/L00_00776DE8.c match func_L00_00776DE8 level_00:.text:00776DE8:1076 100.00 func_L00_00776E88 src/overlays/l00_multiplayer_menu/L00_00776E88.c match func_L00_0077C260 level_00:.text:0077C260:88 100.00 @@ -7123,6 +7179,7 @@ func_L01_0045C658 src/pal/overlays/shared/L01_0045C658.c match func_L01_0045C658 func_L01_0045D140 src/pal/overlays/shared/L01_0045D140.c match func_L01_0045D140 level_01:.text:0045D140:124 100.00 func_L01_0045D240 src/pal/overlays/shared/L01_0045D240.c match func_L01_0045D240 level_01:.text:0045D240:76 100.00 func_L01_0045D4E0 src/overlays/shared/L01_0045D4E0.c match func_L01_0045E7C0 level_01:.text:0045E7C0:12 100.00 +func_L01_0045D4F0 src/overlays/shared/L01_0045D4F0.c match func_L01_0045E7D0 level_01:.text:0045E7D0:56 100.00 func_L01_0045D648 src/overlays/shared/L01_0045D648.c match func_L01_0045E928 level_01:.text:0045E928:16 100.00 func_L01_0045E510 src/overlays/shared/L01_0045E510.c match func_L01_0045F7F8 level_01:.text:0045F7F8:124 100.00 func_L01_0045E690 src/overlays/shared/L01_0045E690.c match func_L01_0045F978 level_01:.text:0045F978:132 100.00 @@ -7176,6 +7233,7 @@ func_L01_00469AF8 src/overlays/shared/L01_00469AF8.c differs - - 0.00 func_L01_00469BA0 src/pal/overlays/shared/L01_00469BA0.c match func_L01_00469BA0 level_01:.text:00469BA0:640 100.00 func_L01_00469C78 src/overlays/shared/L01_00469C78.c match func_L01_0046B060 level_01:.text:0046B060:12 100.00 func_L01_00469EF8 src/overlays/shared/L01_00469EF8.c match func_L01_0046B2E0 level_01:.text:0046B2E0:16 100.00 +func_L01_0046A2F0 src/pal/overlays/shared/L01_0046A2F0.c match func_L01_0046A2F0 level_01:.text:0046A2F0:44 100.00 func_L01_0046AEE0 src/pal/overlays/shared/L01_0046AEE0.c match func_L01_0046AEE0 level_01:.text:0046AEE0:248 100.00 func_L01_0046AF50 src/overlays/shared/L01_0046AF50.c match func_L01_0046C340 level_01:.text:0046C340:60 100.00 func_L01_0046B070 src/pal/overlays/shared/L01_0046B070.c match func_L01_0046B070 level_01:.text:0046B070:56 100.00 @@ -7259,6 +7317,7 @@ func_L01_0048F378 src/overlays/shared/L01_0048F378.c match func_L01_00490A78 lev func_L01_0048F3C8 src/overlays/shared/L01_0048F3C8.c match func_L01_00490AC8 level_01:.text:00490AC8:32 100.00 func_L01_0048F610 src/pal/overlays/shared/L01_0048F610.c match func_L01_0048F610 level_01:.text:0048F610:388 100.00 func_L01_0048F630 src/overlays/shared/L01_0048F630.c match func_L01_00490D58 level_01:.text:00490D58:76 100.00 +func_L01_0048F9F8 src/overlays/shared/L01_0048F9F8.c match func_L01_00491120 level_01:.text:00491120:176 100.00 func_L01_0048FAA8 src/overlays/shared/L01_0048FAA8.c match func_L01_004911D0 level_01:.text:004911D0:16 100.00 func_L01_0048FAB8 src/overlays/shared/L01_0048FAB8.c match func_L01_004911E0 level_01:.text:004911E0:60 100.00 func_L01_0048FB00 src/overlays/shared/L01_0048FB00.c match func_L01_00491228 level_01:.text:00491228:32 100.00 @@ -7383,6 +7442,7 @@ func_L01_004AF160 src/overlays/l01_dreadzone_station/L01_004AF160.c match func_L func_L01_004AF1D0 src/overlays/shared/L01_004AF1D0.c match func_L01_004B0CC0 level_01:.text:004B0CC0:32 100.00 func_L01_004AF6E0 src/pal/overlays/l01_dreadzone_station/L01_004AF6E0.c match func_L01_004AF6E0 level_01:.text:004AF6E0:56 100.00 func_L01_004AF8B8 src/overlays/shared/L01_004AF8B8.c match func_L01_004B13A8 level_01:.text:004B13A8:32 100.00 +func_L01_004AFD28 src/overlays/shared/L01_004AFD28.c differs - - 0.00 func_L01_004B0068 src/pal/overlays/l01_dreadzone_station/L01_004B0068.c match func_L01_004B0068 level_01:.text:004B0068:128 100.00 func_L01_004B00E8 src/pal/overlays/l01_dreadzone_station/L01_004B00E8.c match func_L01_004B00E8 level_01:.text:004B00E8:128 100.00 func_L01_004B0180 src/overlays/shared/L01_004B0180.c match func_L01_004B1C70 level_01:.text:004B1C70:64 100.00 @@ -7396,6 +7456,7 @@ func_L01_004B13F8 src/overlays/shared/L01_004B13F8.c match func_L01_004B2F28 lev func_L01_004B1818 src/pal/overlays/shared/L01_004B1818.c match func_L01_004B1818 level_01:.text:004B1818:144 100.00 func_L01_004B2AD8 src/overlays/shared/L01_004B2AD8.c match func_L01_004B4608 level_01:.text:004B4608:80 100.00 func_L01_004B2CC0 src/overlays/shared/L01_004B2CC0.c match func_L01_004B47F0 level_01:.text:004B47F0:128 100.00 +func_L01_004B2DC8 src/overlays/shared/L01_004B2DC8.c match func_L01_004B48F8 level_01:.text:004B48F8:136 100.00 func_L01_004B2E50 src/overlays/shared/L01_004B2E50.c match func_L01_004B4980 level_01:.text:004B4980:12 100.00 func_L01_004B3708 src/overlays/shared/L01_004B3708.c match func_L01_004B5238 level_01:.text:004B5238:112 100.00 func_L01_004B3C00 src/overlays/shared/L01_004B3C00.c match func_L01_004B5730 level_01:.text:004B5730:80 100.00 @@ -7631,6 +7692,7 @@ func_L01_004EB1EC src/overlays/shared/L01_004EB1EC.c match func_L01_004ED1B4 lev func_L01_004EB3A8 src/overlays/shared/L01_004EB3A8.c match func_L01_004ED370 level_01:.text:004ED370:12 100.00 func_L01_004EB3B8 src/overlays/shared/L01_004EB3B8.c match func_L01_004ED380 level_01:.text:004ED380:80 100.00 func_L01_004EB408 src/overlays/shared/L01_004EB408.c match func_L01_004ED3D0 level_01:.text:004ED3D0:196 100.00 +func_L01_004EBC88 src/overlays/shared/L01_004EBC88.c match func_L01_004EDC50 level_01:.text:004EDC50:184 100.00 func_L01_004EBD40 src/overlays/shared/L01_004EBD40.c match func_L01_004EDD08 level_01:.text:004EDD08:48 100.00 func_L01_004ED138 src/overlays/shared/L01_004ED138.c match func_L01_004EF100 level_01:.text:004EF100:100 100.00 func_L01_004ED1A0 src/overlays/shared/L01_004ED1A0.c match func_L01_004EF168 level_01:.text:004EF168:12 100.00 @@ -7762,6 +7824,7 @@ func_L01_0052EA10 src/overlays/l01_dreadzone_station/L01_0052EA10.c match func_L func_L01_00530208 src/overlays/shared/L01_00530208.c match func_L01_00532718 level_01:.text:00532718:76 100.00 func_L01_005309D0 src/pal/overlays/shared/L01_005309D0.c match func_L01_005309D0 level_01:.text:005309D0:20 100.00 func_L01_005320C8 src/pal/overlays/l01_dreadzone_station/L01_005320C8.c match func_L01_005320C8 level_01:.text:005320C8:124 100.00 +func_L01_005334B0 src/overlays/shared/L01_005334B0.c differs - - 0.00 func_L01_005337D0 src/overlays/shared/L01_005337D0.c match func_L01_00535D10 level_01:.text:00535D10:60 100.00 func_L01_005359F0 src/pal/overlays/l01_dreadzone_station/L01_005359F0.c match func_L01_005359F0 level_01:.text:005359F0:624 100.00 func_L01_005487C0 src/overlays/shared/L01_005487C0.c match func_L01_0054B0F8 level_01:.text:0054B0F8:28 100.00 @@ -7838,6 +7901,7 @@ func_L01_00584568 src/overlays/shared/L01_00584568.c match func_L01_00588828 lev func_L01_00585B78 src/overlays/shared/L01_00585B78.c match func_L01_00589E38 level_01:.text:00589E38:52 100.00 func_L01_00585C00 src/overlays/shared/L01_00585C00.c match func_L01_00589EC0 level_01:.text:00589EC0:160 100.00 func_L01_00585CA0 src/overlays/shared/L01_00585CA0.c match func_L01_00589F60 level_01:.text:00589F60:160 100.00 +func_L01_00585DB0 src/overlays/shared/L01_00585DB0.c match func_L01_0058A070 level_01:.text:0058A070:48 100.00 func_L01_00586138 src/overlays/shared/L01_00586138.c match func_L01_0058A3F8 level_01:.text:0058A3F8:40 100.00 func_L01_00586160 src/overlays/shared/L01_00586160.c match func_L01_0058A420 level_01:.text:0058A420:128 100.00 func_L01_005864A0 src/overlays/shared/L01_005864A0.c match func_L01_0058A760 level_01:.text:0058A760:40 100.00 @@ -7979,6 +8043,7 @@ func_L01_006B3D48 src/overlays/shared/L01_006B3D48.c match func_L01_006B9310 lev func_L01_006B3DA0 src/overlays/shared/L01_006B3DA0.c match func_L01_006B9368 level_01:.text:006B9368:164 100.00 func_L01_006B4FC0 src/overlays/shared/L01_006B4FC0.c match func_L01_006BA588 level_01:.text:006BA588:92 100.00 func_L01_006B5258 src/overlays/shared/L01_006B5258.c match func_L01_006BA820 level_01:.text:006BA820:24 100.00 +func_L01_006B8CC0 src/pal/overlays/shared/L01_006B8CC0.c match func_L01_006B8CC0 level_01:.text:006B8CC0:584 100.00 func_L01_006B9310 src/pal/overlays/shared/L01_006B9310.c match func_L01_006B9310 level_01:.text:006B9310:84 100.00 func_L01_006BC990 src/overlays/l01_dreadzone_station/L01_006BC990.c match func_L01_006C20B8 level_01:.text:006C20B8:8 100.00 func_L01_006C1020 src/overlays/shared/L01_006C1020.c match func_L01_006C6768 level_01:.text:006C6768:24 100.00 @@ -8127,6 +8192,7 @@ func_L05_004DE4B0 src/pal/overlays/shared/L05_004DE4B0.c match func_L05_004DE4B0 func_L05_004DF4D0 src/overlays/shared/L05_004DF4D0.c match func_L05_004E1060 level_05:.text:004E1060:44 100.00 func_L05_004DF500 src/overlays/shared/L05_004DF500.c match func_L05_004E1090 level_05:.text:004E1090:48 100.00 func_L05_004DF530 src/overlays/shared/L05_004DF530.c match func_L05_004E10C0 level_05:.text:004E10C0:76 100.00 +func_L05_004DF580 src/overlays/shared/L05_004DF580.c match func_L05_004E1110 level_05:.text:004E1110:88 100.00 func_L05_004DF5D8 src/overlays/shared/L05_004DF5D8.c match func_L05_004E1168 level_05:.text:004E1168:76 100.00 func_L05_004DF628 src/overlays/shared/L05_004DF628.c match func_L05_004E11B8 level_05:.text:004E11B8:116 100.00 func_L05_004DFC28 src/overlays/shared/L05_004DFC28.c match func_L05_004E17E0 level_05:.text:004E17E0:12 100.00 @@ -8149,6 +8215,7 @@ func_L05_0050C5C0 src/pal/overlays/l05_dark_cathedral/L05_0050C5C0.c match func_ func_L06_00401610 src/pal/overlays/l06_temple_of_shaar/L06_00401610.c match func_L06_00401610 level_06:.text:00401610:536 100.00 func_L06_004016F0 src/overlays/shared/L06_004016F0.c match func_L06_00401EE0 level_06:.text:00401EE0:40 100.00 func_L06_00401718 src/overlays/shared/L06_00401718.c match func_L06_00401F08 level_06:.text:00401F08:48 100.00 +func_L06_00416C20 src/overlays/shared/L06_00416C20.c match func_L06_00417510 level_06:.text:00417510:256 100.00 func_L06_004999C0 src/overlays/shared/L06_004999C0.c match func_L06_0049AE90 level_06:.text:0049AE90:96 100.00 func_L06_0049AFC8 src/overlays/shared/L06_0049AFC8.c match func_L06_0049C4E8 level_06:.text:0049C4E8:32 100.00 func_L06_0049B380 src/overlays/shared/L06_0049B380.c match func_L06_0049C8A0 level_06:.text:0049C8A0:52 100.00 @@ -8172,9 +8239,11 @@ func_L06_004C8DC0 src/overlays/shared/L06_004C8DC0.c match func_L06_004CA5F8 lev func_L06_004C97B0 src/pal/overlays/shared/L06_004C97B0.c match func_L06_004C97B0 level_06:.text:004C97B0:240 100.00 func_L06_004C9BC0 src/pal/overlays/shared/L06_004C9BC0.c match func_L06_004C9BC0 level_06:.text:004C9BC0:84 100.00 func_L06_004C9C68 src/pal/overlays/shared/L06_004C9C68.c match func_L06_004C9C68 level_06:.text:004C9C68:20 100.00 +func_L06_004DE3B8 src/overlays/shared/L06_004DE3B8.c differs - - 0.00 func_L06_004DFE80 src/pal/overlays/l06_temple_of_shaar/L06_004DFE80.c match func_L06_004DFE80 level_06:.text:004DFE80:616 100.00 func_L06_00542FD8 src/pal/overlays/shared/L06_00542FD8.c match func_L06_00542FD8 level_06:.text:00542FD8:128 100.00 func_L06_00565118 src/overlays/l06_temple_of_shaar/L06_00565118.c match func_L06_00568C30 level_06:.text:00568C30:84 100.00 +func_L06_00565628 src/overlays/shared/L06_00565628.c match func_L06_00569140 level_06:.text:00569140:112 100.00 func_L06_00569140 src/pal/overlays/l06_temple_of_shaar/L06_00569140.c match func_L06_00569140 level_06:.text:00569140:112 100.00 func_L07_003CAFE8 src/overlays/shared/L07_003CAFE8.c match func_L07_003CB360 level_07:.text:003CB360:136 100.00 func_L07_0049A370 src/overlays/l07_valix_lighthouse/L07_0049A370.c match func_L07_0049B530 level_07:.text:0049B530:44 100.00 @@ -8208,6 +8277,7 @@ func_L10_004D53A8 src/overlays/l10_torval_ruins/L10_004D53A8.c match func_L10_00 func_L10_004D53C0 src/overlays/shared/L10_004D53C0.c match func_L10_004D6DF8 level_10:.text:004D6DF8:60 100.00 func_L10_004DCCE8 src/overlays/l10_torval_ruins/L10_004DCCE8.c match func_L10_004DE900 level_10:.text:004DE900:16 100.00 func_L10_004DE870 src/pal/overlays/l10_torval_ruins/L10_004DE870.c match func_L10_004DE870 level_10:.text:004DE870:140 100.00 +func_L11_003FEB88 src/overlays/shared/L11_003FEB88.c match func_L11_003FF4B8 level_11:.text:003FF4B8:64 100.00 func_L11_003FF4B8 src/pal/overlays/l11_tempus_station/L11_003FF4B8.c match func_L11_003FF4B8 level_11:.text:003FF4B8:64 100.00 func_L11_00408458 src/overlays/shared/L11_00408458.c differs - - 0.00 func_L11_00408DE8 src/pal/overlays/l11_tempus_station/L11_00408DE8.c match func_L11_00408DE8 level_11:.text:00408DE8:108 100.00 @@ -8361,6 +8431,7 @@ func_L41_0043A428 src/overlays/l41_battledome_tower/L41_0043A428.c match func_L4 func_L41_0043A450 src/overlays/l41_battledome_tower/L41_0043A450.c match func_L41_0043B440 level_41:.text:0043B440:36 100.00 func_L41_0043A478 src/overlays/shared/L41_0043A478.c match func_L41_0043B468 level_41:.text:0043B468:300 100.00 func_L41_0043A608 src/overlays/shared/L41_0043A608.c match func_L41_0043B5F8 level_41:.text:0043B5F8:268 100.00 +func_L41_0043A858 src/overlays/shared/L41_0043A858.c match func_L41_0043B848 level_41:.text:0043B848:264 100.00 func_L41_0043B330 src/overlays/shared/L41_0043B330.c match func_L41_0043C320 level_41:.text:0043C320:132 100.00 func_L41_0043C088 src/overlays/shared/L41_0043C088.c match func_L41_0043D070 level_41:.text:0043D070:136 100.00 func_L41_00440C50 src/overlays/l41_battledome_tower/L41_00440C50.c match func_L41_00441CE0 level_41:.text:00441CE0:104 100.00 @@ -8439,6 +8510,7 @@ func_L41_00611458 src/overlays/l41_battledome_tower/L41_00611458.c match func_L4 func_L41_00611478 src/overlays/shared/L41_00611478.c match func_L41_00615B60 level_41:.text:00615B60:92 100.00 func_L41_0061D570 src/overlays/shared/L41_0061D570.c match func_L41_00621CE8 level_41:.text:00621CE8:56 100.00 func_L41_00625378 src/overlays/shared/L41_00625378.c match func_L41_00629C50 level_41:.text:00629C50:60 100.00 +func_L41_00625710 src/overlays/shared/L41_00625710.c match func_L41_00629FE8 level_41:.text:00629FE8:264 100.00 func_L41_00625818 src/overlays/shared/L41_00625818.c match func_L41_0062A0F0 level_41:.text:0062A0F0:52 100.00 func_L41_00625C70 src/overlays/shared/L41_00625C70.c match func_L41_0062A548 level_41:.text:0062A548:56 100.00 func_L41_00625CA8 src/overlays/shared/L41_00625CA8.c match func_L41_0062A580 level_41:.text:0062A580:24 100.00 @@ -8509,7 +8581,6 @@ func_004CB0F0 nonmatching/game/func_004CB0F0.c near func_004CBF90 main:.text:004 func_004CBB98 nonmatching/game/func_004CBB98.c near func_004CCA38 main:.text:004CCA38:628 98.73 func_004CCDC0 nonmatching/game/func_004CCDC0.c near func_004CDC60 main:.text:004CDC60:176 93.75 func_004D2D30 nonmatching/game/func_004D2D30.c near func_004D3C40 main:.text:004D3C40:712 94.38 -func_004D3060 nonmatching/game/func_004D3060.c near func_004D3F70 main:.text:004D3F70:232 95.69 func_004D4E80 nonmatching/game/func_004D4E80.c near func_004D5D98 main:.text:004D5D98:828 96.38 func_004D7BC0 nonmatching/game/func_004D7BC0.c near func_004D8AD8 main:.text:004D8AD8:384 92.19 func_004D9408 nonmatching/game/func_004D9408.c near func_004DA320 main:.text:004DA320:236 97.46 @@ -8540,7 +8611,6 @@ func_0053D1D0 nonmatching/game/func_0053D1D0.c near func_0053E580 main:.text:005 func_00547380 nonmatching/game/func_00547380.c near func_005488C8 main:.text:005488C8:752 97.21 func_00547AC8 nonmatching/game/func_00547AC8.c near func_00549010 main:.text:00549010:64 95.31 func_00548280 nonmatching/game/func_00548280.c near func_005497E8 main:.text:005497E8:276 94.57 -func_0054ACE8 nonmatching/game/func_0054ACE8.c near func_0054C250 main:.text:0054C250:224 92.41 func_01E9D9F8 nonmatching/net/func_01E9D9F8.c near func_01E9D9F8 main:net.text:01E9D9F8:72 86.11 func_01E9DDD0 nonmatching/net/func_01E9DDD0.c near func_01E9DDD0 main:net.text:01E9DDD0:104 87.50 func_01E9E838 nonmatching/net/func_01E9E838.c near func_01E9E838 main:net.text:01E9E838:92 90.22 @@ -8626,7 +8696,6 @@ func_L00_00769F08 nonmatching/l00_multiplayer_menu/func_L00_00769F08.c near func func_L00_0076A2C8 nonmatching/l00_multiplayer_menu/func_L00_0076A2C8.c near func_L00_0076F2D8 level_00:.text:0076F2D8:908 99.45 func_L00_0076D158 nonmatching/l00_multiplayer_menu/func_L00_0076D158.c near func_L00_00772168 level_00:.text:00772168:120 0.00 func_L00_0076F770 nonmatching/l00_multiplayer_menu/func_L00_0076F770.c near func_L00_00774780 level_00:.text:00774780:204 99.02 -func_L00_00776698 nonmatching/l00_multiplayer_menu/func_L00_00776698.c near func_L00_0077BA70 level_00:.text:0077BA70:80 38.16 func_L01_003CF4F0 nonmatching/shared/func_L01_003CF4F0.c near func_L01_003CF800 level_01:.text:003CF800:144 91.67 func_L01_00432D58 nonmatching/shared/func_L01_00432D58.c near func_L01_00433B70 level_01:.text:00433B70:524 95.99 func_L01_004330A8 nonmatching/shared/func_L01_004330A8.c near func_L01_00433EC0 level_01:.text:00433EC0:524 91.41 diff --git a/config/us/map.tsv b/config/us/map.tsv index b4d8cb76..e32c9d64 100644 --- a/config/us/map.tsv +++ b/config/us/map.tsv @@ -159,7 +159,7 @@ func_0012A688 src/core/0012A688.c match func_0012A688 main:core.text:0012A688:14 func_0012A918 src/core/0012A918.c match func_0012A918 main:core.text:0012A918:60 100.00 func_0012A970 src/core/0012A970.c match func_0012A970 main:core.text:0012A970:112 100.00 func_0012A9E8 src/core/0012A9E8.c match func_0012A9E8 main:core.text:0012A9E8:136 100.00 -func_0012AA70 src/pal/core/0012AA70.c other - - 0.00 +func_0012AA70 src/core/0012AA70.c match func_0012AA70 main:core.text:0012AA70:236 100.00 func_0012AB60 src/pal/core/0012AB60.c other - - 0.00 func_0012AF88 src/core/0012AF88.c match func_0012AF88 main:core.text:0012AF88:84 100.00 func_0012AFE0 src/core/0012AFE0.c match func_0012AFE0 main:core.text:0012AFE0:44 100.00 @@ -178,7 +178,7 @@ func_0012C5B8 src/core/0012C5B8.c match func_0012C5B8 main:core.text:0012C5B8:14 func_0012C648 src/core/0012C648.c match func_0012C648 main:core.text:0012C648:56 100.00 func_0012C680 src/core/0012C680.c match func_0012C680 main:core.text:0012C680:520 100.00 func_0012C888 src/core/0012C888.c match func_0012C888 main:core.text:0012C888:520 100.00 -func_0012CA90 src/pal/core/0012CA90.c other - - 0.00 +func_0012CA90 src/core/0012CA90.c match func_0012CA90 main:core.text:0012CA90:144 100.00 func_0012CBC0 src/core/0012CBC0.c match func_0012CBC0 main:core.text:0012CBC0:28 100.00 func_0012CBE0 src/libm/w_drem.c differs - - 0.00 func_0012CC30 src/core/0012CC30.c match func_0012CC30 main:core.text:0012CC30:340 100.00 @@ -268,14 +268,14 @@ func_00136E10 src/core/00136E10.c match func_00136E10 main:core.text:00136E10:16 func_00136F70 src/core/00136F70.c match func_00136F70 main:core.text:00136F70:228 100.00 func_001371D0 src/core/001371D0.c match func_001371D0 main:core.text:001371D0:120 100.00 func_00137258 src/core/00137258.c match func_00137258 main:core.text:00137258:344 100.00 -func_001373B0 src/pal/core/001373B0.c other - - 0.00 +func_001373B0 src/core/001373B0.c match func_001373B0 main:core.text:001373B0:152 100.00 func_00137448 src/core/00137448.c match func_00137448 main:core.text:00137448:160 100.00 func_001374E8 src/core/001374E8.c match func_001374E8 main:core.text:001374E8:108 100.00 func_00137558 src/core/00137558.c match func_00137558 main:core.text:00137558:344 100.00 func_00137998 src/core/00137998.c match func_00137998 main:core.text:00137998:536 100.00 func_00137BB0 src/core/00137BB0.c match func_00137BB0 main:core.text:00137BB0:544 100.00 -func_00137FB0 src/pal/core/00137FB0.c other - - 0.00 -func_00138100 src/pal/core/00138100.c other - - 0.00 +func_00137FB0 src/core/00137FB0.c match func_00137FB0 main:core.text:00137FB0:152 100.00 +func_00138100 src/core/00138100.c match func_00138100 main:core.text:00138100:180 100.00 func_001384E0 src/core/001384E0.c match func_001384E0 main:core.text:001384E0:12 100.00 func_001384F0 src/core/001384F0.c match func_001384F0 main:core.text:001384F0:160 100.00 func_001389D8 src/core/001389D8.c match func_001389D8 main:core.text:001389D8:200 100.00 @@ -288,7 +288,7 @@ func_00139A80 src/core/00139A80.c match func_00139A80 main:core.text:00139A80:52 func_00139AB8 src/core/00139AB8.c match func_00139AB8 main:core.text:00139AB8:40 100.00 func_00139AE0 src/core/00139AE0.c match func_00139AE0 main:core.text:00139AE0:220 100.00 func_00139DA0 src/pal/core/00139DA0.c other - - 0.00 -func_0013A0F0 src/pal/core/0013A0F0.c other - - 0.00 +func_0013A0F0 src/core/0013A0F0.c match func_0013A0F0 main:core.text:0013A0F0:88 100.00 func_0013A148 src/core/0013A148.c match func_0013A148 main:core.text:0013A148:12 100.00 func_0013A160 src/core/0013A160.c match func_0013A160 main:core.text:0013A160:296 100.00 func_0013A288 src/core/0013A288.c match func_0013A288 main:core.text:0013A288:52 100.00 @@ -309,7 +309,7 @@ func_0013B018 src/core/0013B018.c match func_0013B018 main:core.text:0013B018:10 func_0013B088 src/core/0013B088.c match func_0013B088 main:core.text:0013B088:108 100.00 func_0013B0F8 src/core/0013B0F8.c match func_0013B0F8 main:core.text:0013B0F8:108 100.00 func_0013B168 src/core/0013B168.c match func_0013B168 main:core.text:0013B168:100 100.00 -func_0013B460 src/pal/core/0013B460.c other - - 0.00 +func_0013B460 src/core/0013B460.c match func_0013B460 main:core.text:0013B460:172 100.00 func_0013B8C8 src/core/0013B8C8.c match func_0013B8C8 main:core.text:0013B8C8:344 100.00 func_0013BA20 src/core/0013BA20.c match func_0013BA20 main:core.text:0013BA20:116 100.00 func_0013BA98 src/core/0013BA98.c match func_0013BA98 main:core.text:0013BA98:120 100.00 @@ -374,7 +374,7 @@ func_00142B60 src/core/00142B60.c match func_00142B60 main:core.text:00142B60:10 func_00143040 src/core/00143040.c match func_00143040 main:core.text:00143040:144 100.00 func_00143990 src/core/00143990.c match func_00143990 main:core.text:00143990:464 100.00 func_00143B60 src/core/00143B60.c match func_00143B60 main:core.text:00143B60:1704 100.00 -func_001464C0 src/pal/core/001464C0.c other - - 0.00 +func_001464C0 src/core/001464C0.c match func_001464C0 main:core.text:001464C0:16 100.00 func_001464D0 src/core/001464D0.c match func_001464D0 main:core.text:001464D0:160 100.00 func_00146638 src/core/00146638.c match func_00146638 main:core.text:00146638:84 100.00 func_00146690 src/core/00146690.c match func_00146690 main:core.text:00146690:64 100.00 @@ -424,9 +424,9 @@ func_0014B218 src/core/0014B218.c match func_0014B218 main:core.text:0014B218:92 func_0014B808 src/core/0014B808.c match func_0014B808 main:core.text:0014B808:128 100.00 func_0014B890 src/core/0014B890.c match func_0014B890 main:core.text:0014B890:104 100.00 func_0014B8F8 src/core/0014B8F8.c match func_0014B8F8 main:core.text:0014B8F8:60 100.00 -func_0014C168 src/pal/core/0014C168.c other - - 0.00 +func_0014C168 src/core/0014C168.c match func_0014C168 main:core.text:0014C168:336 100.00 func_0014C368 src/core/0014C368.c match func_0014C368 main:core.text:0014C368:68 100.00 -func_0014CCA0 src/pal/core/0014CCA0.c other - - 0.00 +func_0014CCA0 src/core/0014CCA0.c match func_0014CCA0 main:core.text:0014CCA0:340 100.00 func_0014D010 src/core/0014D010.c match func_0014D010 main:core.text:0014D010:68 100.00 func_0014D058 src/core/0014D058.c match func_0014D058 main:core.text:0014D058:132 100.00 func_0014D1D8 src/core/0014D1D8.c match func_0014D1D8 main:core.text:0014D1D8:52 100.00 @@ -447,7 +447,7 @@ func_0014E3B8 src/pal/core/0014E3B8.c other - - 0.00 func_0014E498 src/pal/core/0014E498.c other - - 0.00 func_0014EDE0 src/core/0014EDE0.c match func_0014EDE0 main:core.text:0014EDE0:212 100.00 func_0014F378 src/core/0014F378.c match func_0014F378 main:core.text:0014F378:212 100.00 -func_001501B0 src/pal/core/001501B0.c other - - 0.00 +func_001501B0 src/core/001501B0.c match func_001501B0 main:core.text:001501B0:148 100.00 func_001502F8 src/core/001502F8.c match func_001502F8 main:core.text:001502F8:116 100.00 func_00150370 src/core/00150370.c match func_00150370 main:core.text:00150370:60 100.00 func_00150DC8 src/core/00150DC8.c match func_00150DC8 main:core.text:00150DC8:176 100.00 @@ -901,6 +901,7 @@ func_0015F3B8 src/core/0015F3B8.c match func_0015F3B8 main:core.text:0015F3B8:52 func_00160870 src/core/00160870.c match func_00160870 main:core.text:00160870:92 100.00 func_00160A70 src/core/00160A70.c match func_00160A70 main:core.text:00160A70:76 100.00 func_00160AC0 src/core/00160AC0.c match func_00160AC0 main:core.text:00160AC0:52 100.00 +func_00160FD8 src/core/00160FD8.c match func_00160FD8 main:core.text:00160FD8:320 100.00 func_00160FE8 src/pal/core/00160FE8.c other - - 0.00 func_00161118 src/core/00161118.c match func_00161118 main:core.text:00161118:12 100.00 func_00161128 src/core/00161128.c match func_00161128 main:core.text:00161128:12 100.00 @@ -979,13 +980,17 @@ func_00403468 src/game/00403468.c match func_00403468 main:.text:00403468:20 100 func_00403480 src/game/00403480.c match func_00403480 main:.text:00403480:20 100.00 func_00404C90 src/game/00404C90.c match func_00404C90 main:.text:00404C90:16,frontbin:.text:00404A10:16 100.00 func_004052B0 src/game/004052B0.c match func_004052B0 main:.text:004052B0:276,frontbin:.text:00405030:276 100.00 +func_00405D38 src/pal/game/00405D38.c other - - 0.00 func_00406680 src/game/00406680.c match func_00406680 main:.text:00406680:104,frontbin:.text:00406400:104 100.00 func_00406838 src/game/00406838.c match func_00406838 main:.text:00406838:16,frontbin:.text:004065B8:16 100.00 func_00407198 src/game/00407198.c match func_00407198 main:.text:00407198:24 100.00 +func_004071B0 src/pal/game/004071B0.c other - - 0.00 func_004071F0 src/game/004071F0.c match func_004071F0 main:.text:004071F0:48 100.00 func_004073F0 src/game/004073F0.c match func_004073F0 main:.text:004073F0:24 100.00 +func_00407408 src/pal/game/00407408.c other - - 0.00 func_00407448 src/game/00407448.c match func_00407448 main:.text:00407448:44 100.00 func_00407478 src/game/00407478.c match func_00407478 main:.text:00407478:44 100.00 +func_004074A8 src/pal/game/004074A8.c other - - 0.00 func_004074E8 src/game/004074E8.c match func_004074E8 main:.text:004074E8:12 100.00 func_00409FC8 src/game/00409FC8.c match func_00409FC8 main:.text:00409FC8:104,frontbin:.text:00409D48:104 100.00 func_0040A0E8 src/game/0040A0E8.c match func_0040A0E8 main:.text:0040A0E8:60,frontbin:.text:00409E68:60 100.00 @@ -1467,6 +1472,7 @@ func_0047F640 src/pal/game/0047F640.c other - - 0.00 func_0047F870 src/game/0047F870.c match func_0047F870 main:.text:0047F870:48,frontbin:.text:0047E630:48 100.00 func_0047FE68 src/pal/game/0047FE68.c other - - 0.00 func_00480F40 src/game/00480F40.c match func_00480F40 main:.text:00480F40:76,frontbin:.text:0047FD00:76 100.00 +func_00481100 src/game/00481100.c match func_00481100 main:.text:00481100:320,frontbin:.text:0047FEC0:320 100.00 func_00481240 src/game/00481240.c match func_00481240 main:.text:00481240:84,frontbin:.text:00480000:84 100.00 func_00481A48 src/pal/game/00481A48.c other - - 0.00 func_00482888 src/game/00482888.c match func_00482888 main:.text:00482888:40,frontbin:.text:00481648:40 100.00 @@ -1475,6 +1481,8 @@ func_00483368 src/game/00483368.c match func_00483368 main:.text:00483368:40,fro func_004844E0 src/game/004844E0.c match func_004844E0 main:.text:004844E0:184,frontbin:.text:004832A0:184 100.00 func_00484598 src/game/00484598.c match func_00484598 main:.text:00484598:28,frontbin:.text:00483358:28 100.00 func_00484670 src/game/00484670.c match func_00484670 main:.text:00484670:156,frontbin:.text:00483430:156 100.00 +func_00484F68 src/game/00484F68.c match func_00484F68 main:.text:00484F68:560,frontbin:.text:00483D28:560 100.00 +func_00484F88 src/pal/game/00484F88.c other - - 0.00 func_00485948 src/pal/game/00485948.c other - - 0.00 func_00486188 src/game/00486188.c match func_00486188 main:.text:00486188:96,frontbin:.text:00484F48:96 100.00 func_004869D8 src/game/004869D8.c match func_004869D8 main:.text:004869D8:8,frontbin:.text:00485798:8 100.00 @@ -1547,6 +1555,7 @@ func_0048CD00 src/pal/game/0048CD00.c other - - 0.00 func_0048CDE8 src/pal/game/0048CDE8.c other - - 0.00 func_0048CEF8 src/pal/game/0048CEF8.c other - - 0.00 func_0048D038 src/game/0048D038.c match func_0048D038 main:.text:0048D038:28,frontbin:.text:0048BD28:28 100.00 +func_0048D228 src/game/0048D228.c match func_0048D228 main:.text:0048D228:264,frontbin:.text:0048BF18:264 100.00 func_0048D758 src/game/0048D758.c match func_0048D758 main:.text:0048D758:796,frontbin:.text:0048C448:796 100.00 func_0048DCE0 src/pal/game/0048DCE0.c other - - 0.00 func_0048DEB0 src/game/0048DEB0.c match func_0048DEB0 main:.text:0048DEB0:16,frontbin:.text:0048CBA0:16 100.00 @@ -1747,6 +1756,7 @@ func_0049B8A8 src/game/0049B8A8.c match func_0049B8A8 main:.text:0049B8A8:52,fro func_0049B8E0 src/game/0049B8E0.c match func_0049B8E0 main:.text:0049B8E0:28,frontbin:.text:0049A5D0:28 100.00 func_0049B900 src/game/0049B900.c match func_0049B900 main:.text:0049B900:28,frontbin:.text:0049A5F0:28 100.00 func_0049B920 src/game/0049B920.c match func_0049B920 main:.text:0049B920:60,frontbin:.text:0049A610:60 100.00 +func_0049B960 src/game/0049B960.c match func_0049B960 main:.text:0049B960:336,frontbin:.text:0049A650:336 100.00 func_0049B9B0 src/pal/game/0049B9B0.c other - - 0.00 func_0049BA80 src/pal/game/0049BA80.c other - - 0.00 func_0049C158 src/game/0049C158.c match func_0049C158 main:.text:0049C158:168,frontbin:.text:0049AE48:168 100.00 @@ -1965,6 +1975,7 @@ func_004A9CE0 src/pal/game/004A9CE0.c other - - 0.00 func_004A9E50 src/game/004A9E50.c match func_004A9E50 main:.text:004A9E50:336,frontbin:.text:004A8B40:336 100.00 func_004A9FA0 src/game/004A9FA0.c match func_004A9FA0 main:.text:004A9FA0:196,frontbin:.text:004A8C90:196 100.00 func_004AA068 src/game/004AA068.c match func_004AA068 main:.text:004AA068:68,frontbin:.text:004A8D58:68 100.00 +func_004AA180 src/pal/game/004AA180.c other - - 0.00 func_004AA9E0 src/game/004AA9E0.c match func_004AA9E0 main:.text:004AA9E0:120,frontbin:.text:004A96D0:120 100.00 func_004AAA48 src/pal/game/004AAA48.c other - - 0.00 func_004AAC9C src/game/004AAC9C.c match func_004AAC9C main:.text:004AAC9C:8,frontbin:.text:004A998C:8 100.00 @@ -2012,6 +2023,7 @@ func_004AF168 src/game/004AF168.c match func_004AF168 main:.text:004AF168:36,fro func_004AF198 src/game/004AF198.c match func_004AF198 main:.text:004AF198:228,frontbin:.text:004ADE88:228 100.00 func_004AF710 src/game/004AF710.c match func_004AF710 main:.text:004AF710:28,frontbin:.text:004AE400:28 100.00 func_004AF740 src/game/004AF740.c match func_004AF740 main:.text:004AF740:336,frontbin:.text:004AE430:336 100.00 +func_004AF7A0 src/pal/game/004AF7A0.c other - - 0.00 func_004AF890 src/game/004AF890.c match func_004AF890 main:.text:004AF890:60,frontbin:.text:004AE580:60 100.00 func_004AF8D0 src/game/004AF8D0.c match func_004AF8D0 main:.text:004AF8D0:120,frontbin:.text:004AE5C0:120 100.00 func_004AF948 src/game/004AF948.c match func_004AF948 main:.text:004AF948:76,frontbin:.text:004AE638:76 100.00 @@ -2475,7 +2487,7 @@ func_004CE598 src/game/004CE598.c match func_004CE598 main:.text:004CE598:40,fro func_004CE5C0 src/game/004CE5C0.c match func_004CE5C0 main:.text:004CE5C0:104,frontbin:.text:004CD2B0:104 100.00 func_004CE628 src/game/004CE628.c match func_004CE628 main:.text:004CE628:56,frontbin:.text:004CD318:56 100.00 func_004CEAB0 src/game/004CEAB0.c match func_004CEAB0 main:.text:004CEAB0:184,frontbin:.text:004CD7A0:184 100.00 -func_004CEB68 src/pal/game/004CEB68.c other - - 0.00 +func_004CEB68 src/game/004CEB68.c match func_004CDCC8 main:.text:004CDCC8:308,frontbin:.text:004CC9B8:308 100.00 func_004CEC50 src/game/004CEC50.c match func_004CEC50 main:.text:004CEC50:288,frontbin:.text:004CD940:288 100.00 func_004CED70 src/game/004CED70.c match func_004CED70 main:.text:004CED70:64,frontbin:.text:004CDA60:64 100.00 func_004CEDA8 src/pal/game/004CEDA8.c other - - 0.00 @@ -2574,6 +2586,7 @@ func_004D2BC0 src/game/004D2BC0.c match func_004D2BC0 main:.text:004D2BC0:368,fr func_004D2E08 src/pal/game/004D2E08.c other - - 0.00 func_004D2FF8 src/game/004D2FF8.c match func_004D2FF8 main:.text:004D2FF8:28,frontbin:.text:004D1CE8:28 100.00 func_004D3030 src/game/004D3030.c match func_004D3030 main:.text:004D3030:8,frontbin:.text:004D1D20:8 100.00 +func_004D3060 src/game/004D3060.c match func_004D3060 main:.text:004D3060:232,frontbin:.text:004D1D50:232 100.00 func_004D3148 src/game/004D3148.c match func_004D3148 main:.text:004D3148:88,frontbin:.text:004D1E38:88 100.00 func_004D31A0 src/game/004D31A0.c match func_004D31A0 main:.text:004D31A0:76,frontbin:.text:004D1E90:76 100.00 func_004D31F0 src/game/004D31F0.c match func_004D31F0 main:.text:004D31F0:324,frontbin:.text:004D1EE0:324 100.00 @@ -2806,6 +2819,7 @@ func_004E7688 src/game/004E7688.c match func_004E7688 main:.text:004E7688:128,fr func_004E7830 src/game/004E7830.c match func_004E7830 main:.text:004E7830:72,frontbin:.text:004E64C0:72 100.00 func_004E7878 src/game/004E7878.c match func_004E7878 main:.text:004E7878:76,frontbin:.text:004E6508:76 100.00 func_004E78D0 src/game/004E78D0.c match func_004E78D0 main:.text:004E78D0:164,frontbin:.text:004E6560:164 100.00 +func_004E7990 src/game/004E7990.c match func_004E7990 main:.text:004E7990:216,frontbin:.text:004E6620:216 100.00 func_004E7A70 src/game/004E7A70.c match func_004E7A70 main:.text:004E7A70:276,frontbin:.text:004E6700:276 100.00 func_004E7B88 src/game/004E7B88.c match func_004E7B88 main:.text:004E7B88:92,frontbin:.text:004E6818:92 100.00 func_004E7BE8 src/game/004E7BE8.c match func_004E7BE8 main:.text:004E7BE8:92,frontbin:.text:004E6878:92 100.00 @@ -3003,6 +3017,7 @@ func_004FA838 src/game/004FA838.c match func_004FA838 main:.text:004FA838:152,fr func_004FA8D0 src/game/004FA8D0.c match func_004FA8D0 main:.text:004FA8D0:472,frontbin:.text:004F9560:472 100.00 func_004FAB80 src/game/004FAB80.c match func_004FAB80 main:.text:004FAB80:180,frontbin:.text:004F9810:180 100.00 func_004FAF08 src/game/004FAF08.c match func_004FAF08 main:.text:004FAF08:224,frontbin:.text:004F9B98:224 100.00 +func_004FAFE8 src/game/004FAFE8.c match func_004FAFE8 main:.text:004FAFE8:552,frontbin:.text:004F9C78:552 100.00 func_004FB860 src/game/004FB860.c match func_004FB860 main:.text:004FB860:224,frontbin:.text:004FA4F0:224 100.00 func_004FB940 src/game/004FB940.c match func_004FB940 main:.text:004FB940:64,frontbin:.text:004FA5D0:64 100.00 func_004FBB28 src/pal/game/004FBB28.c other - - 0.00 @@ -3173,6 +3188,7 @@ func_00504D68 src/game/00504D68.c match func_00504D68 main:.text:00504D68:244,fr func_00504E68 src/game/00504E68.c match func_00504E68 main:.text:00504E68:244,frontbin:.text:00503AF8:244 100.00 func_00505040 src/game/00505040.c match func_00505040 main:.text:00505040:212,frontbin:.text:00503CD0:212 100.00 func_00505118 src/game/00505118.c match func_00505118 main:.text:00505118:276,frontbin:.text:00503DA8:276 100.00 +func_00505148 src/pal/game/00505148.c other - - 0.00 func_005052D0 src/pal/game/005052D0.c other - - 0.00 func_00505410 src/game/00505410.c match func_00505410 main:.text:00505410:228,frontbin:.text:005040A0:228 100.00 func_005054F8 src/game/005054F8.c match func_005054F8 main:.text:005054F8:228,frontbin:.text:00504188:228 100.00 @@ -3192,6 +3208,7 @@ func_00505C90 src/game/00505C90.c match func_00505C90 main:.text:00505C90:128,fr func_00505D30 src/game/00505D30.c match func_00505D30 main:.text:00505D30:124,frontbin:.text:005049C0:124 100.00 func_00505DD0 src/game/00505DD0.c match func_00505DD0 main:.text:00505DD0:236,frontbin:.text:00504A60:236 100.00 func_00505ED0 src/game/00505ED0.c match func_00505ED0 main:.text:00505ED0:200,frontbin:.text:00504B60:200 100.00 +func_00505F98 src/game/00505F98.c match func_00505F98 main:.text:00505F98:200,frontbin:.text:00504C28:200 100.00 func_00506000 src/pal/game/00506000.c other - - 0.00 func_00506060 src/game/00506060.c match func_00506060 main:.text:00506060:188,frontbin:.text:00504CF0:188 100.00 func_00506120 src/game/00506120.c match func_00506120 main:.text:00506120:184,frontbin:.text:00504DB0:184 100.00 @@ -3200,6 +3217,7 @@ func_005062D0 src/pal/game/005062D0.c other - - 0.00 func_00506358 src/game/00506358.c match func_00506358 main:.text:00506358:172,frontbin:.text:00504FE8:172 100.00 func_005063C0 src/pal/game/005063C0.c other - - 0.00 func_00506408 src/game/00506408.c match func_00506408 main:.text:00506408:236,frontbin:.text:00505098:236 100.00 +func_00506508 src/game/00506508.c match func_00506508 main:.text:00506508:200,frontbin:.text:00505198:200 100.00 func_00506590 src/pal/game/00506590.c other - - 0.00 func_005065D8 src/game/005065D8.c match func_005065D8 main:.text:005065D8:32,frontbin:.text:00505268:32 100.00 func_005065F8 src/game/005065F8.c match func_005065F8 main:.text:005065F8:200,frontbin:.text:00505288:200 100.00 @@ -3264,6 +3282,7 @@ func_00509088 src/game/00509088.c match func_00509088 main:.text:00509088:100,fr func_005090F0 src/game/005090F0.c match func_005090F0 main:.text:005090F0:80,frontbin:.text:00507D80:80 100.00 func_00509140 src/game/00509140.c match func_00509140 main:.text:00509140:232,frontbin:.text:00507DD0:232 100.00 func_00509228 src/game/00509228.c match func_00509228 main:.text:00509228:192,frontbin:.text:00507EB8:192 100.00 +func_00509248 src/pal/game/00509248.c other - - 0.00 func_005092E8 src/game/005092E8.c match func_005092E8 main:.text:005092E8:80,frontbin:.text:00507F78:80 100.00 func_00509338 src/game/00509338.c match func_00509338 main:.text:00509338:216,frontbin:.text:00507FC8:216 100.00 func_00509410 src/game/00509410.c match func_00509410 main:.text:00509410:100,frontbin:.text:005080A0:100 100.00 @@ -3368,6 +3387,7 @@ func_0050C568 src/game/0050C568.c match func_0050C568 main:.text:0050C568:8,fron func_0050C570 src/game/0050C570.c match func_0050C570 main:.text:0050C570:76,frontbin:.text:0050B200:76 100.00 func_0050C5C0 src/game/0050C5C0.c match func_0050C5C0 main:.text:0050C5C0:112,frontbin:.text:0050B250:112 100.00 func_0050C630 src/game/0050C630.c match func_0050C630 main:.text:0050C630:8,frontbin:.text:0050B2C0:8 100.00 +func_0050C638 src/game/0050C638.c match func_0050C638 main:.text:0050C638:264,frontbin:.text:0050B2C8:264 100.00 func_0050C740 src/game/0050C740.c match func_0050C740 main:.text:0050C740:28,frontbin:.text:0050B3D0:28 100.00 func_0050C768 src/game/0050C768.c match func_0050C768 main:.text:0050C768:108,frontbin:.text:0050B3F8:108 100.00 func_0050CC98 src/game/0050CC98.c match func_0050CC98 main:.text:0050CC98:280,frontbin:.text:0050B928:280 100.00 @@ -3467,6 +3487,7 @@ func_00511740 src/pal/game/00511740.c other - - 0.00 func_00512138 src/pal/game/00512138.c other - - 0.00 func_005125F8 src/pal/game/005125F8.c other - - 0.00 func_00512610 src/game/00512610.c match func_00512610 main:.text:00512610:60,frontbin:.text:005112A0:60 100.00 +func_00512650 src/game/00512650.c match func_00512650 main:.text:00512650:248,frontbin:.text:005112E0:248 100.00 func_00512748 src/game/00512748.c match func_00512748 main:.text:00512748:92,frontbin:.text:005113D8:92 100.00 func_00512938 src/game/00512938.c match func_00512938 main:.text:00512938:8,frontbin:.text:005115C8:8 100.00 func_00512D08 src/game/00512D08.c match func_00512D08 main:.text:00512D08:72,frontbin:.text:00511998:72 100.00 @@ -3510,6 +3531,7 @@ func_00521078 src/game/00521078.c match func_00521078 main:.text:00521078:56,fro func_005210B0 src/game/005210B0.c match func_005210B0 main:.text:005210B0:416,frontbin:.text:0051FD40:416 100.00 func_00521720 src/game/00521720.c match func_00521720 main:.text:00521720:248,frontbin:.text:005203B0:248 100.00 func_00521EB0 src/game/00521EB0.c match func_00521EB0 main:.text:00521EB0:612,frontbin:.text:00520B40:612 100.00 +func_00522238 src/pal/game/00522238.c other - - 0.00 func_00522270 src/pal/game/00522270.c other - - 0.00 func_00522518 src/pal/game/00522518.c other - - 0.00 func_005225D0 src/game/005225D0.c match func_005225D0 main:.text:005225D0:300,frontbin:.text:00521260:300 100.00 @@ -3520,10 +3542,12 @@ func_00522AF8 src/game/00522AF8.c match func_00522AF8 main:.text:00522AF8:252,fr func_00522BF8 src/game/00522BF8.c match func_00522BF8 main:.text:00522BF8:116,frontbin:.text:00521888:116 100.00 func_00522C70 src/game/00522C70.c match func_00522C70 main:.text:00522C70:140,frontbin:.text:00521900:140 100.00 func_00522E18 src/game/00522E18.c match func_00522E18 main:.text:00522E18:24,frontbin:.text:00521AA8:24 100.00 +func_005230A8 src/pal/game/005230A8.c other - - 0.00 func_00523208 src/game/00523208.c match func_00523208 main:.text:00523208:8,frontbin:.text:00521E98:8 100.00 func_00523210 src/game/00523210.c match func_00523210 main:.text:00523210:172,frontbin:.text:00521EA0:172 100.00 func_00523578 src/pal/game/00523578.c other - - 0.00 func_00523780 src/game/00523780.c match func_00523780 main:.text:00523780:580,frontbin:.text:00522410:580 100.00 +func_005237C8 src/pal/game/005237C8.c other - - 0.00 func_005239C8 src/game/005239C8.c match func_005239C8 main:.text:005239C8:312,frontbin:.text:00522658:312 100.00 func_00523B00 src/game/00523B00.c match func_00523B00 main:.text:00523B00:60,frontbin:.text:00522790:60 100.00 func_00523CF0 src/pal/game/00523CF0.c other - - 0.00 @@ -3536,6 +3560,7 @@ func_00525910 src/game/00525910.c match func_00525910 main:.text:00525910:744,fr func_00525BF8 src/game/00525BF8.c match func_00525BF8 main:.text:00525BF8:8,frontbin:.text:00524888:8 100.00 func_00525C00 src/game/00525C00.c match func_00525C00 main:.text:00525C00:56,frontbin:.text:00524890:56 100.00 func_00525C58 src/game/00525C58.c match func_00525C58 main:.text:00525C58:80,frontbin:.text:005248E8:80 100.00 +func_00525CB0 src/game/00525CB0.c match func_00525CB0 main:.text:00525CB0:384,frontbin:.text:00524940:384 100.00 func_005263E0 src/game/005263E0.c match func_005263E0 main:.text:005263E0:136,frontbin:.text:00525070:136 100.00 func_00526EA8 src/pal/game/00526EA8.c other - - 0.00 func_00526FD8 src/game/00526FD8.c match func_00526FD8 main:.text:00526FD8:112,frontbin:.text:00525C68:112 100.00 @@ -3646,6 +3671,7 @@ func_0054A190 src/game/0054A190.c match func_0054A190 main:.text:0054A190:204,fr func_0054A268 src/game/0054A268.c match func_0054A268 main:.text:0054A268:36,frontbin:.text:00548EF8:36 100.00 func_0054A360 src/pal/game/0054A360.c other - - 0.00 func_0054A400 src/game/0054A400.c match func_0054A400 main:.text:0054A400:160,frontbin:.text:00549090:160 100.00 +func_0054A4A0 src/game/0054A4A0.c match func_0054A4A0 main:.text:0054A4A0:224,frontbin:.text:00549130:224 100.00 func_0054A580 src/game/0054A580.c match func_0054A580 main:.text:0054A580:136,frontbin:.text:00549210:136 100.00 func_0054A608 src/game/0054A608.c match func_0054A608 main:.text:0054A608:124,frontbin:.text:00549298:124 100.00 func_0054A688 src/game/0054A688.c match func_0054A688 main:.text:0054A688:124,frontbin:.text:00549318:124 100.00 @@ -3668,6 +3694,7 @@ func_0054AB78 src/game/0054AB78.c match func_0054AB78 main:.text:0054AB78:32,fro func_0054AB98 src/game/0054AB98.c match func_0054AB98 main:.text:0054AB98:80,frontbin:.text:00549828:80 100.00 func_0054ABE8 src/game/0054ABE8.c match func_0054ABE8 main:.text:0054ABE8:52,frontbin:.text:00549878:52 100.00 func_0054AC20 src/game/0054AC20.c match func_0054AC20 main:.text:0054AC20:52,frontbin:.text:005498B0:52 100.00 +func_0054ACE8 src/game/0054ACE8.c match func_0054ACE8 main:.text:0054ACE8:224,frontbin:.text:00549978:224 100.00 func_0054AFB8 src/game/0054AFB8.c match func_0054AFB8 main:.text:0054AFB8:68,frontbin:.text:00549C48:68 100.00 func_0054B0E8 src/game/0054B0E8.c match func_0054B0E8 main:.text:0054B0E8:100 100.00 func_0054B280 src/game/0054B280.c match func_0054B280 main:.text:0054B280:52,frontbin:.text:00549F10:52 100.00 @@ -3742,7 +3769,7 @@ func_01EA0E50 src/net/01EA0E50.c match func_01EA0E50 main:net.text:01EA0E50:100 func_01EA3348 src/net/01EA3348.c match func_01EA3348 main:net.text:01EA3348:116 100.00 func_01EA3778 src/net/01EA3778.c match func_01EA3778 main:net.text:01EA3778:52 100.00 func_01EA3F28 src/net/01EA3F28.c match func_01EA3F28 main:net.text:01EA3F28:48 100.00 -func_01EA4570 src/pal/net/01EA4570.c other - - 0.00 +func_01EA4570 src/net/01EA4570.c match func_01EA4570 main:net.text:01EA4570:48 100.00 func_01EA4668 src/net/01EA4668.c match func_01EA4668 main:net.text:01EA4668:24 100.00 func_01EA4680 src/net/01EA4680.c match func_01EA4680 main:net.text:01EA4680:48 100.00 func_01EA4750 src/net/01EA4750.c match func_01EA4750 main:net.text:01EA4750:32 100.00 @@ -3821,6 +3848,7 @@ func_01EACB58 src/net/01EACB58.c match func_01EACB58 main:net.text:01EACB58:60 1 func_01EACEE0 src/net/01EACEE0.c match func_01EACEE0 main:net.text:01EACEE0:16 100.00 func_01EACF38 src/net/01EACF38.c match func_01EACF38 main:net.text:01EACF38:36 100.00 func_01EAE710 src/net/01EAE710.c match func_01EAE710 main:net.text:01EAE710:136 100.00 +func_01EAEBE0 src/net/01EAEBE0.c match func_01EAEBE0 main:net.text:01EAEBE0:268 100.00 func_01EAECF0 src/net/01EAECF0.c match func_01EAECF0 main:net.text:01EAECF0:40 100.00 func_01EB0D78 src/net/01EB0D78.c match func_01EB0D78 main:net.text:01EB0D78:28 100.00 func_01EB10A0 src/net/01EB10A0.c match func_01EB10A0 main:net.text:01EB10A0:60 100.00 @@ -3832,6 +3860,7 @@ func_01EB2EE0 src/net/01EB2EE0.c match func_01EB2EE0 main:net.text:01EB2EE0:64 1 func_01EB2F70 src/net/01EB2F70.c match func_01EB2F70 main:net.text:01EB2F70:128 100.00 func_01EB2FF0 src/net/01EB2FF0.c match func_01EB2FF0 main:net.text:01EB2FF0:56 100.00 func_01EB32C8 src/net/01EB32C8.c match func_01EB32C8 main:net.text:01EB32C8:44 100.00 +func_01EB36A0 src/net/01EB36A0.c match func_01EB36A0 main:net.text:01EB36A0:260 100.00 func_01EB3C70 src/net/01EB3C70.c match func_01EB3C70 main:net.text:01EB3C70:108 100.00 func_01EB3F10 src/net/01EB3F10.c match func_01EB3F10 main:net.text:01EB3F10:88 100.00 func_01EB4B40 src/net/01EB4B40.c match func_01EB4B40 main:net.text:01EB4B40:32 100.00 @@ -3842,6 +3871,7 @@ func_01EB4E40 src/net/01EB4E40.c match func_01EB4E40 main:net.text:01EB4E40:36 1 func_01EB4F80 src/net/01EB4F80.c match func_01EB4F80 main:net.text:01EB4F80:112 100.00 func_01EB4FF0 src/net/01EB4FF0.c match func_01EB4FF0 main:net.text:01EB4FF0:36 100.00 func_01EB5398 src/net/01EB5398.c match func_01EB5398 main:net.text:01EB5398:64 100.00 +func_01EB5FB0 src/net/01EB5FB0.c match func_01EB5FB0 main:net.text:01EB5FB0:260 100.00 func_01EB60B8 src/net/01EB60B8.c match func_01EB60B8 main:net.text:01EB60B8:72 100.00 func_01EB61E0 src/net/01EB61E0.c match func_01EB61E0 main:net.text:01EB61E0:112 100.00 func_01EB6408 src/net/01EB6408.c match func_01EB6408 main:net.text:01EB6408:28 100.00 @@ -3978,6 +4008,7 @@ func_01ED5D30 src/net/01ED5D30.c match func_01ED5D30 main:net.text:01ED5D30:52 1 func_01ED5DD0 src/net/01ED5DD0.c match func_01ED5DD0 main:net.text:01ED5DD0:52 100.00 func_01ED5F90 src/net/01ED5F90.c match func_01ED5F90 main:net.text:01ED5F90:72 100.00 func_01ED5FD8 src/net/01ED5FD8.c match func_01ED5FD8 main:net.text:01ED5FD8:16 100.00 +func_01ED66B0 src/net/01ED66B0.c match func_01ED66B0 main:net.text:01ED66B0:104 100.00 func_01ED68A0 src/net/01ED68A0.c match func_01ED68A0 main:net.text:01ED68A0:104 100.00 func_01ED6998 src/net/01ED6998.c match func_01ED6998 main:net.text:01ED6998:124 100.00 func_01ED6AA8 src/net/01ED6AA8.c match func_01ED6AA8 main:net.text:01ED6AA8:128 100.00 @@ -4024,6 +4055,7 @@ func_01ED9BE0 src/net/01ED9BE0.c match func_01ED9BE0 main:net.text:01ED9BE0:8 10 func_01ED9BE8 src/net/01ED9BE8.c match func_01ED9BE8 main:net.text:01ED9BE8:32 100.00 func_01EDA098 src/net/01EDA098.c match func_01EDA098 main:net.text:01EDA098:28 100.00 func_01EDA0B8 src/net/01EDA0B8.c match func_01EDA0B8 main:net.text:01EDA0B8:84 100.00 +func_01EDA668 src/net/01EDA668.c match func_01EDA668 main:net.text:01EDA668:260 100.00 func_01EDA770 src/net/01EDA770.c match func_01EDA770 main:net.text:01EDA770:36 100.00 func_01EDA870 src/net/01EDA870.c match func_01EDA870 main:net.text:01EDA870:76 100.00 func_01EDA908 src/net/01EDA908.c match func_01EDA908 main:net.text:01EDA908:24 100.00 @@ -4284,6 +4316,7 @@ func_01EEE028 src/net/01EEE028.c match func_01EEE028 main:net.text:01EEE028:72 1 func_01EEE070 src/net/01EEE070.c match func_01EEE070 main:net.text:01EEE070:12 100.00 func_01EEE0BC src/net/01EEE0BC.c match func_01EEE0BC main:net.text:01EEE0BC:112 100.00 func_01EEE12C src/net/01EEE12C.c match func_01EEE12C main:net.text:01EEE12C:16 100.00 +func_01EEE13C src/net/01EEE13C.c match func_01EEE13C main:net.text:01EEE13C:96 100.00 func_01EEE19C src/net/01EEE19C.c match func_01EEE19C main:net.text:01EEE19C:96 100.00 func_01EEE1FC src/net/01EEE1FC.c match func_01EEE1FC main:net.text:01EEE1FC:128 100.00 func_01EEE27C src/net/01EEE27C.c match func_01EEE27C main:net.text:01EEE27C:96 100.00 @@ -4339,6 +4372,7 @@ func_01EF28A4 src/net/01EF28A4.c match func_01EF28A4 main:net.text:01EF28A4:8 10 func_01EF2B20 src/net/01EF2B20.c match func_01EF2B20 main:net.text:01EF2B20:28 100.00 func_01EF2B3C src/net/01EF2B3C.c match func_01EF2B3C main:net.text:01EF2B3C:96 100.00 func_01EF2C14 src/net/01EF2C14.c match func_01EF2C14 main:net.text:01EF2C14:68 100.00 +func_01EF2CC4 src/net/01EF2CC4.c match func_01EF2CC4 main:net.text:01EF2CC4:76 100.00 func_01EF2DB8 src/net/01EF2DB8.c match func_01EF2DB8 main:net.text:01EF2DB8:60 100.00 func_01EF2DF4 src/net/01EF2DF4.c match func_01EF2DF4 main:net.text:01EF2DF4:48 100.00 func_01EF308C src/net/01EF308C.c match func_01EF308C main:net.text:01EF308C:96 100.00 @@ -4401,6 +4435,7 @@ func_01EF71E8 src/net/01EF71E8.c match func_01EF71E8 main:net.text:01EF71E8:96 1 func_01EF72C8 src/net/01EF72C8.c match func_01EF72C8 main:net.text:01EF72C8:68 100.00 func_01EF7348 src/net/01EF7348.c match func_01EF7348 main:net.text:01EF7348:168 100.00 func_01EF7688 src/net/01EF7688.c match func_01EF7688 main:net.text:01EF7688:28 100.00 +func_01EF7830 src/net/01EF7830.c match func_01EF7830 main:net.text:01EF7830:256 100.00 func_01EF7930 src/net/01EF7930.c match func_01EF7930 main:net.text:01EF7930:28 100.00 func_01EF7DAC src/net/01EF7DAC.c match func_01EF7DAC main:net.text:01EF7DAC:60 100.00 func_01EF7DE8 src/net/01EF7DE8.c match func_01EF7DE8 main:net.text:01EF7DE8:24 100.00 @@ -4497,6 +4532,7 @@ func_01F042B8 src/net/01F042B8.c match func_01F042B8 main:net.text:01F042B8:60 1 func_01F045E8 src/net/01F045E8.c match func_01F045E8 main:net.text:01F045E8:60 100.00 func_01F04624 src/net/01F04624.c match func_01F04624 main:net.text:01F04624:52 100.00 func_01F0471C src/net/01F0471C.c match func_01F0471C main:net.text:01F0471C:132 100.00 +func_01F047A0 src/net/01F047A0.c match func_01F047A0 main:net.text:01F047A0:264 100.00 func_01F048A8 src/net/01F048A8.c match func_01F048A8 main:net.text:01F048A8:28 100.00 func_01F04950 src/net/01F04950.c match func_01F04950 main:net.text:01F04950:8 100.00 func_01F04958 src/net/01F04958.c match func_01F04958 main:net.text:01F04958:96 100.00 @@ -4522,6 +4558,7 @@ func_01F07050 src/net/01F07050.c match func_01F07050 main:net.text:01F07050:16 1 func_01F07060 src/net/01F07060.c match func_01F07060 main:net.text:01F07060:52 100.00 func_01F07094 src/net/01F07094.c match func_01F07094 main:net.text:01F07094:60 100.00 func_01F070D0 src/net/01F070D0.c match func_01F070D0 main:net.text:01F070D0:48 100.00 +func_01F07100 src/net/01F07100.c match func_01F07100 main:net.text:01F07100:84 100.00 func_01F07154 src/net/01F07154.c match func_01F07154 main:net.text:01F07154:28 100.00 func_01F07170 src/net/01F07170.c match func_01F07170 main:net.text:01F07170:40 100.00 func_01F07300 src/net/01F07300.c match func_01F07300 main:net.text:01F07300:32 100.00 @@ -4813,6 +4850,7 @@ func_L00_0051D878 src/overlays/l00_multiplayer_menu/L00_0051D878.c match func_L0 func_L00_0051E250 src/overlays/l00_multiplayer_menu/L00_0051E250.c match func_L00_0051E250 level_00:.text:0051E250:104 100.00 func_L00_0051E2B8 src/overlays/l00_multiplayer_menu/L00_0051E2B8.c match func_L00_0051E2B8 level_00:.text:0051E2B8:764 100.00 func_L00_0051E6B8 src/overlays/l00_multiplayer_menu/L00_0051E6B8.c match func_L00_0051E6B8 level_00:.text:0051E6B8:476 100.00 +func_L00_0051E6D8 src/pal/overlays/l00_multiplayer_menu/L00_0051E6D8.c other - - 0.00 func_L00_0051EB68 src/overlays/l00_multiplayer_menu/L00_0051EB68.c match func_L00_0051EB68 level_00:.text:0051EB68:104 100.00 func_L00_0051EBD0 src/overlays/l00_multiplayer_menu/L00_0051EBD0.c match func_L00_0051EBD0 level_00:.text:0051EBD0:48 100.00 func_L00_0051EC00 src/overlays/l00_multiplayer_menu/L00_0051EC00.c match func_L00_0051EC00 level_00:.text:0051EC00:76 100.00 @@ -5024,6 +5062,7 @@ func_L00_005421E0 src/overlays/l00_multiplayer_menu/L00_005421E0.c match func_L0 func_L00_005424F8 src/overlays/l00_multiplayer_menu/L00_005424F8.c match func_L00_005424F8 level_00:.text:005424F8:24 100.00 func_L00_00542FC0 src/overlays/l00_multiplayer_menu/L00_00542FC0.c match func_L00_00542FC0 level_00:.text:00542FC0:24 100.00 func_L00_00543218 src/overlays/l00_multiplayer_menu/L00_00543218.c match func_L00_00543218 level_00:.text:00543218:24 100.00 +func_L00_00546148 src/pal/overlays/l00_multiplayer_menu/L00_00546148.c other - - 0.00 func_L00_005461D8 src/overlays/l00_multiplayer_menu/L00_005461D8.c match func_L00_005461D8 level_00:.text:005461D8:440 100.00 func_L00_00546390 src/overlays/l00_multiplayer_menu/L00_00546390.c match func_L00_00546390 level_00:.text:00546390:28 100.00 func_L00_005463F8 src/overlays/l00_multiplayer_menu/L00_005463F8.c match func_L00_005463F8 level_00:.text:005463F8:92 100.00 @@ -5057,6 +5096,7 @@ func_L00_00559B50 src/overlays/l00_multiplayer_menu/L00_00559B50.c match func_L0 func_L00_0055AB58 src/overlays/l00_multiplayer_menu/L00_0055AB58.c match func_L00_0055AB58 level_00:.text:0055AB58:64 100.00 func_L00_0055BD50 src/overlays/l00_multiplayer_menu/L00_0055BD50.c match func_L00_0055BD50 level_00:.text:0055BD50:24 100.00 func_L00_0055BD68 src/overlays/l00_multiplayer_menu/L00_0055BD68.c match func_L00_0055BD68 level_00:.text:0055BD68:24 100.00 +func_L00_00565650 src/pal/overlays/l00_multiplayer_menu/L00_00565650.c other - - 0.00 func_L00_00566230 src/overlays/shared/L00_00566230.c match func_L00_00566230 level_00:.text:00566230:28 100.00 func_L00_00566250 src/overlays/shared/L00_00566250.c match func_L00_00566250 level_00:.text:00566250:28 100.00 func_L00_00566270 src/overlays/shared/L00_00566270.c match func_L00_00566270 level_00:.text:00566270:28 100.00 @@ -5065,6 +5105,7 @@ func_L00_005662C0 src/overlays/shared/L00_005662C0.c match func_L00_005662C0 lev func_L00_00566370 src/overlays/l00_multiplayer_menu/L00_00566370.c match func_L00_00566370 level_00:.text:00566370:28 100.00 func_L00_00566488 src/overlays/shared/L00_00566488.c match func_L00_00566488 level_00:.text:00566488:28 100.00 func_L00_005666A0 src/overlays/l00_multiplayer_menu/L00_005666A0.c match func_L00_005666A0 level_00:.text:005666A0:516 100.00 +func_L00_005666C8 src/pal/overlays/l00_multiplayer_menu/L00_005666C8.c other - - 0.00 func_L00_005668D8 src/overlays/l00_multiplayer_menu/L00_005668D8.c match func_L00_005668D8 level_00:.text:005668D8:56 100.00 func_L00_00566910 src/overlays/l00_multiplayer_menu/L00_00566910.c match func_L00_00566910 level_00:.text:00566910:52 100.00 func_L00_005669A8 src/pal/overlays/l00_multiplayer_menu/L00_005669A8.c other - - 0.00 @@ -5119,6 +5160,7 @@ func_L00_00591428 src/overlays/shared/L00_00591410.c match func_L00_00591428 lev func_L00_00591AA8 src/pal/overlays/shared/L00_00591AA8.c other - - 0.00 func_L00_00592378 src/overlays/shared/L00_00592378.c match func_L00_00592378 level_00:.text:00592378:220 100.00 func_L00_00593EC0 src/overlays/shared/L00_00593EC0.c match func_L00_00593EC0 level_00:.text:00593EC0:8 100.00 +func_L00_00593EC8 src/overlays/shared/L00_00593EC8.c match func_L00_00593EC8 level_00:.text:00593EC8:264 100.00 func_L00_00593FD0 src/overlays/shared/L00_00593FD0.c match func_L00_00593FD0 level_00:.text:00593FD0:208 100.00 func_L00_005949D0 src/pal/overlays/shared/L00_005949D0.c other - - 0.00 func_L00_005956D0 src/overlays/shared/L00_005956D0.c match func_L00_005956D0 level_00:.text:005956D0:76 100.00 @@ -5450,6 +5492,7 @@ func_L00_0062A8B8 src/overlays/shared/L00_0062A8B8.c match func_L00_0062A8B8 lev func_L00_0062A8C0 src/overlays/shared/L00_0062A8C0.c match func_L00_0062A8C0 level_00:.text:0062A8C0:8 100.00 func_L00_0062A8C8 src/overlays/shared/L00_0062A8C8.c match func_L00_0062A8C8 level_00:.text:0062A8C8:92 100.00 func_L00_0062B4A8 src/overlays/shared/L00_0062B4A8.c match func_L00_0062B4A8 level_00:.text:0062B4A8:336 100.00 +func_L00_0062B4F0 src/pal/overlays/shared/L00_0062B4F0.c other - - 0.00 func_L00_0062BF90 src/pal/overlays/shared/L00_0062BF90.c other - - 0.00 func_L00_0062C7C8 src/overlays/shared/L00_0062C7C8.c match func_L00_0062C7C8 level_00:.text:0062C7C8:88 100.00 func_L00_0062C820 src/overlays/shared/L00_0062C820.c match func_L00_0062C820 level_00:.text:0062C820:72 100.00 @@ -5528,6 +5571,7 @@ func_L00_006437A0 src/overlays/shared/L00_006437A0.c match func_L00_006437A0 lev func_L00_00644F38 src/overlays/shared/L00_00644F38.c match func_L00_00644F38 level_00:.text:00644F38:108 100.00 func_L00_006452E8 src/overlays/shared/L00_006452E8.c match func_L00_006452E8 level_00:.text:006452E8:336 100.00 func_L00_00645760 src/overlays/shared/L00_00645760.c match func_L00_00645760 level_00:.text:00645760:156 100.00 +func_L00_00647FE0 src/pal/overlays/shared/L00_00647FE0.c other - - 0.00 func_L00_00648E38 src/overlays/shared/L00_00648E38.c match func_L00_00648E38 level_00:.text:00648E38:64 100.00 func_L00_00648E78 src/overlays/shared/L00_00648E78.c match func_L00_00648E78 level_00:.text:00648E78:108 100.00 func_L00_00649370 src/overlays/shared/L00_00649370.c match func_L00_00649370 level_00:.text:00649370:336 100.00 @@ -5540,6 +5584,7 @@ func_L00_0064D4F0 src/overlays/shared/L00_0064D4F0.c match func_L00_0064D4F0 lev func_L00_0064EFA8 src/overlays/shared/L00_0064EFA8.c match func_L00_0064EFA8 level_00:.text:0064EFA8:64 100.00 func_L00_0064F4F0 src/overlays/shared/L00_0064F4F0.c match func_L00_0064F4F0 level_00:.text:0064F4F0:56 100.00 func_L00_00650148 src/overlays/shared/L00_00650148.c match func_L00_00650148 level_00:.text:00650148:92 100.00 +func_L00_00650F58 src/pal/overlays/shared/L00_00650F58.c other - - 0.00 func_L00_00651088 src/overlays/shared/L00_00651088.c match func_L00_00651088 level_00:.text:00651088:56 100.00 func_L00_00651348 src/overlays/shared/L00_00651348.c match func_L00_00651348 level_00:.text:00651348:28 100.00 func_L00_00651378 src/overlays/shared/L00_00651378.c match func_L00_00651378 level_00:.text:00651378:336 100.00 @@ -5896,6 +5941,7 @@ func_L00_006A3B48 src/overlays/shared/L00_006A3B48.c match func_L00_006A3B48 lev func_L00_006A3BB0 src/overlays/shared/L00_006A3BB0.c match func_L00_006A3BB0 level_00:.text:006A3BB0:232 100.00 func_L00_006A3CF0 src/overlays/shared/L00_006A3CF0.c match func_L00_006A3CF0 level_00:.text:006A3CF0:84 100.00 func_L00_006A3DD8 src/overlays/shared/L00_006A3DD8.c match func_L00_006A3DD8 level_00:.text:006A3DD8:192 100.00 +func_L00_006A3E80 src/pal/overlays/shared/L00_006A3E80.c other - - 0.00 func_L00_006A3F40 src/overlays/shared/L00_006A3F40.c match func_L00_006A3F40 level_00:.text:006A3F40:192 100.00 func_L00_006A4000 src/overlays/shared/L00_006A4000.c match func_L00_006A4000 level_00:.text:006A4000:112 100.00 func_L00_006A4070 src/overlays/shared/L00_006A4070.c match func_L00_006A4070 level_00:.text:006A4070:104 100.00 @@ -5980,6 +6026,7 @@ func_L00_006BA7F0 src/pal/overlays/shared/L00_006BA7F0.c other - - 0.00 func_L00_006BB188 src/overlays/shared/L00_006BB188.c match func_L00_006BB188 level_00:.text:006BB188:800 100.00 func_L00_006BB798 src/pal/overlays/shared/L00_006BB798.c other - - 0.00 func_L00_006BD738 src/overlays/shared/L00_006BD738.c match func_L00_006BD738 level_00:.text:006BD738:172 100.00 +func_L00_006BEA78 src/pal/overlays/shared/L00_006BEA78.c other - - 0.00 func_L00_006BEC80 src/overlays/shared/L00_006BEC80.c match func_L00_006BEC80 level_00:.text:006BEC80:32 100.00 func_L00_006C2808 src/overlays/shared/L00_006C2808.c match func_L00_006C2808 level_00:.text:006C2808:204 100.00 func_L00_006C69F0 src/overlays/shared/L00_006C69F0.c match func_L00_006C69F0 level_00:.text:006C69F0:180 100.00 @@ -6121,6 +6168,7 @@ func_L00_0070A5F8 src/overlays/shared/L00_0070A5F8.c match func_L00_0070A5F8 lev func_L00_0070A660 src/overlays/shared/L00_0070A660.c match func_L00_0070A660 level_00:.text:0070A660:8 100.00 func_L00_0070A808 src/overlays/l00_multiplayer_menu/L00_0070A808.c match func_L00_0070A808 level_00:.text:0070A808:40 100.00 func_L00_0070AC80 src/overlays/l00_multiplayer_menu/L00_0070AC80.c match func_L00_0070AC80 level_00:.text:0070AC80:200 100.00 +func_L00_0070B400 src/overlays/l00_multiplayer_menu/L00_0070B400.c match func_L00_0070B400 level_00:.text:0070B400:256 100.00 func_L00_0070B500 src/overlays/shared/L00_0070B500.c match func_L00_0070B500 level_00:.text:0070B500:8 100.00 func_L00_0070B508 src/overlays/l00_multiplayer_menu/L00_0070B508.c match func_L00_0070B508 level_00:.text:0070B508:44 100.00 func_L00_0070B538 src/overlays/shared/L00_0070B538.c match func_L00_0070B538 level_00:.text:0070B538:8 100.00 @@ -6364,7 +6412,7 @@ func_L00_007149E8 src/overlays/l00_multiplayer_menu/L00_007149E8.c match func_L0 func_L00_00714A08 src/overlays/l00_multiplayer_menu/L00_00714A08.c match func_L00_00714A08 level_00:.text:00714A08:76 100.00 func_L00_00714A58 src/overlays/l00_multiplayer_menu/L00_00714A58.c match func_L00_00714A58 level_00:.text:00714A58:40 100.00 func_L00_00714A80 src/overlays/l00_multiplayer_menu/L00_00714A80.c match func_L00_00714A80 level_00:.text:00714A80:88 100.00 -func_L00_00714AD8 src/pal/overlays/l00_multiplayer_menu/L00_00714AD8.c other - - 0.00 +func_L00_00714AD8 src/overlays/l00_multiplayer_menu/L00_00714AD8.c match func_L00_00714A08 level_00:.text:00714A08:76 100.00 func_L00_00714B98 src/overlays/l00_multiplayer_menu/L00_00714B98.c match func_L00_00714B98 level_00:.text:00714B98:72 100.00 func_L00_00714BE0 src/overlays/shared/L00_00714BE0.c match func_L00_00714BE0 level_00:.text:00714BE0:8 100.00 func_L00_00714DD0 src/overlays/shared/L00_00714DD0.c match func_L00_00714DD0 level_00:.text:00714DD0:8 100.00 @@ -6436,6 +6484,7 @@ func_L00_00718458 src/pal/overlays/l00_multiplayer_menu/L00_00718458.c other - - func_L00_00718920 src/pal/overlays/l00_multiplayer_menu/L00_00718920.c other - - 0.00 func_L00_00718C60 src/overlays/l00_multiplayer_menu/L00_00718C60.c match func_L00_00718C60 level_00:.text:00718C60:1508 100.00 func_L00_00718D58 src/pal/overlays/l00_multiplayer_menu/L00_00718D58.c other - - 0.00 +func_L00_00719248 src/overlays/l00_multiplayer_menu/L00_00719248.c match func_L00_00719248 level_00:.text:00719248:488 100.00 func_L00_00719430 src/overlays/l00_multiplayer_menu/L00_00719430.c match func_L00_00719430 level_00:.text:00719430:1104 100.00 func_L00_00719D28 src/overlays/l00_multiplayer_menu/L00_00719D28.c match func_L00_00719D28 level_00:.text:00719D28:44 100.00 func_L00_00719F68 src/overlays/l00_multiplayer_menu/L00_00719F68.c match func_L00_00719F68 level_00:.text:00719F68:112 100.00 @@ -6488,6 +6537,7 @@ func_L00_0071DF60 src/overlays/l00_multiplayer_menu/L00_0071DF60.c match func_L0 func_L00_0071E6B0 src/overlays/shared/L00_0071E6B0.c match func_L00_0071E6B0 level_00:.text:0071E6B0:28 100.00 func_L00_0071EA08 src/overlays/l00_multiplayer_menu/L00_0071EA08.c match func_L00_0071EA08 level_00:.text:0071EA08:88 100.00 func_L00_0071F430 src/overlays/l00_multiplayer_menu/L00_0071F430.c match func_L00_0071F430 level_00:.text:0071F430:40 100.00 +func_L00_0071F4F8 src/pal/overlays/l00_multiplayer_menu/L00_0071F4F8.c other - - 0.00 func_L00_0071F7B0 src/overlays/shared/L00_0071F7B0.c match func_L00_0071F7B0 level_00:.text:0071F7B0:44 100.00 func_L00_0071FCD8 src/overlays/shared/L00_0071FCD8.c match func_L00_0071FCD8 level_00:.text:0071FCD8:28 100.00 func_L00_0071FFC0 src/pal/overlays/l00_multiplayer_menu/L00_0071FFC0.c other - - 0.00 @@ -6518,6 +6568,7 @@ func_L00_007292C0 src/pal/overlays/l00_multiplayer_menu/L00_007292C0.c other - - func_L00_007292F8 src/pal/overlays/l00_multiplayer_menu/L00_007292F8.c other - - 0.00 func_L00_007295D0 src/overlays/l00_multiplayer_menu/L00_007295D0.c match func_L00_007295D0 level_00:.text:007295D0:20 100.00 func_L00_007295E8 src/overlays/l00_multiplayer_menu/L00_007295E8.c match func_L00_007295E8 level_00:.text:007295E8:20 100.00 +func_L00_00729600 src/overlays/l00_multiplayer_menu/L00_00729600.c match func_L00_00729600 level_00:.text:00729600:536 100.00 func_L00_00729B70 src/overlays/l00_multiplayer_menu/L00_00729B70.c match func_L00_00729B70 level_00:.text:00729B70:40 100.00 func_L00_00729D38 src/overlays/l00_multiplayer_menu/L00_00729D38.c match func_L00_00729D38 level_00:.text:00729D38:156 100.00 func_L00_0072A108 src/overlays/shared/L00_0072A108.c match func_L00_0072A108 level_00:.text:0072A108:28 100.00 @@ -6588,6 +6639,7 @@ func_L00_00744510 src/overlays/shared/L00_00744510.c match func_L00_00744510 lev func_L00_00745338 src/overlays/l00_multiplayer_menu/L00_00745338.c match func_L00_00745338 level_00:.text:00745338:40 100.00 func_L00_007457B0 src/overlays/l00_multiplayer_menu/L00_007457B0.c match func_L00_007457B0 level_00:.text:007457B0:60 100.00 func_L00_007458A8 src/overlays/shared/L00_007458A8.c match func_L00_007458A8 level_00:.text:007458A8:28 100.00 +func_L00_007458C8 src/overlays/l00_multiplayer_menu/L00_007458C8.c match func_L00_007458C8 level_00:.text:007458C8:256 100.00 func_L00_00747118 src/overlays/l00_multiplayer_menu/L00_00747118.c match func_L00_00747118 level_00:.text:00747118:40 100.00 func_L00_00747398 src/overlays/l00_multiplayer_menu/L00_00747398.c match func_L00_00747398 level_00:.text:00747398:52 100.00 func_L00_00747860 src/overlays/l00_multiplayer_menu/L00_00747860.c match func_L00_00747860 level_00:.text:00747860:48 100.00 @@ -6629,6 +6681,7 @@ func_L00_007542C0 src/overlays/shared/L00_007542C0.c match func_L00_007542C0 lev func_L00_00754440 src/overlays/l00_multiplayer_menu/L00_00754440.c match func_L00_00754440 level_00:.text:00754440:28 100.00 func_L00_00754DA0 src/overlays/l00_multiplayer_menu/L00_00753C68.c match func_L00_00754DA0 level_00:.text:00754DA0:112 100.00 func_L00_00754E10 src/overlays/shared/L00_00754E10.c match func_L00_00754E10 level_00:.text:00754E10:8 100.00 +func_L00_00755A20 src/overlays/l00_multiplayer_menu/L00_00755A20.c match func_L00_00755A20 level_00:.text:00755A20:48 100.00 func_L00_00755AB0 src/overlays/l00_multiplayer_menu/L00_00755AB0.c match func_L00_00755AB0 level_00:.text:00755AB0:40 100.00 func_L00_007568E8 src/pal/overlays/l00_multiplayer_menu/L00_007568E8.c other - - 0.00 func_L00_00756A48 src/overlays/l00_multiplayer_menu/L00_00756A48.c match func_L00_00756A48 level_00:.text:00756A48:40 100.00 @@ -6639,6 +6692,7 @@ func_L00_00757660 src/overlays/l00_multiplayer_menu/L00_00757660.c match func_L0 func_L00_00758C10 src/overlays/l00_multiplayer_menu/L00_00758C10.c match func_L00_00758C10 level_00:.text:00758C10:40 100.00 func_L00_00759E08 src/overlays/l00_multiplayer_menu/L00_00759E08.c match func_L00_00759E08 level_00:.text:00759E08:64 100.00 func_L00_0075A8B8 src/pal/overlays/l00_multiplayer_menu/L00_0075A8B8.c other - - 0.00 +func_L00_0075C8C0 src/overlays/l00_multiplayer_menu/L00_0075C8C0.c match func_L00_0075C8C0 level_00:.text:0075C8C0:56 100.00 func_L00_0075CA50 src/overlays/l00_multiplayer_menu/L00_0075CA50.c match func_L00_0075CA50 level_00:.text:0075CA50:72 100.00 func_L00_0075D0E0 src/overlays/l00_multiplayer_menu/L00_0075D0E0.c match func_L00_0075D0E0 level_00:.text:0075D0E0:48 100.00 func_L00_0075DC10 src/overlays/l00_multiplayer_menu/L00_0075DC10.c match func_L00_0075DC10 level_00:.text:0075DC10:40 100.00 @@ -6650,6 +6704,7 @@ func_L00_007600C0 src/overlays/l00_multiplayer_menu/L00_007600C0.c match func_L0 func_L00_00761568 src/overlays/l00_multiplayer_menu/L00_00761568.c match func_L00_00761568 level_00:.text:00761568:28 100.00 func_L00_00761860 src/pal/overlays/l00_multiplayer_menu/L00_00761860.c other - - 0.00 func_L00_00761C88 src/pal/overlays/l00_multiplayer_menu/L00_00713A78.c other - - 0.00 +func_L00_00762030 src/overlays/l00_multiplayer_menu/L00_00762030.c match func_L00_00762030 level_00:.text:00762030:264 100.00 func_L00_00762570 src/overlays/l00_multiplayer_menu/L00_00762570.c match func_L00_00762570 level_00:.text:00762570:40 100.00 func_L00_00762780 src/overlays/l00_multiplayer_menu/L00_00762780.c match func_L00_00762780 level_00:.text:00762780:52 100.00 func_L00_007629C0 src/overlays/l00_multiplayer_menu/L00_007629C0.c match func_L00_007629C0 level_00:.text:007629C0:28 100.00 @@ -6827,6 +6882,7 @@ func_L00_00775E10 src/overlays/l00_multiplayer_menu/L00_00775E10.c match func_L0 func_L00_00776038 src/pal/overlays/l00_multiplayer_menu/L00_00776038.c other - - 0.00 func_L00_007763A8 src/overlays/l00_multiplayer_menu/L00_007763A8.c match func_L00_007763A8 level_00:.text:007763A8:12 100.00 func_L00_00776680 src/overlays/l00_multiplayer_menu/L00_00776680.c match func_L00_00776680 level_00:.text:00776680:20 100.00 +func_L00_00776698 src/overlays/l00_multiplayer_menu/L00_00776698.c match func_L00_00776698 level_00:.text:00776698:80 100.00 func_L00_00776A58 src/pal/overlays/l00_multiplayer_menu/L00_00776A58.c other - - 0.00 func_L00_00776DE8 src/pal/overlays/l00_multiplayer_menu/L00_00776DE8.c other - - 0.00 func_L00_00776E88 src/overlays/l00_multiplayer_menu/L00_00776E88.c match func_L00_00776E88 level_00:.text:00776E88:88 100.00 @@ -7123,6 +7179,7 @@ func_L01_0045C658 src/pal/overlays/shared/L01_0045C658.c other - - 0.00 func_L01_0045D140 src/pal/overlays/shared/L01_0045D140.c other - - 0.00 func_L01_0045D240 src/pal/overlays/shared/L01_0045D240.c other - - 0.00 func_L01_0045D4E0 src/overlays/shared/L01_0045D4E0.c match func_L01_0045D4E0 level_01:.text:0045D4E0:12 100.00 +func_L01_0045D4F0 src/overlays/shared/L01_0045D4F0.c match func_L01_0045D4F0 level_01:.text:0045D4F0:56 100.00 func_L01_0045D648 src/overlays/shared/L01_0045D648.c match func_L01_0045D648 level_01:.text:0045D648:16 100.00 func_L01_0045E510 src/overlays/shared/L01_0045E510.c match func_L01_0045E510 level_01:.text:0045E510:124 100.00 func_L01_0045E690 src/overlays/shared/L01_0045E690.c match func_L01_0045E690 level_01:.text:0045E690:132 100.00 @@ -7176,6 +7233,7 @@ func_L01_00469AF8 src/overlays/shared/L01_00469AF8.c match func_L01_00469AF8 lev func_L01_00469BA0 src/pal/overlays/shared/L01_00469BA0.c other - - 0.00 func_L01_00469C78 src/overlays/shared/L01_00469C78.c match func_L01_00469C78 level_01:.text:00469C78:12 100.00 func_L01_00469EF8 src/overlays/shared/L01_00469EF8.c match func_L01_00469EF8 level_01:.text:00469EF8:16 100.00 +func_L01_0046A2F0 src/pal/overlays/shared/L01_0046A2F0.c other - - 0.00 func_L01_0046AEE0 src/pal/overlays/shared/L01_0046AEE0.c other - - 0.00 func_L01_0046AF50 src/overlays/shared/L01_0046AF50.c match func_L01_0046AF50 level_01:.text:0046AF50:60 100.00 func_L01_0046B070 src/pal/overlays/shared/L01_0046B070.c other - - 0.00 @@ -7259,6 +7317,7 @@ func_L01_0048F378 src/overlays/shared/L01_0048F378.c match func_L01_0048F378 lev func_L01_0048F3C8 src/overlays/shared/L01_0048F3C8.c match func_L01_0048F3C8 level_01:.text:0048F3C8:32 100.00 func_L01_0048F610 src/pal/overlays/shared/L01_0048F610.c other - - 0.00 func_L01_0048F630 src/overlays/shared/L01_0048F630.c match func_L01_0048F630 level_01:.text:0048F630:76 100.00 +func_L01_0048F9F8 src/overlays/shared/L01_0048F9F8.c match func_L01_0048F9F8 level_01:.text:0048F9F8:176 100.00 func_L01_0048FAA8 src/overlays/shared/L01_0048FAA8.c match func_L01_0048FAA8 level_01:.text:0048FAA8:16 100.00 func_L01_0048FAB8 src/overlays/shared/L01_0048FAB8.c match func_L01_0048FAB8 level_01:.text:0048FAB8:60 100.00 func_L01_0048FB00 src/overlays/shared/L01_0048FB00.c match func_L01_0048FB00 level_01:.text:0048FB00:32 100.00 @@ -7383,6 +7442,7 @@ func_L01_004AF160 src/overlays/l01_dreadzone_station/L01_004AF160.c match func_L func_L01_004AF1D0 src/overlays/shared/L01_004AF1D0.c match func_L01_004AF1D0 level_01:.text:004AF1D0:32 100.00 func_L01_004AF6E0 src/pal/overlays/l01_dreadzone_station/L01_004AF6E0.c other - - 0.00 func_L01_004AF8B8 src/overlays/shared/L01_004AF8B8.c match func_L01_004AF8B8 level_01:.text:004AF8B8:32 100.00 +func_L01_004AFD28 src/overlays/shared/L01_004AFD28.c match func_L01_004AFD28 level_01:.text:004AFD28:144 100.00 func_L01_004B0068 src/pal/overlays/l01_dreadzone_station/L01_004B0068.c other - - 0.00 func_L01_004B00E8 src/pal/overlays/l01_dreadzone_station/L01_004B00E8.c other - - 0.00 func_L01_004B0180 src/overlays/shared/L01_004B0180.c match func_L01_004B0180 level_01:.text:004B0180:64 100.00 @@ -7396,6 +7456,7 @@ func_L01_004B13F8 src/overlays/shared/L01_004B13F8.c match func_L01_004B13F8 lev func_L01_004B1818 src/pal/overlays/shared/L01_004B1818.c other - - 0.00 func_L01_004B2AD8 src/overlays/shared/L01_004B2AD8.c match func_L01_004B2AD8 level_01:.text:004B2AD8:80 100.00 func_L01_004B2CC0 src/overlays/shared/L01_004B2CC0.c match func_L01_004B2CC0 level_01:.text:004B2CC0:128 100.00 +func_L01_004B2DC8 src/overlays/shared/L01_004B2DC8.c match func_L01_004B2DC8 level_01:.text:004B2DC8:136 100.00 func_L01_004B2E50 src/overlays/shared/L01_004B2E50.c match func_L01_004B2E50 level_01:.text:004B2E50:12 100.00 func_L01_004B3708 src/overlays/shared/L01_004B3708.c match func_L01_004B3708 level_01:.text:004B3708:112 100.00 func_L01_004B3C00 src/overlays/shared/L01_004B3C00.c match func_L01_004B3C00 level_01:.text:004B3C00:80 100.00 @@ -7631,6 +7692,7 @@ func_L01_004EB1EC src/overlays/shared/L01_004EB1EC.c match func_L01_004EB1EC lev func_L01_004EB3A8 src/overlays/shared/L01_004EB3A8.c match func_L01_004EB3A8 level_01:.text:004EB3A8:12 100.00 func_L01_004EB3B8 src/overlays/shared/L01_004EB3B8.c match func_L01_004EB3B8 level_01:.text:004EB3B8:80 100.00 func_L01_004EB408 src/overlays/shared/L01_004EB408.c match func_L01_004EB408 level_01:.text:004EB408:196 100.00 +func_L01_004EBC88 src/overlays/shared/L01_004EBC88.c match func_L01_004EBC88 level_01:.text:004EBC88:184 100.00 func_L01_004EBD40 src/overlays/shared/L01_004EBD40.c match func_L01_004EBD40 level_01:.text:004EBD40:48 100.00 func_L01_004ED138 src/overlays/shared/L01_004ED138.c match func_L01_004ED138 level_01:.text:004ED138:100 100.00 func_L01_004ED1A0 src/overlays/shared/L01_004ED1A0.c match func_L01_004ED1A0 level_01:.text:004ED1A0:12 100.00 @@ -7762,6 +7824,7 @@ func_L01_0052EA10 src/overlays/l01_dreadzone_station/L01_0052EA10.c match func_L func_L01_00530208 src/overlays/shared/L01_00530208.c match func_L01_00530208 level_01:.text:00530208:76 100.00 func_L01_005309D0 src/pal/overlays/shared/L01_005309D0.c other - - 0.00 func_L01_005320C8 src/pal/overlays/l01_dreadzone_station/L01_005320C8.c other - - 0.00 +func_L01_005334B0 src/overlays/shared/L01_005334B0.c match func_L01_005334B0 level_01:.text:005334B0:624 100.00 func_L01_005337D0 src/overlays/shared/L01_005337D0.c match func_L01_005337D0 level_01:.text:005337D0:60 100.00 func_L01_005359F0 src/pal/overlays/l01_dreadzone_station/L01_005359F0.c other - - 0.00 func_L01_005487C0 src/overlays/shared/L01_005487C0.c match func_L01_005487C0 level_01:.text:005487C0:28 100.00 @@ -7838,6 +7901,7 @@ func_L01_00584568 src/overlays/shared/L01_00584568.c match func_L01_00584568 lev func_L01_00585B78 src/overlays/shared/L01_00585B78.c match func_L01_00585B78 level_01:.text:00585B78:52 100.00 func_L01_00585C00 src/overlays/shared/L01_00585C00.c match func_L01_00585C00 level_01:.text:00585C00:160 100.00 func_L01_00585CA0 src/overlays/shared/L01_00585CA0.c match func_L01_00585CA0 level_01:.text:00585CA0:160 100.00 +func_L01_00585DB0 src/overlays/shared/L01_00585DB0.c match func_L01_00585DB0 level_01:.text:00585DB0:48 100.00 func_L01_00586138 src/overlays/shared/L01_00586138.c match func_L01_00586138 level_01:.text:00586138:40 100.00 func_L01_00586160 src/overlays/shared/L01_00586160.c match func_L01_00586160 level_01:.text:00586160:128 100.00 func_L01_005864A0 src/overlays/shared/L01_005864A0.c match func_L01_005864A0 level_01:.text:005864A0:40 100.00 @@ -7979,6 +8043,7 @@ func_L01_006B3D48 src/overlays/shared/L01_006B3D48.c match func_L01_006B3D48 lev func_L01_006B3DA0 src/overlays/shared/L01_006B3DA0.c match func_L01_006B3DA0 level_01:.text:006B3DA0:164 100.00 func_L01_006B4FC0 src/overlays/shared/L01_006B4FC0.c match func_L01_006B4FC0 level_01:.text:006B4FC0:92 100.00 func_L01_006B5258 src/overlays/shared/L01_006B5258.c match func_L01_006B5258 level_01:.text:006B5258:24 100.00 +func_L01_006B8CC0 src/pal/overlays/shared/L01_006B8CC0.c other - - 0.00 func_L01_006B9310 src/pal/overlays/shared/L01_006B9310.c other - - 0.00 func_L01_006BC990 src/overlays/l01_dreadzone_station/L01_006BC990.c match func_L01_006BC990 level_01:.text:006BC990:8 100.00 func_L01_006C1020 src/overlays/shared/L01_006C1020.c match func_L01_006C1020 level_01:.text:006C1020:24 100.00 @@ -8127,6 +8192,7 @@ func_L05_004DE4B0 src/pal/overlays/shared/L05_004DE4B0.c other - - 0.00 func_L05_004DF4D0 src/overlays/shared/L05_004DF4D0.c match func_L05_004DF4D0 level_05:.text:004DF4D0:44 100.00 func_L05_004DF500 src/overlays/shared/L05_004DF500.c match func_L05_004DF500 level_05:.text:004DF500:48 100.00 func_L05_004DF530 src/overlays/shared/L05_004DF530.c match func_L05_004DF530 level_05:.text:004DF530:76 100.00 +func_L05_004DF580 src/overlays/shared/L05_004DF580.c match func_L05_004DF580 level_05:.text:004DF580:88 100.00 func_L05_004DF5D8 src/overlays/shared/L05_004DF5D8.c match func_L05_004DF5D8 level_05:.text:004DF5D8:76 100.00 func_L05_004DF628 src/overlays/shared/L05_004DF628.c match func_L05_004DF628 level_05:.text:004DF628:116 100.00 func_L05_004DFC28 src/overlays/shared/L05_004DFC28.c match func_L05_004DFC28 level_05:.text:004DFC28:12 100.00 @@ -8149,6 +8215,7 @@ func_L05_0050C5C0 src/pal/overlays/l05_dark_cathedral/L05_0050C5C0.c other - - 0 func_L06_00401610 src/pal/overlays/l06_temple_of_shaar/L06_00401610.c other - - 0.00 func_L06_004016F0 src/overlays/shared/L06_004016F0.c match func_L06_004016F0 level_06:.text:004016F0:40 100.00 func_L06_00401718 src/overlays/shared/L06_00401718.c match func_L06_00401718 level_06:.text:00401718:48 100.00 +func_L06_00416C20 src/overlays/shared/L06_00416C20.c match func_L06_00416C20 level_06:.text:00416C20:256 100.00 func_L06_004999C0 src/overlays/shared/L06_004999C0.c match func_L06_004999C0 level_06:.text:004999C0:96 100.00 func_L06_0049AFC8 src/overlays/shared/L06_0049AFC8.c match func_L06_0049AFC8 level_06:.text:0049AFC8:32 100.00 func_L06_0049B380 src/overlays/shared/L06_0049B380.c match func_L06_0049B380 level_06:.text:0049B380:52 100.00 @@ -8172,9 +8239,11 @@ func_L06_004C8DC0 src/overlays/shared/L06_004C8DC0.c match func_L06_004C8DC0 lev func_L06_004C97B0 src/pal/overlays/shared/L06_004C97B0.c other - - 0.00 func_L06_004C9BC0 src/pal/overlays/shared/L06_004C9BC0.c other - - 0.00 func_L06_004C9C68 src/pal/overlays/shared/L06_004C9C68.c other - - 0.00 +func_L06_004DE3B8 src/overlays/shared/L06_004DE3B8.c match func_L06_004DE3B8 level_06:.text:004DE3B8:616 100.00 func_L06_004DFE80 src/pal/overlays/l06_temple_of_shaar/L06_004DFE80.c other - - 0.00 func_L06_00542FD8 src/pal/overlays/shared/L06_00542FD8.c other - - 0.00 func_L06_00565118 src/overlays/l06_temple_of_shaar/L06_00565118.c match func_L06_00565118 level_06:.text:00565118:84 100.00 +func_L06_00565628 src/overlays/shared/L06_00565628.c match func_L06_00565628 level_06:.text:00565628:112 100.00 func_L06_00569140 src/pal/overlays/l06_temple_of_shaar/L06_00569140.c other - - 0.00 func_L07_003CAFE8 src/overlays/shared/L07_003CAFE8.c match func_L07_003CAFE8 level_07:.text:003CAFE8:136 100.00 func_L07_0049A370 src/overlays/l07_valix_lighthouse/L07_0049A370.c match func_L07_0049A370 level_07:.text:0049A370:44 100.00 @@ -8208,6 +8277,7 @@ func_L10_004D53A8 src/overlays/l10_torval_ruins/L10_004D53A8.c match func_L10_00 func_L10_004D53C0 src/overlays/shared/L10_004D53C0.c match func_L10_004D53C0 level_10:.text:004D53C0:60 100.00 func_L10_004DCCE8 src/overlays/l10_torval_ruins/L10_004DCCE8.c match func_L10_004DCCE8 level_10:.text:004DCCE8:16 100.00 func_L10_004DE870 src/pal/overlays/l10_torval_ruins/L10_004DE870.c other - - 0.00 +func_L11_003FEB88 src/overlays/shared/L11_003FEB88.c match func_L11_003FEB88 level_11:.text:003FEB88:64 100.00 func_L11_003FF4B8 src/pal/overlays/l11_tempus_station/L11_003FF4B8.c other - - 0.00 func_L11_00408458 src/overlays/shared/L11_00408458.c match func_L11_00408458 level_11:.text:00408458:108 100.00 func_L11_00408DE8 src/pal/overlays/l11_tempus_station/L11_00408DE8.c other - - 0.00 @@ -8361,6 +8431,7 @@ func_L41_0043A428 src/overlays/l41_battledome_tower/L41_0043A428.c match func_L4 func_L41_0043A450 src/overlays/l41_battledome_tower/L41_0043A450.c match func_L41_0043A450 level_41:.text:0043A450:36 100.00 func_L41_0043A478 src/overlays/shared/L41_0043A478.c match func_L41_0043A478 level_41:.text:0043A478:300 100.00 func_L41_0043A608 src/overlays/shared/L41_0043A608.c match func_L41_0043A608 level_41:.text:0043A608:268 100.00 +func_L41_0043A858 src/overlays/shared/L41_0043A858.c match func_L41_0043A858 level_41:.text:0043A858:264 100.00 func_L41_0043B330 src/overlays/shared/L41_0043B330.c match func_L41_0043B330 level_41:.text:0043B330:132 100.00 func_L41_0043C088 src/overlays/shared/L41_0043C088.c match func_L41_0043C088 level_41:.text:0043C088:136 100.00 func_L41_00440C50 src/overlays/l41_battledome_tower/L41_00440C50.c match func_L41_00440C50 level_41:.text:00440C50:104 100.00 @@ -8439,6 +8510,7 @@ func_L41_00611458 src/overlays/l41_battledome_tower/L41_00611458.c match func_L4 func_L41_00611478 src/overlays/shared/L41_00611478.c match func_L41_00611478 level_41:.text:00611478:92 100.00 func_L41_0061D570 src/overlays/shared/L41_0061D570.c match func_L41_0061D570 level_41:.text:0061D570:56 100.00 func_L41_00625378 src/overlays/shared/L41_00625378.c match func_L41_00625378 level_41:.text:00625378:60 100.00 +func_L41_00625710 src/overlays/shared/L41_00625710.c match func_L41_00625710 level_41:.text:00625710:264 100.00 func_L41_00625818 src/overlays/shared/L41_00625818.c match func_L41_00625818 level_41:.text:00625818:52 100.00 func_L41_00625C70 src/overlays/shared/L41_00625C70.c match func_L41_00625C70 level_41:.text:00625C70:56 100.00 func_L41_00625CA8 src/overlays/shared/L41_00625CA8.c match func_L41_00625CA8 level_41:.text:00625CA8:24 100.00 @@ -8509,7 +8581,6 @@ func_004CB0F0 nonmatching/game/func_004CB0F0.c near func_004CB0F0 main:.text:004 func_004CBB98 nonmatching/game/func_004CBB98.c near func_004CBB98 main:.text:004CBB98:628 98.73 func_004CCDC0 nonmatching/game/func_004CCDC0.c near func_004CCDC0 main:.text:004CCDC0:176 93.75 func_004D2D30 nonmatching/game/func_004D2D30.c near func_004D2D30 main:.text:004D2D30:712 94.38 -func_004D3060 nonmatching/game/func_004D3060.c near func_004D3060 main:.text:004D3060:232 95.69 func_004D4E80 nonmatching/game/func_004D4E80.c near func_004D4E80 main:.text:004D4E80:828 96.38 func_004D7BC0 nonmatching/game/func_004D7BC0.c near func_004D7BC0 main:.text:004D7BC0:384 92.19 func_004D9408 nonmatching/game/func_004D9408.c near func_004D9408 main:.text:004D9408:236 97.46 @@ -8540,7 +8611,6 @@ func_0053D1D0 nonmatching/game/func_0053D1D0.c near func_0053D1D0 main:.text:005 func_00547380 nonmatching/game/func_00547380.c near func_00547380 main:.text:00547380:752 97.21 func_00547AC8 nonmatching/game/func_00547AC8.c near func_00547AC8 main:.text:00547AC8:64 95.31 func_00548280 nonmatching/game/func_00548280.c near func_00548280 main:.text:00548280:276 94.57 -func_0054ACE8 nonmatching/game/func_0054ACE8.c near func_0054ACE8 main:.text:0054ACE8:224 92.41 func_01E9D9F8 nonmatching/net/func_01E9D9F8.c near func_01E9D9F8 main:net.text:01E9D9F8:72 86.11 func_01E9DDD0 nonmatching/net/func_01E9DDD0.c near func_01E9DDD0 main:net.text:01E9DDD0:104 87.50 func_01E9E838 nonmatching/net/func_01E9E838.c near func_01E9E838 main:net.text:01E9E838:92 90.22 @@ -8626,7 +8696,6 @@ func_L00_00769F08 nonmatching/l00_multiplayer_menu/func_L00_00769F08.c near func func_L00_0076A2C8 nonmatching/l00_multiplayer_menu/func_L00_0076A2C8.c near func_L00_0076A2C8 level_00:.text:0076A2C8:908 99.45 func_L00_0076D158 nonmatching/l00_multiplayer_menu/func_L00_0076D158.c near func_L00_0076D158 level_00:.text:0076D158:120 0.00 func_L00_0076F770 nonmatching/l00_multiplayer_menu/func_L00_0076F770.c near func_L00_0076F770 level_00:.text:0076F770:204 99.02 -func_L00_00776698 nonmatching/l00_multiplayer_menu/func_L00_00776698.c near func_L00_00776698 level_00:.text:00776698:80 38.16 func_L01_003CF4F0 nonmatching/shared/func_L01_003CF4F0.c near func_L01_003CF4F0 level_01:.text:003CF4F0:144 91.67 func_L01_00432D58 nonmatching/shared/func_L01_00432D58.c near func_L01_00432D58 level_01:.text:00432D58:524 95.99 func_L01_004330A8 nonmatching/shared/func_L01_004330A8.c near func_L01_004330A8 level_01:.text:004330A8:524 91.41 diff --git a/nonmatching/README.md b/nonmatching/README.md index bbb35efe..b0c51f30 100644 --- a/nonmatching/README.md +++ b/nonmatching/README.md @@ -150,7 +150,6 @@ Best attempts at functions that do not match yet. They are not built; see | [`func_01EA7278`](net/func_01EA7278.c) | net | 80 | BYTES 41/76 | | [`func_01EB9880`](net/func_01EB9880.c) | net | 152 | BYTES 84/152 | | [`func_01EC27F8`](net/func_01EC27F8.c) | net | 72 | BYTES 40/72 | -| [`func_L00_00776698`](l00_multiplayer_menu/func_L00_00776698.c) | l00_multiplayer_menu | 80 | BYTES 47/76 | | [`func_01EACF60`](net/func_01EACF60.c) | net | 80 | BYTES 50/80 | | [`func_L00_006AA1F0`](shared/func_L00_006AA1F0.c) | shared | 272 | BYTES 177/272 | | [`func_L01_0063B1B8`](shared/func_L01_0063B1B8.c) | shared | 48 | BYTES 32/44 | diff --git a/nonmatching/game/func_004D3060.c b/nonmatching/game/func_004D3060.c deleted file mode 100644 index 69d416fe..00000000 --- a/nonmatching/game/func_004D3060.c +++ /dev/null @@ -1,51 +0,0 @@ -/* Not matching yet: BYTES 10/232 (tools/try_func.py func_004D3060 --diff). Not part of the build. */ -extern s32 func_00157F98(void); -extern void func_00158868(s32 arg0); -extern void func_0047EF38(void); -extern void func_00489458(s32 arg0); -extern void func_0048A060(s32 arg0, s32 arg1); -extern void func_0048FA80(void *o); -extern s32 func_0049B120(s32 index); -extern void *func_004D36E0(void); -extern s32 func_004E21D8(u32 index, s32 param_a, s32 param_b); -extern void func_00501498(s32 *arg0); -extern void func_00505AD8(s32 a); -extern s32 func_00505B20(void); -extern s32 func_00505C90(s32 arg0); -extern void *D_0021DDCC; -typedef struct { - s32 f0; - u8 pad4[0x4B]; - u8 f4F; -} Type1; -extern Type1 D_003D9BE0[]; -extern s32 D_002214D0; -u8 D_0021FB2C = 0; - -// Level/mode setup: reset several subsystems, store arg0 in D_003D9BE0 unless locked, and refresh. -void func_004D3060(s32 arg0) { - s32 saved; - - func_0047EF38(); - func_00158868(0xCD); - if (func_0049B120(0) != 0x18) { - func_00489458(0); - } - func_0048A060((s32)&D_002214D0, 1); - func_00157F98(); - if (D_003D9BE0[0].f4F == 0) { - D_003D9BE0[0].f0 = arg0; - } - saved = func_00505B20(); - func_00505AD8(4); - func_00501498(func_004D36E0()); - func_00505C90((s32)func_004D36E0()); - func_00505AD8(saved); - if (D_0021FB2C != 0) { - D_0021FB2C = 0; - func_004E21D8(-1, 0, 0); - } - if (D_0021DDCC != 0) { - func_0048FA80(D_0021DDCC); - } -} diff --git a/nonmatching/game/func_0054ACE8.c b/nonmatching/game/func_0054ACE8.c deleted file mode 100644 index 9957347f..00000000 --- a/nonmatching/game/func_0054ACE8.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Not matching yet: BYTES 17/224 (tools/try_func.py func_0054ACE8 --diff). Not part of the build. */ -#include "common.h" - -extern s32 func_0054AB98(s32 arg0, s32 *arg1); -s32 func_0054ADC8(s32 *arg0); -extern s32 D_00171B4C[]; -extern unsigned int D_00171C08[]; -extern u8 D_1F87F0[]; - -s32 func_0054ACE8(s32 *arg0) { - s32 buf; - s32 id; - s32 r; - s32 ret; - - if (func_0054ADC8(arg0) == 0) { - return 0; - } - ret = 0; - if (arg0[0] > D_00171B4C[0]) { - return ret; - } - if ((u32)(arg0[4] + 1) >= 2) { - r = func_0054AB98(arg0[4], &buf); - if (D_1F87F0[r * 12 + ((buf - 1) % 20) * 0x304 + 9] == 0) { - return 0; - } - } - id = arg0[5]; - if (id == -1 || (D_00171C08[(u32)id >> 5] & (1 << (id & 31)))) { - ret = 1; - } else { - ret = 0; - } - return ret; -} diff --git a/nonmatching/l00_multiplayer_menu/func_L00_00776698.c b/nonmatching/l00_multiplayer_menu/func_L00_00776698.c deleted file mode 100644 index c79bfe6d..00000000 --- a/nonmatching/l00_multiplayer_menu/func_L00_00776698.c +++ /dev/null @@ -1,18 +0,0 @@ -/* Not matching yet: BYTES 47/76 (tools/try_func.py func_L00_00776698 --diff). Not part of the build. */ -/* cflags: @ee296 -O2 -G0 */ -#include "common.h" - -// Reset the selection slots. -void func_L00_00776698(u8 *p) { - s32 i; - - *(s32 *)(p + 0x1E4) = 1; - *(u8 *)(p + 0x0) = 0; - *(u8 *)(p + 0x14C) = 0; - *(u8 *)(p + 0x1C0) = 0; - for (i = 0; i < 0x14; i++) { - *(s32 *)(p + 0x1E8 + i * 4) = -1; - *(s32 *)(p + 0x24C + i * 4) = 0; - *(u8 *)(p + 0x238 + i) = 0; - } -} diff --git a/progress/pal/report.json b/progress/pal/report.json index e140f811..d606911c 100644 --- a/progress/pal/report.json +++ b/progress/pal/report.json @@ -1,34 +1,34 @@ { "version": 2, "measures": { - "fuzzy_match_percent": 15.361944, + "fuzzy_match_percent": 15.549318, "total_code": "5810856", - "matched_code": "849596", - "matched_code_percent": 14.620841, + "matched_code": "860484", + "matched_code_percent": 14.808214, "total_functions": 18134, - "matched_functions": 8044, - "matched_functions_percent": 44.358663, - "complete_code": "475892", - "complete_code_percent": 8.189706, - "total_units": 4435, - "complete_units": 4377 + "matched_functions": 8086, + "matched_functions_percent": 44.590272, + "complete_code": "481196", + "complete_code_percent": 8.280983, + "total_units": 4458, + "complete_units": 4400 }, "categories": [ { "id": "core", "name": "Main program", "measures": { - "fuzzy_match_percent": 22.639085, + "fuzzy_match_percent": 22.879937, "total_code": "2202184", - "matched_code": "475892", - "matched_code_percent": 21.610002, + "matched_code": "481196", + "matched_code_percent": 21.850854, "total_functions": 8952, - "matched_functions": 4406, - "matched_functions_percent": 49.218052, - "complete_code": "475892", - "complete_code_percent": 21.610002, - "total_units": 4420, - "complete_units": 4377 + "matched_functions": 4429, + "matched_functions_percent": 49.474978, + "complete_code": "481196", + "complete_code_percent": 21.850854, + "total_units": 4443, + "complete_units": 4400 } }, { @@ -69,34 +69,34 @@ "id": "net_text", "name": "Network (net.text)", "measures": { - "fuzzy_match_percent": 11.943921, + "fuzzy_match_percent": 12.357993, "total_code": "465620", - "matched_code": "53548", - "matched_code_percent": 11.500365, + "matched_code": "55476", + "matched_code_percent": 11.914437, "total_functions": 2441, - "matched_functions": 936, - "matched_functions_percent": 38.344941, + "matched_functions": 946, + "matched_functions_percent": 38.754609, "complete_code": "0", "complete_code_percent": 0.0, - "total_units": 944, - "complete_units": 936 + "total_units": 954, + "complete_units": 946 } }, { "id": "menu_text", "name": "Resident menus (.text)", "measures": { - "fuzzy_match_percent": 24.257129, + "fuzzy_match_percent": 24.494533, "total_code": "1422048", - "matched_code": "325468", - "matched_code_percent": 22.887272, + "matched_code": "328844", + "matched_code_percent": 23.124677, "total_functions": 4797, - "matched_functions": 2547, - "matched_functions_percent": 53.095685, + "matched_functions": 2560, + "matched_functions_percent": 53.366688, "complete_code": "0", "complete_code_percent": 0.0, - "total_units": 2562, - "complete_units": 2540 + "total_units": 2575, + "complete_units": 2553 } }, { @@ -120,13 +120,13 @@ "id": "level_code", "name": "Level code", "measures": { - "fuzzy_match_percent": 10.921085, + "fuzzy_match_percent": 11.075824, "total_code": "3608672", - "matched_code": "373704", - "matched_code_percent": 10.355721, + "matched_code": "379288", + "matched_code_percent": 10.510459, "total_functions": 9182, - "matched_functions": 3638, - "matched_functions_percent": 39.620998, + "matched_functions": 3657, + "matched_functions_percent": 39.827924, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 15, @@ -137,13 +137,13 @@ "id": "common", "name": "Shared level code", "measures": { - "fuzzy_match_percent": 10.143552, + "fuzzy_match_percent": 10.312622, "total_code": "2008632", - "matched_code": "195480", - "matched_code_percent": 9.731997, + "matched_code": "198876", + "matched_code_percent": 9.901067, "total_functions": 5089, - "matched_functions": 2108, - "matched_functions_percent": 41.422676, + "matched_functions": 2116, + "matched_functions_percent": 41.579878, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -154,13 +154,13 @@ "id": "levels", "name": "Level-specific code", "measures": { - "fuzzy_match_percent": 11.897172, + "fuzzy_match_percent": 12.033919, "total_code": "1600040", - "matched_code": "178224", - "matched_code_percent": 11.138722, + "matched_code": "180412", + "matched_code_percent": 11.275468, "total_functions": 4093, - "matched_functions": 1530, - "matched_functions_percent": 37.380894, + "matched_functions": 1541, + "matched_functions_percent": 37.649646, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 14, @@ -171,13 +171,13 @@ "id": "level_00", "name": "Level 00: Multiplayer Menu", "measures": { - "fuzzy_match_percent": 15.335426, + "fuzzy_match_percent": 15.484171, "total_code": "943896", - "matched_code": "135108", - "matched_code_percent": 14.313865, + "matched_code": "136512", + "matched_code_percent": 14.46261, "total_functions": 2834, - "matched_functions": 1090, - "matched_functions_percent": 38.461538, + "matched_functions": 1098, + "matched_functions_percent": 38.743825, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -256,13 +256,13 @@ "id": "level_06", "name": "Level 06: Temple Of Shaar (and 26)", "measures": { - "fuzzy_match_percent": 20.266209, + "fuzzy_match_percent": 23.014169, "total_code": "9316", - "matched_code": "1888", - "matched_code_percent": 20.266209, + "matched_code": "2144", + "matched_code_percent": 23.014169, "total_functions": 30, - "matched_functions": 12, - "matched_functions_percent": 40.0, + "matched_functions": 13, + "matched_functions_percent": 43.333333, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -392,13 +392,13 @@ "id": "level_41", "name": "Level 41: Battledome Tower (all 22 multiplayer maps)", "measures": { - "fuzzy_match_percent": 13.326235, + "fuzzy_match_percent": 13.702465, "total_code": "140340", - "matched_code": "16304", - "matched_code_percent": 11.6175, + "matched_code": "16832", + "matched_code_percent": 11.99373, "total_functions": 374, - "matched_functions": 165, - "matched_functions_percent": 44.117647, + "matched_functions": 167, + "matched_functions_percent": 44.652406, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -5771,6 +5771,41 @@ ] } }, + { + "name": "core/0012AA70", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "236", + "matched_code": "236", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "236", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0012AA70", + "size": "236", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1223280" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/0012AA70.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/0012AF88", "measures": { @@ -6366,6 +6401,41 @@ ] } }, + { + "name": "core/0012CA90", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "144", + "matched_code": "144", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "144", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0012CA90", + "size": "144", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1231504" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/0012CA90.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/0012CBC0", "measures": { @@ -7871,6 +7941,41 @@ ] } }, + { + "name": "core/001373B0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "152", + "matched_code": "152", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "152", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_001373B0", + "size": "152", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1274800" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/001373B0.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/00137448", "measures": { @@ -8046,6 +8151,76 @@ ] } }, + { + "name": "core/00137FB0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "152", + "matched_code": "152", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "152", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00137FB0", + "size": "152", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1277872" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/00137FB0.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, + { + "name": "core/00138100", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "180", + "matched_code": "180", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "180", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00138100", + "size": "180", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1278208" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/00138100.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/001384E0", "measures": { @@ -8431,6 +8606,41 @@ ] } }, + { + "name": "core/0013A0F0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "88", + "matched_code": "88", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "88", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0013A0F0", + "size": "88", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1286384" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/0013A0F0.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/0013A160", "measures": { @@ -8886,6 +9096,41 @@ ] } }, + { + "name": "core/0013B460", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "172", + "matched_code": "172", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "172", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0013B460", + "size": "172", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1291360" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/0013B460.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/0013B8C8", "measures": { @@ -11056,6 +11301,41 @@ ] } }, + { + "name": "core/001464C0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "16", + "matched_code": "16", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "16", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_001464C0", + "size": "16", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1336512" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/001464C0.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/001464D0", "measures": { @@ -12771,6 +13051,41 @@ ] } }, + { + "name": "core/0014C168", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "336", + "matched_code": "336", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "336", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0014C168", + "size": "336", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1360232" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/0014C168.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/0014C368", "measures": { @@ -12806,6 +13121,41 @@ ] } }, + { + "name": "core/0014CCA0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "340", + "matched_code": "340", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "340", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0014CCA0", + "size": "340", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1363104" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/0014CCA0.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/0014D010", "measures": { @@ -13401,6 +13751,41 @@ ] } }, + { + "name": "core/001501B0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "148", + "matched_code": "148", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "148", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_001501B0", + "size": "148", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1376688" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/001501B0.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/001502F8", "measures": { @@ -28880,6 +29265,41 @@ ] } }, + { + "name": "core/00160FD8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "320", + "matched_code": "320", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "320", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00160FE8", + "size": "320", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1445864" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/00160FD8.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/00161118", "measures": { @@ -45786,6 +46206,41 @@ ] } }, + { + "name": "game/00481100", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "320", + "matched_code": "320", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "320", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00481A48", + "size": "320", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4725320" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00481100.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00481240", "measures": { @@ -46031,6 +46486,41 @@ ] } }, + { + "name": "game/00484F68", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "560", + "matched_code": "560", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "560", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00485948", + "size": "560", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4741448" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00484F68.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00486188", "measures": { @@ -47886,6 +48376,41 @@ ] } }, + { + "name": "game/0048D228", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "264", + "matched_code": "264", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "264", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048DCE0", + "size": "264", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4775136" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048D228.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0048D758", "measures": { @@ -54326,6 +54851,41 @@ ] } }, + { + "name": "game/0049B960", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "336", + "matched_code": "336", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "336", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0049C698", + "size": "336", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4834968" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0049B960.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0049C158", "measures": { @@ -79115,6 +79675,41 @@ ] } }, + { + "name": "game/004D3060", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "232", + "matched_code": "232", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "232", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004D3F70", + "size": "232", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5062512" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004D3060.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004D3148", "measures": { @@ -86010,6 +86605,41 @@ ] } }, + { + "name": "game/004E7990", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "216", + "matched_code": "216", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "216", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004E88B8", + "size": "216", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5146808" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004E7990.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004E7A70", "measures": { @@ -91925,6 +92555,41 @@ ] } }, + { + "name": "game/004FAFE8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "552", + "matched_code": "552", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "552", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004FC068", + "size": "552", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5226600" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004FAFE8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004FB940", "measures": { @@ -97814,6 +98479,41 @@ ] } }, + { + "name": "game/00505F98", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "200", + "matched_code": "200", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "200", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00507030", + "size": "200", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5271600" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00505F98.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00506060", "measures": { @@ -97954,6 +98654,41 @@ ] } }, + { + "name": "game/00506508", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "200", + "matched_code": "200", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "200", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_005075A0", + "size": "200", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5272992" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00506508.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/005065D8", "measures": { @@ -103624,6 +104359,41 @@ ] } }, + { + "name": "game/0050C638", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "264", + "matched_code": "264", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "264", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0050D6D0", + "size": "264", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5297872" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0050C638.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0050C740", "measures": { @@ -106599,6 +107369,41 @@ ] } }, + { + "name": "game/00512650", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "248", + "matched_code": "248", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "248", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00513728", + "size": "248", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5322536" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00512650.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00512748", "measures": { @@ -108244,6 +109049,41 @@ ] } }, + { + "name": "game/00525CB0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "384", + "matched_code": "384", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "384", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00526EA8", + "size": "384", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5402280" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00525CB0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/005263E0", "measures": { @@ -111534,6 +112374,41 @@ ] } }, + { + "name": "game/0054A4A0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "224", + "matched_code": "224", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "224", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0054BA08", + "size": "224", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5552648" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0054A4A0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0054A580", "measures": { @@ -112304,6 +113179,41 @@ ] } }, + { + "name": "game/0054ACE8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "224", + "matched_code": "224", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "224", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0054C250", + "size": "224", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5554768" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0054ACE8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0054AFB8", "measures": { @@ -114829,6 +115739,41 @@ ] } }, + { + "name": "net/01EA4570", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "48", + "matched_code": "48", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "48", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01EA4570", + "size": "48", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32130416" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01EA4570.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01EA4668", "measures": { @@ -117524,6 +118469,41 @@ ] } }, + { + "name": "net/01EAEBE0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "268", + "matched_code": "268", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "268", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01EAEBE0", + "size": "268", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32173024" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01EAEBE0.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01EAECF0", "measures": { @@ -117909,6 +118889,41 @@ ] } }, + { + "name": "net/01EB36A0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "260", + "matched_code": "260", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "260", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01EB36A0", + "size": "260", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32192160" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01EB36A0.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01EB3C70", "measures": { @@ -118259,6 +119274,41 @@ ] } }, + { + "name": "net/01EB5FB0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "260", + "matched_code": "260", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "260", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01EB5FB0", + "size": "260", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32202672" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01EB5FB0.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01EB60B8", "measures": { @@ -123019,6 +124069,41 @@ ] } }, + { + "name": "net/01ED66B0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "104", + "matched_code": "104", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "104", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01ED66B0", + "size": "104", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32335536" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01ED66B0.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01ED68A0", "measures": { @@ -124629,6 +125714,41 @@ ] } }, + { + "name": "net/01EDA668", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "260", + "matched_code": "260", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "260", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01EDA668", + "size": "260", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32351848" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01EDA668.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01EDA770", "measures": { @@ -133694,6 +134814,41 @@ ] } }, + { + "name": "net/01EEE13C", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "96", + "matched_code": "96", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "96", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01EEE13C", + "size": "96", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32432444" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01EEE13C.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01EEE19C", "measures": { @@ -135584,6 +136739,41 @@ ] } }, + { + "name": "net/01EF2CC4", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "76", + "matched_code": "76", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "76", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01EF2CC4", + "size": "76", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32451780" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01EF2CC4.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01EF2DB8", "measures": { @@ -137719,6 +138909,41 @@ ] } }, + { + "name": "net/01EF7830", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "256", + "matched_code": "256", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "256", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01EF7830", + "size": "256", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32471088" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01EF7830.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01EF7930", "measures": { @@ -141079,6 +142304,41 @@ ] } }, + { + "name": "net/01F047A0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "264", + "matched_code": "264", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "264", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01F047A0", + "size": "264", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32524192" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01F047A0.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01F048A8", "measures": { @@ -141919,6 +143179,41 @@ ] } }, + { + "name": "net/01F07100", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "84", + "matched_code": "84", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "84", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01F07100", + "size": "84", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32534784" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01F07100.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01F07154", "measures": { @@ -145664,41 +146959,6 @@ ] } }, - { - "name": "pal/core/0012AA70", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "236", - "matched_code": "236", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "236", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0012AA70", - "size": "236", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "1223280" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/core/0012AA70.c", - "progress_categories": [ - "core", - "core_text" - ] - } - }, { "name": "pal/core/0012AB60", "measures": { @@ -145734,146 +146994,6 @@ ] } }, - { - "name": "pal/core/0012CA90", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "144", - "matched_code": "144", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "144", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0012CA90", - "size": "144", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "1231504" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/core/0012CA90.c", - "progress_categories": [ - "core", - "core_text" - ] - } - }, - { - "name": "pal/core/001373B0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "152", - "matched_code": "152", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "152", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_001373B0", - "size": "152", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "1274800" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/core/001373B0.c", - "progress_categories": [ - "core", - "core_text" - ] - } - }, - { - "name": "pal/core/00137FB0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "152", - "matched_code": "152", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "152", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00137FB0", - "size": "152", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "1277872" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/core/00137FB0.c", - "progress_categories": [ - "core", - "core_text" - ] - } - }, - { - "name": "pal/core/00138100", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "180", - "matched_code": "180", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "180", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00138100", - "size": "180", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "1278208" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/core/00138100.c", - "progress_categories": [ - "core", - "core_text" - ] - } - }, { "name": "pal/core/00139DA0", "measures": { @@ -145909,41 +147029,6 @@ ] } }, - { - "name": "pal/core/0013A0F0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "88", - "matched_code": "88", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "88", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0013A0F0", - "size": "88", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "1286384" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/core/0013A0F0.c", - "progress_categories": [ - "core", - "core_text" - ] - } - }, { "name": "pal/core/0013A2C0", "measures": { @@ -146154,41 +147239,6 @@ ] } }, - { - "name": "pal/core/0013B460", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "172", - "matched_code": "172", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "172", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0013B460", - "size": "172", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "1291360" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/core/0013B460.c", - "progress_categories": [ - "core", - "core_text" - ] - } - }, { "name": "pal/core/00141518", "measures": { @@ -146260,42 +147310,7 @@ } }, { - "name": "pal/core/001464C0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "16", - "matched_code": "16", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "16", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_001464C0", - "size": "16", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "1336512" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/core/001464C0.c", - "progress_categories": [ - "core", - "core_text" - ] - } - }, - { - "name": "pal/core/0014C168", + "name": "pal/core/0014D450", "measures": { "fuzzy_match_percent": 100.0, "total_code": "336", @@ -146311,18 +147326,18 @@ }, "functions": [ { - "name": "func_0014C168", + "name": "func_0014D450", "size": "336", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "1360232" + "virtual_address": "1365072" } } ], "metadata": { "complete": true, - "source_path": "src/pal/core/0014C168.c", + "source_path": "src/pal/core/0014D450.c", "progress_categories": [ "core", "core_text" @@ -146330,34 +147345,34 @@ } }, { - "name": "pal/core/0014CCA0", + "name": "pal/core/0014E3B8", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "340", - "matched_code": "340", + "total_code": "224", + "matched_code": "224", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "340", + "complete_code": "224", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0014CCA0", - "size": "340", + "name": "func_0014E3B8", + "size": "224", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "1363104" + "virtual_address": "1369016" } } ], "metadata": { "complete": true, - "source_path": "src/pal/core/0014CCA0.c", + "source_path": "src/pal/core/0014E3B8.c", "progress_categories": [ "core", "core_text" @@ -146365,34 +147380,34 @@ } }, { - "name": "pal/core/0014D450", + "name": "pal/core/0014E498", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "336", - "matched_code": "336", + "total_code": "260", + "matched_code": "260", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "336", + "complete_code": "260", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0014D450", - "size": "336", + "name": "func_0014E498", + "size": "260", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "1365072" + "virtual_address": "1369240" } } ], "metadata": { "complete": true, - "source_path": "src/pal/core/0014D450.c", + "source_path": "src/pal/core/0014E498.c", "progress_categories": [ "core", "core_text" @@ -146400,34 +147415,34 @@ } }, { - "name": "pal/core/0014E3B8", + "name": "pal/core/001514F0", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "224", - "matched_code": "224", + "total_code": "488", + "matched_code": "488", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "224", + "complete_code": "488", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0014E3B8", - "size": "224", + "name": "func_001514F0", + "size": "488", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "1369016" + "virtual_address": "1381616" } } ], "metadata": { "complete": true, - "source_path": "src/pal/core/0014E3B8.c", + "source_path": "src/pal/core/001514F0.c", "progress_categories": [ "core", "core_text" @@ -146435,34 +147450,34 @@ } }, { - "name": "pal/core/0014E498", + "name": "pal/core/00159268", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "260", - "matched_code": "260", + "total_code": "112", + "matched_code": "112", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "260", + "complete_code": "112", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0014E498", - "size": "260", + "name": "func_00159268", + "size": "112", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "1369240" + "virtual_address": "1413736" } } ], "metadata": { "complete": true, - "source_path": "src/pal/core/0014E498.c", + "source_path": "src/pal/core/00159268.c", "progress_categories": [ "core", "core_text" @@ -146470,34 +147485,34 @@ } }, { - "name": "pal/core/001501B0", + "name": "pal/core/00159718", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "148", - "matched_code": "148", + "total_code": "36", + "matched_code": "36", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "148", + "complete_code": "36", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_001501B0", - "size": "148", + "name": "func_00159718", + "size": "36", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "1376688" + "virtual_address": "1414936" } } ], "metadata": { "complete": true, - "source_path": "src/pal/core/001501B0.c", + "source_path": "src/pal/core/00159718.c", "progress_categories": [ "core", "core_text" @@ -146505,34 +147520,34 @@ } }, { - "name": "pal/core/001514F0", + "name": "pal/core/00159748", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "488", - "matched_code": "488", + "total_code": "60", + "matched_code": "60", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "488", + "complete_code": "60", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_001514F0", - "size": "488", + "name": "func_00159748", + "size": "60", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "1381616" + "virtual_address": "1414984" } } ], "metadata": { "complete": true, - "source_path": "src/pal/core/001514F0.c", + "source_path": "src/pal/core/00159748.c", "progress_categories": [ "core", "core_text" @@ -146540,34 +147555,34 @@ } }, { - "name": "pal/core/00159268", + "name": "pal/core/0015ADA0", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "112", - "matched_code": "112", + "total_code": "36", + "matched_code": "36", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "112", + "complete_code": "36", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_00159268", - "size": "112", + "name": "func_0015ADA0", + "size": "36", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "1413736" + "virtual_address": "1420704" } } ], "metadata": { "complete": true, - "source_path": "src/pal/core/00159268.c", + "source_path": "src/pal/core/0015ADA0.c", "progress_categories": [ "core", "core_text" @@ -146575,34 +147590,34 @@ } }, { - "name": "pal/core/00159718", + "name": "pal/core/0015DB98", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "36", - "matched_code": "36", + "total_code": "28", + "matched_code": "28", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "36", + "complete_code": "28", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_00159718", - "size": "36", + "name": "func_0015DB98", + "size": "28", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "1414936" + "virtual_address": "1432472" } } ], "metadata": { "complete": true, - "source_path": "src/pal/core/00159718.c", + "source_path": "src/pal/core/0015DB98.c", "progress_categories": [ "core", "core_text" @@ -146610,42 +147625,42 @@ } }, { - "name": "pal/core/00159748", + "name": "pal/frontbin/004A2A40", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "60", - "matched_code": "60", + "total_code": "496", + "matched_code": "496", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "60", + "complete_code": "496", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_00159748", - "size": "60", + "name": "func_FB_004A2A40", + "size": "496", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "1414984" + "virtual_address": "4860480" } } ], "metadata": { "complete": true, - "source_path": "src/pal/core/00159748.c", + "source_path": "src/pal/frontbin/004A2A40.c", "progress_categories": [ "core", - "core_text" + "frontbin" ] } }, { - "name": "pal/core/0015ADA0", + "name": "pal/game/003FE588", "measures": { "fuzzy_match_percent": 100.0, "total_code": "36", @@ -146661,158 +147676,158 @@ }, "functions": [ { - "name": "func_0015ADA0", + "name": "func_003FE588", "size": "36", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "1420704" + "virtual_address": "4187528" } } ], "metadata": { "complete": true, - "source_path": "src/pal/core/0015ADA0.c", + "source_path": "src/pal/game/003FE588.c", "progress_categories": [ "core", - "core_text" + "menu_text" ] } }, { - "name": "pal/core/0015DB98", + "name": "pal/game/00405D38", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "28", - "matched_code": "28", + "total_code": "104", + "matched_code": "104", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "28", + "complete_code": "104", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0015DB98", - "size": "28", + "name": "func_00405D38", + "size": "104", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "1432472" + "virtual_address": "4218168" } } ], "metadata": { "complete": true, - "source_path": "src/pal/core/0015DB98.c", + "source_path": "src/pal/game/00405D38.c", "progress_categories": [ "core", - "core_text" + "menu_text" ] } }, { - "name": "pal/core/00160FE8", + "name": "pal/game/004071B0", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "320", - "matched_code": "320", + "total_code": "60", + "matched_code": "60", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "320", + "complete_code": "60", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_00160FE8", - "size": "320", + "name": "func_004071B0", + "size": "60", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "1445864" + "virtual_address": "4223408" } } ], "metadata": { "complete": true, - "source_path": "src/pal/core/00160FE8.c", + "source_path": "src/pal/game/004071B0.c", "progress_categories": [ "core", - "core_text" + "menu_text" ] } }, { - "name": "pal/frontbin/004A2A40", + "name": "pal/game/00407408", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "496", - "matched_code": "496", + "total_code": "60", + "matched_code": "60", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "496", + "complete_code": "60", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_FB_004A2A40", - "size": "496", + "name": "func_00407408", + "size": "60", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4860480" + "virtual_address": "4224008" } } ], "metadata": { "complete": true, - "source_path": "src/pal/frontbin/004A2A40.c", + "source_path": "src/pal/game/00407408.c", "progress_categories": [ "core", - "frontbin" + "menu_text" ] } }, { - "name": "pal/game/003FE588", + "name": "pal/game/004074A8", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "36", - "matched_code": "36", + "total_code": "60", + "matched_code": "60", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "36", + "complete_code": "60", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_003FE588", - "size": "36", + "name": "func_004074A8", + "size": "60", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4187528" + "virtual_address": "4224168" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/003FE588.c", + "source_path": "src/pal/game/004074A8.c", "progress_categories": [ "core", "menu_text" @@ -148789,69 +149804,34 @@ } }, { - "name": "pal/game/00481A48", + "name": "pal/game/00484F88", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "320", - "matched_code": "320", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "320", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00481A48", - "size": "320", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4725320" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00481A48.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/00485948", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "560", - "matched_code": "560", + "total_code": "200", + "matched_code": "200", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "560", + "complete_code": "200", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_00485948", - "size": "560", + "name": "func_00484F88", + "size": "200", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4741448" + "virtual_address": "4738952" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/00485948.c", + "source_path": "src/pal/game/00484F88.c", "progress_categories": [ "core", "menu_text" @@ -149208,41 +150188,6 @@ ] } }, - { - "name": "pal/game/0048DCE0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "264", - "matched_code": "264", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "264", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0048DCE0", - "size": "264", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4775136" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/0048DCE0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, { "name": "pal/game/004936E0", "measures": { @@ -149453,41 +150398,6 @@ ] } }, - { - "name": "pal/game/0049C698", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "336", - "matched_code": "336", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "336", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0049C698", - "size": "336", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4834968" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/0049C698.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, { "name": "pal/game/0049EE78", "measures": { @@ -150258,6 +151168,41 @@ ] } }, + { + "name": "pal/game/004AA180", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "164", + "matched_code": "164", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "164", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004AA180", + "size": "164", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4891008" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/pal/game/004AA180.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "pal/game/004AAA48", "measures": { @@ -150433,6 +151378,41 @@ ] } }, + { + "name": "pal/game/004AF7A0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "744", + "matched_code": "744", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "744", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004AF7A0", + "size": "744", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4913056" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/pal/game/004AF7A0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "pal/game/004B0398", "measures": { @@ -151168,41 +152148,6 @@ ] } }, - { - "name": "pal/game/004D3F70", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "232", - "matched_code": "232", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "232", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004D3F70", - "size": "232", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5062512" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004D3F70.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, { "name": "pal/game/004D5B70", "measures": { @@ -151693,41 +152638,6 @@ ] } }, - { - "name": "pal/game/004E88B8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "216", - "matched_code": "216", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "216", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004E88B8", - "size": "216", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5146808" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004E88B8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, { "name": "pal/game/004EF188", "measures": { @@ -152288,41 +153198,6 @@ ] } }, - { - "name": "pal/game/004FC068", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "552", - "matched_code": "552", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "552", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004FC068", - "size": "552", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5226600" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004FC068.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, { "name": "pal/game/004FD1D0", "measures": { @@ -152463,6 +153338,41 @@ ] } }, + { + "name": "pal/game/00505148", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "376", + "matched_code": "376", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "376", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00505148", + "size": "376", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5263688" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/pal/game/00505148.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "pal/game/005055E8", "measures": { @@ -152674,69 +153584,34 @@ } }, { - "name": "pal/game/00507030", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "200", - "matched_code": "200", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "200", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00507030", - "size": "200", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5271600" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00507030.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/005075A0", + "name": "pal/game/00509248", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "200", - "matched_code": "200", + "total_code": "376", + "matched_code": "376", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "200", + "complete_code": "376", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_005075A0", - "size": "200", + "name": "func_00509248", + "size": "376", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "5272992" + "virtual_address": "5280328" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/005075A0.c", + "source_path": "src/pal/game/00509248.c", "progress_categories": [ "core", "menu_text" @@ -152988,41 +153863,6 @@ ] } }, - { - "name": "pal/game/00513728", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "248", - "matched_code": "248", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "248", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00513728", - "size": "248", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5322536" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00513728.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, { "name": "pal/game/00513DE0", "measures": { @@ -153198,6 +154038,41 @@ ] } }, + { + "name": "pal/game/00522238", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "56", + "matched_code": "56", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "56", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00522238", + "size": "56", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5382712" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/pal/game/00522238.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "pal/game/00522518", "measures": { @@ -153233,6 +154108,41 @@ ] } }, + { + "name": "pal/game/005230A8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "612", + "matched_code": "612", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "612", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_005230A8", + "size": "612", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5386408" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/pal/game/005230A8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "pal/game/00523578", "measures": { @@ -153269,34 +154179,34 @@ } }, { - "name": "pal/game/00523E68", + "name": "pal/game/005237C8", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "140", - "matched_code": "140", + "total_code": "300", + "matched_code": "300", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "140", + "complete_code": "300", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_00523E68", - "size": "140", + "name": "func_005237C8", + "size": "300", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "5389928" + "virtual_address": "5388232" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/00523E68.c", + "source_path": "src/pal/game/005237C8.c", "progress_categories": [ "core", "menu_text" @@ -153304,34 +154214,34 @@ } }, { - "name": "pal/game/00526EA8", + "name": "pal/game/00523E68", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "384", - "matched_code": "384", + "total_code": "140", + "matched_code": "140", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "384", + "complete_code": "140", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_00526EA8", - "size": "384", + "name": "func_00523E68", + "size": "140", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "5402280" + "virtual_address": "5389928" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/00526EA8.c", + "source_path": "src/pal/game/00523E68.c", "progress_categories": [ "core", "menu_text" @@ -153513,41 +154423,6 @@ ] } }, - { - "name": "pal/game/0054BA08", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "224", - "matched_code": "224", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "224", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0054BA08", - "size": "224", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5552648" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/0054BA08.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, { "name": "pal/game/0054BCF0", "measures": { @@ -153583,41 +154458,6 @@ ] } }, - { - "name": "pal/game/0054C250", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "224", - "matched_code": "224", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "224", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0054C250", - "size": "224", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5554768" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/0054C250.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, { "name": "pal/game/0054C330", "measures": { @@ -153793,41 +154633,6 @@ ] } }, - { - "name": "pal/net/01EA4570", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "48", - "matched_code": "48", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "48", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_01EA4570", - "size": "48", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "32130416" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/net/01EA4570.c", - "progress_categories": [ - "core", - "net_text" - ] - } - }, { "name": "pal/net/01EEEDA0", "measures": { @@ -155101,10 +155906,10 @@ "name": "main/.text/0040xxxx", "measures": { "fuzzy_match_percent": 0.0, - "total_code": "60320", + "total_code": "60036", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 110, + "total_functions": 106, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -155311,15 +156116,6 @@ "virtual_address": "4218104" } }, - { - "name": "func_00405D38", - "size": "104", - "fuzzy_match_percent": 0.0, - "address": "19684", - "metadata": { - "virtual_address": "4218168" - } - }, { "name": "func_00405DA0", "size": "2208", @@ -155365,15 +156161,6 @@ "virtual_address": "4223248" } }, - { - "name": "func_004071B0", - "size": "60", - "fuzzy_match_percent": 0.0, - "address": "24924", - "metadata": { - "virtual_address": "4223408" - } - }, { "name": "func_00407220", "size": "320", @@ -155392,24 +156179,6 @@ "virtual_address": "4223840" } }, - { - "name": "func_00407408", - "size": "60", - "fuzzy_match_percent": 0.0, - "address": "25524", - "metadata": { - "virtual_address": "4224008" - } - }, - { - "name": "func_004074A8", - "size": "60", - "fuzzy_match_percent": 0.0, - "address": "25684", - "metadata": { - "virtual_address": "4224168" - } - }, { "name": "func_004074F8", "size": "464", @@ -164128,11 +164897,11 @@ { "name": "main/.text/0048xxxx", "measures": { - "fuzzy_match_percent": 0.551211, - "total_code": "53336", + "fuzzy_match_percent": 0.553286, + "total_code": "53136", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 86, + "total_functions": 85, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -164294,15 +165063,6 @@ "virtual_address": "4738288" } }, - { - "name": "func_00484F88", - "size": "200", - "fuzzy_match_percent": 0.0, - "address": "20184", - "metadata": { - "virtual_address": "4738952" - } - }, { "name": "func_004850F0", "size": "2136", @@ -166313,11 +167073,11 @@ { "name": "main/.text/004Axxxx", "measures": { - "fuzzy_match_percent": 5.935689, - "total_code": "34268", + "fuzzy_match_percent": 6.097248, + "total_code": "33360", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 70, + "total_functions": 68, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -166695,15 +167455,6 @@ "virtual_address": "4890208" } }, - { - "name": "func_004AA180", - "size": "164", - "fuzzy_match_percent": 0.0, - "address": "39000", - "metadata": { - "virtual_address": "4891008" - } - }, { "name": "func_004AA998", "size": "12", @@ -166938,15 +167689,6 @@ "virtual_address": "4912816" } }, - { - "name": "func_004AF7A0", - "size": "744", - "fuzzy_match_percent": 0.0, - "address": "61048", - "metadata": { - "virtual_address": "4913056" - } - }, { "name": "func_004AFD10", "size": "744", @@ -171293,11 +172035,11 @@ { "name": "main/.text/0050xxxx", "measures": { - "fuzzy_match_percent": 5.453597, - "total_code": "20720", + "fuzzy_match_percent": 5.734801, + "total_code": "19704", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 92, + "total_functions": 89, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -171702,15 +172444,6 @@ "virtual_address": "5263216" } }, - { - "name": "func_00505148", - "size": "376", - "fuzzy_match_percent": 0.0, - "address": "20552", - "metadata": { - "virtual_address": "5263688" - } - }, { "name": "func_005053C8", "size": "4", @@ -171936,15 +172669,6 @@ "virtual_address": "5278176" } }, - { - "name": "func_00509248", - "size": "376", - "fuzzy_match_percent": 0.0, - "address": "37192", - "metadata": { - "virtual_address": "5280328" - } - }, { "name": "func_0050CE98", "size": "140", @@ -171981,15 +172705,6 @@ "virtual_address": "5297656" } }, - { - "name": "func_0050D6D0", - "size": "264", - "fuzzy_match_percent": 0.0, - "address": "54736", - "metadata": { - "virtual_address": "5297872" - } - }, { "name": "func_0050D7F8", "size": "4", @@ -173136,11 +173851,11 @@ { "name": "main/.text/0052xxxx", "measures": { - "fuzzy_match_percent": 2.266273, - "total_code": "60804", + "fuzzy_match_percent": 2.302936, + "total_code": "59836", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 77, + "total_functions": 74, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -173248,15 +173963,6 @@ "virtual_address": "5382696" } }, - { - "name": "func_00522238", - "size": "56", - "fuzzy_match_percent": 0.0, - "address": "8392", - "metadata": { - "virtual_address": "5382712" - } - }, { "name": "func_00522410", "size": "156", @@ -173293,15 +173999,6 @@ "virtual_address": "5384664" } }, - { - "name": "func_005230A8", - "size": "612", - "fuzzy_match_percent": 0.0, - "address": "12088", - "metadata": { - "virtual_address": "5386408" - } - }, { "name": "func_00523310", "size": "616", @@ -173320,15 +174017,6 @@ "virtual_address": "5387824" } }, - { - "name": "func_005237C8", - "size": "300", - "fuzzy_match_percent": 0.0, - "address": "13912", - "metadata": { - "virtual_address": "5388232" - } - }, { "name": "func_005238F8", "size": "360", @@ -183118,11 +183806,11 @@ { "name": "main/net.text/01EAxxxx", "measures": { - "fuzzy_match_percent": 0.48669, - "total_code": "63252", + "fuzzy_match_percent": 0.488761, + "total_code": "62984", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 255, + "total_functions": 254, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -185408,15 +186096,6 @@ "virtual_address": "32172616" } }, - { - "name": "func_01EAEBE0", - "size": "268", - "fuzzy_match_percent": 0.0, - "address": "60312", - "metadata": { - "virtual_address": "32173024" - } - }, { "name": "func_01EAED20", "size": "8008", @@ -185439,11 +186118,11 @@ { "name": "main/net.text/01EBxxxx", "measures": { - "fuzzy_match_percent": 0.71551, - "total_code": "60116", + "fuzzy_match_percent": 0.721753, + "total_code": "59596", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 193, + "total_functions": 191, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -185713,15 +186392,6 @@ "virtual_address": "32192040" } }, - { - "name": "func_01EB36A0", - "size": "260", - "fuzzy_match_percent": 0.0, - "address": "10800", - "metadata": { - "virtual_address": "32192160" - } - }, { "name": "func_01EB37A8", "size": "144", @@ -186091,15 +186761,6 @@ "virtual_address": "32202400" } }, - { - "name": "func_01EB5FB0", - "size": "260", - "fuzzy_match_percent": 0.0, - "address": "21312", - "metadata": { - "virtual_address": "32202672" - } - }, { "name": "func_01EB6100", "size": "100", @@ -188947,11 +189608,11 @@ { "name": "main/net.text/01EDxxxx", "measures": { - "fuzzy_match_percent": 0.544867, - "total_code": "48452", + "fuzzy_match_percent": 0.548992, + "total_code": "48088", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 190, + "total_functions": 188, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -189671,15 +190332,6 @@ "virtual_address": "32334968" } }, - { - "name": "func_01ED66B0", - "size": "104", - "fuzzy_match_percent": 0.0, - "address": "26264", - "metadata": { - "virtual_address": "32335536" - } - }, { "name": "func_01ED6718", "size": "388", @@ -190256,15 +190908,6 @@ "virtual_address": "32351680" } }, - { - "name": "func_01EDA668", - "size": "260", - "fuzzy_match_percent": 0.0, - "address": "42576", - "metadata": { - "virtual_address": "32351848" - } - }, { "name": "func_01EDA798", "size": "216", @@ -190683,11 +191326,11 @@ { "name": "main/net.text/01EExxxx", "measures": { - "fuzzy_match_percent": 0.461634, - "total_code": "59572", + "fuzzy_match_percent": 0.462379, + "total_code": "59476", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 185, + "total_functions": 184, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -192163,15 +192806,6 @@ "virtual_address": "32432252" } }, - { - "name": "func_01EEE13C", - "size": "96", - "fuzzy_match_percent": 0.0, - "address": "57260", - "metadata": { - "virtual_address": "32432444" - } - }, { "name": "func_01EEE588", "size": "204", @@ -192375,10 +193009,10 @@ "name": "main/net.text/01EFxxxx", "measures": { "fuzzy_match_percent": 0.0, - "total_code": "57092", + "total_code": "56760", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 219, + "total_functions": 217, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -192648,15 +193282,6 @@ "virtual_address": "32451732" } }, - { - "name": "func_01EF2CC4", - "size": "76", - "fuzzy_match_percent": 0.0, - "address": "11212", - "metadata": { - "virtual_address": "32451780" - } - }, { "name": "func_01EF2D10", "size": "120", @@ -193242,15 +193867,6 @@ "virtual_address": "32470692" } }, - { - "name": "func_01EF7830", - "size": "256", - "fuzzy_match_percent": 0.0, - "address": "30520", - "metadata": { - "virtual_address": "32471088" - } - }, { "name": "func_01EF794C", "size": "456", @@ -194371,11 +194987,11 @@ { "name": "main/net.text/01F0xxxx", "measures": { - "fuzzy_match_percent": 0.548, - "total_code": "40932", + "fuzzy_match_percent": 0.552699, + "total_code": "40584", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 167, + "total_functions": 165, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -194861,15 +195477,6 @@ "virtual_address": "32523864" } }, - { - "name": "func_01F047A0", - "size": "264", - "fuzzy_match_percent": 0.0, - "address": "17988", - "metadata": { - "virtual_address": "32524192" - } - }, { "name": "func_01F048C4", "size": "140", @@ -195221,15 +195828,6 @@ "virtual_address": "32534452" } }, - { - "name": "func_01F07100", - "size": "84", - "fuzzy_match_percent": 0.0, - "address": "28580", - "metadata": { - "virtual_address": "32534784" - } - }, { "name": "func_01F07198", "size": "304", @@ -195900,13 +196498,13 @@ { "name": "Shared level code", "measures": { - "fuzzy_match_percent": 10.143552, + "fuzzy_match_percent": 10.312622, "total_code": "2008632", - "matched_code": "195480", - "matched_code_percent": 9.731997, + "matched_code": "198876", + "matched_code_percent": 9.901067, "total_functions": 5089, - "matched_functions": 2108, - "matched_functions_percent": 41.422676, + "matched_functions": 2116, + "matched_functions_percent": 41.579878, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -204007,7 +204605,7 @@ { "name": "func_L01_0046A2F0", "size": "44", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "675728", "metadata": { "virtual_address": "4629232" @@ -220774,7 +221372,7 @@ { "name": "func_L00_005948C8", "size": "264", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1897832", "metadata": { "virtual_address": "5851336" @@ -229090,7 +229688,7 @@ { "name": "func_L00_0062B4F0", "size": "376", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2515344", "metadata": { "virtual_address": "6468848" @@ -230647,7 +231245,7 @@ { "name": "func_L00_00647FE0", "size": "476", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2632832", "metadata": { "virtual_address": "6586336" @@ -230845,7 +231443,7 @@ { "name": "func_L00_00650F58", "size": "476", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2669560", "metadata": { "virtual_address": "6623064" @@ -235129,7 +235727,7 @@ { "name": "func_L00_006A3E80", "size": "376", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "3009312", "metadata": { "virtual_address": "6962816" @@ -237190,7 +237788,7 @@ { "name": "func_L01_006B8CC0", "size": "584", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "3094880", "metadata": { "virtual_address": "7048384" @@ -237451,7 +238049,7 @@ { "name": "func_L00_006BEA78", "size": "800", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "3118872", "metadata": { "virtual_address": "7072376" @@ -241727,13 +242325,13 @@ { "name": "Level 00: Multiplayer Menu", "measures": { - "fuzzy_match_percent": 15.335426, + "fuzzy_match_percent": 15.484171, "total_code": "943896", - "matched_code": "135108", - "matched_code_percent": 14.313865, + "matched_code": "136512", + "matched_code_percent": 14.46261, "total_functions": 2834, - "matched_functions": 1090, - "matched_functions_percent": 38.461538, + "matched_functions": 1098, + "matched_functions_percent": 38.743825, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -246927,7 +247525,7 @@ { "name": "func_L00_0051E6D8", "size": "104", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "193240", "metadata": { "virtual_address": "5367512" @@ -251175,7 +251773,7 @@ { "name": "func_L00_00546148", "size": "104", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "355656", "metadata": { "virtual_address": "5529928" @@ -252345,7 +252943,7 @@ { "name": "func_L00_00565650", "size": "104", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "483920", "metadata": { "virtual_address": "5658192" @@ -252372,7 +252970,7 @@ { "name": "func_L00_005666C8", "size": "104", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "488136", "metadata": { "virtual_address": "5662408" @@ -254586,7 +255184,7 @@ { "name": "func_L00_0070F220", "size": "256", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2227744", "metadata": { "virtual_address": "7402016" @@ -258141,7 +258739,7 @@ { "name": "func_L00_0071F4F8", "size": "212", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2294008", "metadata": { "virtual_address": "7468280" @@ -260634,7 +261232,7 @@ { "name": "func_L00_0074A3B0", "size": "256", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2469808", "metadata": { "virtual_address": "7644080" @@ -262434,7 +263032,7 @@ { "name": "func_L00_00767040", "size": "264", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2587712", "metadata": { "virtual_address": "7761984" @@ -272057,13 +272655,13 @@ { "name": "Level 06: Temple Of Shaar (and 26)", "measures": { - "fuzzy_match_percent": 20.266209, + "fuzzy_match_percent": 23.014169, "total_code": "9316", - "matched_code": "1888", - "matched_code_percent": 20.266209, + "matched_code": "2144", + "matched_code_percent": 23.014169, "total_functions": 30, - "matched_functions": 12, - "matched_functions_percent": 40.0, + "matched_functions": 13, + "matched_functions_percent": 43.333333, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -272181,7 +272779,7 @@ { "name": "func_L06_00417510", "size": "256", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "289984", "metadata": { "virtual_address": "4289808" @@ -275549,13 +276147,13 @@ { "name": "Level 41: Battledome Tower (all 22 multiplayer maps)", "measures": { - "fuzzy_match_percent": 13.326235, + "fuzzy_match_percent": 13.702465, "total_code": "140340", - "matched_code": "16304", - "matched_code_percent": 11.6175, + "matched_code": "16832", + "matched_code_percent": 11.99373, "total_functions": 374, - "matched_functions": 165, - "matched_functions_percent": 44.117647, + "matched_functions": 167, + "matched_functions_percent": 44.652406, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -277185,7 +277783,7 @@ { "name": "func_L41_0043B848", "size": "264", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "522648", "metadata": { "virtual_address": "4438088" @@ -278859,7 +279457,7 @@ { "name": "func_L41_00629FE8", "size": "264", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2548024", "metadata": { "virtual_address": "6463464" diff --git a/progress/report.json b/progress/report.json index b9a32d3a..9cc9b6e3 100644 --- a/progress/report.json +++ b/progress/report.json @@ -1,51 +1,51 @@ { "version": 2, "measures": { - "fuzzy_match_percent": 13.749659, + "fuzzy_match_percent": 13.979783, "total_code": "5781432", - "matched_code": "744880", - "matched_code_percent": 12.884005, + "matched_code": "758644", + "matched_code_percent": 13.122078, "total_functions": 18170, - "matched_functions": 7673, - "matched_functions_percent": 42.228949, - "complete_code": "423948", - "complete_code_percent": 7.332924, - "total_units": 4284, - "complete_units": 4225 + "matched_functions": 7733, + "matched_functions_percent": 42.559163, + "complete_code": "432432", + "complete_code_percent": 7.479669, + "total_units": 4321, + "complete_units": 4262 }, "categories": [ { "id": "core", "name": "Main program", "measures": { - "fuzzy_match_percent": 20.580692, + "fuzzy_match_percent": 20.947951, "total_code": "2193276", - "matched_code": "423948", - "matched_code_percent": 19.329441, + "matched_code": "432432", + "matched_code_percent": 19.71626, "total_functions": 8989, - "matched_functions": 4254, - "matched_functions_percent": 47.324508, - "complete_code": "423948", - "complete_code_percent": 19.329441, - "total_units": 4269, - "complete_units": 4225 + "matched_functions": 4291, + "matched_functions_percent": 47.736122, + "complete_code": "432432", + "complete_code_percent": 19.71626, + "total_units": 4306, + "complete_units": 4262 } }, { "id": "core_text", "name": "Engine core (core.text)", "measures": { - "fuzzy_match_percent": 29.640726, + "fuzzy_match_percent": 30.433561, "total_code": "288080", - "matched_code": "84272", - "matched_code_percent": 29.252985, + "matched_code": "86556", + "matched_code_percent": 30.045821, "total_functions": 1663, - "matched_functions": 866, - "matched_functions_percent": 52.074564, + "matched_functions": 878, + "matched_functions_percent": 52.796152, "complete_code": "0", "complete_code_percent": 0.0, - "total_units": 870, - "complete_units": 864 + "total_units": 882, + "complete_units": 876 } }, { @@ -69,34 +69,34 @@ "id": "net_text", "name": "Network (net.text)", "measures": { - "fuzzy_match_percent": 11.948216, + "fuzzy_match_percent": 12.372597, "total_code": "465620", - "matched_code": "53568", - "matched_code_percent": 11.50466, + "matched_code": "55544", + "matched_code_percent": 11.929041, "total_functions": 2441, - "matched_functions": 937, - "matched_functions_percent": 38.385907, + "matched_functions": 948, + "matched_functions_percent": 38.836542, "complete_code": "0", "complete_code_percent": 0.0, - "total_units": 945, - "complete_units": 937 + "total_units": 956, + "complete_units": 948 } }, { "id": "menu_text", "name": "Resident menus (.text)", "measures": { - "fuzzy_match_percent": 21.391154, + "fuzzy_match_percent": 21.659054, "total_code": "1416572", - "matched_code": "278760", - "matched_code_percent": 19.678491, + "matched_code": "282984", + "matched_code_percent": 19.976676, "total_functions": 4827, - "matched_functions": 2420, - "matched_functions_percent": 50.134659, + "matched_functions": 2434, + "matched_functions_percent": 50.424694, "complete_code": "0", "complete_code_percent": 0.0, - "total_units": 2436, - "complete_units": 2414 + "total_units": 2450, + "complete_units": 2428 } }, { @@ -120,13 +120,13 @@ "id": "level_code", "name": "Level code", "measures": { - "fuzzy_match_percent": 9.574161, + "fuzzy_match_percent": 9.720461, "total_code": "3588156", - "matched_code": "320932", - "matched_code_percent": 8.944204, + "matched_code": "326212", + "matched_code_percent": 9.091355, "total_functions": 9181, - "matched_functions": 3419, - "matched_functions_percent": 37.239952, + "matched_functions": 3442, + "matched_functions_percent": 37.490469, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 15, @@ -137,13 +137,13 @@ "id": "common", "name": "Shared level code", "measures": { - "fuzzy_match_percent": 8.686641, + "fuzzy_match_percent": 8.745209, "total_code": "1980624", - "matched_code": "163332", - "matched_code_percent": 8.246492, + "matched_code": "164492", + "matched_code_percent": 8.305059, "total_functions": 5096, - "matched_functions": 1984, - "matched_functions_percent": 38.932496, + "matched_functions": 1993, + "matched_functions_percent": 39.109105, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -154,13 +154,13 @@ "id": "levels", "name": "Level-specific code", "measures": { - "fuzzy_match_percent": 10.667664, + "fuzzy_match_percent": 10.922059, "total_code": "1607532", - "matched_code": "157600", - "matched_code_percent": 9.803848, + "matched_code": "161720", + "matched_code_percent": 10.060142, "total_functions": 4085, - "matched_functions": 1435, - "matched_functions_percent": 35.128519, + "matched_functions": 1449, + "matched_functions_percent": 35.471236, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 14, @@ -171,13 +171,13 @@ "id": "level_00", "name": "Level 00: Multiplayer Menu", "measures": { - "fuzzy_match_percent": 14.637355, + "fuzzy_match_percent": 14.844584, "total_code": "942664", - "matched_code": "126588", - "matched_code_percent": 13.428751, + "matched_code": "128572", + "matched_code_percent": 13.639218, "total_functions": 2810, - "matched_functions": 1037, - "matched_functions_percent": 36.903915, + "matched_functions": 1045, + "matched_functions_percent": 37.188612, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -188,13 +188,13 @@ "id": "level_01", "name": "Level 01: Dreadzone Station (and 21)", "measures": { - "fuzzy_match_percent": 4.11792, + "fuzzy_match_percent": 4.447354, "total_code": "189416", - "matched_code": "7800", - "matched_code_percent": 4.11792, + "matched_code": "8424", + "matched_code_percent": 4.447354, "total_functions": 373, - "matched_functions": 122, - "matched_functions_percent": 32.707775, + "matched_functions": 123, + "matched_functions_percent": 32.975871, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -256,13 +256,13 @@ "id": "level_06", "name": "Level 06: Temple Of Shaar (and 26)", "measures": { - "fuzzy_match_percent": 5.283505, + "fuzzy_match_percent": 15.850515, "total_code": "9312", - "matched_code": "492", - "matched_code_percent": 5.283505, + "matched_code": "1476", + "matched_code_percent": 15.850515, "total_functions": 30, - "matched_functions": 8, - "matched_functions_percent": 26.666667, + "matched_functions": 11, + "matched_functions_percent": 36.666667, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -392,13 +392,13 @@ "id": "level_41", "name": "Level 41: Battledome Tower (all 22 multiplayer maps)", "measures": { - "fuzzy_match_percent": 12.934363, + "fuzzy_match_percent": 13.311549, "total_code": "139984", - "matched_code": "15708", - "matched_code_percent": 11.221282, + "matched_code": "16236", + "matched_code_percent": 11.598468, "total_functions": 375, - "matched_functions": 162, - "matched_functions_percent": 43.2, + "matched_functions": 164, + "matched_functions_percent": 43.733333, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -5771,6 +5771,41 @@ ] } }, + { + "name": "core/0012AA70", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "236", + "matched_code": "236", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "236", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0012AA70", + "size": "236", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1223280" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/0012AA70.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/0012AF88", "measures": { @@ -6366,6 +6401,41 @@ ] } }, + { + "name": "core/0012CA90", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "144", + "matched_code": "144", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "144", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0012CA90", + "size": "144", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1231504" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/0012CA90.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/0012CBC0", "measures": { @@ -7871,6 +7941,41 @@ ] } }, + { + "name": "core/001373B0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "152", + "matched_code": "152", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "152", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_001373B0", + "size": "152", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1274800" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/001373B0.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/00137448", "measures": { @@ -8046,6 +8151,76 @@ ] } }, + { + "name": "core/00137FB0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "152", + "matched_code": "152", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "152", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00137FB0", + "size": "152", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1277872" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/00137FB0.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, + { + "name": "core/00138100", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "180", + "matched_code": "180", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "180", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00138100", + "size": "180", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1278208" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/00138100.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/001384E0", "measures": { @@ -8431,6 +8606,41 @@ ] } }, + { + "name": "core/0013A0F0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "88", + "matched_code": "88", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "88", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0013A0F0", + "size": "88", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1286384" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/0013A0F0.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/0013A148", "measures": { @@ -8921,6 +9131,41 @@ ] } }, + { + "name": "core/0013B460", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "172", + "matched_code": "172", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "172", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0013B460", + "size": "172", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1291360" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/0013B460.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/0013B8C8", "measures": { @@ -11091,6 +11336,41 @@ ] } }, + { + "name": "core/001464C0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "16", + "matched_code": "16", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "16", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_001464C0", + "size": "16", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1336512" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/001464C0.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/001464D0", "measures": { @@ -12806,6 +13086,41 @@ ] } }, + { + "name": "core/0014C168", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "336", + "matched_code": "336", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "336", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0014C168", + "size": "336", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1360232" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/0014C168.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/0014C368", "measures": { @@ -12841,6 +13156,41 @@ ] } }, + { + "name": "core/0014CCA0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "340", + "matched_code": "340", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "340", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0014CCA0", + "size": "340", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1363104" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/0014CCA0.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/0014D010", "measures": { @@ -13436,6 +13786,41 @@ ] } }, + { + "name": "core/001501B0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "148", + "matched_code": "148", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "148", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_001501B0", + "size": "148", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1376688" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/001501B0.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/001502F8", "measures": { @@ -28985,6 +29370,41 @@ ] } }, + { + "name": "core/00160FD8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "320", + "matched_code": "320", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "320", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00160FD8", + "size": "320", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1445848" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/00160FD8.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/00161118", "measures": { @@ -46381,6 +46801,41 @@ ] } }, + { + "name": "game/00481100", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "320", + "matched_code": "320", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "320", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00481100", + "size": "320", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4722944" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00481100.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00481240", "measures": { @@ -46626,6 +47081,41 @@ ] } }, + { + "name": "game/00484F68", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "560", + "matched_code": "560", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "560", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00484F68", + "size": "560", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4738920" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00484F68.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00486188", "measures": { @@ -48586,6 +49076,41 @@ ] } }, + { + "name": "game/0048D228", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "264", + "matched_code": "264", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "264", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048D228", + "size": "264", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4772392" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048D228.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0048D758", "measures": { @@ -55271,6 +55796,41 @@ ] } }, + { + "name": "game/0049B960", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "336", + "matched_code": "336", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "336", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0049B960", + "size": "336", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4831584" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0049B960.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0049C158", "measures": { @@ -80655,6 +81215,41 @@ ] } }, + { + "name": "game/004D3060", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "232", + "matched_code": "232", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "232", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004D3060", + "size": "232", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5058656" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004D3060.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004D3148", "measures": { @@ -87725,6 +88320,41 @@ ] } }, + { + "name": "game/004E7990", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "216", + "matched_code": "216", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "216", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004E7990", + "size": "216", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5142928" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004E7990.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004E7A70", "measures": { @@ -93850,6 +94480,41 @@ ] } }, + { + "name": "game/004FAFE8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "552", + "matched_code": "552", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "552", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004FAFE8", + "size": "552", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5222376" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004FAFE8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004FB860", "measures": { @@ -99949,6 +100614,41 @@ ] } }, + { + "name": "game/00505F98", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "200", + "matched_code": "200", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "200", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00505F98", + "size": "200", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5267352" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00505F98.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00506060", "measures": { @@ -100089,6 +100789,41 @@ ] } }, + { + "name": "game/00506508", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "200", + "matched_code": "200", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "200", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00506508", + "size": "200", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5268744" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00506508.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/005065D8", "measures": { @@ -105759,6 +106494,41 @@ ] } }, + { + "name": "game/0050C638", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "264", + "matched_code": "264", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "264", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0050C638", + "size": "264", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5293624" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0050C638.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0050C740", "measures": { @@ -108874,6 +109644,41 @@ ] } }, + { + "name": "game/00512650", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "248", + "matched_code": "248", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "248", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00512650", + "size": "248", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5318224" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00512650.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00512748", "measures": { @@ -110764,6 +111569,41 @@ ] } }, + { + "name": "game/00525CB0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "384", + "matched_code": "384", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "384", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00525CB0", + "size": "384", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5397680" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00525CB0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/005263E0", "measures": { @@ -114309,6 +115149,41 @@ ] } }, + { + "name": "game/0054A4A0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "224", + "matched_code": "224", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "224", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0054A4A0", + "size": "224", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5547168" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0054A4A0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0054A580", "measures": { @@ -115079,6 +115954,41 @@ ] } }, + { + "name": "game/0054ACE8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "224", + "matched_code": "224", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "224", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0054ACE8", + "size": "224", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5549288" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0054ACE8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0054AFB8", "measures": { @@ -117639,6 +118549,41 @@ ] } }, + { + "name": "net/01EA4570", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "48", + "matched_code": "48", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "48", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01EA4570", + "size": "48", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32130416" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01EA4570.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01EA4668", "measures": { @@ -120369,6 +121314,41 @@ ] } }, + { + "name": "net/01EAEBE0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "268", + "matched_code": "268", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "268", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01EAEBE0", + "size": "268", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32173024" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01EAEBE0.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01EAECF0", "measures": { @@ -120754,6 +121734,41 @@ ] } }, + { + "name": "net/01EB36A0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "260", + "matched_code": "260", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "260", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01EB36A0", + "size": "260", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32192160" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01EB36A0.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01EB3C70", "measures": { @@ -121104,6 +122119,41 @@ ] } }, + { + "name": "net/01EB5FB0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "260", + "matched_code": "260", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "260", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01EB5FB0", + "size": "260", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32202672" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01EB5FB0.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01EB60B8", "measures": { @@ -125864,6 +126914,41 @@ ] } }, + { + "name": "net/01ED66B0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "104", + "matched_code": "104", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "104", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01ED66B0", + "size": "104", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32335536" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01ED66B0.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01ED68A0", "measures": { @@ -127474,6 +128559,41 @@ ] } }, + { + "name": "net/01EDA668", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "260", + "matched_code": "260", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "260", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01EDA668", + "size": "260", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32351848" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01EDA668.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01EDA770", "measures": { @@ -136574,6 +137694,41 @@ ] } }, + { + "name": "net/01EEE13C", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "96", + "matched_code": "96", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "96", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01EEE13C", + "size": "96", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32432444" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01EEE13C.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01EEE19C", "measures": { @@ -138464,6 +139619,41 @@ ] } }, + { + "name": "net/01EF2CC4", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "76", + "matched_code": "76", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "76", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01EF2CC4", + "size": "76", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32451780" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01EF2CC4.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01EF2DB8", "measures": { @@ -140634,6 +141824,41 @@ ] } }, + { + "name": "net/01EF7830", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "256", + "matched_code": "256", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "256", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01EF7830", + "size": "256", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32471088" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01EF7830.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01EF7930", "measures": { @@ -143994,6 +145219,41 @@ ] } }, + { + "name": "net/01F047A0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "264", + "matched_code": "264", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "264", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01F047A0", + "size": "264", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32524192" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01F047A0.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01F048A8", "measures": { @@ -144869,6 +146129,41 @@ ] } }, + { + "name": "net/01F07100", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "84", + "matched_code": "84", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "84", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_01F07100", + "size": "84", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "32534784" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/net/01F07100.c", + "progress_categories": [ + "core", + "net_text" + ] + } + }, { "name": "net/01F07154", "measures": { @@ -159339,11 +160634,11 @@ { "name": "main/.text/0048xxxx", "measures": { - "fuzzy_match_percent": 0.550963, - "total_code": "53360", + "fuzzy_match_percent": 0.563034, + "total_code": "52216", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 104, + "total_functions": 101, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -159388,15 +160683,6 @@ "virtual_address": "4722616" } }, - { - "name": "func_00481100", - "size": "320", - "fuzzy_match_percent": 0.0, - "address": "584", - "metadata": { - "virtual_address": "4722944" - } - }, { "name": "func_00481298", "size": "5616", @@ -159514,15 +160800,6 @@ "virtual_address": "4736784" } }, - { - "name": "func_00484F68", - "size": "560", - "fuzzy_match_percent": 0.0, - "address": "16560", - "metadata": { - "virtual_address": "4738920" - } - }, { "name": "func_00485198", "size": "4", @@ -160063,15 +161340,6 @@ "virtual_address": "4772384" } }, - { - "name": "func_0048D228", - "size": "264", - "fuzzy_match_percent": 0.0, - "address": "50032", - "metadata": { - "virtual_address": "4772392" - } - }, { "name": "func_0048D330", "size": "1064", @@ -160301,11 +161569,11 @@ { "name": "main/.text/0049xxxx", "measures": { - "fuzzy_match_percent": 2.037864, - "total_code": "44312", + "fuzzy_match_percent": 2.053435, + "total_code": "43976", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 158, + "total_functions": 157, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -161484,15 +162752,6 @@ "virtual_address": "4831232" } }, - { - "name": "func_0049B960", - "size": "336", - "fuzzy_match_percent": 0.0, - "address": "46440", - "metadata": { - "virtual_address": "4831584" - } - }, { "name": "func_0049BAB0", "size": "1292", @@ -163987,11 +165246,11 @@ { "name": "main/.text/004Dxxxx", "measures": { - "fuzzy_match_percent": 9.45934, - "total_code": "34400", + "fuzzy_match_percent": 8.873835, + "total_code": "34168", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 106, + "total_functions": 105, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -164153,15 +165412,6 @@ "virtual_address": "5058616" } }, - { - "name": "func_004D3060", - "size": "232", - "fuzzy_match_percent": 95.69, - "address": "12328", - "metadata": { - "virtual_address": "5058656" - } - }, { "name": "func_004D3398", "size": "4", @@ -164967,11 +166217,11 @@ { "name": "main/.text/004Exxxx", "measures": { - "fuzzy_match_percent": 0.52223, - "total_code": "53808", + "fuzzy_match_percent": 0.524335, + "total_code": "53592", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 121, + "total_functions": 120, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -165403,15 +166653,6 @@ "virtual_address": "5142904" } }, - { - "name": "func_004E7990", - "size": "216", - "fuzzy_match_percent": 0.0, - "address": "31032", - "metadata": { - "virtual_address": "5142928" - } - }, { "name": "func_004E7A68", "size": "4", @@ -166082,11 +167323,11 @@ { "name": "main/.text/004Fxxxx", "measures": { - "fuzzy_match_percent": 5.150711, - "total_code": "47236", + "fuzzy_match_percent": 5.211614, + "total_code": "46684", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 137, + "total_functions": 136, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -166797,15 +168038,6 @@ "virtual_address": "5221432" } }, - { - "name": "func_004FAFE8", - "size": "552", - "fuzzy_match_percent": 0.0, - "address": "44056", - "metadata": { - "virtual_address": "5222376" - } - }, { "name": "func_004FB210", "size": "720", @@ -167341,11 +168573,11 @@ { "name": "main/.text/0050xxxx", "measures": { - "fuzzy_match_percent": 4.571138, - "total_code": "24720", + "fuzzy_match_percent": 4.697311, + "total_code": "24056", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 95, + "total_functions": 92, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -167858,15 +169090,6 @@ "virtual_address": "5267136" } }, - { - "name": "func_00505F98", - "size": "200", - "fuzzy_match_percent": 0.0, - "address": "23792", - "metadata": { - "virtual_address": "5267352" - } - }, { "name": "func_005061D8", "size": "384", @@ -167885,15 +169108,6 @@ "virtual_address": "5268728" } }, - { - "name": "func_00506508", - "size": "200", - "fuzzy_match_percent": 0.0, - "address": "25184", - "metadata": { - "virtual_address": "5268744" - } - }, { "name": "func_005065D0", "size": "4", @@ -168002,15 +169216,6 @@ "virtual_address": "5293408" } }, - { - "name": "func_0050C638", - "size": "264", - "fuzzy_match_percent": 0.0, - "address": "50064", - "metadata": { - "virtual_address": "5293624" - } - }, { "name": "func_0050C760", "size": "4", @@ -168222,11 +169427,11 @@ { "name": "main/.text/0051xxxx", "measures": { - "fuzzy_match_percent": 2.457334, - "total_code": "58764", + "fuzzy_match_percent": 2.467748, + "total_code": "58516", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 113, + "total_functions": 112, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -168478,15 +169683,6 @@ "virtual_address": "5314056" } }, - { - "name": "func_00512650", - "size": "248", - "fuzzy_match_percent": 0.0, - "address": "8416", - "metadata": { - "virtual_address": "5318224" - } - }, { "name": "func_005127A8", "size": "264", @@ -169265,11 +170461,11 @@ { "name": "main/.text/0052xxxx", "measures": { - "fuzzy_match_percent": 2.35392, - "total_code": "58540", + "fuzzy_match_percent": 2.369463, + "total_code": "58156", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 72, + "total_functions": 71, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -169674,15 +170870,6 @@ "virtual_address": "5397672" } }, - { - "name": "func_00525CB0", - "size": "384", - "fuzzy_match_percent": 0.0, - "address": "22000", - "metadata": { - "virtual_address": "5397680" - } - }, { "name": "func_00525E30", "size": "176", @@ -170334,11 +171521,11 @@ { "name": "main/.text/0054xxxx", "measures": { - "fuzzy_match_percent": 2.901956, - "total_code": "43420", + "fuzzy_match_percent": 2.450505, + "total_code": "42972", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 90, + "total_functions": 88, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -170887,15 +172074,6 @@ "virtual_address": "5546864" } }, - { - "name": "func_0054A4A0", - "size": "224", - "fuzzy_match_percent": 0.0, - "address": "41936", - "metadata": { - "virtual_address": "5547168" - } - }, { "name": "func_0054A788", "size": "84", @@ -170959,15 +172137,6 @@ "virtual_address": "5549144" } }, - { - "name": "func_0054ACE8", - "size": "224", - "fuzzy_match_percent": 92.41, - "address": "44056", - "metadata": { - "virtual_address": "5549288" - } - }, { "name": "func_0054ADC8", "size": "208", @@ -171466,11 +172635,11 @@ { "name": "main/core.text/0012xxxx", "measures": { - "fuzzy_match_percent": 0.659078, - "total_code": "42788", + "fuzzy_match_percent": 0.664984, + "total_code": "42408", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 259, + "total_functions": 257, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -173225,15 +174394,6 @@ "virtual_address": "1223136" } }, - { - "name": "func_0012AA70", - "size": "236", - "fuzzy_match_percent": 0.0, - "address": "42752", - "metadata": { - "virtual_address": "1223280" - } - }, { "name": "func_0012AB60", "size": "108", @@ -173342,15 +174502,6 @@ "virtual_address": "1229992" } }, - { - "name": "func_0012CA90", - "size": "144", - "fuzzy_match_percent": 0.0, - "address": "50976", - "metadata": { - "virtual_address": "1231504" - } - }, { "name": "func_0012CB20", "size": "160", @@ -173825,10 +174976,10 @@ "name": "main/core.text/0013xxxx", "measures": { "fuzzy_match_percent": 0.0, - "total_code": "44560", + "total_code": "43816", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 129, + "total_functions": 124, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -174269,15 +175420,6 @@ "virtual_address": "1274440" } }, - { - "name": "func_001373B0", - "size": "152", - "fuzzy_match_percent": 0.0, - "address": "28464", - "metadata": { - "virtual_address": "1274800" - } - }, { "name": "func_001376B0", "size": "744", @@ -174296,15 +175438,6 @@ "virtual_address": "1277392" } }, - { - "name": "func_00137FB0", - "size": "152", - "fuzzy_match_percent": 0.0, - "address": "31536", - "metadata": { - "virtual_address": "1277872" - } - }, { "name": "func_00138048", "size": "184", @@ -174314,15 +175447,6 @@ "virtual_address": "1278024" } }, - { - "name": "func_00138100", - "size": "180", - "fuzzy_match_percent": 0.0, - "address": "31872", - "metadata": { - "virtual_address": "1278208" - } - }, { "name": "func_001381B4", "size": "212", @@ -174485,15 +175609,6 @@ "virtual_address": "1285824" } }, - { - "name": "func_0013A0F0", - "size": "88", - "fuzzy_match_percent": 0.0, - "address": "40048", - "metadata": { - "virtual_address": "1286384" - } - }, { "name": "func_0013A2C0", "size": "188", @@ -174629,15 +175744,6 @@ "virtual_address": "1291112" } }, - { - "name": "func_0013B460", - "size": "172", - "fuzzy_match_percent": 0.0, - "address": "45024", - "metadata": { - "virtual_address": "1291360" - } - }, { "name": "func_0013B510", "size": "276", @@ -175012,11 +176118,11 @@ { "name": "main/core.text/0014xxxx", "measures": { - "fuzzy_match_percent": 0.991309, - "total_code": "47916", + "fuzzy_match_percent": 1.005835, + "total_code": "47224", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 145, + "total_functions": 142, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -175277,15 +176383,6 @@ "virtual_address": "1336208" } }, - { - "name": "func_001464C0", - "size": "16", - "fuzzy_match_percent": 0.0, - "address": "24176", - "metadata": { - "virtual_address": "1336512" - } - }, { "name": "func_00146570", "size": "200", @@ -175952,15 +177049,6 @@ "virtual_address": "1359912" } }, - { - "name": "func_0014C168", - "size": "336", - "fuzzy_match_percent": 0.0, - "address": "47896", - "metadata": { - "virtual_address": "1360232" - } - }, { "name": "func_0014C2B8", "size": "172", @@ -176024,15 +177112,6 @@ "virtual_address": "1362896" } }, - { - "name": "func_0014CCA0", - "size": "340", - "fuzzy_match_percent": 0.0, - "address": "50768", - "metadata": { - "virtual_address": "1363104" - } - }, { "name": "func_0014CDF8", "size": "532", @@ -176343,11 +177422,11 @@ { "name": "main/core.text/0015xxxx", "measures": { - "fuzzy_match_percent": 0.326199, - "total_code": "49664", + "fuzzy_match_percent": 0.327174, + "total_code": "49516", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 202, + "total_functions": 201, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -176356,20 +177435,11 @@ "complete_units": 0 }, "functions": [ - { - "name": "func_001501B0", - "size": "148", - "fuzzy_match_percent": 0.0, - "address": "0", - "metadata": { - "virtual_address": "1376688" - } - }, { "name": "func_00150248", "size": "176", "fuzzy_match_percent": 0.0, - "address": "152", + "address": "0", "metadata": { "virtual_address": "1376840" } @@ -176378,7 +177448,7 @@ "name": "func_001503B0", "size": "4", "fuzzy_match_percent": 0.0, - "address": "512", + "address": "360", "metadata": { "virtual_address": "1377200" } @@ -176387,7 +177457,7 @@ "name": "func_001503B8", "size": "248", "fuzzy_match_percent": 0.0, - "address": "520", + "address": "368", "metadata": { "virtual_address": "1377208" } @@ -176396,7 +177466,7 @@ "name": "func_001504B0", "size": "256", "fuzzy_match_percent": 0.0, - "address": "768", + "address": "616", "metadata": { "virtual_address": "1377456" } @@ -176405,7 +177475,7 @@ "name": "func_001505B0", "size": "140", "fuzzy_match_percent": 0.0, - "address": "1024", + "address": "872", "metadata": { "virtual_address": "1377712" } @@ -176414,7 +177484,7 @@ "name": "func_00150640", "size": "4", "fuzzy_match_percent": 0.0, - "address": "1168", + "address": "1016", "metadata": { "virtual_address": "1377856" } @@ -176423,7 +177493,7 @@ "name": "func_00150648", "size": "1328", "fuzzy_match_percent": 0.0, - "address": "1176", + "address": "1024", "metadata": { "virtual_address": "1377864" } @@ -176432,7 +177502,7 @@ "name": "func_00150B78", "size": "592", "fuzzy_match_percent": 0.0, - "address": "2504", + "address": "2352", "metadata": { "virtual_address": "1379192" } @@ -176441,7 +177511,7 @@ "name": "func_00150E78", "size": "4", "fuzzy_match_percent": 0.0, - "address": "3272", + "address": "3120", "metadata": { "virtual_address": "1379960" } @@ -176450,7 +177520,7 @@ "name": "func_00150E80", "size": "616", "fuzzy_match_percent": 0.0, - "address": "3280", + "address": "3128", "metadata": { "virtual_address": "1379968" } @@ -176459,7 +177529,7 @@ "name": "func_001510E8", "size": "224", "fuzzy_match_percent": 0.0, - "address": "3896", + "address": "3744", "metadata": { "virtual_address": "1380584" } @@ -176468,7 +177538,7 @@ "name": "func_001511F0", "size": "756", "fuzzy_match_percent": 0.0, - "address": "4160", + "address": "4008", "metadata": { "virtual_address": "1380848" } @@ -176477,7 +177547,7 @@ "name": "func_001514E8", "size": "4", "fuzzy_match_percent": 0.0, - "address": "4920", + "address": "4768", "metadata": { "virtual_address": "1381608" } @@ -176486,7 +177556,7 @@ "name": "func_001514F0", "size": "488", "fuzzy_match_percent": 0.0, - "address": "4928", + "address": "4776", "metadata": { "virtual_address": "1381616" } @@ -176495,7 +177565,7 @@ "name": "func_001516D8", "size": "464", "fuzzy_match_percent": 0.0, - "address": "5416", + "address": "5264", "metadata": { "virtual_address": "1382104" } @@ -176504,7 +177574,7 @@ "name": "func_001518C0", "size": "4", "fuzzy_match_percent": 0.0, - "address": "5904", + "address": "5752", "metadata": { "virtual_address": "1382592" } @@ -176513,7 +177583,7 @@ "name": "func_001518C8", "size": "1204", "fuzzy_match_percent": 0.0, - "address": "5912", + "address": "5760", "metadata": { "virtual_address": "1382600" } @@ -176522,7 +177592,7 @@ "name": "func_00151D80", "size": "356", "fuzzy_match_percent": 0.0, - "address": "7120", + "address": "6968", "metadata": { "virtual_address": "1383808" } @@ -176531,7 +177601,7 @@ "name": "func_00151EE8", "size": "368", "fuzzy_match_percent": 0.0, - "address": "7480", + "address": "7328", "metadata": { "virtual_address": "1384168" } @@ -176540,7 +177610,7 @@ "name": "func_00152058", "size": "368", "fuzzy_match_percent": 0.0, - "address": "7848", + "address": "7696", "metadata": { "virtual_address": "1384536" } @@ -176549,7 +177619,7 @@ "name": "func_001521C8", "size": "4", "fuzzy_match_percent": 0.0, - "address": "8216", + "address": "8064", "metadata": { "virtual_address": "1384904" } @@ -176558,7 +177628,7 @@ "name": "func_001521D0", "size": "372", "fuzzy_match_percent": 0.0, - "address": "8224", + "address": "8072", "metadata": { "virtual_address": "1384912" } @@ -176567,7 +177637,7 @@ "name": "func_00152348", "size": "388", "fuzzy_match_percent": 0.0, - "address": "8600", + "address": "8448", "metadata": { "virtual_address": "1385288" } @@ -176576,7 +177646,7 @@ "name": "func_001524D0", "size": "4", "fuzzy_match_percent": 0.0, - "address": "8992", + "address": "8840", "metadata": { "virtual_address": "1385680" } @@ -176585,7 +177655,7 @@ "name": "func_001524D8", "size": "208", "fuzzy_match_percent": 0.0, - "address": "9000", + "address": "8848", "metadata": { "virtual_address": "1385688" } @@ -176594,7 +177664,7 @@ "name": "func_001525A8", "size": "112", "fuzzy_match_percent": 0.0, - "address": "9208", + "address": "9056", "metadata": { "virtual_address": "1385896" } @@ -176603,7 +177673,7 @@ "name": "func_00152618", "size": "444", "fuzzy_match_percent": 0.0, - "address": "9320", + "address": "9168", "metadata": { "virtual_address": "1386008" } @@ -176612,7 +177682,7 @@ "name": "func_001527D8", "size": "196", "fuzzy_match_percent": 0.0, - "address": "9768", + "address": "9616", "metadata": { "virtual_address": "1386456" } @@ -176621,7 +177691,7 @@ "name": "func_001528A0", "size": "196", "fuzzy_match_percent": 0.0, - "address": "9968", + "address": "9816", "metadata": { "virtual_address": "1386656" } @@ -176630,7 +177700,7 @@ "name": "func_00152968", "size": "196", "fuzzy_match_percent": 0.0, - "address": "10168", + "address": "10016", "metadata": { "virtual_address": "1386856" } @@ -176639,7 +177709,7 @@ "name": "func_00152A30", "size": "196", "fuzzy_match_percent": 0.0, - "address": "10368", + "address": "10216", "metadata": { "virtual_address": "1387056" } @@ -176648,7 +177718,7 @@ "name": "func_00152AF8", "size": "196", "fuzzy_match_percent": 0.0, - "address": "10568", + "address": "10416", "metadata": { "virtual_address": "1387256" } @@ -176657,7 +177727,7 @@ "name": "func_00152BC0", "size": "4", "fuzzy_match_percent": 0.0, - "address": "10768", + "address": "10616", "metadata": { "virtual_address": "1387456" } @@ -176666,7 +177736,7 @@ "name": "func_00152BC8", "size": "244", "fuzzy_match_percent": 0.0, - "address": "10776", + "address": "10624", "metadata": { "virtual_address": "1387464" } @@ -176675,7 +177745,7 @@ "name": "func_00152CC0", "size": "244", "fuzzy_match_percent": 0.0, - "address": "11024", + "address": "10872", "metadata": { "virtual_address": "1387712" } @@ -176684,7 +177754,7 @@ "name": "func_00152DB8", "size": "156", "fuzzy_match_percent": 0.0, - "address": "11272", + "address": "11120", "metadata": { "virtual_address": "1387960" } @@ -176693,7 +177763,7 @@ "name": "func_00152E58", "size": "104", "fuzzy_match_percent": 0.0, - "address": "11432", + "address": "11280", "metadata": { "virtual_address": "1388120" } @@ -176702,7 +177772,7 @@ "name": "func_00152EC0", "size": "64", "fuzzy_match_percent": 0.0, - "address": "11536", + "address": "11384", "metadata": { "virtual_address": "1388224" } @@ -176711,7 +177781,7 @@ "name": "func_00152F00", "size": "332", "fuzzy_match_percent": 0.0, - "address": "11600", + "address": "11448", "metadata": { "virtual_address": "1388288" } @@ -176720,7 +177790,7 @@ "name": "func_00153050", "size": "288", "fuzzy_match_percent": 0.0, - "address": "11936", + "address": "11784", "metadata": { "virtual_address": "1388624" } @@ -176729,7 +177799,7 @@ "name": "func_00153170", "size": "448", "fuzzy_match_percent": 0.0, - "address": "12224", + "address": "12072", "metadata": { "virtual_address": "1388912" } @@ -176738,7 +177808,7 @@ "name": "func_00153330", "size": "280", "fuzzy_match_percent": 0.0, - "address": "12672", + "address": "12520", "metadata": { "virtual_address": "1389360" } @@ -176747,7 +177817,7 @@ "name": "func_00153448", "size": "272", "fuzzy_match_percent": 0.0, - "address": "12952", + "address": "12800", "metadata": { "virtual_address": "1389640" } @@ -176756,7 +177826,7 @@ "name": "func_00153558", "size": "400", "fuzzy_match_percent": 0.0, - "address": "13224", + "address": "13072", "metadata": { "virtual_address": "1389912" } @@ -176765,7 +177835,7 @@ "name": "func_001536E8", "size": "584", "fuzzy_match_percent": 0.0, - "address": "13624", + "address": "13472", "metadata": { "virtual_address": "1390312" } @@ -176774,7 +177844,7 @@ "name": "func_00153930", "size": "448", "fuzzy_match_percent": 0.0, - "address": "14208", + "address": "14056", "metadata": { "virtual_address": "1390896" } @@ -176783,7 +177853,7 @@ "name": "func_00153AF0", "size": "320", "fuzzy_match_percent": 0.0, - "address": "14656", + "address": "14504", "metadata": { "virtual_address": "1391344" } @@ -176792,7 +177862,7 @@ "name": "func_00153C30", "size": "988", "fuzzy_match_percent": 0.0, - "address": "14976", + "address": "14824", "metadata": { "virtual_address": "1391664" } @@ -176801,7 +177871,7 @@ "name": "func_00154010", "size": "72", "fuzzy_match_percent": 0.0, - "address": "15968", + "address": "15816", "metadata": { "virtual_address": "1392656" } @@ -176810,7 +177880,7 @@ "name": "func_00154068", "size": "4", "fuzzy_match_percent": 0.0, - "address": "16056", + "address": "15904", "metadata": { "virtual_address": "1392744" } @@ -176819,7 +177889,7 @@ "name": "func_00154070", "size": "260", "fuzzy_match_percent": 0.0, - "address": "16064", + "address": "15912", "metadata": { "virtual_address": "1392752" } @@ -176828,7 +177898,7 @@ "name": "func_00154178", "size": "196", "fuzzy_match_percent": 0.0, - "address": "16328", + "address": "16176", "metadata": { "virtual_address": "1393016" } @@ -176837,7 +177907,7 @@ "name": "func_00154240", "size": "48", "fuzzy_match_percent": 0.0, - "address": "16528", + "address": "16376", "metadata": { "virtual_address": "1393216" } @@ -176846,7 +177916,7 @@ "name": "func_00154270", "size": "284", "fuzzy_match_percent": 0.0, - "address": "16576", + "address": "16424", "metadata": { "virtual_address": "1393264" } @@ -176855,7 +177925,7 @@ "name": "func_00154390", "size": "584", "fuzzy_match_percent": 0.0, - "address": "16864", + "address": "16712", "metadata": { "virtual_address": "1393552" } @@ -176864,7 +177934,7 @@ "name": "func_001545D8", "size": "480", "fuzzy_match_percent": 0.0, - "address": "17448", + "address": "17296", "metadata": { "virtual_address": "1394136" } @@ -176873,7 +177943,7 @@ "name": "func_001547B8", "size": "12", "fuzzy_match_percent": 0.0, - "address": "17928", + "address": "17776", "metadata": { "virtual_address": "1394616" } @@ -176882,7 +177952,7 @@ "name": "func_001547C8", "size": "360", "fuzzy_match_percent": 0.0, - "address": "17944", + "address": "17792", "metadata": { "virtual_address": "1394632" } @@ -176891,7 +177961,7 @@ "name": "func_00154930", "size": "404", "fuzzy_match_percent": 0.0, - "address": "18304", + "address": "18152", "metadata": { "virtual_address": "1394992" } @@ -176900,7 +177970,7 @@ "name": "func_00154AC8", "size": "132", "fuzzy_match_percent": 0.0, - "address": "18712", + "address": "18560", "metadata": { "virtual_address": "1395400" } @@ -176909,7 +177979,7 @@ "name": "func_00154B50", "size": "4", "fuzzy_match_percent": 0.0, - "address": "18848", + "address": "18696", "metadata": { "virtual_address": "1395536" } @@ -176918,7 +177988,7 @@ "name": "func_00154B58", "size": "80", "fuzzy_match_percent": 0.0, - "address": "18856", + "address": "18704", "metadata": { "virtual_address": "1395544" } @@ -176927,7 +177997,7 @@ "name": "func_00154BA8", "size": "84", "fuzzy_match_percent": 0.0, - "address": "18936", + "address": "18784", "metadata": { "virtual_address": "1395624" } @@ -176936,7 +178006,7 @@ "name": "func_00154C00", "size": "288", "fuzzy_match_percent": 0.0, - "address": "19024", + "address": "18872", "metadata": { "virtual_address": "1395712" } @@ -176945,7 +178015,7 @@ "name": "func_00154D20", "size": "192", "fuzzy_match_percent": 0.0, - "address": "19312", + "address": "19160", "metadata": { "virtual_address": "1396000" } @@ -176954,7 +178024,7 @@ "name": "func_00154DE0", "size": "312", "fuzzy_match_percent": 0.0, - "address": "19504", + "address": "19352", "metadata": { "virtual_address": "1396192" } @@ -176963,7 +178033,7 @@ "name": "func_00154F68", "size": "4", "fuzzy_match_percent": 0.0, - "address": "19896", + "address": "19744", "metadata": { "virtual_address": "1396584" } @@ -176972,7 +178042,7 @@ "name": "func_00154F70", "size": "200", "fuzzy_match_percent": 0.0, - "address": "19904", + "address": "19752", "metadata": { "virtual_address": "1396592" } @@ -176981,7 +178051,7 @@ "name": "func_00155070", "size": "132", "fuzzy_match_percent": 0.0, - "address": "20160", + "address": "20008", "metadata": { "virtual_address": "1396848" } @@ -176990,7 +178060,7 @@ "name": "func_001550F8", "size": "360", "fuzzy_match_percent": 0.0, - "address": "20296", + "address": "20144", "metadata": { "virtual_address": "1396984" } @@ -176999,7 +178069,7 @@ "name": "func_00155260", "size": "472", "fuzzy_match_percent": 0.0, - "address": "20656", + "address": "20504", "metadata": { "virtual_address": "1397344" } @@ -177008,7 +178078,7 @@ "name": "func_00155438", "size": "216", "fuzzy_match_percent": 0.0, - "address": "21128", + "address": "20976", "metadata": { "virtual_address": "1397816" } @@ -177017,7 +178087,7 @@ "name": "func_00155620", "size": "4", "fuzzy_match_percent": 0.0, - "address": "21616", + "address": "21464", "metadata": { "virtual_address": "1398304" } @@ -177026,7 +178096,7 @@ "name": "func_00155668", "size": "4", "fuzzy_match_percent": 0.0, - "address": "21688", + "address": "21536", "metadata": { "virtual_address": "1398376" } @@ -177035,7 +178105,7 @@ "name": "func_001556C0", "size": "4", "fuzzy_match_percent": 0.0, - "address": "21776", + "address": "21624", "metadata": { "virtual_address": "1398464" } @@ -177044,7 +178114,7 @@ "name": "func_001559B0", "size": "48", "fuzzy_match_percent": 0.0, - "address": "22528", + "address": "22376", "metadata": { "virtual_address": "1399216" } @@ -177053,7 +178123,7 @@ "name": "func_001559E0", "size": "36", "fuzzy_match_percent": 0.0, - "address": "22576", + "address": "22424", "metadata": { "virtual_address": "1399264" } @@ -177062,7 +178132,7 @@ "name": "func_00155A98", "size": "304", "fuzzy_match_percent": 0.0, - "address": "22760", + "address": "22608", "metadata": { "virtual_address": "1399448" } @@ -177071,7 +178141,7 @@ "name": "func_00155BC8", "size": "36", "fuzzy_match_percent": 0.0, - "address": "23064", + "address": "22912", "metadata": { "virtual_address": "1399752" } @@ -177080,7 +178150,7 @@ "name": "func_00155BF0", "size": "48", "fuzzy_match_percent": 0.0, - "address": "23104", + "address": "22952", "metadata": { "virtual_address": "1399792" } @@ -177089,7 +178159,7 @@ "name": "func_00155CE8", "size": "288", "fuzzy_match_percent": 0.0, - "address": "23352", + "address": "23200", "metadata": { "virtual_address": "1400040" } @@ -177098,7 +178168,7 @@ "name": "func_00155E08", "size": "4", "fuzzy_match_percent": 0.0, - "address": "23640", + "address": "23488", "metadata": { "virtual_address": "1400328" } @@ -177107,7 +178177,7 @@ "name": "func_00155E10", "size": "464", "fuzzy_match_percent": 0.0, - "address": "23648", + "address": "23496", "metadata": { "virtual_address": "1400336" } @@ -177116,7 +178186,7 @@ "name": "func_00155FE0", "size": "316", "fuzzy_match_percent": 0.0, - "address": "24112", + "address": "23960", "metadata": { "virtual_address": "1400800" } @@ -177125,7 +178195,7 @@ "name": "func_00156120", "size": "624", "fuzzy_match_percent": 0.0, - "address": "24432", + "address": "24280", "metadata": { "virtual_address": "1401120" } @@ -177134,7 +178204,7 @@ "name": "func_00156390", "size": "52", "fuzzy_match_percent": 0.0, - "address": "25056", + "address": "24904", "metadata": { "virtual_address": "1401744" } @@ -177143,7 +178213,7 @@ "name": "func_001563FC", "size": "52", "fuzzy_match_percent": 0.0, - "address": "25164", + "address": "25012", "metadata": { "virtual_address": "1401852" } @@ -177152,7 +178222,7 @@ "name": "func_00156430", "size": "136", "fuzzy_match_percent": 0.0, - "address": "25216", + "address": "25064", "metadata": { "virtual_address": "1401904" } @@ -177161,7 +178231,7 @@ "name": "func_001564EC", "size": "52", "fuzzy_match_percent": 0.0, - "address": "25404", + "address": "25252", "metadata": { "virtual_address": "1402092" } @@ -177170,7 +178240,7 @@ "name": "func_001565A0", "size": "44", "fuzzy_match_percent": 0.0, - "address": "25584", + "address": "25432", "metadata": { "virtual_address": "1402272" } @@ -177179,7 +178249,7 @@ "name": "func_001565CC", "size": "44", "fuzzy_match_percent": 0.0, - "address": "25628", + "address": "25476", "metadata": { "virtual_address": "1402316" } @@ -177188,7 +178258,7 @@ "name": "func_00156600", "size": "52", "fuzzy_match_percent": 0.0, - "address": "25680", + "address": "25528", "metadata": { "virtual_address": "1402368" } @@ -177197,7 +178267,7 @@ "name": "func_00156654", "size": "52", "fuzzy_match_percent": 0.0, - "address": "25764", + "address": "25612", "metadata": { "virtual_address": "1402452" } @@ -177206,7 +178276,7 @@ "name": "func_00156688", "size": "52", "fuzzy_match_percent": 0.0, - "address": "25816", + "address": "25664", "metadata": { "virtual_address": "1402504" } @@ -177215,7 +178285,7 @@ "name": "func_0015670C", "size": "52", "fuzzy_match_percent": 0.0, - "address": "25948", + "address": "25796", "metadata": { "virtual_address": "1402636" } @@ -177224,7 +178294,7 @@ "name": "func_00156740", "size": "68", "fuzzy_match_percent": 0.0, - "address": "26000", + "address": "25848", "metadata": { "virtual_address": "1402688" } @@ -177233,7 +178303,7 @@ "name": "func_00156784", "size": "52", "fuzzy_match_percent": 0.0, - "address": "26068", + "address": "25916", "metadata": { "virtual_address": "1402756" } @@ -177242,7 +178312,7 @@ "name": "func_001574E8", "size": "576", "fuzzy_match_percent": 0.0, - "address": "29496", + "address": "29344", "metadata": { "virtual_address": "1406184" } @@ -177251,7 +178321,7 @@ "name": "func_00157738", "size": "336", "fuzzy_match_percent": 0.0, - "address": "30088", + "address": "29936", "metadata": { "virtual_address": "1406776" } @@ -177260,7 +178330,7 @@ "name": "func_00157888", "size": "276", "fuzzy_match_percent": 0.0, - "address": "30424", + "address": "30272", "metadata": { "virtual_address": "1407112" } @@ -177269,7 +178339,7 @@ "name": "func_001579F0", "size": "320", "fuzzy_match_percent": 0.0, - "address": "30784", + "address": "30632", "metadata": { "virtual_address": "1407472" } @@ -177278,7 +178348,7 @@ "name": "func_00157B30", "size": "292", "fuzzy_match_percent": 0.0, - "address": "31104", + "address": "30952", "metadata": { "virtual_address": "1407792" } @@ -177287,7 +178357,7 @@ "name": "func_00157C58", "size": "260", "fuzzy_match_percent": 0.0, - "address": "31400", + "address": "31248", "metadata": { "virtual_address": "1408088" } @@ -177296,7 +178366,7 @@ "name": "func_00157D60", "size": "568", "fuzzy_match_percent": 0.0, - "address": "31664", + "address": "31512", "metadata": { "virtual_address": "1408352" } @@ -177305,7 +178375,7 @@ "name": "func_00157F98", "size": "496", "fuzzy_match_percent": 0.0, - "address": "32232", + "address": "32080", "metadata": { "virtual_address": "1408920" } @@ -177314,7 +178384,7 @@ "name": "func_00158188", "size": "12", "fuzzy_match_percent": 0.0, - "address": "32728", + "address": "32576", "metadata": { "virtual_address": "1409416" } @@ -177323,7 +178393,7 @@ "name": "func_001582A0", "size": "4", "fuzzy_match_percent": 0.0, - "address": "33008", + "address": "32856", "metadata": { "virtual_address": "1409696" } @@ -177332,7 +178402,7 @@ "name": "func_001582A8", "size": "340", "fuzzy_match_percent": 0.0, - "address": "33016", + "address": "32864", "metadata": { "virtual_address": "1409704" } @@ -177341,7 +178411,7 @@ "name": "func_00158400", "size": "336", "fuzzy_match_percent": 0.0, - "address": "33360", + "address": "33208", "metadata": { "virtual_address": "1410048" } @@ -177350,7 +178420,7 @@ "name": "func_00158550", "size": "20", "fuzzy_match_percent": 0.0, - "address": "33696", + "address": "33544", "metadata": { "virtual_address": "1410384" } @@ -177359,7 +178429,7 @@ "name": "func_001586D8", "size": "20", "fuzzy_match_percent": 0.0, - "address": "34088", + "address": "33936", "metadata": { "virtual_address": "1410776" } @@ -177368,7 +178438,7 @@ "name": "func_00158760", "size": "28", "fuzzy_match_percent": 0.0, - "address": "34224", + "address": "34072", "metadata": { "virtual_address": "1410912" } @@ -177377,7 +178447,7 @@ "name": "func_001587C8", "size": "20", "fuzzy_match_percent": 0.0, - "address": "34328", + "address": "34176", "metadata": { "virtual_address": "1411016" } @@ -177386,7 +178456,7 @@ "name": "func_00158810", "size": "36", "fuzzy_match_percent": 0.0, - "address": "34400", + "address": "34248", "metadata": { "virtual_address": "1411088" } @@ -177395,7 +178465,7 @@ "name": "func_00158950", "size": "52", "fuzzy_match_percent": 0.0, - "address": "34720", + "address": "34568", "metadata": { "virtual_address": "1411408" } @@ -177404,7 +178474,7 @@ "name": "func_001589F0", "size": "60", "fuzzy_match_percent": 0.0, - "address": "34880", + "address": "34728", "metadata": { "virtual_address": "1411568" } @@ -177413,7 +178483,7 @@ "name": "func_00158A30", "size": "560", "fuzzy_match_percent": 0.0, - "address": "34944", + "address": "34792", "metadata": { "virtual_address": "1411632" } @@ -177422,7 +178492,7 @@ "name": "func_00158C60", "size": "864", "fuzzy_match_percent": 0.0, - "address": "35504", + "address": "35352", "metadata": { "virtual_address": "1412192" } @@ -177431,7 +178501,7 @@ "name": "func_00158FF8", "size": "292", "fuzzy_match_percent": 0.0, - "address": "36424", + "address": "36272", "metadata": { "virtual_address": "1413112" } @@ -177440,7 +178510,7 @@ "name": "func_001591D8", "size": "20", "fuzzy_match_percent": 0.0, - "address": "36904", + "address": "36752", "metadata": { "virtual_address": "1413592" } @@ -177449,7 +178519,7 @@ "name": "func_00159250", "size": "4", "fuzzy_match_percent": 0.0, - "address": "37024", + "address": "36872", "metadata": { "virtual_address": "1413712" } @@ -177458,7 +178528,7 @@ "name": "func_00159258", "size": "112", "fuzzy_match_percent": 0.0, - "address": "37032", + "address": "36880", "metadata": { "virtual_address": "1413720" } @@ -177467,7 +178537,7 @@ "name": "func_001592C8", "size": "12", "fuzzy_match_percent": 0.0, - "address": "37144", + "address": "36992", "metadata": { "virtual_address": "1413832" } @@ -177476,7 +178546,7 @@ "name": "func_001593C8", "size": "188", "fuzzy_match_percent": 0.0, - "address": "37400", + "address": "37248", "metadata": { "virtual_address": "1414088" } @@ -177485,7 +178555,7 @@ "name": "func_00159570", "size": "56", "fuzzy_match_percent": 0.0, - "address": "37824", + "address": "37672", "metadata": { "virtual_address": "1414512" } @@ -177494,7 +178564,7 @@ "name": "func_001595A8", "size": "12", "fuzzy_match_percent": 0.0, - "address": "37880", + "address": "37728", "metadata": { "virtual_address": "1414568" } @@ -177503,7 +178573,7 @@ "name": "func_001595E8", "size": "12", "fuzzy_match_percent": 0.0, - "address": "37944", + "address": "37792", "metadata": { "virtual_address": "1414632" } @@ -177512,7 +178582,7 @@ "name": "func_001596B0", "size": "36", "fuzzy_match_percent": 0.0, - "address": "38144", + "address": "37992", "metadata": { "virtual_address": "1414832" } @@ -177521,7 +178591,7 @@ "name": "func_00159700", "size": "20", "fuzzy_match_percent": 0.0, - "address": "38224", + "address": "38072", "metadata": { "virtual_address": "1414912" } @@ -177530,7 +178600,7 @@ "name": "func_00159718", "size": "60", "fuzzy_match_percent": 0.0, - "address": "38248", + "address": "38096", "metadata": { "virtual_address": "1414936" } @@ -177539,7 +178609,7 @@ "name": "func_00159780", "size": "12", "fuzzy_match_percent": 0.0, - "address": "38352", + "address": "38200", "metadata": { "virtual_address": "1415040" } @@ -177548,7 +178618,7 @@ "name": "func_00159980", "size": "36", "fuzzy_match_percent": 0.0, - "address": "38864", + "address": "38712", "metadata": { "virtual_address": "1415552" } @@ -177557,7 +178627,7 @@ "name": "func_001599A8", "size": "76", "fuzzy_match_percent": 0.0, - "address": "38904", + "address": "38752", "metadata": { "virtual_address": "1415592" } @@ -177566,7 +178636,7 @@ "name": "func_00159AA8", "size": "4", "fuzzy_match_percent": 0.0, - "address": "39160", + "address": "39008", "metadata": { "virtual_address": "1415848" } @@ -177575,7 +178645,7 @@ "name": "func_00159AB0", "size": "376", "fuzzy_match_percent": 0.0, - "address": "39168", + "address": "39016", "metadata": { "virtual_address": "1415856" } @@ -177584,7 +178654,7 @@ "name": "func_00159D00", "size": "220", "fuzzy_match_percent": 0.0, - "address": "39760", + "address": "39608", "metadata": { "virtual_address": "1416448" } @@ -177593,7 +178663,7 @@ "name": "func_00159DE0", "size": "192", "fuzzy_match_percent": 0.0, - "address": "39984", + "address": "39832", "metadata": { "virtual_address": "1416672" } @@ -177602,7 +178672,7 @@ "name": "func_00159EC0", "size": "184", "fuzzy_match_percent": 0.0, - "address": "40208", + "address": "40056", "metadata": { "virtual_address": "1416896" } @@ -177611,7 +178681,7 @@ "name": "func_0015A078", "size": "244", "fuzzy_match_percent": 0.0, - "address": "40648", + "address": "40496", "metadata": { "virtual_address": "1417336" } @@ -177620,7 +178690,7 @@ "name": "func_0015A170", "size": "968", "fuzzy_match_percent": 0.0, - "address": "40896", + "address": "40744", "metadata": { "virtual_address": "1417584" } @@ -177629,7 +178699,7 @@ "name": "func_0015A538", "size": "536", "fuzzy_match_percent": 0.0, - "address": "41864", + "address": "41712", "metadata": { "virtual_address": "1418552" } @@ -177638,7 +178708,7 @@ "name": "func_0015A750", "size": "348", "fuzzy_match_percent": 0.0, - "address": "42400", + "address": "42248", "metadata": { "virtual_address": "1419088" } @@ -177647,7 +178717,7 @@ "name": "func_0015A8B0", "size": "420", "fuzzy_match_percent": 0.0, - "address": "42752", + "address": "42600", "metadata": { "virtual_address": "1419440" } @@ -177656,7 +178726,7 @@ "name": "func_0015AA58", "size": "472", "fuzzy_match_percent": 0.0, - "address": "43176", + "address": "43024", "metadata": { "virtual_address": "1419864" } @@ -177665,7 +178735,7 @@ "name": "func_0015AC30", "size": "316", "fuzzy_match_percent": 0.0, - "address": "43648", + "address": "43496", "metadata": { "virtual_address": "1420336" } @@ -177674,7 +178744,7 @@ "name": "func_0015ADA8", "size": "1264", "fuzzy_match_percent": 0.0, - "address": "44024", + "address": "43872", "metadata": { "virtual_address": "1420712" } @@ -177683,7 +178753,7 @@ "name": "func_0015B2C8", "size": "168", "fuzzy_match_percent": 0.0, - "address": "45336", + "address": "45184", "metadata": { "virtual_address": "1422024" } @@ -177692,7 +178762,7 @@ "name": "func_0015B370", "size": "296", "fuzzy_match_percent": 0.0, - "address": "45504", + "address": "45352", "metadata": { "virtual_address": "1422192" } @@ -177701,7 +178771,7 @@ "name": "func_0015B498", "size": "172", "fuzzy_match_percent": 0.0, - "address": "45800", + "address": "45648", "metadata": { "virtual_address": "1422488" } @@ -177710,7 +178780,7 @@ "name": "func_0015B578", "size": "244", "fuzzy_match_percent": 0.0, - "address": "46024", + "address": "45872", "metadata": { "virtual_address": "1422712" } @@ -177719,7 +178789,7 @@ "name": "func_0015B670", "size": "368", "fuzzy_match_percent": 0.0, - "address": "46272", + "address": "46120", "metadata": { "virtual_address": "1422960" } @@ -177728,7 +178798,7 @@ "name": "func_0015B808", "size": "64", "fuzzy_match_percent": 0.0, - "address": "46680", + "address": "46528", "metadata": { "virtual_address": "1423368" } @@ -177737,7 +178807,7 @@ "name": "func_0015B848", "size": "276", "fuzzy_match_percent": 0.0, - "address": "46744", + "address": "46592", "metadata": { "virtual_address": "1423432" } @@ -177746,7 +178816,7 @@ "name": "func_0015BA20", "size": "468", "fuzzy_match_percent": 0.0, - "address": "47216", + "address": "47064", "metadata": { "virtual_address": "1423904" } @@ -177755,7 +178825,7 @@ "name": "func_0015BC70", "size": "608", "fuzzy_match_percent": 0.0, - "address": "47808", + "address": "47656", "metadata": { "virtual_address": "1424496" } @@ -177764,7 +178834,7 @@ "name": "func_0015C018", "size": "220", "fuzzy_match_percent": 0.0, - "address": "48744", + "address": "48592", "metadata": { "virtual_address": "1425432" } @@ -177773,7 +178843,7 @@ "name": "func_0015C0F8", "size": "452", "fuzzy_match_percent": 0.0, - "address": "48968", + "address": "48816", "metadata": { "virtual_address": "1425656" } @@ -177782,7 +178852,7 @@ "name": "func_0015C2D8", "size": "984", "fuzzy_match_percent": 0.0, - "address": "49448", + "address": "49296", "metadata": { "virtual_address": "1426136" } @@ -177791,7 +178861,7 @@ "name": "func_0015C718", "size": "24", "fuzzy_match_percent": 0.0, - "address": "50536", + "address": "50384", "metadata": { "virtual_address": "1427224" } @@ -177800,7 +178870,7 @@ "name": "func_0015C778", "size": "160", "fuzzy_match_percent": 0.0, - "address": "50632", + "address": "50480", "metadata": { "virtual_address": "1427320" } @@ -177809,7 +178879,7 @@ "name": "func_0015C828", "size": "336", "fuzzy_match_percent": 0.0, - "address": "50808", + "address": "50656", "metadata": { "virtual_address": "1427496" } @@ -177818,7 +178888,7 @@ "name": "func_0015C978", "size": "380", "fuzzy_match_percent": 0.0, - "address": "51144", + "address": "50992", "metadata": { "virtual_address": "1427832" } @@ -177827,7 +178897,7 @@ "name": "func_0015D818", "size": "500", "fuzzy_match_percent": 0.0, - "address": "54888", + "address": "54736", "metadata": { "virtual_address": "1431576" } @@ -177836,7 +178906,7 @@ "name": "func_0015DB78", "size": "16", "fuzzy_match_percent": 0.0, - "address": "55752", + "address": "55600", "metadata": { "virtual_address": "1432440" } @@ -177845,7 +178915,7 @@ "name": "func_0015DB88", "size": "28", "fuzzy_match_percent": 0.0, - "address": "55768", + "address": "55616", "metadata": { "virtual_address": "1432456" } @@ -177854,7 +178924,7 @@ "name": "func_0015DBA8", "size": "12", "fuzzy_match_percent": 0.0, - "address": "55800", + "address": "55648", "metadata": { "virtual_address": "1432488" } @@ -177863,7 +178933,7 @@ "name": "func_0015DBB8", "size": "448", "fuzzy_match_percent": 0.0, - "address": "55816", + "address": "55664", "metadata": { "virtual_address": "1432504" } @@ -177872,7 +178942,7 @@ "name": "func_0015DDE8", "size": "4", "fuzzy_match_percent": 0.0, - "address": "56376", + "address": "56224", "metadata": { "virtual_address": "1433064" } @@ -177881,7 +178951,7 @@ "name": "func_0015DDF0", "size": "488", "fuzzy_match_percent": 0.0, - "address": "56384", + "address": "56232", "metadata": { "virtual_address": "1433072" } @@ -177890,7 +178960,7 @@ "name": "func_0015DFD8", "size": "92", "fuzzy_match_percent": 0.0, - "address": "56872", + "address": "56720", "metadata": { "virtual_address": "1433560" } @@ -177899,7 +178969,7 @@ "name": "func_0015E038", "size": "92", "fuzzy_match_percent": 0.0, - "address": "56968", + "address": "56816", "metadata": { "virtual_address": "1433656" } @@ -177908,7 +178978,7 @@ "name": "func_0015E098", "size": "92", "fuzzy_match_percent": 97.83, - "address": "57064", + "address": "56912", "metadata": { "virtual_address": "1433752" } @@ -177917,7 +178987,7 @@ "name": "func_0015E0F8", "size": "92", "fuzzy_match_percent": 0.0, - "address": "57160", + "address": "57008", "metadata": { "virtual_address": "1433848" } @@ -177926,7 +178996,7 @@ "name": "func_0015E158", "size": "92", "fuzzy_match_percent": 0.0, - "address": "57256", + "address": "57104", "metadata": { "virtual_address": "1433944" } @@ -177935,7 +179005,7 @@ "name": "func_0015E1B8", "size": "92", "fuzzy_match_percent": 0.0, - "address": "57352", + "address": "57200", "metadata": { "virtual_address": "1434040" } @@ -177944,7 +179014,7 @@ "name": "func_0015E218", "size": "92", "fuzzy_match_percent": 0.0, - "address": "57448", + "address": "57296", "metadata": { "virtual_address": "1434136" } @@ -177953,7 +179023,7 @@ "name": "func_0015E278", "size": "92", "fuzzy_match_percent": 0.0, - "address": "57544", + "address": "57392", "metadata": { "virtual_address": "1434232" } @@ -177962,7 +179032,7 @@ "name": "func_0015E2D8", "size": "92", "fuzzy_match_percent": 0.0, - "address": "57640", + "address": "57488", "metadata": { "virtual_address": "1434328" } @@ -177971,7 +179041,7 @@ "name": "func_0015E338", "size": "124", "fuzzy_match_percent": 0.0, - "address": "57736", + "address": "57584", "metadata": { "virtual_address": "1434424" } @@ -177980,7 +179050,7 @@ "name": "func_0015E3B8", "size": "92", "fuzzy_match_percent": 0.0, - "address": "57864", + "address": "57712", "metadata": { "virtual_address": "1434552" } @@ -177989,7 +179059,7 @@ "name": "func_0015E418", "size": "92", "fuzzy_match_percent": 0.0, - "address": "57960", + "address": "57808", "metadata": { "virtual_address": "1434648" } @@ -177998,7 +179068,7 @@ "name": "func_0015E478", "size": "92", "fuzzy_match_percent": 0.0, - "address": "58056", + "address": "57904", "metadata": { "virtual_address": "1434744" } @@ -178007,7 +179077,7 @@ "name": "func_0015E4D8", "size": "92", "fuzzy_match_percent": 0.0, - "address": "58152", + "address": "58000", "metadata": { "virtual_address": "1434840" } @@ -178016,7 +179086,7 @@ "name": "func_0015E538", "size": "92", "fuzzy_match_percent": 0.0, - "address": "58248", + "address": "58096", "metadata": { "virtual_address": "1434936" } @@ -178025,7 +179095,7 @@ "name": "func_0015E598", "size": "92", "fuzzy_match_percent": 0.0, - "address": "58344", + "address": "58192", "metadata": { "virtual_address": "1435032" } @@ -178034,7 +179104,7 @@ "name": "func_0015E5F8", "size": "92", "fuzzy_match_percent": 0.0, - "address": "58440", + "address": "58288", "metadata": { "virtual_address": "1435128" } @@ -178043,7 +179113,7 @@ "name": "func_0015E658", "size": "92", "fuzzy_match_percent": 0.0, - "address": "58536", + "address": "58384", "metadata": { "virtual_address": "1435224" } @@ -178052,7 +179122,7 @@ "name": "func_0015E6B8", "size": "92", "fuzzy_match_percent": 0.0, - "address": "58632", + "address": "58480", "metadata": { "virtual_address": "1435320" } @@ -178061,7 +179131,7 @@ "name": "func_0015E718", "size": "144", "fuzzy_match_percent": 0.0, - "address": "58728", + "address": "58576", "metadata": { "virtual_address": "1435416" } @@ -178070,7 +179140,7 @@ "name": "func_0015E7A8", "size": "160", "fuzzy_match_percent": 0.0, - "address": "58872", + "address": "58720", "metadata": { "virtual_address": "1435560" } @@ -178079,7 +179149,7 @@ "name": "func_0015E848", "size": "1700", "fuzzy_match_percent": 0.0, - "address": "59032", + "address": "58880", "metadata": { "virtual_address": "1435720" } @@ -178088,7 +179158,7 @@ "name": "func_0015EF88", "size": "140", "fuzzy_match_percent": 0.0, - "address": "60888", + "address": "60736", "metadata": { "virtual_address": "1437576" } @@ -178097,7 +179167,7 @@ "name": "func_0015F018", "size": "80", "fuzzy_match_percent": 90.0, - "address": "61032", + "address": "60880", "metadata": { "virtual_address": "1437720" } @@ -178106,7 +179176,7 @@ "name": "func_0015F110", "size": "192", "fuzzy_match_percent": 0.0, - "address": "61280", + "address": "61128", "metadata": { "virtual_address": "1437968" } @@ -178115,7 +179185,7 @@ "name": "func_0015F298", "size": "96", "fuzzy_match_percent": 0.0, - "address": "61672", + "address": "61520", "metadata": { "virtual_address": "1438360" } @@ -178124,7 +179194,7 @@ "name": "func_0015F3F0", "size": "60", "fuzzy_match_percent": 0.0, - "address": "62016", + "address": "61864", "metadata": { "virtual_address": "1438704" } @@ -178133,7 +179203,7 @@ "name": "func_0015F430", "size": "108", "fuzzy_match_percent": 0.0, - "address": "62080", + "address": "61928", "metadata": { "virtual_address": "1438768" } @@ -178142,7 +179212,7 @@ "name": "func_0015F4A0", "size": "1480", "fuzzy_match_percent": 0.0, - "address": "62192", + "address": "62040", "metadata": { "virtual_address": "1438880" } @@ -178151,7 +179221,7 @@ "name": "func_0015FA68", "size": "932", "fuzzy_match_percent": 0.0, - "address": "63672", + "address": "63520", "metadata": { "virtual_address": "1440360" } @@ -178160,7 +179230,7 @@ "name": "func_0015FE10", "size": "104", "fuzzy_match_percent": 0.0, - "address": "64608", + "address": "64456", "metadata": { "virtual_address": "1441296" } @@ -178169,7 +179239,7 @@ "name": "func_0015FE78", "size": "496", "fuzzy_match_percent": 0.0, - "address": "64712", + "address": "64560", "metadata": { "virtual_address": "1441400" } @@ -178187,11 +179257,11 @@ { "name": "main/core.text/0016xxxx", "measures": { - "fuzzy_match_percent": 0.76428, - "total_code": "11776", + "fuzzy_match_percent": 0.785628, + "total_code": "11456", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 39, + "total_functions": 38, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -178236,15 +179306,6 @@ "virtual_address": "1444600" } }, - { - "name": "func_00160FD8", - "size": "320", - "fuzzy_match_percent": 0.0, - "address": "3952", - "metadata": { - "virtual_address": "1445848" - } - }, { "name": "func_00161138", "size": "28", @@ -179535,11 +180596,11 @@ { "name": "main/net.text/01EAxxxx", "measures": { - "fuzzy_match_percent": 0.486536, - "total_code": "63272", + "fuzzy_match_percent": 0.488978, + "total_code": "62956", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 255, + "total_functions": 253, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -180007,15 +181068,6 @@ "virtual_address": "32130336" } }, - { - "name": "func_01EA4570", - "size": "48", - "fuzzy_match_percent": 0.0, - "address": "17704", - "metadata": { - "virtual_address": "32130416" - } - }, { "name": "func_01EA45A0", "size": "200", @@ -181825,15 +182877,6 @@ "virtual_address": "32172616" } }, - { - "name": "func_01EAEBE0", - "size": "268", - "fuzzy_match_percent": 0.0, - "address": "60312", - "metadata": { - "virtual_address": "32173024" - } - }, { "name": "func_01EAED20", "size": "8008", @@ -181856,11 +182899,11 @@ { "name": "main/net.text/01EBxxxx", "measures": { - "fuzzy_match_percent": 0.71551, - "total_code": "60116", + "fuzzy_match_percent": 0.721753, + "total_code": "59596", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 193, + "total_functions": 191, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -182130,15 +183173,6 @@ "virtual_address": "32192040" } }, - { - "name": "func_01EB36A0", - "size": "260", - "fuzzy_match_percent": 0.0, - "address": "10800", - "metadata": { - "virtual_address": "32192160" - } - }, { "name": "func_01EB37A8", "size": "144", @@ -182508,15 +183542,6 @@ "virtual_address": "32202400" } }, - { - "name": "func_01EB5FB0", - "size": "260", - "fuzzy_match_percent": 0.0, - "address": "21312", - "metadata": { - "virtual_address": "32202672" - } - }, { "name": "func_01EB6100", "size": "100", @@ -185364,11 +186389,11 @@ { "name": "main/net.text/01EDxxxx", "measures": { - "fuzzy_match_percent": 0.544867, - "total_code": "48452", + "fuzzy_match_percent": 0.548992, + "total_code": "48088", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 190, + "total_functions": 188, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -186088,15 +187113,6 @@ "virtual_address": "32334968" } }, - { - "name": "func_01ED66B0", - "size": "104", - "fuzzy_match_percent": 0.0, - "address": "26264", - "metadata": { - "virtual_address": "32335536" - } - }, { "name": "func_01ED6718", "size": "388", @@ -186673,15 +187689,6 @@ "virtual_address": "32351680" } }, - { - "name": "func_01EDA668", - "size": "260", - "fuzzy_match_percent": 0.0, - "address": "42576", - "metadata": { - "virtual_address": "32351848" - } - }, { "name": "func_01EDA798", "size": "216", @@ -187100,11 +188107,11 @@ { "name": "main/net.text/01EExxxx", "measures": { - "fuzzy_match_percent": 0.461479, - "total_code": "59592", + "fuzzy_match_percent": 0.462224, + "total_code": "59496", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 185, + "total_functions": 184, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -188571,15 +189578,6 @@ "virtual_address": "32432252" } }, - { - "name": "func_01EEE13C", - "size": "96", - "fuzzy_match_percent": 0.0, - "address": "57260", - "metadata": { - "virtual_address": "32432444" - } - }, { "name": "func_01EEE588", "size": "204", @@ -188792,10 +189790,10 @@ "name": "main/net.text/01EFxxxx", "measures": { "fuzzy_match_percent": 0.0, - "total_code": "57076", + "total_code": "56744", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 218, + "total_functions": 216, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -189065,15 +190063,6 @@ "virtual_address": "32451732" } }, - { - "name": "func_01EF2CC4", - "size": "76", - "fuzzy_match_percent": 0.0, - "address": "11212", - "metadata": { - "virtual_address": "32451780" - } - }, { "name": "func_01EF2D10", "size": "120", @@ -189650,15 +190639,6 @@ "virtual_address": "32470692" } }, - { - "name": "func_01EF7830", - "size": "256", - "fuzzy_match_percent": 0.0, - "address": "30520", - "metadata": { - "virtual_address": "32471088" - } - }, { "name": "func_01EF794C", "size": "456", @@ -190779,11 +191759,11 @@ { "name": "main/net.text/01F0xxxx", "measures": { - "fuzzy_match_percent": 0.548589, - "total_code": "40888", + "fuzzy_match_percent": 0.553298, + "total_code": "40540", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 167, + "total_functions": 165, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -191269,15 +192249,6 @@ "virtual_address": "32523864" } }, - { - "name": "func_01F047A0", - "size": "264", - "fuzzy_match_percent": 0.0, - "address": "17988", - "metadata": { - "virtual_address": "32524192" - } - }, { "name": "func_01F048C4", "size": "140", @@ -191620,15 +192591,6 @@ "virtual_address": "32534452" } }, - { - "name": "func_01F07100", - "size": "84", - "fuzzy_match_percent": 0.0, - "address": "28580", - "metadata": { - "virtual_address": "32534784" - } - }, { "name": "func_01F07198", "size": "304", @@ -192308,13 +193270,13 @@ { "name": "Shared level code", "measures": { - "fuzzy_match_percent": 8.686641, + "fuzzy_match_percent": 8.745209, "total_code": "1980624", - "matched_code": "163332", - "matched_code_percent": 8.246492, + "matched_code": "164492", + "matched_code_percent": 8.305059, "total_functions": 5096, - "matched_functions": 1984, - "matched_functions_percent": 38.932496, + "matched_functions": 1993, + "matched_functions_percent": 39.109105, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -194691,7 +195653,7 @@ { "name": "func_L11_003FEB88", "size": "64", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "236320", "metadata": { "virtual_address": "4189064" @@ -199479,7 +200441,7 @@ { "name": "func_L01_0045D4F0", "size": "56", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "623752", "metadata": { "virtual_address": "4576496" @@ -203079,7 +204041,7 @@ { "name": "func_L01_0048F9F8", "size": "176", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "829840", "metadata": { "virtual_address": "4782584" @@ -206076,7 +207038,7 @@ { "name": "func_L01_004AFD28", "size": "144", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "961728", "metadata": { "virtual_address": "4914472" @@ -206310,7 +207272,7 @@ { "name": "func_L01_004B2DC8", "size": "136", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "974176", "metadata": { "virtual_address": "4926920" @@ -210873,7 +211835,7 @@ { "name": "func_L05_004DF580", "size": "88", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1156376", "metadata": { "virtual_address": "5109120" @@ -211638,7 +212600,7 @@ { "name": "func_L01_004EBC88", "size": "184", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1207328", "metadata": { "virtual_address": "5160072" @@ -216255,7 +217217,7 @@ { "name": "func_L01_00585DB0", "size": "48", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1838408", "metadata": { "virtual_address": "5791152" @@ -217263,7 +218225,7 @@ { "name": "func_L00_00593EC8", "size": "264", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1896032", "metadata": { "virtual_address": "5848776" @@ -238198,13 +239160,13 @@ { "name": "Level 00: Multiplayer Menu", "measures": { - "fuzzy_match_percent": 14.637355, + "fuzzy_match_percent": 14.844584, "total_code": "942664", - "matched_code": "126588", - "matched_code_percent": 13.428751, + "matched_code": "128572", + "matched_code_percent": 13.639218, "total_functions": 2810, - "matched_functions": 1037, - "matched_functions_percent": 36.903915, + "matched_functions": 1045, + "matched_functions_percent": 37.188612, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -250868,7 +251830,7 @@ { "name": "func_L00_0070B400", "size": "256", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2213120", "metadata": { "virtual_address": "7386112" @@ -254000,7 +254962,7 @@ { "name": "func_L00_00719248", "size": "488", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2270024", "metadata": { "virtual_address": "7443016" @@ -255476,7 +256438,7 @@ { "name": "func_L00_00729600", "size": "536", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2336512", "metadata": { "virtual_address": "7509504" @@ -256916,7 +257878,7 @@ { "name": "func_L00_007458C8", "size": "256", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2451912", "metadata": { "virtual_address": "7624904" @@ -258050,7 +259012,7 @@ { "name": "func_L00_00755A20", "size": "48", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2517792", "metadata": { "virtual_address": "7690784" @@ -258428,7 +259390,7 @@ { "name": "func_L00_0075C8C0", "size": "56", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2546112", "metadata": { "virtual_address": "7719104" @@ -258698,7 +259660,7 @@ { "name": "func_L00_00762030", "size": "264", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2568496", "metadata": { "virtual_address": "7741488" @@ -262118,7 +263080,7 @@ { "name": "func_L00_00776698", "size": "80", - "fuzzy_match_percent": 38.16, + "fuzzy_match_percent": 100.0, "address": "2652056", "metadata": { "virtual_address": "7825048" @@ -263515,13 +264477,13 @@ { "name": "Level 01: Dreadzone Station (and 21)", "measures": { - "fuzzy_match_percent": 4.11792, + "fuzzy_match_percent": 4.447354, "total_code": "189416", - "matched_code": "7800", - "matched_code_percent": 4.11792, + "matched_code": "8424", + "matched_code_percent": 4.447354, "total_functions": 373, - "matched_functions": 122, - "matched_functions_percent": 32.707775, + "matched_functions": 123, + "matched_functions_percent": 32.975871, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -266690,7 +267652,7 @@ { "name": "func_L01_005334B0", "size": "624", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1467584", "metadata": { "virtual_address": "5452976" @@ -268375,13 +269337,13 @@ { "name": "Level 06: Temple Of Shaar (and 26)", "measures": { - "fuzzy_match_percent": 5.283505, + "fuzzy_match_percent": 15.850515, "total_code": "9312", - "matched_code": "492", - "matched_code_percent": 5.283505, + "matched_code": "1476", + "matched_code_percent": 15.850515, "total_functions": 30, - "matched_functions": 8, - "matched_functions_percent": 26.666667, + "matched_functions": 11, + "matched_functions_percent": 36.666667, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -268499,7 +269461,7 @@ { "name": "func_L06_00416C20", "size": "256", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "288680", "metadata": { "virtual_address": "4287520" @@ -268625,7 +269587,7 @@ { "name": "func_L06_004DE3B8", "size": "616", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1105728", "metadata": { "virtual_address": "5104568" @@ -268652,7 +269614,7 @@ { "name": "func_L06_00565628", "size": "112", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1659312", "metadata": { "virtual_address": "5658152" @@ -271939,13 +272901,13 @@ { "name": "Level 41: Battledome Tower (all 22 multiplayer maps)", "measures": { - "fuzzy_match_percent": 12.934363, + "fuzzy_match_percent": 13.311549, "total_code": "139984", - "matched_code": "15708", - "matched_code_percent": 11.221282, + "matched_code": "16236", + "matched_code_percent": 11.598468, "total_functions": 375, - "matched_functions": 162, - "matched_functions_percent": 43.2, + "matched_functions": 164, + "matched_functions_percent": 43.733333, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -273575,7 +274537,7 @@ { "name": "func_L41_0043A858", "size": "264", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "520200", "metadata": { "virtual_address": "4434008" @@ -275258,7 +276220,7 @@ { "name": "func_L41_00625710", "size": "264", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2531008", "metadata": { "virtual_address": "6444816" diff --git a/src/core/0012AA70.c b/src/core/0012AA70.c new file mode 100644 index 00000000..b86bfe63 --- /dev/null +++ b/src/core/0012AA70.c @@ -0,0 +1,30 @@ +/* cflags: @ee29 -O2 -G0 */ +#include "common.h" + +extern s32 func_0012A718(void *client, s32 command, u32 mode, + const void *send, s32 sendSize, + void *receive, s32 receiveSize, + void (*complete)(void *), void *argument); +extern s32 func_00127A08(s32 microseconds); + +s32 func_0012AA70(void *client, s32 command, u32 mode, const void *send, s32 sendSize, void *receive, s32 receiveSize, void (*complete)(void *), void *argument, s32 failFast) +{ + s32 failed = 0; + s32 delay = 1; + s32 attempt = 0; + + do { + failed = (u32)func_0012A718(client, command, mode, send, sendSize, + receive, receiveSize, complete, argument) >> + 31; + if (!failed || failFast) { + break; + } + func_00127A08(delay * 1000); + if (delay < 127) { + delay *= 2; + } + attempt++; + } while (attempt < 101); + return failed; +} diff --git a/src/core/0012CA90.c b/src/core/0012CA90.c new file mode 100644 index 00000000..4a2ba5c2 --- /dev/null +++ b/src/core/0012CA90.c @@ -0,0 +1,27 @@ +/* cflags: @ee29 -O2 -G0 */ +#include "common.h" + +extern s32 D_001A9500[]; +extern u8 D_001A9700[]; +extern s32 func_0012C4B8(void); +extern s32 func_0012C5B8(void); +extern s32 func_0012A718(void *client, s32 command, u32 mode, + const void *send, s32 sendSize, + void *receive, s32 receiveSize, + void (*complete)(void *), void *argument); + +s32 func_0012CA90(s32 descriptor) +{ + if (func_0012C4B8() < 0) { + return (s32)0xFFFF0000u; + } + if (func_0012C5B8()) { + return (s32)0xFFFEFFFCu; + } + D_001A9500[0] = descriptor; + if (func_0012A718(D_001A9700, 8, 0, D_001A9500, 4, + D_001A9500, 4, 0, 0) < 0) { + return (s32)0xFFFEFFFFu; + } + return D_001A9500[0]; +} diff --git a/src/core/001373B0.c b/src/core/001373B0.c new file mode 100644 index 00000000..7fbdbb09 --- /dev/null +++ b/src/core/001373B0.c @@ -0,0 +1,23 @@ +/* cflags: @ee29 -O2 -G0 */ +#include "common.h" +extern u8 D_00167190[]; +extern s32 D_00166040[]; +extern s32 D_00165FE8; +extern s32 func_00137258(s32 command); +extern s32 func_00126BC0(s32 semaphore); +extern s32 func_0012A718(void *client, s32 command, u32 mode, + const void *send, s32 send_size, void *receive, s32 receive_size, + void (*complete)(void *), void *argument); +s32 func_001373B0(void) +{ + s32 result; + if (!func_00137258(2)) + return 0; + if (func_0012A718(D_00167190, 14, 0, 0, 0, D_00166040, 4, 0, 0) < 0) { + func_00126BC0(D_00165FE8); + return 0; + } + result = *(s32 *)((u32)D_00166040 | 0x20000000u); + func_00126BC0(D_00165FE8); + return result; +} diff --git a/src/core/00137FB0.c b/src/core/00137FB0.c new file mode 100644 index 00000000..0bb53bc7 --- /dev/null +++ b/src/core/00137FB0.c @@ -0,0 +1,23 @@ +/* cflags: @ee29 -O2 -G0 */ +#include "common.h" +extern u8 D_00167B40[]; +extern s32 D_001671C0[]; +extern s32 D_00165FEC; +extern s32 func_00137558(s32 command); +extern s32 func_00126BC0(s32 semaphore); +extern s32 func_0012A718(void *client, s32 command, u32 mode, + const void *send, s32 send_size, void *receive, s32 receive_size, + void (*complete)(void *), void *argument); +s32 func_00137FB0(void) +{ + s32 result; + if (!func_00137558(3)) + return -1; + if (func_0012A718(D_00167B40, 4, 0, 0, 0, D_001671C0, 4, 0, 0) < 0) { + func_00126BC0(D_00165FEC); + return -1; + } + result = *(s32 *)((u32)D_001671C0 | 0x20000000u); + func_00126BC0(D_00165FEC); + return result; +} diff --git a/src/core/00138100.c b/src/core/00138100.c new file mode 100644 index 00000000..819fd863 --- /dev/null +++ b/src/core/00138100.c @@ -0,0 +1,24 @@ +/* cflags: @ee29 -O2 -G0 */ +#include "common.h" +extern u8 D_00167B40[]; +extern s32 D_001671C0[]; +extern s32 D_00165FEC; +extern s32 func_00137558(s32 command); +extern s32 func_00126BC0(s32 semaphore); +extern s32 func_0012A718(void *client, s32 command, u32 mode, + const void *send, s32 send_size, void *receive, s32 receive_size, + void (*complete)(void *), void *argument); +s32 func_00138100(s32 *output) +{ + s32 result; + if (!func_00137558(33)) + return 0; + if (func_0012A718(D_00167B40, 33, 0, 0, 0, D_001671C0, 8, 0, 0) < 0) { + func_00126BC0(D_00165FEC); + return 0; + } + *output = *(s32 *)(((u32)D_001671C0 + 4u) | 0x20000000u); + result = *(s32 *)((u32)D_001671C0 | 0x20000000u); + func_00126BC0(D_00165FEC); + return result; +} diff --git a/src/core/0013A0F0.c b/src/core/0013A0F0.c new file mode 100644 index 00000000..2fccc65a --- /dev/null +++ b/src/core/0013A0F0.c @@ -0,0 +1,17 @@ +/* cflags: @ee29 -O2 -G0 */ +#include "common.h" + +s32 func_00126BB0(s32); +s32 func_0013A7A0(s32, s32, s32); +extern s32 D_00167BFC[]; +extern s32 D_00167C00[]; + +s32 func_0013A0F0(void) { + if (D_00167BFC[0] >= 0) { + func_0013A7A0(0, 0, 0); + func_00126BB0(D_00167BFC[0]); + D_00167BFC[0] = -1; + func_00126BB0(D_00167C00[0]); + } + return 1; +} diff --git a/src/core/0013B460.c b/src/core/0013B460.c new file mode 100644 index 00000000..ac329b52 --- /dev/null +++ b/src/core/0013B460.c @@ -0,0 +1,35 @@ +/* cflags: @ee29 -O2 -G0 */ +#include "common.h" + +extern u8 D_001AEFC0[]; +extern s32 D_001AF200[]; +extern s32 D_00167C18[]; +extern s32 D_00167C24[]; +extern s32 func_0013C2E8(s32 enabled); +extern void func_00129990(s32 command); +extern s32 func_0012A718(void *client, s32 command, u32 mode, + const void *send, s32 sendSize, + void *receive, s32 receiveSize, + void (*complete)(void *), void *argument); + +s32 func_0013B460(void) +{ + s32 result; + + if (D_00167C18[0] == 0) { + return 1; + } + func_0013C2E8(0); + D_001AF200[0] = 15; + if (func_0012A718(D_001AEFC0, 1, 0, D_001AF200, 0x80, + D_001AF200, 0x80, 0, 0) < 0) { + return 0; + } + func_00129990((s32)0x80000019u); + result = D_001AF200[3]; + if (result == 1) { + D_00167C18[0] = 0; + } + D_00167C24[0] = 0; + return result; +} diff --git a/src/core/001464C0.c b/src/core/001464C0.c new file mode 100644 index 00000000..a7136e45 --- /dev/null +++ b/src/core/001464C0.c @@ -0,0 +1,9 @@ +/* cflags: @ee29 -O2 -G0 */ +#include "common.h" + +s32 func_001294F0(void *, s32); +extern s32 D_00195770[]; + +void func_001464C0(s32 arg0) { + func_001294F0(D_00195770, arg0); +} diff --git a/src/core/0014C168.c b/src/core/0014C168.c new file mode 100644 index 00000000..c62e3d89 --- /dev/null +++ b/src/core/0014C168.c @@ -0,0 +1,30 @@ +/* cflags: -fno-opt-stack */ +#include "common.h" +extern const f32 D_001A0198[]; +extern f32 func_001484E8(const s32 *steps, s32 unused, const f32 *samples, + f32 frequency, s32 length, f32 gain); +f32 func_0014C168(s32 index, const s32 *steps, s32 unused, const f32 *samples, s32 length, f32 gain, f32 *score) +{ + f32 candidates[2]; + f32 best = *(const f32 *)((u32)D_001A0198 + ((u32)index << 2)); + s32 count = 0; + s32 i; + if (index > 0) { + f32 previous = *(const f32 *)((u32)D_001A0198 + (((u32)index - 1u) << 2)); + candidates[count++] = (best + previous) * 0.5f; + } + index = (s32)((u32)index + 1u); + if (index < 74) { + f32 next = *(const f32 *)((u32)D_001A0198 + ((u32)index << 2)); + candidates[count++] = (best + next) * 0.5f; + } + for (i = 0; i < count; i++) { + f32 frequency = candidates[i]; + f32 value = func_001484E8(steps, unused, samples, frequency, length, gain); + if (*score < value) { + *score = value; + best = frequency; + } + } + return best; +} diff --git a/src/core/0014CCA0.c b/src/core/0014CCA0.c new file mode 100644 index 00000000..605fc659 --- /dev/null +++ b/src/core/0014CCA0.c @@ -0,0 +1,20 @@ +#include "common.h" +f32 func_0014CCA0(f32 level, f32 value, f32 minimum, f32 speed, f32 target) +{ + if (level <= 0.01f) + value = 0.0f; + if (level >= 0.45f) { + level -= 0.45f; + if (level * (speed * 0.5f) < 1.0f) + level += 0.0714285746216774f; + if (value < level) + value = level; + } + if (value < minimum && minimum >= 0.0714285746216774f) { + if (speed < target * 1.25f && speed > target * 0.8f) + value = value * 0.7f + minimum * 0.3f; + if (value < 0.0714285746216774f) + value += 0.0714285746216774f; + } + return value; +} diff --git a/src/core/001501B0.c b/src/core/001501B0.c new file mode 100644 index 00000000..0bf10322 --- /dev/null +++ b/src/core/001501B0.c @@ -0,0 +1,18 @@ +/* cflags: -fno-opt-stack */ +#include "common.h" + +extern const f32 D_001A39A0[]; +extern const f32 D_001A3988[]; +extern f32 func_00147DE0(f32 value); + +f32 func_001501B0(f32 value, f32 scale) +{ + s32 band; + for (band = 0; band < 5; ++band) { + if (D_001A39A0[band] < value) { + break; + } + } + return (D_001A3988[band] + func_00147DE0(scale) * 0.5f) + + -5.045318603515625f; +} diff --git a/src/core/00160FD8.c b/src/core/00160FD8.c new file mode 100644 index 00000000..b7fbd663 --- /dev/null +++ b/src/core/00160FD8.c @@ -0,0 +1,57 @@ +/* cflags: -mno-split-addresses */ +#include "common.h" + +extern s32 D_0021DDB8[]; + +void func_00160FD8(void *object) { + s32 remaining; + s32 now; + void *node; + void *current; + void *next; + + node = (*(void **)((s8 *)(object) + (0xAAC))); + (*(s8 *)((s8 *)(object) + (0xA99))) = 0; + if (node != NULL) { + (*(s8 *)((s8 *)(node) + (0xA0))) = 0; + remaining = (s32)((u32)(*(s32 *)((s8 *)(object) + (0xAA0))) - 1U); + (*(void **)((s8 *)(object) + (0xAAC))) = (void *) (*(void **)((s8 *)((*(void **)((s8 *)(object) + (0xAAC)))) + (0x98))); + (*(s32 *)((s8 *)(object) + (0xAA0))) = remaining; + if (remaining >= 4) { + now = D_0021DDB8[0]; + if (((s32)((u32)now - (u32)(*(s32 *)((s8 *)(object) + (0xAA4))))) >= 0x385) { + (*(s32 *)((s8 *)(object) + (0xAA4))) = (s32)((u32)now - 0x258U); + if ((*(s8 *)((s8 *)(object) + (0xAA9))) <= 0) { + (*(s8 *)((s8 *)(object) + (0xAA9))) = 1; + } + } + } + next = (*(void **)((s8 *)(object) + (0xAAC))); + if (next != NULL) { + if ((*(u8 *)((s8 *)(object) + (0xAA8))) != 0) { + (*(s8 *)((s8 *)(next) + (0xA0))) = 0; + (*(void **)((s8 *)(object) + (0xAAC))) = (void *) (*(void **)((s8 *)((*(void **)((s8 *)(object) + (0xAAC)))) + (0x98))); + (*(s32 *)((s8 *)(object) + (0xAA0))) = (s32) ((s32)((u32)(*(s32 *)((s8 *)(object) + (0xAA0))) - 1U)); + goto block_8; + } + } else { +block_8: + if ((*(u8 *)((s8 *)(object) + (0xAA8))) != 0) { + if ((*(s32 *)((s8 *)(object) + (0xAA0))) < ((s32) ((f32) (*(s8 *)((s8 *)(object) + (0xAA9))) * 0.25f) + 3)) { + (*(u8 *)((s8 *)(object) + (0xAA8))) = 0U; + } + } + } + if (((s32) ((f32) (*(s8 *)((s8 *)(object) + (0xAA9))) * 0.25f) + 4) < (*(s32 *)((s8 *)(object) + (0xAA0)))) { + (*(u8 *)((s8 *)(object) + (0xAA8))) = 1U; + } + current = (*(void **)((s8 *)(object) + (0xAAC))); + if (current != NULL) { + (*(s32 *)((s8 *)(current) + (0x9C))) = 0; + (*(s8 *)((s8 *)(object) + (0xA98))) = 0; + (*(s32 *)((s8 *)(object) + (0xA9C))) = (s32) (*(u8 *)((s8 *)((*(void **)((s8 *)(object) + (0xAAC)))) + (0x16))); + } else { + (*(s32 *)((s8 *)(object) + (0xAB0))) = 0; + } + } +} diff --git a/src/game/00481100.c b/src/game/00481100.c new file mode 100644 index 00000000..c6403c64 --- /dev/null +++ b/src/game/00481100.c @@ -0,0 +1,67 @@ +#include "common.h" + +typedef void (*Callback)(void *, s32); +extern void *func_004765F0(void *); + +typedef struct Descriptor { + u8 unknown0[5]; + u8 inherit; + u8 unknown6[2]; + u32 flags; +} Descriptor; + +static inline Descriptor *getDescriptor(void *object) +{ + u32 address = (u32)object; + u32 index = *(u8 *)(address + 0x54); + u32 table = *(u32 *)(address + 0x24); + u32 asset = *(u32 *)(table + (index << 2) + 0x48); + u32 metadata = *(u32 *)(asset + 0x18); + return *(Descriptor **)(metadata + 4); +} + +s32 func_00481100(void *object, s32 mode, s32 temporary) +{ + u32 stateAddress; + Callback callback; + Descriptor *descriptor; + u32 value; + + stateAddress = (u32)func_004765F0(object); + if (stateAddress == 0) { + return 0; + } + if (*(u8 *)(stateAddress + 0x33) != mode) { + return 1; + } + if (mode <= 0) { + return 1; + } + *(s32 *)(stateAddress + 0x4) &= -0x81; + *(s32 *)(stateAddress + 0x4) &= 0xFFFDFFFF; + *(s32 *)(stateAddress + 0x4) &= -0x1001; + callback = *(Callback *)(stateAddress + 0x6C); + *(s32 *)(stateAddress + 0xC) = 1; + *(u8 *)(stateAddress + 0x33) = 0; + *(Callback *)(stateAddress + 0x6C) = 0; + descriptor = getDescriptor(object); + if (descriptor->inherit == 0 || *(void **)(stateAddress + 0x5C) == 0) { + value = descriptor->flags; + } else { + descriptor = getDescriptor(*(void **)(stateAddress + 0x5C)); + value = descriptor->flags; + } + if ((value & 2) != 0) { + *(s32 *)(stateAddress + 0x4) |= 0x800; + } + if (temporary != 0) { + *(s32 *)(stateAddress + 0x4) |= 0x80; + } + if (callback != 0) { + callback(object, 4); + } + if (temporary != 0) { + *(s32 *)(stateAddress + 0x4) &= -0x81; + } + return 1; +} diff --git a/src/game/00484F68.c b/src/game/00484F68.c new file mode 100644 index 00000000..29d5b9ed --- /dev/null +++ b/src/game/00484F68.c @@ -0,0 +1,96 @@ +#include "common.h" + +typedef struct { + char pad0[5]; + u8 state; + char pad6[2]; + u32 flags; + char padC[8]; + f32 duration; +} Animation; + +typedef struct Object Object; +struct Object { + char pad0[4]; + u32 flags; + char pad8[4]; + s32 mismatch; + char pad10[0x14]; + char *entries; + char pad28[0xB]; + u8 state; + char pad34[0x20]; + u8 index; + u8 finalFlags; + char pad56[6]; + Object *linked; + char pad60[0xC]; + s32 (*callback)(Object *, s32); +}; + +extern s32 func_004845B8(Object *, f32); +extern void func_00481100(Object *, u8, s32); + +static inline Animation *get_animation(Object *obj) +{ + char *base; + char *entry; + char *table; + s32 offset; + + base = obj->entries; + offset = obj->index * 4; + entry = *(char **)(base + offset + 0x48); + table = *(char **)(entry + 0x18); + return *(Animation **)(table + 4); +} + +void func_00484F68(Object *arg0, Object *arg1) +{ + Animation *animation = get_animation(arg0); + Object *current = arg0; + Object *linked; + s32 (*callback)(Object *, s32); + u8 state = arg1->state; + + if (animation->state != state) { + if (arg1->linked != NULL) { + animation = get_animation(arg1->linked); + current = arg1->linked; + } + } + if (animation->state == state) { + if ((animation->flags & 2) != 0 || (arg1->flags & 0x20000) != 0) { + if (arg1->callback != NULL) { + arg1->callback(arg0, 1); + } + } + if ((arg1->flags & 0x40000) == 0 && arg1->callback != NULL) { + if (animation->duration > 0.0f && func_004845B8(current, animation->duration) != 0) { + callback = arg1->callback; + callback(arg0, 2); + arg1->flags |= 0x40000; + } + if (current == arg0 && (linked = arg1->linked) != NULL) { + Animation *linkedAnimation = get_animation(linked); + if (linkedAnimation->state == arg1->state && linkedAnimation->duration > 0.0f && + func_004845B8(linked, linkedAnimation->duration) != 0) { + arg1->callback(arg0, 2); + arg1->flags |= 0x40000; + } + } + } + if ((current->finalFlags & 2) != 0) { + if ((animation->flags & 4) != 0) { + if (arg1->callback != NULL) { + arg1->callback(arg0, 3); + } + arg1->flags &= ~0x40000; + } else { + func_00481100(arg0, arg1->state, 0); + } + } + } else { + arg1->mismatch = 1; + } +} diff --git a/src/game/0048D228.c b/src/game/0048D228.c new file mode 100644 index 00000000..ba9ef7aa --- /dev/null +++ b/src/game/0048D228.c @@ -0,0 +1,59 @@ +#include "common.h" + +typedef struct { + u16 first, count, offset; + u8 rest[6]; +} Grid; +typedef struct { + u16 first; + s16 count; +} Cell; +typedef struct { + u16 first, second, cost, flags; +} Entry; +typedef struct { + u8 p0[0x3008]; + Cell *cells; + u8 p300C[4]; + Grid *grids; + u8 p3014[4]; + u8 *objects; + u8 p301C[0x2C]; + Entry *entries; +} Manager; +extern Manager *D_002214D8; +void func_0048D228(s32 first, s32 second, s32 mask, u16 *out_first, u16 *out_second, s32 *cost) +{ + Manager *manager; + Grid *grid; + typedef struct { + u8 p0[8]; + u16 grid; + u8 pA[22]; + } Object; + Object *object; + Cell *cell; + Entry *entry; + u32 end; + u32 index; + *out_first = 0xFFFF; + *out_second = 0xFFFF; + *cost = 0xFFFFFF; + first &= 0xFFFF; + manager = D_002214D8; + second &= 0xFFFF; + object = (Object *)((u32)manager->objects + (u32)first * 32); + grid = (Grid *)((u32)object->grid * 12 + (u32)manager->grids); + index = grid->offset + (first - grid->first) * grid->count + (second - grid->first); + cell = (Cell *)((u32)manager->cells + index * 4); + entry = (Entry *)((u32)manager->entries + (u32)cell->first * 8); + end = (u32)entry + (u32)cell->count * 8; + while ((u32)entry < end) { + if ((s32)entry->cost < *cost && entry->first != 0xFFFF && (entry->flags & mask) == entry->flags) { + *out_first = entry->first; + *out_second = entry->second; + *cost = entry->cost; + } + entry = (Entry *)((u32)entry + 8); + } +} diff --git a/src/game/0049B960.c b/src/game/0049B960.c new file mode 100644 index 00000000..b7848db4 --- /dev/null +++ b/src/game/0049B960.c @@ -0,0 +1,48 @@ +#include "common.h" + +typedef struct Entry { + f32 value; + u8 unknown4[0x20]; + u8 target; + u8 unknown25[3]; + f32 visibility; + u8 secondaryTarget; + u8 unknown2D[3]; + f32 secondary; +} Entry; + +extern u8 D_00306F2C[]; +extern u8 D_003070D8[]; +extern s32 func_00505B20(void); +extern f32 func_0049B528(f32 *value, s32 target); +extern void func_0049BAB0(s32 context, s32 entry); + +void func_0049B960(void) +{ + s32 i = 0; + u32 offset = 0; + s32 index = func_00505B20(); + u32 contextOffset = (u32)index << 9; + Entry *standard = (Entry *)D_003070D8; + + for (; i < 4; i++, standard++, offset += 0x34) { + Entry *p = (Entry *)(contextOffset + (u32)standard); + u8 first; + s32 second; + s32 third; + + if (index == 4) { + p = (Entry *)((u32)D_00306F2C + offset); + } + if (p->visibility == 0.0f && p->target == 0) { + continue; + } + first = func_0049B528(&p->value, 1) != 0.0f; + second = func_0049B528(&p->visibility, p->target) != 0.0f; + first = (second | first) != 0; + third = func_0049B528(&p->secondary, p->secondaryTarget) != 0.0f; + if (third | first) { + func_0049BAB0(index, i); + } + } +} diff --git a/src/game/004CEB68.c b/src/game/004CEB68.c new file mode 100644 index 00000000..76250f4f --- /dev/null +++ b/src/game/004CEB68.c @@ -0,0 +1,35 @@ +#include "common.h" + +extern s32 func_004A1730(void *); +extern void func_004CED70(void); +extern void func_004CEDB0(void); +extern void func_004CEE70(void); +extern void func_004CEFB0(void); +extern void func_005014B0(s32 a0); +extern s32 func_00505B20(void); +extern u8 D_0030F820[]; + +void func_004CEB68(s32 arg0) { + u8 *entry = D_0030F820 + func_00505B20() * 0x103C; + switch (*(s32 *)entry) { + case 1: + *(s32 *)entry = 0; + break; + case 2: + func_005014B0(arg0); + break; + case 0: + func_004CEFB0(); + break; + } + if (*(s32 *)(entry + 8) & 1) { + func_004CED70(); + } + if (*(s32 *)(entry + 8) & 2) { + func_004CEDB0(); + } + func_004A1730(entry + 0xF90); + if (*(s32 *)(entry + 8) & 4) { + func_004CEE70(); + } +} diff --git a/src/game/004D3060.c b/src/game/004D3060.c new file mode 100644 index 00000000..b93a565f --- /dev/null +++ b/src/game/004D3060.c @@ -0,0 +1,36 @@ +#include "common.h" +typedef struct { + s32 mode; + u8 pad[0x4B]; + u8 active; +} State; +extern State D_003D9BE0; +extern s32 D_002214D0; +extern void *D_0021DDCC; +u8 D_0021FB2C = 0; +extern void func_0047EF38(void), func_00489458(s32), func_0048A060(void *, s32), func_00501498(void *), func_004E21D8(u32, s32, void *), func_0048FA80(void *); +extern s32 func_00158868(s32), func_0049B120(s32), func_00157F98(void), func_00505B20(void), func_00505AD8(s32), func_00505C90(void *); +extern void *func_004D36E0(void); +void func_004D3060(s32 mode) +{ + s32 old; + func_0047EF38(); + func_00158868(0xCD); + if (func_0049B120(0) != 24) + func_00489458(0); + func_0048A060(&D_002214D0, 1); + func_00157F98(); + if (!D_003D9BE0.active) + D_003D9BE0.mode = mode; + old = func_00505B20(); + func_00505AD8(4); + func_00501498(func_004D36E0()); + func_00505C90(func_004D36E0()); + func_00505AD8(old); + if (D_0021FB2C) { + D_0021FB2C = 0; + func_004E21D8(0xFFFFFFFFU, 0, 0); + } + if (D_0021DDCC) + func_0048FA80(D_0021DDCC); +} diff --git a/src/game/004E7990.c b/src/game/004E7990.c new file mode 100644 index 00000000..cb9051cf --- /dev/null +++ b/src/game/004E7990.c @@ -0,0 +1,23 @@ +#include "common.h" + +s32 D_002206F8 = 0; +extern char *D_00221E20; + +void func_004E7990(s32 command, u64 value, s32 unused) +{ + if (!D_002206F8) { + *(u32 *)(D_00221E20 + 0) = 0x10000002u; + *(u32 *)(D_00221E20 + 4) = 0; + *(u32 *)(D_00221E20 + 8) = 0; + *(u32 *)(D_00221E20 + 12) = 0x50000002u; + *(u32 *)(D_00221E20 + 16) = 0x8001; + *(u32 *)(D_00221E20 + 20) = 0x10000000; + *(u32 *)(D_00221E20 + 24) = 14; + *(u32 *)(D_00221E20 + 28) = 0; + D_00221E20 += 32; + } + *(u64 *)D_00221E20 = value; + *(s32 *)(D_00221E20 + 8) = command; + *(u32 *)(D_00221E20 + 12) = 0; + D_00221E20 += 16; +} diff --git a/src/game/004FAFE8.c b/src/game/004FAFE8.c new file mode 100644 index 00000000..da5b3dfe --- /dev/null +++ b/src/game/004FAFE8.c @@ -0,0 +1,78 @@ +#include "common.h" + +typedef struct { + char pad[0x18]; + s32 f18; + s32 f1C; + char pad20[0xC]; + s32 f2C; + s32 f30; + s32 f34; + s32 f38; + s32 f3C; + s32 f40; +} Config; + +typedef struct { + char pad[0x10]; + s32 f10; + s32 f14; +} Bounds; + +extern s32 D_0021DF30[1]; +extern char *D_00221E20; +extern char D_0020F800[]; +extern char D_00329300[]; +extern s32 D_0021DF34[1]; +extern s32 D_0021DEE4[1]; +extern s32 D_0021DEFC[1]; +extern Config D_00328A40; +extern Bounds D_001D3F40; +extern void func_004FAC38(void); +extern void func_004F8B60(void); +extern void func_004F8DF8(s32, s32); +extern void func_004F9680(s32, s32, s32, s32, s32, s32, s32, s32, s32); +extern void func_004F8778(s32, s32, s32, s32, s32, s32, s32, s32); +extern void func_004E7990(s32, u64, s32); + +s32 D_00220A1C = 0; +u8 D_00220A20 = 0; + +void func_004FAFE8(void) +{ + s32 x; + s32 y; + u64 mask; + u64 value; + + func_004FAC38(); + *(s32 *)(D_00221E20 + 0) = (D_0021DF30[0] >> 4) | 0x30000000; + *(s32 *)(D_00221E20 + 4) = (s32)D_0020F800; + *(s32 *)(D_00221E20 + 8) = 0; + *(s32 *)(D_00221E20 + 12) = (D_0021DF30[0] >> 4) | 0x50000000; + D_00221E20 += 16; + func_004F8B60(); + func_004F8DF8(D_0021DF34[0], (s32)D_00329300 + (D_00220A1C << 10)); + func_004F9680(D_0021DEE4[0], D_00328A40.f18, D_00328A40.f1C, + D_00328A40.f34 << 4, D_00328A40.f38 << 4, + D_00328A40.f3C << 4, D_00328A40.f40 << 4, 0xFFFF, + D_0021DF34[0]); + func_004F8778(D_0021DEFC[0], 0x100, 0x100, 0, 1, 0x80, 0x00808080, 0xFFFF); + if (D_00220A20) { + mask = 0xFFFF00000000ULL; + func_004E7990(0x47, 0x70000, 0); + func_004E7990(1, 0x3F80000080808080ULL, 0); + func_004E7990(0x42, 0x8000000098ULL, 0); + func_004E7990(0x42, 0x8000000098ULL, 0); + func_004E7990(0, 0x146, 0); + + y = (D_00328A40.f2C << 4) + D_001D3F40.f10 - 8; + x = (D_00328A40.f30 << 4) + D_001D3F40.f14 - 8; + value = D_001D3F40.f10 - 8; + value |= (u64)(D_001D3F40.f14 - 8) << 16; + value |= mask; + func_004E7990(5, value, 0); + value = ((u64)(s64)x << 16) | y | mask; + func_004E7990(5, value, 0); + } +} diff --git a/src/game/00505F98.c b/src/game/00505F98.c new file mode 100644 index 00000000..45783b90 --- /dev/null +++ b/src/game/00505F98.c @@ -0,0 +1,49 @@ +#include "common.h" +typedef struct Object Object; +typedef struct { + char pad[0x14]; + s32 (*isType)(Object *, u32); +} VTable; +struct Object { + char pad[8]; + VTable *vtable; +}; +typedef struct { + s32 pad; + char *table; +} Manager; +extern Manager D_00222038[]; +extern u32 D_00220B54; +extern Manager *func_005010E0(void); +extern Object *func_005005E8(void *, u32); +extern s32 func_0050C7D8(Object *, u32, s32); +static inline Manager *getManager(void) +{ + Manager *p = D_00222038; + if (p->table) + return p; + return func_005010E0(); +} +static inline Object *valid(Object *p) +{ + if (p && p->vtable->isType(p, D_00220B54)) + return p; + return 0; +} +static inline Object *getTyped(u32 id) +{ + Manager *m = getManager(); + char *state = m->table; + void *table = 0; + if (state) + table = *(void **)(state + (*(s32 *)(state + 0x14) << 2)); + return valid(func_005005E8(table, id)); +} +s32 func_00505F98(u32 id, u32 child, s32 index) +{ + s32 result = 0; + Object *p = getTyped(id); + if (p) + result = func_0050C7D8(p, child, index); + return result; +} diff --git a/src/game/00506508.c b/src/game/00506508.c new file mode 100644 index 00000000..b36b6f70 --- /dev/null +++ b/src/game/00506508.c @@ -0,0 +1,51 @@ +#include "common.h" +typedef struct Object Object; +typedef struct { + char pad[0x14]; + s32 (*isType)(Object *, u32); +} VTable; +struct Object { + char pad[8]; + VTable *vtable; +}; +typedef struct { + s32 pad; + char *table; +} Manager; +extern Manager D_00222038[]; +extern u32 D_00220B54; +extern Manager *func_005010E0(void); +extern Object *func_005005E8(void *, u32); +extern void func_0050CE20(Object *, s32, s32); +static inline Manager *getManager(void) +{ + Manager *p = D_00222038; + if (p->table) + return p; + return func_005010E0(); +} +static inline Object *valid(Object *p) +{ + if (p && p->vtable->isType(p, D_00220B54)) + return p; + return 0; +} +static inline Object *getTyped(u32 id) +{ + Manager *m = getManager(); + char *state = m->table; + void *table = 0; + if (state) + table = *(void **)(state + (*(s32 *)(state + 0x14) << 2)); + return valid(func_005005E8(table, id)); +} +s32 func_00506508(u32 id, s32 mask, s32 enabled) +{ + s32 result = 0; + Object *p = getTyped(id); + if (p) { + func_0050CE20(p, mask, enabled); + result = 1; + } + return result; +} diff --git a/src/game/0050C638.c b/src/game/0050C638.c new file mode 100644 index 00000000..f6657544 --- /dev/null +++ b/src/game/0050C638.c @@ -0,0 +1,46 @@ +#include "common.h" + +typedef struct Node Node; + +typedef struct { + s32 f0; + u32 f4; +} Msg; + +typedef struct { + u8 pad0[0x20]; + s32 (*f20)(Node *, Msg *); + s32 (*f24)(Node *, Msg *); +} VTable; + +struct Node { + u8 pad0[8]; + VTable *f8; + u32 fC; + u8 pad10[0x30]; + Node *children[106]; + s32 f1E8; +}; + +extern s32 func_0050C100(Node *, Msg *); + +s32 func_0050C638(Node *n, Msg *m) { + s32 r = func_0050C100(n, m); + s32 i; + u64 flags; + + if (r != 0 && !(m->f4 & 0x10000)) { + return r; + } + flags = n->fC; + if (!((flags >> 1) & 1) && m->f0 == 0) { + return r; + } + r = (r != 0) | (n->f8->f24(n, m) != 0); + if ((m->f4 & 0x10000) && m->f0 == 0) { + for (i = 0; i < n->f1E8; i++) { + r = (r != 0) | (n->children[i]->f8->f20(n->children[i], m) != 0); + } + } + return r; +} diff --git a/src/game/00512650.c b/src/game/00512650.c new file mode 100644 index 00000000..302e109f --- /dev/null +++ b/src/game/00512650.c @@ -0,0 +1,39 @@ +#include "common.h" +typedef struct { + u8 prefix[0x2314]; + s32 mode, item; + u8 gap[0x33C]; + u8 enabled; + u8 gap2[7]; + u8 blocked; +} Player; +typedef struct { + u8 prefix[0x30]; + s16 value; +} Descriptor; +extern Descriptor *func_00548D28(s32, s32); +extern s32 func_00512610(Player *); +extern s32 D_0021EDD4; + +s32 func_00512650(Player *player, s32 use_descriptor) +{ + s32 item; + if (use_descriptor && player->enabled && !player->blocked) { + item = player->mode == 2 ? player->item : -1; + if (item == -1) + return 0; + return func_00548D28(item, 0)->value; + } + if (func_00512610(player) && D_0021EDD4 != 1) + return 0x65; + item = player->item; + if (item == 5) + return 0x42; + if (item == 2) + return 0x40; + if (item == 4 || item == 10) + return 0x44; + if (item == 6 || item == 7 || item == 3 || item == 8 || item == 9 || item == 13) + return 0x4E; + return 0; +} diff --git a/src/game/00525CB0.c b/src/game/00525CB0.c new file mode 100644 index 00000000..9e916a34 --- /dev/null +++ b/src/game/00525CB0.c @@ -0,0 +1,55 @@ +#include "common.h" + +extern s32 D_0021EDD4; +extern s8 *D_0021DFF0; +extern u8 *D_0021DFE8; +extern s32 D_0021DE10; +extern s32 func_00526DC0(s32, s32); +extern void func_00526F20(s32, s32); +extern void func_00526FD8(s32, s32, s32); + +void func_00525CB0(s32 a0) +{ + s32 result; + s32 counter; + + if (D_0021EDD4 != 1) { + return; + } + if (func_00526DC0(a0, 0) == 0) { + func_00526F20(a0, 0); + return; + } + if (func_00526DC0(a0, 2) == 0 && func_00526DC0(a0, 3) == 0) { + func_00526FD8(a0, 2, 3); + return; + } + if (func_00526DC0(a0, 1) == 0) { + func_00526F20(a0, 1); + return; + } + result = func_00526DC0(a0, 4); + counter = D_0021DE10; + if (result == 0 && D_0021DFF0[9] != 0) { + func_00526F20(a0, 4); + return; + } + counter = D_0021DE10; + if (counter % 10 < 6) { + if (func_00526DC0(a0, 5) == 0) { + if (D_0021DFE8[0x1A9] != 2) { + func_00526F20(a0, 5); + return; + } + } + } + if (D_0021DE10 % 10 >= 6) { + return; + } + if (func_00526DC0(a0, 0x14) != 0) { + return; + } + if (D_0021DFE8[0x1A9] != 2) { + func_00526F20(a0, 0x14); + } +} diff --git a/src/game/0054A4A0.c b/src/game/0054A4A0.c new file mode 100644 index 00000000..4eae2857 --- /dev/null +++ b/src/game/0054A4A0.c @@ -0,0 +1,38 @@ +#include "common.h" + +extern void func_00549D20(void *, s32, s32, s32); +extern s32 func_00547E30(void *, s32); +extern s32 func_00547E00(void *, s32); +extern void func_00547DC8(void *, s32, s32); + +s32 func_0054A4A0(void *arg0, s32 arg1, s32 arg2, s32 arg3) +{ + u8 *pointer; + s32 offset; + s32 result; + s32 other; + s32 i; + + if ((u32)(arg2 - 1) >= 8) { + return 0; + } + offset = arg1 * 0x44; + pointer = (u8 *)arg0 + offset; + for (i = 0; i < 0xA; i++, pointer += 4) { + if (pointer[0xA44] == arg2) { + pointer[0xA44] = 0; + if (arg3 != 0) { + func_00549D20(arg0, arg2, -1, 0); + } + if (arg2 == 2) { + result = func_00547E30(arg0, arg1); + other = func_00547E00(arg0, arg1); + if (result < other) { + func_00547DC8(arg0, arg1, result); + } + } + return 1; + } + } + return 0; +} diff --git a/src/game/0054ACE8.c b/src/game/0054ACE8.c new file mode 100644 index 00000000..63fac474 --- /dev/null +++ b/src/game/0054ACE8.c @@ -0,0 +1,40 @@ +#include "common.h" +typedef struct { + s32 time; + s32 type; + s32 subtype; + s32 level; + s32 id; + s32 bit; +} State; +extern s32 func_0054ADC8(const State *state); +extern s32 func_0054AB98(s32 id, s32 *row); +extern s32 D_00171B4C[]; +extern u8 D_00171C08[]; +typedef struct { + u8 unknown0[9]; + u8 unlocked; + u8 unknownA[2]; +} Record; +extern Record D_001F87F0[]; +s32 func_0054ACE8(State *state) +{ + if (!func_0054ADC8(state)) + return 0; + if (D_00171B4C[0] < state->time) + return 0; + if ((u32)state->id + 1 >= 2) { + s32 row; + s32 index = func_0054AB98(state->id, &row); + u32 offset = (u32)index * 12 + (u32)((s32)((u32)row - 1) % 20) * 0x304; + Record *record = (Record *)((u32)D_001F87F0 + offset); + if (!record->unlocked) + return 0; + } + if (state->bit != -1) { + u32 word = *(u32 *)((u32)D_00171C08 + (((u32)state->bit >> 5) << 2)); + if (!(word & (1u << (state->bit & 31)))) + return 0; + } + return 1; +} diff --git a/src/net/01EA4570.c b/src/net/01EA4570.c new file mode 100644 index 00000000..2d9afb86 --- /dev/null +++ b/src/net/01EA4570.c @@ -0,0 +1,10 @@ +/* cflags: -O2 -G8 -mno-split-addresses -malign-jumps=3 */ +#include "common.h" + +extern s32 D_001AF918[]; + +s32 func_01EA4570(u32 index) { + u32 byte_offset = index * sizeof(s32); + if (index >= 4) return 0; + return *(s32 *)((u8 *)D_001AF918 + byte_offset); +} diff --git a/src/net/01EAEBE0.c b/src/net/01EAEBE0.c new file mode 100644 index 00000000..4f5dfdb5 --- /dev/null +++ b/src/net/01EAEBE0.c @@ -0,0 +1,36 @@ +/* cflags: @ee296 -O2 -G0 */ +#include "common.h" + +extern void func_0011A518(void *, s32, s32); +extern void func_01EAED20(u8 *); +extern void func_01EB0C70(u8 *, s32, s32); +extern void func_01EB0CA0(u8 *, u8 *, u32); + +void func_01EAEBE0(u8 *ctx, u8 *out, u32 len) { + s32 n; + u8 *p; + + n = *(s32 *)(ctx + 0x58); + n = (n >> 3) & 0x3F; + p = ctx + n; + n = 0x3F - n; + *p++ = 0x80; + if (n < 8) { + func_0011A518(p, 0, n); + func_01EB0C70(ctx, 0x40, *(s32 *)(ctx + 0x54)); + func_01EAED20(ctx); + func_0011A518(ctx, 0, 0x38); + } else { + func_0011A518(p, 0, n - 8); + } + *(s32 *)(ctx + 0x38) = *(s32 *)(ctx + 0x5C); + *(s32 *)(ctx + 0x3C) = *(s32 *)(ctx + 0x58); + func_01EB0C70(ctx, 0x38, *(s32 *)(ctx + 0x54)); + func_01EAED20(ctx); + if (len > 0x14) { + func_0011A518(out + 0x14, 0, len - 0x14); + len = 0x14; + } + func_01EB0CA0(out, ctx + 0x40, len); + *(s32 *)ctx = 0; +} diff --git a/src/net/01EB36A0.c b/src/net/01EB36A0.c new file mode 100644 index 00000000..b829ca5c --- /dev/null +++ b/src/net/01EB36A0.c @@ -0,0 +1,52 @@ +/* cflags: @ee296 -O2 -G0 */ +#include "common.h" + +typedef struct N_01EB36A0 { + u8 pad0[0x8]; + s32 unk8; + u8 padC[0x14 - 0xC]; + s32 unk14; + s32 unk18; + s32 unk1C; +} N_01EB36A0; + +extern void func_0011A370(s32, s32, s32); +extern s32 func_01EA90F0(s32); +extern void func_01EA94D0(s32 *, s32); +extern void func_01EAE2C0(s32, s32); +extern s32 func_01EB2EE0(s32); +extern N_01EB36A0 *func_01EB2F20(void); +extern void func_01EB2FF0(s32, N_01EB36A0 *); +extern N_01EB36A0 *func_01EB3028(s32, s32); + +s32 func_01EB36A0(s32 arg0, s32 arg1, s32 arg2) { + s32 ctx; + N_01EB36A0 *n; + + ctx = func_01EA90F0(arg0); + if (ctx == 0) { + return -1; + } + if (func_01EB2EE0(arg2) != 0) { + return -1; + } + n = func_01EB3028(ctx, arg1); + if (n == NULL) { + n = func_01EB2F20(); + n->unk8 = arg1; + func_01EB2FF0(ctx, n); + } + if (n->unk1C == 0) { + func_01EA94D0(&n->unk1C, 0x40); + } + if (n->unk14 == 0) { + func_01EA94D0(&n->unk14, 0x10C); + } + if (n->unk18 == 0) { + func_01EA94D0(&n->unk18, 0x10C); + } + func_0011A370(n->unk1C, arg2, 0x40); + func_01EAE2C0(n->unk14, arg2); + func_01EAE2C0(n->unk18, arg2); + return 0; +} diff --git a/src/net/01EB5FB0.c b/src/net/01EB5FB0.c new file mode 100644 index 00000000..1b6f3d24 --- /dev/null +++ b/src/net/01EB5FB0.c @@ -0,0 +1,46 @@ +/* cflags: @ee296 -O2 -G0 */ +#include "common.h" + +typedef struct Pool { + s32 f0; + u32 f4; + u32 f8; + u32 fC; + u8 *f10; + u8 *f14; +} Pool; + +extern void func_0011A518(void *, s32, s32); +extern s32 func_01EA94D0(u8 **, u64); + +s32 func_01EB5FB0(Pool *p, u32 size, u32 elem) { + s32 ret; + + if (p == NULL) { + return 2; + } + if (size & 3) { + return 2; + } + if (elem & 3) { + return 2; + } + if (elem >= size) { + return 2; + } + func_0011A518(p, 0, 0x18); + ret = func_01EA94D0(&p->f10, size); + if (ret != 0) { + return ret; + } + p->f4 = size; + p->f8 = elem; + p->f0 = 0; + p->fC = size / elem; + if (size % elem < p->fC) { + p->fC = p->fC - (p->fC - size % elem) / elem; + } + p->f14 = p->f10 + p->fC * p->f8; + func_0011A518(p->f14, 0, p->fC); + return 0; +} diff --git a/src/net/01ED66B0.c b/src/net/01ED66B0.c new file mode 100644 index 00000000..7b242bc2 --- /dev/null +++ b/src/net/01ED66B0.c @@ -0,0 +1,16 @@ +/* cflags: @ee296 -O2 -G0 */ +#include "common.h" + +s32 func_0011D5D8(void *); +s32 func_01ED5DD0(s32, s32, s32, void *); +extern s32 D_00169CD0; +extern s32 D_00169CD4; +extern s32 D_00198478[]; +extern s32 D_001B7878[]; + +s32 func_01ED66B0(void) { + func_0011D5D8(D_00198478); + if (D_00169CD0 != 1) return -0xF; + if (D_00169CD4 == 0) return -0x10; + return (func_01ED5DD0(1, 0x7, 0x66, D_001B7878) == 0) ? 0 : -5; +} diff --git a/src/net/01EDA668.c b/src/net/01EDA668.c new file mode 100644 index 00000000..0d6f2da6 --- /dev/null +++ b/src/net/01EDA668.c @@ -0,0 +1,64 @@ +/* cflags: @ee296 -O2 -G0 */ +#include "common.h" + +typedef struct E_01EDA668 { + u16 id; + u8 pad2[0x8 - 0x2]; + s32 unk8; + u8 padC[0x10 - 0xC]; + s32 unk10; + s32 unk14; +} E_01EDA668; + +typedef struct O_01EDA668 { + s32 unk0; + s16 unk4; + s32 unk8; + s32 unkC; +} O_01EDA668; + +extern s32 func_01EA94D0(void *, s32); + +O_01EDA668 *func_01EDA668(s32 arg0, E_01EDA668 **list, u32 size) { + O_01EDA668 *p; + u32 n; + u16 count; + u16 i; + s32 mask; + E_01EDA668 *e; + + mask = 0; + n = size >> 2; + count = n; + if (list == NULL) { + return NULL; + } + if (count == 0) { + return NULL; + } + for (i = 0; i < count; i++) { + e = list[i]; + if (e == NULL) { + return NULL; + } + if (e->id != i) { + return NULL; + } + if (e->unk14 == 0) { + return NULL; + } + if (e->unk10 == 0) { + return NULL; + } + if (e->unk8 == 0) { + return NULL; + } + mask |= 1 << i; + } + func_01EA94D0(&p, 0x10); + p->unk0 = arg0; + p->unk8 = (s32)list; + p->unk4 = n; + p->unkC = mask; + return p; +} diff --git a/src/net/01EEE13C.c b/src/net/01EEE13C.c new file mode 100644 index 00000000..072d9759 --- /dev/null +++ b/src/net/01EEE13C.c @@ -0,0 +1,22 @@ +/* cflags: -Os -G8 -mno-split-addresses -mips3 -mcpu=r4000 */ +#include "common.h" + +typedef struct Type1 Type1; +struct Type1 { + char _p0[0x84]; + s32 f84; +}; + +s32 func_01F0C090(void *, s32); +extern Type1 *D_0016E430[]; +extern s32 D_0019C400[]; + +s32 func_01EEE13C(void) { + if (D_0016E430[0] == NULL) { + func_01F0C090(D_0019C400, 0x6D); + } + if (D_0016E430[0]->f84 == 0) { + func_01F0C090(D_0019C400, 0x6E); + } + return D_0016E430[0]->f84; +} diff --git a/src/net/01EF2CC4.c b/src/net/01EF2CC4.c new file mode 100644 index 00000000..ea947161 --- /dev/null +++ b/src/net/01EF2CC4.c @@ -0,0 +1,17 @@ +/* cflags: @ee296 -O2 -G0 -falign-jumps=1 -mno-split-addresses */ +#include "common.h" + +s32 func_01EF2C94(s32); +s32 func_01EF2DB8(s32); +extern s32 D_0016E498[]; + +s32 func_01EF2CC4(void) { + s32 temp_v0; + + if (D_0016E498[0] == 0) { + temp_v0 = func_01EF2DB8(0x204); + func_01EF2C94(temp_v0); + D_0016E498[0] = temp_v0; + } + return D_0016E498[0]; +} diff --git a/src/net/01EF7830.c b/src/net/01EF7830.c new file mode 100644 index 00000000..07952d2c --- /dev/null +++ b/src/net/01EF7830.c @@ -0,0 +1,75 @@ +/* cflags: @ee296 -O2 -G0 -fno-gcse -Wa,-mips4 */ +#include "common.h" + +typedef struct Obj Obj; +typedef struct ObjVt { + char _p0[0x20]; + void (*f20)(Obj *, s32, s32, s32, s32, f32, f32, f32, f32, f32, s32, char *, s32, s32, s32, s32); +} ObjVt; +struct Obj { + ObjVt *vt; +}; + +typedef struct Self { + char _p0[0x4]; + s32 f4; + s32 f8; + char _pC[0xC]; + f32 f18; + f32 f1C; + f32 f20; + f32 f24; + f32 f28; + s32 f2C; + s32 f30; + char _p34[0x4C]; + Obj **f80; + char _p84[0x1C]; + s32 fA0; + char _pA4[0x10]; + s32 fB4; + s32 fB8; + f32 fBC; + char *fC0; + char _pC4[0x14]; + s32 fD8; + s32 fDC; + s32 fE0; + s32 fE4; +} Self; + +s32 func_0011AB04(char *); +s32 func_01EEC4E8(Obj *, char *, s32, f32); +char *func_01EF7C5C(void); +void func_01F06988(char *); + +void func_01EF7830(Self *arg0) { + Obj *obj; + s32 len; + s32 a; + s32 b; + s32 c; + char *s; + f32 f; + + obj = *arg0->f80; + s = func_01EF7C5C(); + arg0->fC0 = s; + func_01F06988(s); + len = func_0011AB04(arg0->fC0); + a = arg0->fD8; + b = arg0->f2C; + c = arg0->f30; + if (arg0->f8 != 0) { + a = arg0->fDC; + b = arg0->fE0; + c = arg0->fE4; + } + f = arg0->fBC; + if (f > 0.0f) { + len = func_01EEC4E8(obj, arg0->fC0, arg0->fB4, f); + } + obj->vt->f20(obj, arg0->f4, a, b, c, + arg0->f18, arg0->f1C, arg0->f20, arg0->f24, arg0->f28, + arg0->f8, arg0->fC0, len, arg0->fB4, arg0->fB8, arg0->fA0); +} diff --git a/src/net/01F047A0.c b/src/net/01F047A0.c new file mode 100644 index 00000000..b101d322 --- /dev/null +++ b/src/net/01F047A0.c @@ -0,0 +1,45 @@ +/* cflags: @ee296 -O2 -G0 -falign-jumps=1 -mno-split-addresses */ +#include "common.h" + +typedef struct O_01F047A0 { + u8 pad0[0xB8]; + s32 unkB8; +} O_01F047A0; + +extern s32 func_00121FA0(s32, char *); +extern s32 func_01EE3A18(s32, char *); +extern void func_01EEFB78(s32, s32); +extern void func_01F0C090(char *, s32); +extern char D_0019E090[]; +extern char D_0019E0A0[]; +extern char D_0019E0B0[]; +extern char D_0019E0B8[]; +extern char D_0019E0C8[]; +extern char D_0019E0D0[]; + +s32 func_01F047A0(O_01F047A0 *arg0, s32 arg1) { + s32 a; + s32 b; + s32 v; + + a = func_01EE3A18(arg1, D_0019E0A0); + b = func_01EE3A18(arg1, D_0019E0B0); + if (a != 0 && b != 0) { + func_01EEFB78(a, b); + } else { + func_01F0C090(D_0019E090, 0x6C); + return 0; + } + v = func_01EE3A18(arg1, D_0019E0B8); + if (v != 0) { + if (func_00121FA0(v, D_0019E0C8) == 0) { + arg0->unkB8 = 0; + } else if (func_00121FA0(v, D_0019E0D0) == 0) { + arg0->unkB8 = 1; + } else { + func_01F0C090(D_0019E090, 0x7F); + return 0; + } + } + return 1; +} diff --git a/src/net/01F07100.c b/src/net/01F07100.c new file mode 100644 index 00000000..4563b941 --- /dev/null +++ b/src/net/01F07100.c @@ -0,0 +1,17 @@ +/* cflags: @ee296 -O2 -G0 -falign-jumps=1 -mno-split-addresses */ +#include "common.h" + +void func_0011EAD0(void *); +void func_01F07154(void *); +extern s32 D_0016E654[]; +extern s32 D_001B7FA0[]; +void func_01F075D0(); + +void *func_01F07100(void) { + if (D_0016E654[0] == 0) { + func_01F07154(D_001B7FA0); + D_0016E654[0] = 1; + func_0011EAD0(func_01F075D0); + } + return D_001B7FA0; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_0070B400.c b/src/overlays/l00_multiplayer_menu/L00_0070B400.c new file mode 100644 index 00000000..bd70af2c --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_0070B400.c @@ -0,0 +1,50 @@ +#include "common.h" + +typedef struct Ent Ent; +typedef struct EntVt EntVt; +struct EntVt { + char _p0[0x144]; + s32 (*f144)(Ent *, EntVt *); +}; +struct Ent { + char _p0[0x58]; + EntVt *f58; +}; + +extern s32 func_L00_005C9F50(s32); +extern s32 func_L00_00719A28(u8 *owner, u8 *menu, s32 text, s32 a3, s32 t0, s32 t1, s32 t2, f32 f); +extern u8 D_00220A78[]; +extern u8 *D_00220D14; + +s32 func_L00_0070B400(s32 arg0) { + s32 ret; + u8 *owner; + u8 *e; + u8 *o; + Ent *ent; + s32 r; + + ret = 1; + owner = D_00220D14; + if (arg0 == 2) { + o = *(u8 **)(owner + 0x108); + e = NULL; + if (o != NULL) { + e = (*(u8 *)(o + 0xA8) ^ 1) ? NULL : o; + } + if (e == NULL) { + ret = 2; + func_L00_00719A28(owner, D_00220A78, func_L00_005C9F50(0x1732), 4, 0, 0, 0, 0.6f); + ent = *(Ent **)(D_00220D14 + 0x108); + r = ent->f58->f144(ent, ent->f58); + if (r == 5) { + *((u8 *)ent + 0x390) = 1; + } else if (r == 6) { + *((u8 *)ent + 0x274) = 1; + } else if (r == 10) { + *((u8 *)ent + 0x2882) = 1; + } + } + } + return ret; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00714AD8.c b/src/overlays/l00_multiplayer_menu/L00_00714AD8.c new file mode 100644 index 00000000..e65e7a5e --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00714AD8.c @@ -0,0 +1,41 @@ +#include "common.h" + +typedef struct NumericControl { + u8 opaque[0x70]; + s32 value; + s32 minimum; + s32 maximum; + s32 step; +} NumericControl; + +extern s32 func_L00_007647B0(s32 identifier); + +s32 func_L00_00714AD8(NumericControl *state, s32 action) +{ + s32 handled = 0; + s32 changed = 0; + s32 value; + s32 proposed; + + if (action == 4 || action == 7) { + state->value = (s32)((u32)state->value + (u32)state->step); + handled = 1; + changed = 1; + } else if (action == 3) { + state->value = (s32)((u32)state->value - (u32)state->step); + handled = 1; + changed = 1; + } + proposed = state->value; + value = proposed > state->maximum ? state->maximum : proposed; + value = value < state->minimum ? state->minimum : value; + state->value = value; + if (changed) { + if (value != proposed) { + func_L00_007647B0(4); + } else { + func_L00_007647B0(6); + } + } + return handled; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00719248.c b/src/overlays/l00_multiplayer_menu/L00_00719248.c new file mode 100644 index 00000000..516004b8 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00719248.c @@ -0,0 +1,47 @@ +#include "common.h" + +extern s32 func_L00_007647B0(s32 identifier); + +void func_L00_00719248(void *unused, s64 from, s64 to) +{ + s32 sound = -1; + if (from == 29 && to == 27) + sound = 45; + else if (from == 3 && to == 27) + sound = 62; + else if (from == 19 && to == 27) + sound = 68; + else if (from == 32 && to == 27) + sound = 72; + else if (from == 29 && to == 3) + sound = 78; + else if (from == 29 && to == 19) + sound = 79; + else if (from == 29 && to == 32) + sound = 80; + else if (from == 5 && to == 27) + sound = 55; + else if (from == 6 && to == 27) + sound = 55; + else if (from == 6 && (to == 8 || to == 5)) + sound = 59; + else if (from == 7 && to == 27) + sound = 55; + else if (from == 8 && to == 27) + sound = 55; + else if (from == 9 && to == 27) + sound = 55; + else if (from == 9 && (to == 8 || to == 5)) + sound = 61; + else if (from == 10 && (to == 8 || to == 5)) + sound = 57; + else if (from == 36 && to == 27) + sound = 74; + else if (from == 16 && to == 15) + sound = 75; + else if (from == 29 && to == 16) + sound = 77; + if (sound != -1) { + func_L00_007647B0(sound); + } +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00729600.c b/src/overlays/l00_multiplayer_menu/L00_00729600.c new file mode 100644 index 00000000..85d5197d --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00729600.c @@ -0,0 +1,10 @@ +#include "common.h" +typedef struct Record { + u32 words[35]; +} Record; +void func_L00_00729600(Record *left, Record *right) +{ + Record temporary = *left; + *left = *right; + *right = temporary; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_007458C8.c b/src/overlays/l00_multiplayer_menu/L00_007458C8.c new file mode 100644 index 00000000..38cd56ea --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_007458C8.c @@ -0,0 +1,32 @@ +#include "common.h" + +typedef struct Part Part; +typedef struct { + u8 pad0[0x20]; + void (*setMode)(Part *, s32, s32); +} PartVt; +struct Part { + u8 pad0[0x58]; + PartVt *vt; +}; + +typedef struct { + u8 pad0[0xB0]; + Part *parts[62]; +} Model; + +void func_L00_007458C8(Model *m) { + s32 i; + s32 j; + + m->parts[0]->vt->setMode(m->parts[0], 2, 0); + m->parts[5]->vt->setMode(m->parts[5], 2, 0); + for (j = 0; j < 5; j++) { + m->parts[7 + j]->vt->setMode(m->parts[7 + j], 2, 0); + } + for (i = 0; i < 10; i++) { + for (j = 0; j < 5; j++) { + m->parts[12 + i * 5 + j]->vt->setMode(m->parts[12 + i * 5 + j], 2, 0); + } + } +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00755A20.c b/src/overlays/l00_multiplayer_menu/L00_00755A20.c new file mode 100644 index 00000000..2581c66c --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00755A20.c @@ -0,0 +1,15 @@ +/* cflags: @ee29 -O2 -G8 -fno-schedule-insns2 -Wuninitialized */ +#include "common.h" + +extern s16 func_L00_005C82E0(void); +extern s32 D_002215CC; + +s32 func_L00_00755A20(void) { + s32 result; + if (func_L00_005C82E0() == 2) { + D_002215CC = result = 6; + } else { + D_002215CC = result = 7; + } + return result; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_0075C8C0.c b/src/overlays/l00_multiplayer_menu/L00_0075C8C0.c new file mode 100644 index 00000000..f85ad5c8 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_0075C8C0.c @@ -0,0 +1,10 @@ +#include "common.h" + +extern u8 *D_0021DFE8; +s32 func_L00_0075C8C0(const u8 *object,s32 index) +{ + s32 value=*(const s32 *)((u32)object+((u32)index<<2)+0x270U); + if(value<0 || D_0021DFE8==0 || + *(u8 *)((u32)D_0021DFE8+(u32)value+0x104U)==255)value=-1; + return value; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00762030.c b/src/overlays/l00_multiplayer_menu/L00_00762030.c new file mode 100644 index 00000000..b304d086 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00762030.c @@ -0,0 +1,59 @@ +#include "common.h" + +extern void func_L00_007647B0(s32); + +typedef struct Part Part; +typedef struct { + u8 pad0[0x20]; + void (*setMode)(Part *, s32, s32); +} PartVt; +struct Part { + u8 pad0[0x4]; + s32 state; + u8 pad8[0x58 - 0x8]; + PartVt *vt; +}; + +typedef struct { + u8 pad0[0xB0]; + Part *parts[96]; + s32 cur; +} Menu; + +s32 func_L00_00762030(Menu *m, s32 dir, s32 lo, s32 hi) { + s32 delta; + s32 next; + s32 state; + + delta = 1; + if (dir == 1) { + delta = -1; + } else if (dir != 2) { + delta = 0; + } + next = m->cur + delta; + if (next >= lo && next <= hi) { + state = m->parts[next]->state; + if (state != 0) { + if (state != 1) { + func_L00_007647B0(3); + m->parts[m->cur]->vt->setMode(m->parts[m->cur], 2, 0); + m->cur = next; + goto out; + } + } + } + if (next < lo || next > hi) { + func_L00_007647B0(4); + } else { + state = m->parts[next]->state; + if (state != 0) { + if (state != 1) { + goto out; + } + } + func_L00_007647B0(4); + } +out: + return 1; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00776698.c b/src/overlays/l00_multiplayer_menu/L00_00776698.c new file mode 100644 index 00000000..ae468d7d --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00776698.c @@ -0,0 +1,26 @@ +#include "common.h" + +void func_L00_00776698(void *arg0) +{ + s32 var_a1; + s8 *temp_v0; + void *var_v1; + u32 rac4_address_0; + *((s32 *) (((s8 *) arg0) + 0x1E4)) = 1; + var_v1 = arg0 + 0x24C; + *((s8 *) (((s8 *) arg0) + 0)) = 0; + var_a1 = 0; + *((s8 *) (((s8 *) arg0) + 0x14C)) = 0; + *((s8 *) (((s8 *) arg0) + 0x1C0)) = 0; + do + { + rac4_address_0 = ((u32) arg0) + ((u32) 0x238); + temp_v0 = (s8 *) (rac4_address_0 + ((u32) var_a1)); + *((s32 *) (((s8 *) var_v1) + (-0x64))) = -1; + *((s32 *) (((s8 *) var_v1) + 0)) = 0; + var_a1 += 1; + *temp_v0 = 0; + var_v1 += 4; + } + while (var_a1 < 0x14); +} diff --git a/src/overlays/shared/L00_00593EC8.c b/src/overlays/shared/L00_00593EC8.c new file mode 100644 index 00000000..5b4c2ec9 --- /dev/null +++ b/src/overlays/shared/L00_00593EC8.c @@ -0,0 +1,28 @@ +#include "common.h" + +extern void func_001634A8(s32 repeat); +extern u32 func_00163808(s32 a0, u32 a1, u32 a2, u32 a3, u32 a4, s32 a5, s32 a6); +extern s32 *D_0021DDA4; +extern u8 D_00223610[]; +extern u8 D_001C2040[]; + +void func_L00_00593EC8(void) { + s32 mode = *D_0021DDA4; + + if (mode == 3) { + u8 *s; + func_001634A8(1); + s = D_001C2040; + func_00163808(0, (u32)D_00223610, *(s32 *)(s + 0xBB08) + *(s32 *)(s + 0xB444), + *(s32 *)(s + 0xBB0C), 0, 0, 0); + } else if (mode == 2) { + u8 *s; + func_001634A8(1); + s = D_001C2040; + func_00163808(0, (u32)D_00223610, *(s32 *)(s + 0xBA68) + *(s32 *)(s + 0xB444), + *(s32 *)(s + 0xBA6C), 0, 0, 0); + func_001634A8(1); + func_00163808(0, (u32)(D_00223610 + 0x4800), *(s32 *)(s + 0xBA70) + *(s32 *)(s + 0xB444), + *(s32 *)(s + 0xBA74), 0, 0, 0); + } +} diff --git a/src/overlays/shared/L01_0045D4F0.c b/src/overlays/shared/L01_0045D4F0.c new file mode 100644 index 00000000..0c88e1e2 --- /dev/null +++ b/src/overlays/shared/L01_0045D4F0.c @@ -0,0 +1,21 @@ +/* cflags: -O2 -G8 -Wuninitialized */ +#include "common.h" + +extern s64 func_L01_0045C0A0(void *object); + +u32 func_L01_0045D4F0(void *object) +{ + u32 value; + u32 result; + u8 disabled; + + value = (u32)*(u8 **)((u8 *)object + 0xAC); + disabled = ((u8 *)value)[0x458]; + result = 0; + if (disabled == 0) { + value = func_L01_0045C0A0(object) != 0; + result = value; + } + value = result; + return value; +} diff --git a/src/overlays/shared/L01_0048F9F8.c b/src/overlays/shared/L01_0048F9F8.c new file mode 100644 index 00000000..382af481 --- /dev/null +++ b/src/overlays/shared/L01_0048F9F8.c @@ -0,0 +1,29 @@ +#include "common.h" +typedef long long s128; + +void func_00473A88(void *object, s32 state, s32 animation); + +s32 func_L01_0056B840(s32); + +s32 func_L01_0048F9F8(void *arg0, s32 arg1, s32 arg2) { + u8 temp_v1; + void *temp_v1_2; + void *object_owner; + s32 nativeObjectValue; + + if ((func_L01_0056B840(arg2) != 0) && ((temp_v1 = (*(u8 *)((s8 *)(arg0) + (0x20))), (temp_v1 == 1)) || (temp_v1 == 4))) { + temp_v1_2 = (*(void **)((s8 *)(arg0) + (0xAC))); + (*(s128 *)((s8 *)(arg0) + (0x10))) = (s128) (*(s128 *)((s8 *)(temp_v1_2) + (0))); + (*(s32 *)((s8 *)(temp_v1_2) + (0x10))) = arg1; + (*(s32 *)((s8 *)(temp_v1_2) + (0x14))) = arg2; + (*(s8 *)((s8 *)(arg0) + (0x31))) = 1; + (*(u16 *)((s8 *)(arg0) + (0x34))) = (u16) ((*(u16 *)((s8 *)(arg0) + (0x34))) & 0xFFFE); + object_owner = (*(void **)((s8 *)(arg0) + (0x24))); + nativeObjectValue = (*(s32 *)((s8 *)(object_owner) + (0x10))); + (*(s8 *)((s8 *)(arg0) + (0x23))) = 0; + (*(s32 *)((s8 *)(arg0) + (0x98))) = nativeObjectValue; + func_00473A88(arg0, 3, -1); + return 1; + } + return 0; +} diff --git a/src/overlays/shared/L01_004AFD28.c b/src/overlays/shared/L01_004AFD28.c new file mode 100644 index 00000000..12b1b693 --- /dev/null +++ b/src/overlays/shared/L01_004AFD28.c @@ -0,0 +1,19 @@ +#include "common.h" + +extern void func_00473A88(void *, s32, s32); + +void func_L01_004AFD28(u8 *arg0) { + u8 *vars = *(u8 **)(arg0 + 0xAC); + + if (*(s32 *)(vars + 0x10) > 0) { + u8 flags; + func_00473A88(arg0, 2, -1); + flags = arg0[0xBE]; + if ((flags ^ 1) & 1) { + arg0[0xBE] = flags | 1; + } + *(s16 *)(vars + 0xC) = (f32)*(s32 *)(vars + 0x10) * 60.0f; + } else { + func_00473A88(arg0, 1, -1); + } +} diff --git a/src/overlays/shared/L01_004B2DC8.c b/src/overlays/shared/L01_004B2DC8.c new file mode 100644 index 00000000..66d9faa9 --- /dev/null +++ b/src/overlays/shared/L01_004B2DC8.c @@ -0,0 +1,22 @@ +#include "common.h" + +void func_00473A88(void *object, s32 state, s32 animation); + +s32 func_L01_004B3D48(void *); + +void func_L01_004B2DC8(void *arg0) { + s32 temp_v1; + void *extension; + + extension = *(void **)((u8 *)arg0 + 0xAC); + if ((*(u8 *)((s8 *)(arg0) + (0x69))) != 6) { + temp_v1 = (*(s32 *)((s8 *)(extension) + (0x3D0))); + if (temp_v1 & 4) { + if (func_L01_004B3D48(arg0) != 0) { + func_00473A88(arg0, 0xC, 6); + } + } else if ((temp_v1 & 1) && (func_L01_004B3D48(arg0) != 0)) { + func_00473A88(arg0, 0xE, 6); + } + } +} diff --git a/src/overlays/shared/L01_004EBC88.c b/src/overlays/shared/L01_004EBC88.c new file mode 100644 index 00000000..d9c6fab0 --- /dev/null +++ b/src/overlays/shared/L01_004EBC88.c @@ -0,0 +1,28 @@ +#include "common.h" +s32 func_004E1F90(s32 sound, u32 flags, void *moby); +void func_L01_004EBC88(void *arg0, void *arg1, s32 arg2) { + s32 *entries; + s32 *p; + s32 value; + s32 bit; + s32 i; + s32 active; + s32 occupied; + s32 freeIndex; + if (arg2 != 0 && *(u8 *)((s8 *)arg1 + 0x2F1) != 0) { + entries = (s32 *)((s8 *)arg1 + 0x378); + freeIndex = -1; occupied = 0; active = 0; i = 0; p = entries; + do { + value = *p; + if (value == arg2) return; + if (value == 0) freeIndex = i; + else occupied++; + bit = ((s32)*(u8 *)((s8 *)arg1 + 0x2F1) >> i) & 1; + p++; i++; active += bit; + } while (i < 6); + if (freeIndex >= 0 && occupied < active) { + func_004E1F90(10, 0, arg0); + *(s32 *)((u32)entries + ((u32)freeIndex << 2)) = arg2; + } + } +} diff --git a/src/overlays/shared/L01_005334B0.c b/src/overlays/shared/L01_005334B0.c new file mode 100644 index 00000000..f290a535 --- /dev/null +++ b/src/overlays/shared/L01_005334B0.c @@ -0,0 +1,68 @@ +#include "common.h" + +typedef struct { + u8 pad0[0x70]; + s32 x70; + s32 x74; + u8 pad78[0xC]; + s16 n; + u8 pad86[0x16A]; + u8 *mobys[1]; +} Arena; + +extern Arena D_0023F600; +extern u8 *D_003660F8[]; +extern s32 D_0021DE10; +extern void func_L00_00596A28(s32, s32, s32, s32); +extern void func_L00_00598118(s32); +extern void func_L01_0052CE98(void); + +void func_L01_005334B0(void) { + u8 *moby; + u8 *m; + u8 *q; + s32 i; + s32 j; + s32 id; + + for (i = 0; i < D_0023F600.n; i++) { + moby = D_0023F600.mobys[i]; + if (moby != NULL) { + id = *(s16 *)(moby + 0xBC); + if (id == 0x216A || id == 0x2691 || (id == 0x2429 && D_0021DE10 == 0x2574) || id == 0x20FD || id == 0x2703 || id == 0x2505) { + func_L00_00596A28(i, 0x96, 0, 0); + } + if (*(s16 *)(moby + 0xBC) == 0x216A || *(s16 *)(moby + 0xBC) == 0x2691) { + *(u16 *)(D_0023F600.mobys[i] + 0x74) |= 0x1000; + } + if (*(s16 *)(moby + 0xBC) == 0xA) { + m = D_0023F600.mobys[i]; + if (D_0023F600.x70 == 2) { + *(u16 *)(m + 0x74) |= 0x1000; + } else { + *(u16 *)(m + 0x74) |= 0x1002; + } + func_L00_00596A28(i, 0x6E, 0x80306629, 0x8058B856); + } + if (*(s16 *)(moby + 0xBC) == 0x243D) { + func_L00_00596A28(i, 0x168, 0xC0808080, 0x80505050); + } + if (*(s16 *)(moby + 0xBC) == 0x247F || *(s16 *)(moby + 0xBC) == 0x24D9 || *(s16 *)(moby + 0xBC) == 0x24D5) { + func_L00_00596A28(i, 0x5A, 0xFFC0C0C0, 0xB0505050); + } + } + } + func_L01_0052CE98(); + if (D_0023F600.x70 == 0x14 && D_0023F600.x74 < 0xA0) { + func_L00_00598118(0); + } + if (D_0023F600.x70 == 0x15 && D_0023F600.x74 >= 0x65) { + func_L00_00598118(0); + } + func_L00_00598118(0); + for (j = 0, q = D_003660F8[0]; j < 10; q = D_003660F8[++j]) { + if (q != NULL) { + (*(u8 **)(q + 0x2EF0))[0x31] = 0; + } + } +} diff --git a/src/overlays/shared/L01_00585DB0.c b/src/overlays/shared/L01_00585DB0.c new file mode 100644 index 00000000..f398531c --- /dev/null +++ b/src/overlays/shared/L01_00585DB0.c @@ -0,0 +1,15 @@ +/* cflags: -O2 -G8 -Wuninitialized */ +#include "common.h" + +extern u8 D_00269EC0[]; + +void func_L01_00585DB0(void) +{ + u8 *record = D_00269EC0; + + do { + *(s32 *)(record + 0x104) = 0; + *(s32 *)(record + 0x100) = 0; + record += 0x110; + } while ((s32)record < (s32)(D_00269EC0 + 0x220)); +} diff --git a/src/overlays/shared/L05_004DF580.c b/src/overlays/shared/L05_004DF580.c new file mode 100644 index 00000000..a2cb8642 --- /dev/null +++ b/src/overlays/shared/L05_004DF580.c @@ -0,0 +1,18 @@ +#include "common.h" + +void func_00473A88(void *object, s32 state, s32 animation); + +s32 func_L05_004DF580(void *arg0, s32 arg1) { + s32 temp_v0; + void *temp_v1; + + temp_v1 = (*(void **)((s8 *)(arg0) + (0xAC))); + if (((*(s32 *)((s8 *)(temp_v1) + (0x140))) == 0) && ((temp_v0 = (*(s32 *)((s8 *)(temp_v1) + (0x144))), (temp_v0 == 0)) || (temp_v0 == arg1))) { + (*(s32 *)((s8 *)(temp_v1) + (0x144))) = arg1; + if ((*(u8 *)((s8 *)(arg0) + (0x20))) != 6) { + func_00473A88(arg0, 3, -1); + } + return 1; + } + return 0; +} diff --git a/src/overlays/shared/L06_00416C20.c b/src/overlays/shared/L06_00416C20.c new file mode 100644 index 00000000..37608419 --- /dev/null +++ b/src/overlays/shared/L06_00416C20.c @@ -0,0 +1,48 @@ +#include "common.h" + +extern void func_L00_005DD4A0(void *); +extern s32 func_L00_005E60D0(s32, s32); +extern void func_L00_005E75B0(void *, s32, s32, f32); +extern s32 func_L00_005E8F08(void *, s32, s32); +extern s32 func_L00_0066D220(s32, s32, void *); +extern void func_L01_00591BD8(void *, s32, s32); +extern void func_L01_005A0A30(void *, s32, s32); + +typedef struct { + u8 pad0[0x3C]; + void *owner; +} Slot; + +extern Slot D_0023EDC0[]; + +typedef struct { + u8 pad0[0x20]; + u8 state; + u8 pad21[0x2C - 0x21]; + u8 slot; +} Obj; + +void func_L06_00416C20(Obj *o) { + s32 ok; + f32 f; + + switch (o->state) { + case 0: + f = func_L00_005E60D0(0, 0x13); + func_L00_005E75B0(o, 2, func_L00_005E60D0(0, 0x13), f); + func_L01_00591BD8(o, 1, -1); + break; + case 1: + if (o->slot == 0xFF || (D_0023EDC0 + o->slot)->owner != o) { + ok = 0; + } else { + ok = func_L00_005E8F08(o, 0x0FFFFFFF, 0); + } + if (ok) { + func_L00_0066D220(0, 0, o); + func_L01_005A0A30(o, 0x26CC, 0); + func_L00_005DD4A0(o); + } + break; + } +} diff --git a/src/overlays/shared/L06_004DE3B8.c b/src/overlays/shared/L06_004DE3B8.c new file mode 100644 index 00000000..78ad40d4 --- /dev/null +++ b/src/overlays/shared/L06_004DE3B8.c @@ -0,0 +1,66 @@ +#include "common.h" + +typedef struct { + u8 pad0[0x70]; + s32 x70; + s32 x74; + u8 pad78[0xC]; + s16 n; + u8 pad86[0x16A]; + u8 *mobys[1]; +} Arena; + +extern Arena D_0023C000; +extern u8 *D_00362B38[]; +extern s32 D_0021DE10; +extern void func_L00_00596A28(s32, s32, s32, s32); +extern void func_L00_00598118(s32); + +void func_L06_004DE3B8(void) { + u8 *moby; + u8 *m; + u8 *q; + s32 i; + s32 j; + s32 id; + + for (i = 0; i < D_0023C000.n; i++) { + moby = D_0023C000.mobys[i]; + if (moby != NULL) { + id = *(s16 *)(moby + 0xBC); + if (id == 0x216A || id == 0x2691 || (id == 0x2429 && D_0021DE10 == 0x2574) || id == 0x20FD || id == 0x2703 || id == 0x2505) { + func_L00_00596A28(i, 0x96, 0, 0); + } + if (*(s16 *)(moby + 0xBC) == 0x216A || *(s16 *)(moby + 0xBC) == 0x2691) { + *(u16 *)(D_0023C000.mobys[i] + 0x74) |= 0x1000; + } + if (*(s16 *)(moby + 0xBC) == 0xA) { + m = D_0023C000.mobys[i]; + if (D_0023C000.x70 == 2) { + *(u16 *)(m + 0x74) |= 0x1000; + } else { + *(u16 *)(m + 0x74) |= 0x1002; + } + func_L00_00596A28(i, 0x6E, 0x80306629, 0x8058B856); + } + if (*(s16 *)(moby + 0xBC) == 0x243D) { + func_L00_00596A28(i, 0x168, 0xC0808080, 0x80505050); + } + if (*(s16 *)(moby + 0xBC) == 0x247F || *(s16 *)(moby + 0xBC) == 0x24D9 || *(s16 *)(moby + 0xBC) == 0x24D5) { + func_L00_00596A28(i, 0x5A, 0xFFC0C0C0, 0xB0505050); + } + } + } + if (D_0023C000.x70 == 3 && D_0023C000.x74 < 0xA0) { + func_L00_00598118(0); + } + if (D_0023C000.x70 == 4 && D_0023C000.x74 >= 0x65) { + func_L00_00598118(0); + } + func_L00_00598118(0); + for (j = 0, q = D_00362B38[0]; j < 10; q = D_00362B38[++j]) { + if (q != NULL) { + (*(u8 **)(q + 0x2EF0))[0x31] = 0; + } + } +} diff --git a/src/overlays/shared/L06_00565628.c b/src/overlays/shared/L06_00565628.c new file mode 100644 index 00000000..be785d06 --- /dev/null +++ b/src/overlays/shared/L06_00565628.c @@ -0,0 +1,25 @@ +#include "common.h" + +extern void func_L00_00601788(void); +extern s32 D_00222700; + +s32 func_L06_00565628(u16 a1) +{ + s32 result; + s32 v2; + + if (!D_00222700) + return 0; + result = 0; + if (*(s32 *)(D_00222700 + 12308) >= (s64)a1) { + v2 = *(u32 *)(D_00222700 + 12312) + 32 * a1; + if (((*(u8 *)(v2 + 2) ^ 1) & 1) != 0) { + return 0; + } else { + *(u16 *)(v2 + 2) &= ~1u; + func_L00_00601788(); + return 1; + } + } + return result; +} diff --git a/src/overlays/shared/L11_003FEB88.c b/src/overlays/shared/L11_003FEB88.c new file mode 100644 index 00000000..57cdca22 --- /dev/null +++ b/src/overlays/shared/L11_003FEB88.c @@ -0,0 +1,17 @@ +/* cflags: */ +#include "common.h" + +s32 func_L11_003FE6D0(s32 arg0); +s32 D_00220EA0 = 0; + +s32 func_L11_003FEB88(void) +{ + s32 i; + s32 result; + + for (i = D_00220EA0; i; i = *(u32 *)(result + 100)) { + func_L11_003FE6D0(i); + result = *(s32 *)(i + 172); + } + return result; +} diff --git a/src/overlays/shared/L41_0043A858.c b/src/overlays/shared/L41_0043A858.c new file mode 100644 index 00000000..016579ab --- /dev/null +++ b/src/overlays/shared/L41_0043A858.c @@ -0,0 +1,83 @@ +#include "common.h" + +typedef struct C_0043A858 { + u8 pad0[0x24]; + f32 unk24; +} C_0043A858; + +typedef struct M_0043A858 { + u8 pad0[0x24]; + C_0043A858 *unk24; + u8 pad28[0x38 - 0x28]; + s64 unk38; + u8 pad40[0x64 - 0x40]; + u8 unk64; + u8 unk65; + u8 pad66[0x70 - 0x66]; + f32 unk70; + u8 pad74[0xAC - 0x74]; + void *unkAC; + u8 padB0[0xBC - 0xB0]; + s16 unkBC; +} M_0043A858; + +typedef struct V_0043A858 { + s32 unk0; + M_0043A858 *unk4; + u8 pad8[0x20 - 0x8]; + M_0043A858 *unk20; + u8 pad24[0x40 - 0x24]; + f32 unk40; +} V_0043A858; + +typedef struct W_0043A858 { + u8 pad0[0x33C]; + M_0043A858 *unk33C; +} W_0043A858; + +typedef struct A_0043A858 { + u8 pad0[0xAC]; + V_0043A858 *unkAC; +} A_0043A858; + +extern M_0043A858 *func_L00_005DD000(s32, s32); +extern void func_L00_005EEA48(M_0043A858 *, M_0043A858 *, s32, s32); +extern void func_L00_005F1180(M_0043A858 *, M_0043A858 *); +extern void func_L00_007011A8(M_0043A858 *, s32, s32); +extern s32 func_L01_004DE8B0(A_0043A858 *); +extern s32 func_L41_0043A5A8(s32); + +void func_L41_0043A858(A_0043A858 *arg0) { + V_0043A858 *v; + M_0043A858 *target; + M_0043A858 *m; + W_0043A858 *w; + s32 r; + + v = arg0->unkAC; + target = v->unk4; + if (func_L01_004DE8B0(arg0) != 0 || target == NULL) { + return; + } + r = func_L41_0043A5A8(v->unk0); + if (r == 0) { + return; + } + if (target->unkBC == 0x2106) { + v->unk20 = func_L00_005DD000(0x210B, 0); + if (v->unk20 != NULL) { + func_L00_005F1180(v->unk20, target); + v->unk20->unk38 = target->unk38; + v->unk20->unk64 = 0; + v->unk20->unk65 = 10; + w = target->unkAC; + if (w != NULL) { + w->unk33C = v->unk20; + } + m = v->unk20; + m->unk70 = m->unk24->unk24 * (2.0f * v->unk40 * 1.375f); + func_L00_005EEA48(target, v->unk20, 1, 0); + } + } + func_L00_007011A8(target, r, 0); +} diff --git a/src/overlays/shared/L41_00625710.c b/src/overlays/shared/L41_00625710.c new file mode 100644 index 00000000..ca777477 --- /dev/null +++ b/src/overlays/shared/L41_00625710.c @@ -0,0 +1,40 @@ +/* cflags: -G0 */ +#include "common.h" + +typedef struct { + s32 id; + s32 a; + s32 b; + s32 kind; +} Entry; + +extern void func_L41_006255D0(void); +extern Entry D_0036E050[16]; + +void func_L41_00625710(s32 id, s32 val, s32 kind) { + s32 i; + s32 slot; + + slot = -1; + if (kind == 10) { + return; + } + for (i = 0; i < 16; i++) { + if (D_0036E050[i].id == id) { + slot = i; + break; + } + if (D_0036E050[i].id == -1 && slot == -1) { + slot = i; + } + } + if (slot >= 0) { + if (D_0036E050[slot].kind != kind) { + func_L41_006255D0(); + } + D_0036E050[slot].id = id; + D_0036E050[slot].a = val; + D_0036E050[slot].b = val; + D_0036E050[slot].kind = kind; + } +} diff --git a/src/pal/game/00405D38.c b/src/pal/game/00405D38.c new file mode 100644 index 00000000..7c93391a --- /dev/null +++ b/src/pal/game/00405D38.c @@ -0,0 +1,24 @@ +/* cflags: @ee296 -O2 -G0 */ +#include "common.h" + +u32 func_00405D38(s32 value) { + u32 out; + s32 top; + s32 nib; + s32 high; + s32 i; + + out = 0; + top = value >> 28; + nib = 0xF; + nib = top & nib; + if ((top & 7) != 0) { + high = nib - (nib & 8); + } else { + high = 5; + } + for (i = 0; i < 7; i++) { + out |= ((value >> (i * 4)) & 7) << (i * 4); + } + return (out & 0xFFFFFFF) | (high << 28); +} diff --git a/src/pal/game/004071B0.c b/src/pal/game/004071B0.c new file mode 100644 index 00000000..25e48699 --- /dev/null +++ b/src/pal/game/004071B0.c @@ -0,0 +1,27 @@ +/* cflags: @ee296 -O2 -G0 */ +#include "common.h" + +typedef struct Type1 Type1; +typedef struct Type2 Type2; +struct Type2 { + char _p0[0x10]; + s32 (*f14)(); +}; +struct Type1 { + char _p0[0xC]; + Type2 *f10; + char _p14[0xC]; + s32 f20; +}; + +s32 func_00408260(s32); + +s32 func_004071B0(Type1 *arg0) { + s32 temp_v0; + + temp_v0 = arg0->f10->f14(arg0->f20); + if (temp_v0 != 0) { + return func_00408260(temp_v0); + } + return 0; +} diff --git a/src/pal/game/00407408.c b/src/pal/game/00407408.c new file mode 100644 index 00000000..92490d32 --- /dev/null +++ b/src/pal/game/00407408.c @@ -0,0 +1,27 @@ +/* cflags: @ee296 -O2 -G0 */ +#include "common.h" + +typedef struct Type1 Type1; +typedef struct Type2 Type2; +struct Type2 { + char _p0[0x14]; + s32 (*f14)(); +}; +struct Type1 { + char _p0[0xC]; + Type2 *f10; + char _p14[0xC]; + s32 f20; +}; + +s32 func_00408260(s32); + +s32 func_00407408(Type1 *arg0) { + s32 temp_v0; + + temp_v0 = arg0->f10->f14(arg0->f20); + if (temp_v0 != 0) { + return func_00408260(temp_v0); + } + return 0; +} diff --git a/src/pal/game/004074A8.c b/src/pal/game/004074A8.c new file mode 100644 index 00000000..ebdd3a73 --- /dev/null +++ b/src/pal/game/004074A8.c @@ -0,0 +1,27 @@ +/* cflags: @ee296 -O2 -G0 */ +#include "common.h" + +typedef struct Type1 Type1; +typedef struct Type2 Type2; +struct Type2 { + char _p0[0xC]; + s32 (*f14)(); +}; +struct Type1 { + char _p0[0xC]; + Type2 *f10; + char _p14[0xC]; + s32 f20; +}; + +s32 func_00408260(s32); + +s32 func_004074A8(Type1 *arg0) { + s32 temp_v0; + + temp_v0 = arg0->f10->f14(arg0->f20); + if (temp_v0 != 0) { + return func_00408260(temp_v0); + } + return 0; +} diff --git a/src/pal/game/00484F88.c b/src/pal/game/00484F88.c new file mode 100644 index 00000000..218f4c13 --- /dev/null +++ b/src/pal/game/00484F88.c @@ -0,0 +1,22 @@ +#include "common.h" + +extern f32 func_L00_005FCB68(u8 *); + +s32 func_00484F88(u8 *moby, f32 value) { + f32 cur = func_L00_005FCB68(moby); + f32 len = *(f32 *)(moby + 0x48); + s32 v = (s32)(value * 4096.0f + 0.5f); + s32 lo = (s32)(cur * 4096.0f + 0.5f); + s32 hi = (s32)((cur - len * 1.2f * 0.5f) * 4096.0f + 0.5f); + + if (len < 0.0f) { + if (v >= lo && v < hi) { + return 1; + } + return 0; + } + if (v <= lo && v > hi) { + return 1; + } + return 0; +} diff --git a/src/pal/game/004AA180.c b/src/pal/game/004AA180.c new file mode 100644 index 00000000..05e7c0ce --- /dev/null +++ b/src/pal/game/004AA180.c @@ -0,0 +1,21 @@ +#include "common.h" + +typedef struct { + char pad[0x98]; + s32 flags; + f32 f9C; + char tail[0x18]; +} Type1; +extern Type1 D_00308208[]; +extern f32 func_004760C0(f32 *value, f32 target, f32 fraction, f32 minimum); +extern u8 func_00498E38(s32 arg0); +extern s32 func_00506BB8(void); + +void func_004AA180(void) +{ + s32 index = func_00506BB8(); + Type1 *p = (Type1 *)((u32)index * 0xB8 + (u32)D_00308208); + if (func_004760C0(&p->f9C, (f32)func_00498E38(index), 0.0f, 0.24000001f) != 0.0f) { + D_00308208[index].flags |= 0x100; + } +} diff --git a/src/pal/game/004AF7A0.c b/src/pal/game/004AF7A0.c new file mode 100644 index 00000000..3d58c331 --- /dev/null +++ b/src/pal/game/004AF7A0.c @@ -0,0 +1,85 @@ +#include "common.h" +typedef struct { s32 a; s32 b; u8 c; u8 pad[3]; } Entry; +typedef struct { s32 a; s32 b; } Pair; +typedef struct { s32 pad[10]; s32 active[4]; s32 pad2[4]; s32 timer[4]; } State; +extern Entry D_003D9318[]; +extern u8 D_003093A0[]; +extern s32 D_0021EE54; +extern s32 D_0021EE58; +extern s32 D_0021DE98; +extern s32 D_002217C0; +extern s32 D_00221318; +extern s32 D_001F1480[]; +extern u32 D_0021DAF0; +s32 D_0021F73C = 0; +extern void func_00449A28(s32 *a, void (*b)(void *), s32 c); +extern s32 func_00453CE8(s32 *arg0); +extern void func_0045E168(s32, s32, s32); +extern void func_0045E288(s32, s32, s32, s32); +extern void func_0045E2D8(s32, s32, s32, s32); +extern s32 func_0047CD08(Pair *out, s32 i, s32 b); +extern void func_0047CA28(void *); +extern u8 *func_0047DE20(void); +extern s32 func_00506BB8(void); + +void func_004AF7A0(void) +{ + State *flags = (State *)(D_003093A0 + func_00506BB8() * 0x64); + Pair cur; + s32 i; + + if (D_0021EE54 == 0 && D_0021EE58 == 0) { + if (func_00453CE8(&D_002217C0)) { + D_002217C0 = 0x14; + for (i = 0; i < 4; i++) { + if (flags->active[i] != 0) + continue; + if (func_0047CD08(&cur, i, D_003D9318[i].b)) { + switch (cur.a) { + case 2: + func_0045E288(0x3460, 0x7F1, 0x3E8, 2); + break; + case 10: + if ((u32)D_001F1480[0x4ED0 / 4] < D_0021DAF0) + D_001F1480[0x4ED0 / 4] = D_0021DAF0; + break; + case 11: + if (D_0021DAF0 - D_001F1480[0x4ED0 / 4] < 0x1388) + func_0045E168(0x333A, 0x785, 2); + break; + case 5: + func_0045E288(0x292A, 0x2A1, 0x15E, 2); + break; + case 6: + func_0045E288(0x292E, 0x2A5, 0x1F4, 2); + break; + case 12: + break; + case 9: + if (D_0021DE98 != 1) + func_0045E168(0x2987, 0x2FE, 2); + func_0045E2D8(0x3202, 0x709, 0x5DC, 2); + break; + } + if (D_003D9318[i].a != cur.a || D_003D9318[i].b != cur.b) { + D_003D9318[i].a = cur.a; + D_003D9318[i].b = cur.b; + if (D_003D9318[i].a != 1) + flags->timer[i] = 0x5A; + } + if (D_003D9318[i].a == 9) { + if (func_0047DE20()[3] == 0) + flags->timer[i] = 0x5A; + } + } else { + D_003D9318[i].a = 0; + D_003D9318[i].b = 0; + flags->timer[i] = 0; + } + } + } + if (D_003D9318[3].a == 2) + func_00449A28(&D_00221318, func_0047CA28, D_003D9318[3].b); + } + D_0021F73C |= 2; +} diff --git a/src/pal/game/00505148.c b/src/pal/game/00505148.c new file mode 100644 index 00000000..7842d0fa --- /dev/null +++ b/src/pal/game/00505148.c @@ -0,0 +1,79 @@ +#include "common.h" + +typedef struct Allocator Allocator; +typedef struct Object Object; +typedef struct { + u32 unknown0[2]; + void *(*allocate)(Allocator *, s32); + void (*release)(Allocator *, void *); +} AllocatorVtable; +struct Allocator { + AllocatorVtable *vtable; +}; +typedef struct Manager { + void *unknown0; + u8 *table; +} Manager; +typedef struct { + u32 unknown0[2]; + void (*destroy)(Object *, s32); +} ObjectVtable; +struct Object { + u32 unknown0[2]; + ObjectVtable *vtable; + + u8 unknownC[0x50]; +}; + +extern Manager D_00222138[]; +extern Manager *func_00502150(void); +extern Allocator *func_00502218(Manager *, s32); +extern void func_005052C0(s32); +extern s32 func_005052C8(void); +extern s32 func_00500980(void *, u32); +extern void *func_0015DB90(u32, void *); +extern Object *func_0050EB78(void *); +extern s32 func_00501618(void *, Object *, u32); + +static inline Manager *get_manager(void) +{ + Manager *manager = D_00222138; + if (manager->table) { + return manager; + } + return func_00502150(); +} + +s32 func_00505148(u32 key) +{ + s32 result = 0; + Manager *manager; + Allocator *allocator; + u8 *state; + void *entry; + s32 size; + void *block; + Object *object; + + manager = get_manager(); + state = (u8 *)manager->table; + entry = state != NULL + ? *(void **)((u32)state + ((u32) * (s32 *)(state + 0x14) << 2)) + : NULL; + func_005052C0(0x208); + size = func_005052C8(); + if (entry != NULL && func_00500980(entry, key) == 0) { + allocator = func_00502218(get_manager(), 0x4); + block = allocator->vtable->allocate(allocator, size); + if (block != NULL) { + object = func_0050EB78(func_0015DB90(0x208, block)); + result = func_00501618(entry, object, key) != 0; + if (!result) { + object->vtable->destroy(object, 2); + allocator = func_00502218(get_manager(), 0x4); + allocator->vtable->release(allocator, block); + } + } + } + return result; +} diff --git a/src/pal/game/00509248.c b/src/pal/game/00509248.c new file mode 100644 index 00000000..7282b8b6 --- /dev/null +++ b/src/pal/game/00509248.c @@ -0,0 +1,79 @@ +#include "common.h" + +typedef struct Allocator Allocator; +typedef struct Object Object; +typedef struct { + u32 unknown0[2]; + void *(*allocate)(Allocator *, s32); + void (*release)(Allocator *, void *); +} AllocatorVtable; +struct Allocator { + AllocatorVtable *vtable; +}; +typedef struct Manager { + void *unknown0; + u8 *table; +} Manager; +typedef struct { + u32 unknown0[2]; + void (*destroy)(Object *, s32); +} ObjectVtable; +struct Object { + u32 unknown0[2]; + ObjectVtable *vtable; + + u8 unknownC[0x50]; +}; + +extern Manager D_00222138[]; +extern Manager *func_00502150(void); +extern Allocator *func_00502218(Manager *, s32); +extern void func_005052C0(s32); +extern s32 func_005052C8(void); +extern s32 func_00500980(void *, u32); +extern void *func_0015DB90(u32, void *); +extern Object *func_00511678(void *); +extern s32 func_00501618(void *, Object *, u32); + +static inline Manager *get_manager(void) +{ + Manager *manager = D_00222138; + if (manager->table) { + return manager; + } + return func_00502150(); +} + +s32 func_00509248(u32 key) +{ + s32 result = 0; + Manager *manager; + Allocator *allocator; + u8 *state; + void *entry; + s32 size; + void *block; + Object *object; + + manager = get_manager(); + state = (u8 *)manager->table; + entry = state != NULL + ? *(void **)((u32)state + ((u32) * (s32 *)(state + 0x14) << 2)) + : NULL; + func_005052C0(0x50); + size = func_005052C8(); + if (entry != NULL && func_00500980(entry, key) == 0) { + allocator = func_00502218(get_manager(), 1); + block = allocator->vtable->allocate(allocator, size); + if (block != NULL) { + object = func_00511678(func_0015DB90(0x50, block)); + result = func_00501618(entry, object, key) != 0; + if (!result) { + object->vtable->destroy(object, 2); + allocator = func_00502218(get_manager(), 1); + allocator->vtable->release(allocator, block); + } + } + } + return result; +} diff --git a/src/pal/game/00522238.c b/src/pal/game/00522238.c new file mode 100644 index 00000000..6011201d --- /dev/null +++ b/src/pal/game/00522238.c @@ -0,0 +1,19 @@ +#include "common.h" + +s32 func_005210B0(void); +extern s32 func_00522238(void); +extern s32 func_005210B0(void); + +s32 func_00522238(void) { + s32 n = 0xA; + s32 x = func_005210B0(); + goto test; +zero: + n = 0; + goto done; +test: + if (x == 2) + goto zero; +done: + return n; +} diff --git a/src/pal/game/005230A8.c b/src/pal/game/005230A8.c new file mode 100644 index 00000000..1654badd --- /dev/null +++ b/src/pal/game/005230A8.c @@ -0,0 +1,81 @@ +#include "common.h" + +typedef struct { + f32 f0; + s32 f4; + s32 f8; + s32 fC; +} Type1; + +typedef struct { + u8 pad0[0x3CA]; + s16 f3CA; + u8 pad3CC[0x648 - 0x3CC]; + s32 f648; + u8 pad64C[0x2318 - 0x64C]; + s32 f2318; + u8 pad231C[0x265A - 0x231C]; + u8 f265A; + u8 pad265B[0x2D7C - 0x265B]; + Type1 f2D7C[4]; +} Type2; + +extern f32 func_004725D8(f32 a0, f32 a1); +extern s32 func_00512610(Type2 *p); +extern s32 D_0021EDD4; + +s32 func_005230A8(Type2 *p, s32 *out) +{ + s32 idx[20]; + s32 n; + s32 i; + f32 sum; + f32 lim; + + n = 0; + if (p->f3CA != 0) { + return 0; + } + if (p->f265A != 0) { + return 0; + } + if (p->f2318 == 2) { + return 0; + } + if (D_0021EDD4 != 1) { + if (func_00512610(p) != 0) { + *out = 3; + if (p->f2D7C[3].f8 != 0) { + return 0; + } + if (!(p->f648 & 2)) { + return 0; + } + return func_004725D8(0.0f, 1.0f) < 0.33f; + } + } + for (i = 0; i < 4; i++) { + if (p->f2D7C[i].f8 == 0 && p->f2D7C[i].f0 != 0.0f && (i != 2 && i != 3)) { + idx[n++] = i; + } + } + if (n == 0) { + return 0; + } + sum = 0.0f; + for (i = 0; i < n; i++) { + sum += 1.0f / (f32)(s32)(p->f2D7C[idx[i]].f0 * 50.0f); + } + lim = func_004725D8(0.0f, 1.0f); + if (lim < sum) { + for (i = 0; i < n; i++) { + *out = idx[i]; + sum -= 1.0f / (f32)(s32)(p->f2D7C[idx[i]].f0 * 50.0f); + if (sum < lim) { + break; + } + } + return 1; + } + return 0; +} diff --git a/src/pal/game/005237C8.c b/src/pal/game/005237C8.c new file mode 100644 index 00000000..1fc640c5 --- /dev/null +++ b/src/pal/game/005237C8.c @@ -0,0 +1,55 @@ +/* cflags: -ffast-math */ +#include "common.h" +typedef unsigned int u128 __attribute__((mode(TI))); + +typedef struct Type1 Type1; +typedef struct Type2 Type2; +typedef struct Type3 Type3; +struct Type2 { + char _p0[0x3C]; + s32 (*f3C)(Type1 *, s32, s32, s32, s32); +}; +struct Type3 { + char _p0[0x30]; + s16 f30; +}; + +extern u128 func_004FF0F0(u128, f32); +extern void func_005179B0(Type1 *arg0); +extern void func_00524030(void *, s32, s32, s32, f32); +extern Type3 *func_0054A290(s32 arg0, s32 arg1); +extern f32 D_0021DE7C; + +s32 func_005237C8(u8 *p) +{ + s32 id; + s32 v; + f32 k; + f32 lim; + + if (p[0x265A] == 0 || p[0x2658] == 0 || p[0x2660] != 0) { + return 0; + } + id = -1; + if (*(s32 *)(p + 0x2314) == 2) { + id = *(s32 *)(p + 0x2318); + } + if (id == *(s32 *)(p + 0x2DD8)) { + if (*(s32 *)(p + 0x60C) < 5) { + return 0; + } + v = func_0054A290(id, 0)->f30; + if ((*(Type2 **)(p + 0x14))->f3C((Type1 *)p, 0, 0, 0, 1) != 0) { + k = 1.5f; + *(u128 *)(p + 0x1A0) = func_004FF0F0(*(u128 *)(p + 0x1A0), D_0021DE7C * k * *(f32 *)(p + 0x25C4)); + lim = D_0021DE7C * k * *(f32 *)(p + 0x25C4); + *(f32 *)(p + 0x1784) = lim < *(f32 *)(p + 0x1784) ? lim : *(f32 *)(p + 0x1784); + func_00524030(p, v, 0, 0, 9.0f); + *(s32 *)(p + 0x2DD4) = v; + return 1; + } + } else { + func_005179B0((Type1 *)p); + } + return 0; +} diff --git a/src/pal/net/01ED66B0.c b/src/pal/net/01ED66B0.c new file mode 100644 index 00000000..c810886a --- /dev/null +++ b/src/pal/net/01ED66B0.c @@ -0,0 +1,16 @@ +/* cflags: @ee296 -O2 -G0 */ +#include "common.h" + +s32 func_0011D5D8(void *); +s32 func_01ED5DD0(s32, s32, s32, void *); +extern s32 D_00169D50; +extern s32 D_00169D54; +extern s32 D_001984F8[]; +extern s32 D_001B78F8[]; + +s32 func_01ED66B0(void) { + func_0011D5D8(D_001984F8); + if (D_00169D50 != 1) return -0xF; + if (D_00169D54 == 0) return -0x10; + return (func_01ED5DD0(1, 0x7, 0x66, D_001B78F8) == 0) ? 0 : -5; +} diff --git a/src/pal/net/01EEE13C.c b/src/pal/net/01EEE13C.c new file mode 100644 index 00000000..072d9759 --- /dev/null +++ b/src/pal/net/01EEE13C.c @@ -0,0 +1,22 @@ +/* cflags: -Os -G8 -mno-split-addresses -mips3 -mcpu=r4000 */ +#include "common.h" + +typedef struct Type1 Type1; +struct Type1 { + char _p0[0x84]; + s32 f84; +}; + +s32 func_01F0C090(void *, s32); +extern Type1 *D_0016E430[]; +extern s32 D_0019C400[]; + +s32 func_01EEE13C(void) { + if (D_0016E430[0] == NULL) { + func_01F0C090(D_0019C400, 0x6D); + } + if (D_0016E430[0]->f84 == 0) { + func_01F0C090(D_0019C400, 0x6E); + } + return D_0016E430[0]->f84; +} diff --git a/src/pal/net/01EF2CC4.c b/src/pal/net/01EF2CC4.c new file mode 100644 index 00000000..0a6e9d64 --- /dev/null +++ b/src/pal/net/01EF2CC4.c @@ -0,0 +1,17 @@ +/* cflags: @ee296 -O2 -G0 -falign-jumps=1 -mno-split-addresses */ +#include "common.h" + +s32 func_01F07750(s32); +s32 func_01F07C80(s32); +extern s32 D_0016E658[]; + +s32 func_01EF2CC4(void) { + s32 temp_v0; + + if (D_0016E658[0] == 0) { + temp_v0 = func_01F07C80(0x204); + func_01F07750(temp_v0); + D_0016E658[0] = temp_v0; + } + return D_0016E658[0]; +} diff --git a/src/pal/net/01F04C2C.c b/src/pal/net/01F04C2C.c new file mode 100644 index 00000000..dc73cd46 --- /dev/null +++ b/src/pal/net/01F04C2C.c @@ -0,0 +1,8 @@ +/* cflags: @ee296 -O2 -G0 -falign-jumps=1 -mno-split-addresses */ +#include "common.h" + +s32 func_01F04C40(); + +void func_01F04C2C(void) { + func_01F04C40(); +} diff --git a/src/pal/net/01F07100.c b/src/pal/net/01F07100.c new file mode 100644 index 00000000..62e651dc --- /dev/null +++ b/src/pal/net/01F07100.c @@ -0,0 +1,17 @@ +/* cflags: @ee296 -O2 -G0 -falign-jumps=1 -mno-split-addresses */ +#include "common.h" + +void func_0011EAD0(void *); +void func_01F07154(void *); +extern s32 D_0016E6D4[]; +extern s32 D_001B8020[]; +void func_01F075D0(); + +void *func_01F07100(void) { + if (D_0016E6D4[0] == 0) { + func_01F07154(D_001B8020); + D_0016E6D4[0] = 1; + func_0011EAD0(func_01F075D0); + } + return D_001B8020; +} diff --git a/src/pal/overlays/l00_multiplayer_menu/L00_0051E6D8.c b/src/pal/overlays/l00_multiplayer_menu/L00_0051E6D8.c new file mode 100644 index 00000000..677334d0 --- /dev/null +++ b/src/pal/overlays/l00_multiplayer_menu/L00_0051E6D8.c @@ -0,0 +1,24 @@ +/* cflags: @ee296 -O2 -G0 */ +#include "common.h" + +u32 func_L00_0051E6D8(s32 value) { + u32 out; + s32 top; + s32 nib; + s32 high; + s32 i; + + out = 0; + top = value >> 28; + nib = 0xF; + nib = top & nib; + if ((top & 7) != 0) { + high = nib - (nib & 8); + } else { + high = 5; + } + for (i = 0; i < 7; i++) { + out |= ((value >> (i * 4)) & 7) << (i * 4); + } + return (out & 0xFFFFFFF) | (high << 28); +} diff --git a/src/pal/overlays/l00_multiplayer_menu/L00_00546148.c b/src/pal/overlays/l00_multiplayer_menu/L00_00546148.c new file mode 100644 index 00000000..575d990f --- /dev/null +++ b/src/pal/overlays/l00_multiplayer_menu/L00_00546148.c @@ -0,0 +1,24 @@ +/* cflags: @ee296 -O2 -G0 */ +#include "common.h" + +u32 func_L00_00546148(s32 value) { + u32 out; + s32 top; + s32 nib; + s32 high; + s32 i; + + out = 0; + top = value >> 28; + nib = 0xF; + nib = top & nib; + if ((top & 7) != 0) { + high = nib - (nib & 8); + } else { + high = 5; + } + for (i = 0; i < 7; i++) { + out |= ((value >> (i * 4)) & 7) << (i * 4); + } + return (out & 0xFFFFFFF) | (high << 28); +} diff --git a/src/pal/overlays/l00_multiplayer_menu/L00_00565650.c b/src/pal/overlays/l00_multiplayer_menu/L00_00565650.c new file mode 100644 index 00000000..712a52f2 --- /dev/null +++ b/src/pal/overlays/l00_multiplayer_menu/L00_00565650.c @@ -0,0 +1,24 @@ +/* cflags: @ee296 -O2 -G0 */ +#include "common.h" + +u32 func_L00_00565650(s32 value) { + u32 out; + s32 top; + s32 nib; + s32 high; + s32 i; + + out = 0; + top = value >> 28; + nib = 0xF; + nib = top & nib; + if ((top & 7) != 0) { + high = nib - (nib & 8); + } else { + high = 5; + } + for (i = 0; i < 7; i++) { + out |= ((value >> (i * 4)) & 7) << (i * 4); + } + return (out & 0xFFFFFFF) | (high << 28); +} diff --git a/src/pal/overlays/l00_multiplayer_menu/L00_005666C8.c b/src/pal/overlays/l00_multiplayer_menu/L00_005666C8.c new file mode 100644 index 00000000..0b2aa3d5 --- /dev/null +++ b/src/pal/overlays/l00_multiplayer_menu/L00_005666C8.c @@ -0,0 +1,24 @@ +/* cflags: @ee296 -O2 -G0 */ +#include "common.h" + +u32 func_L00_005666C8(s32 value) { + u32 out; + s32 top; + s32 nib; + s32 high; + s32 i; + + out = 0; + top = value >> 28; + nib = 0xF; + nib = top & nib; + if ((top & 7) != 0) { + high = nib - (nib & 8); + } else { + high = 5; + } + for (i = 0; i < 7; i++) { + out |= ((value >> (i * 4)) & 7) << (i * 4); + } + return (out & 0xFFFFFFF) | (high << 28); +} diff --git a/src/pal/overlays/l00_multiplayer_menu/L00_0071F4F8.c b/src/pal/overlays/l00_multiplayer_menu/L00_0071F4F8.c new file mode 100644 index 00000000..8462d1f9 --- /dev/null +++ b/src/pal/overlays/l00_multiplayer_menu/L00_0071F4F8.c @@ -0,0 +1,41 @@ +#include "common.h" + +typedef struct Type2 Type2; +typedef struct Type3 { + char _p0[0x1C]; + void (*f1C)(Type2 *); +} Type3; + +struct Type2 { + char _p0[0x58]; + Type3 *f58; +}; + +typedef struct Type1 { + char _p0[0xC]; + Type2 *fC; + char _p10[0xAC - 0x10]; + s32 fAC; + Type2 *fB0[1]; +} Type1; + +s32 D_00220D8C = 0; +u8 D_00220D90 = 0; + +void func_00476080(s32 *, f32, f32); + +void func_L00_0071F4F8(Type1 *arg0) { + s32 i; + + if (arg0->fC != NULL) { + arg0->fC->f58->f1C(arg0->fC); + } + if (D_00220D90 != 0) { + func_00476080(&D_00220D8C, 0.0f, 0.0779220834f); + } else { + func_00476080(&D_00220D8C, 1.0f, 0.0779220834f); + } + for (i = 0; i < arg0->fAC; i++) { + arg0->fB0[i]->f58->f1C(arg0->fB0[i]); + } +} diff --git a/src/pal/overlays/shared/L00_0062B4F0.c b/src/pal/overlays/shared/L00_0062B4F0.c new file mode 100644 index 00000000..db55d0a0 --- /dev/null +++ b/src/pal/overlays/shared/L00_0062B4F0.c @@ -0,0 +1,79 @@ +#include "common.h" + +typedef struct Allocator Allocator; +typedef struct Object Object; +typedef struct { + u32 unknown0[2]; + void *(*allocate)(Allocator *, s32); + void (*release)(Allocator *, void *); +} AllocatorVtable; +struct Allocator { + AllocatorVtable *vtable; +}; +typedef struct Manager { + void *unknown0; + u8 *table; +} Manager; +typedef struct { + u32 unknown0[2]; + void (*destroy)(Object *, s32); +} ObjectVtable; +struct Object { + u32 unknown0[2]; + ObjectVtable *vtable; + + u8 unknownC[0x50]; +}; + +extern Manager D_00223248[]; +extern Manager *func_00502150(void); +extern Allocator *func_00502218(Manager *, s32); +extern void func_L00_0069F6A8(s32); +extern s32 func_L00_0069F6B0(void); +extern s32 func_00500980(void *, u32); +extern void *func_0015DB90(u32, void *); +extern Object *func_0050FB98(void *); +extern s32 func_00501618(void *, Object *, u32); + +static inline Manager *get_manager(void) +{ + Manager *manager = D_00223248; + if (manager->table) { + return manager; + } + return func_00502150(); +} + +s32 func_L00_0062B4F0(u32 key) +{ + s32 result = 0; + Manager *manager; + Allocator *allocator; + u8 *state; + void *entry; + s32 size; + void *block; + Object *object; + + manager = get_manager(); + state = (u8 *)manager->table; + entry = state != NULL + ? *(void **)((u32)state + ((u32) * (s32 *)(state + 0x14) << 2)) + : NULL; + func_L00_0069F6A8(0x50); + size = func_L00_0069F6B0(); + if (entry != NULL && func_00500980(entry, key) == 0) { + allocator = func_00502218(get_manager(), 1); + block = allocator->vtable->allocate(allocator, size); + if (block != NULL) { + object = func_0050FB98(func_0015DB90(0x50, block)); + result = func_00501618(entry, object, key) != 0; + if (!result) { + object->vtable->destroy(object, 2); + allocator = func_00502218(get_manager(), 1); + allocator->vtable->release(allocator, block); + } + } + } + return result; +} diff --git a/src/pal/overlays/shared/L00_00647FE0.c b/src/pal/overlays/shared/L00_00647FE0.c new file mode 100644 index 00000000..80126918 --- /dev/null +++ b/src/pal/overlays/shared/L00_00647FE0.c @@ -0,0 +1,40 @@ +#include "common.h" + +typedef struct State { + u32 unknown; + s32 group; +} State; + +extern s32 func_004A2798(s32 *group, s32 id); +extern s32 func_00506590(s32 handle, u32 resource); +extern s32 func_00506000(s32 handle, s32 visible); + +void func_L00_00647FE0(State *state, s32 enabled, s32 count) +{ + func_00506590(func_004A2798(&state->group, 8), 0x7546); + func_00506590(func_004A2798(&state->group, 7), 0x7546); + func_00506590(func_004A2798(&state->group, 6), 0x7546); + func_00506590(func_004A2798(&state->group, 5), 0x7546); + func_00506590(func_004A2798(&state->group, 4), 0x7546); + + func_00506000(func_004A2798(&state->group, 8), 0); + func_00506000(func_004A2798(&state->group, 7), 0); + func_00506000(func_004A2798(&state->group, 6), 0); + func_00506000(func_004A2798(&state->group, 5), 0); + func_00506000(func_004A2798(&state->group, 4), 0); + + if (enabled) { + switch (count) { + case 5: + func_00506000(func_004A2798(&state->group, 4), 1); + case 4: + func_00506000(func_004A2798(&state->group, 5), 1); + case 3: + func_00506000(func_004A2798(&state->group, 6), 1); + case 2: + func_00506000(func_004A2798(&state->group, 7), 1); + case 1: + func_00506000(func_004A2798(&state->group, 8), 1); + } + } +} diff --git a/src/pal/overlays/shared/L00_00650F58.c b/src/pal/overlays/shared/L00_00650F58.c new file mode 100644 index 00000000..ab8a8a92 --- /dev/null +++ b/src/pal/overlays/shared/L00_00650F58.c @@ -0,0 +1,40 @@ +#include "common.h" + +typedef struct State { + u32 unknown; + s32 group; +} State; + +extern s32 func_004A2798(s32 *group, s32 id); +extern s32 func_L00_006A0DB8(s32 handle, u32 resource); +extern s32 func_00506000(s32 handle, s32 visible); + +void func_L00_00650F58(State *state, s32 enabled, s32 count) +{ + func_L00_006A0DB8(func_004A2798(&state->group, 8), 0x7546); + func_L00_006A0DB8(func_004A2798(&state->group, 7), 0x7546); + func_L00_006A0DB8(func_004A2798(&state->group, 6), 0x7546); + func_L00_006A0DB8(func_004A2798(&state->group, 5), 0x7546); + func_L00_006A0DB8(func_004A2798(&state->group, 4), 0x7546); + + func_00506000(func_004A2798(&state->group, 8), 0); + func_00506000(func_004A2798(&state->group, 7), 0); + func_00506000(func_004A2798(&state->group, 6), 0); + func_00506000(func_004A2798(&state->group, 5), 0); + func_00506000(func_004A2798(&state->group, 4), 0); + + if (enabled) { + switch (count) { + case 5: + func_00506000(func_004A2798(&state->group, 4), 1); + case 4: + func_00506000(func_004A2798(&state->group, 5), 1); + case 3: + func_00506000(func_004A2798(&state->group, 6), 1); + case 2: + func_00506000(func_004A2798(&state->group, 7), 1); + case 1: + func_00506000(func_004A2798(&state->group, 8), 1); + } + } +} diff --git a/src/pal/overlays/shared/L00_006A3E80.c b/src/pal/overlays/shared/L00_006A3E80.c new file mode 100644 index 00000000..af501669 --- /dev/null +++ b/src/pal/overlays/shared/L00_006A3E80.c @@ -0,0 +1,79 @@ +#include "common.h" + +typedef struct Allocator Allocator; +typedef struct Object Object; +typedef struct { + u32 unknown0[2]; + void *(*allocate)(Allocator *, s32); + void (*release)(Allocator *, void *); +} AllocatorVtable; +struct Allocator { + AllocatorVtable *vtable; +}; +typedef struct Manager { + void *unknown0; + u8 *table; +} Manager; +typedef struct { + u32 unknown0[2]; + void (*destroy)(Object *, s32); +} ObjectVtable; +struct Object { + u32 unknown0[2]; + ObjectVtable *vtable; + + u8 unknownC[0x50]; +}; + +extern Manager D_00222138[]; +extern Manager *func_00502150(void); +extern Allocator *func_00502218(Manager *, s32); +extern void func_005052C0(s32); +extern s32 func_005052C8(void); +extern s32 func_00500980(void *, u32); +extern void *func_0015DB90(u32, void *); +extern Object *func_0050EB78(void *); +extern s32 func_00501618(void *, Object *, u32); + +static inline Manager *get_manager(void) +{ + Manager *manager = D_00222138; + if (manager->table) { + return manager; + } + return func_00502150(); +} + +s32 func_L00_006A3E80(u32 key) +{ + s32 result = 0; + Manager *manager; + Allocator *allocator; + u8 *state; + void *entry; + s32 size; + void *block; + Object *object; + + manager = get_manager(); + state = (u8 *)manager->table; + entry = state != NULL + ? *(void **)((u32)state + ((u32) * (s32 *)(state + 0x14) << 2)) + : NULL; + func_005052C0(0x50); + size = func_005052C8(); + if (entry != NULL && func_00500980(entry, key) == 0) { + allocator = func_00502218(get_manager(), 1); + block = allocator->vtable->allocate(allocator, size); + if (block != NULL) { + object = func_0050EB78(func_0015DB90(0x50, block)); + result = func_00501618(entry, object, key) != 0; + if (!result) { + object->vtable->destroy(object, 2); + allocator = func_00502218(get_manager(), 1); + allocator->vtable->release(allocator, block); + } + } + } + return result; +} diff --git a/src/pal/overlays/shared/L00_006BEA78.c b/src/pal/overlays/shared/L00_006BEA78.c new file mode 100644 index 00000000..e7851471 --- /dev/null +++ b/src/pal/overlays/shared/L00_006BEA78.c @@ -0,0 +1,85 @@ +#include "common.h" + +extern s32 func_0045E288(); +extern s32 func_L00_00621580(); +extern s32 func_L00_006B52D0(); +extern s32 func_00516810(); +extern s32 func_L00_006BC8F0(); +extern void func_L00_006BD060(); +extern s32 func_L00_006BE570(); +extern s32 func_00523DF0(); +extern s32 func_0054A308(); +extern s32 D_0021E734; +extern s32 D_0021DDB4; + +#define F(p, T, o) (*(T *)((u8 *)(p) + (o))) +extern u8 *D_0021E078; +typedef struct { u8 pad[0xA8]; u8 fA8[0x10]; } Type1; +extern Type1 D_00171DB8; +typedef s32 (*Fn1)(u8 *); + +void func_L00_006BEA78(u8 *p) { + s32 v; + u8 *q; + + if (func_00516810(p) || F(p, s32, 0x25CC) == 0x8F) { + F(p, u8, 0x2664) = F(p, u8, 0x2666) = 1; + } + if (func_00516810(p) || (v = F(p, s32, 0x25CC)) == 0x31 || v == 0x98 || + F(p, s32, 0x25D4) == 3 || v == 0x8F || v == 0x12 || + D_0021DDB4 == 1 || D_0021DDB4 == 2) { + F(p, u8, 0x2668) = 1; + F(p, u8, 0x2663) = 1; + } else { + F(p, u8, 0x2668) = 0; + F(p, u8, 0x2663) = 0; + } + if (F(p, u8 *, 0x2340) != 0) { + F(p, u8 *, 0x2340)[0x23] = F(p, u8 *, 0x2EF0)[0x23]; + } + func_L00_006BC8F0(p); + if (F(p, s32, 0x2318) != 1) { + if (D_00171DB8.fA8[F(p, s32, 0x2F10)]) { + F(p, s32, 0x2300) |= 8; + } else if (F(p, s32, 0x2300) & 8) { + F(p, s32, 0x2300) &= ~8; + } + if (D_0021E734 == 1) { + if (!D_00171DB8.fA8[F(p, s32, 0x2F10)]) { + F(p, s32, 0x2300) |= 0x20; + } else if (F(p, s32, 0x2300) & 0x20) { + F(p, s32, 0x2300) &= ~0x20; + } + } + } + func_L00_006BD060(p, F(p, u8 *, 0x2EF0)); + if (F(p, u8 *, 0x2EF0)[0x31]) { + func_L00_006B52D0(p); + } + if (D_0021E734 == 1) { + if (D_0021E078[0x32] && F(D_0021E078, s8, 0x34) && F(p, s32, 0x2F14) == 1 && + (q = F(p, u8 *, 0x22F0)) != 0) { + v = (q[0x23] + F(p, u8 *, 0x2EF0)[0x23]) >> 1; + q[0x23] = v; + if (F(F(p, u8 *, 0x22F0), s16, 0xBC) == 0x1094) { + F(F(F(p, u8 *, 0x22F0), u8 *, 0xAC), u8 *, 0x64)[0x23] = v; + } + } + if (D_0021E734 == 1 && F(D_0021E078, s8, 0x12) && F(p, s32, 0x2EE8) && !F(p, s32, 0x2EF4)) { + if (!D_00171DB8.fA8[F(p, s32, 0x2F10)]) { + if (F(F(p, u8 *, 0x2F00), s32, 0x1A4) & 2) { + func_00523DF0(p, 0); + } + } else if (F(F(p, u8 *, 0x2F00), s32, 0x1A4) & 0x20) { + func_00523DF0(p, 0); + } + } + } + if (F(p, u8, 0x266C) && F(p, s32, 0x2318) == 0xE && F(p, u8, 0x266D)) { + func_L00_00621580(F(F(p, u8 *, 0x14), Fn1, 0x4C)(p), 2); + } + if (func_0054A308(F(p, s32, 0x26E4), 10) || func_0054A308(F(p, s32, 0x26E4), 9)) { + func_0045E288(0x3324, 0x76F, 0xBB8, 2); + } + func_L00_006BE570(p); +} diff --git a/src/pal/overlays/shared/L01_0046A2F0.c b/src/pal/overlays/shared/L01_0046A2F0.c new file mode 100644 index 00000000..bc727ae5 --- /dev/null +++ b/src/pal/overlays/shared/L01_0046A2F0.c @@ -0,0 +1,7 @@ +#include "common.h" + +extern void func_L00_00621580(f32, f32); + +void func_L01_0046A2F0(f32 x) { + func_L00_00621580(0.200000018f, x); +} diff --git a/src/pal/overlays/shared/L01_006B8CC0.c b/src/pal/overlays/shared/L01_006B8CC0.c new file mode 100644 index 00000000..9e66fb7a --- /dev/null +++ b/src/pal/overlays/shared/L01_006B8CC0.c @@ -0,0 +1,102 @@ +#include "common.h" + +typedef struct Type4 { + char pad0[0xC]; + s32 fC; +} Type4; + +typedef struct Type3 { + char pad0[0x25CC]; + s32 f25CC; + char pad25D0[0x2EF4 - 0x25D0]; + s32 f2EF4; + s32 f2EF8; +} Type3; + +typedef struct Type2 { + char pad0[0x2B8]; + Type3 *f2B8; + Type3 *f2BC; + char pad2C0[0x324 - 0x2C0]; + Type4 *f324; + Type3 *f328; + Type3 *f32C; +} Type2; + +typedef struct Type1 { + char pad0[0x6A]; + u16 f6A; +} Type1; + +extern s32 D_0021DE3C; +extern s32 D_0021E824; +extern s32 D_0021E8A8; +extern Type3 *D_003660F8[]; +s32 func_L00_005A1078(void); +Type2 *func_0053E038(Type1 *); +void func_0053E158(Type2 *, Type3 *); +void func_0053E580(Type2 *, Type3 *); + +s32 func_L01_006B8CC0(Type1 *arg0, s32 arg1, s32 arg2) { + s32 i; + Type3 *p; + Type2 *obj; + Type4 *s3; + s32 mode; + + if (func_L00_005A1078() || D_0021DE3C) { + arg0->f6A = 0; + return 0; + } + p = D_003660F8[0]; + i = 0; + while (i < 10) { + if (p && (p->f25CC == 0x71 || p->f25CC == 0x63)) { + arg0->f6A = 0; + return 0; + } + i++; + p = D_003660F8[i]; + } + if (arg0->f6A < 0x5) { + return 0; + } + obj = func_0053E038(arg0); + mode = D_0021E824; + if (!obj) { + return 0; + } + s3 = obj->f324; + if (mode == 1) { + return obj->f2B8 != 0; + } + if (mode == 0 && D_0021E8A8 == 0 && obj->f2B8) { + return 1; + } + if (mode == 0 && D_0021E8A8 == 1 && obj->f2B8 && (obj->f2BC || !(s3->fC & 0x100000))) { + return 1; + } + p = D_003660F8[0]; + i = 0; + while (i < 10) { + if (p && !p->f2EF4 && !p->f2EF8) { + if (arg2) { + arg2 = 0; + } else if (!obj->f2B8) { + obj->f328 = p; + func_0053E580(obj, p); + } else if (!arg1 && !(s3->fC & 0x100000) && !obj->f2BC) { + obj->f32C = p; + func_0053E158(obj, p); + } + } + i++; + p = D_003660F8[i]; + } + if (!obj->f2B8 && !obj->f2BC && !obj->f328 && !obj->f32C) { + goto tail; + } + return 1; +tail: + return arg0->f6A >= 0x5; +} From eb10691499eeed12e5f117182a6b4e68264d09ca Mon Sep 17 00:00:00 2001 From: Adrien Girardeau Date: Mon, 9 Nov 2026 22:10:06 +0000 Subject: [PATCH 2/4] chore(pal): drop 14 src/pal files the new US C now builds These PAL functions were matched by src/pal/ files; the US C added in the previous commit builds the same PAL bytes, so the maps already credit the US file and the PAL copies had no row left. Maps and progress unchanged. Co-Authored-By: Claude Opus 5.5 --- src/pal/core/0012AA70.c | 30 ---------- src/pal/core/0012CA90.c | 27 --------- src/pal/core/001373B0.c | 23 -------- src/pal/core/00137FB0.c | 23 -------- src/pal/core/00138100.c | 24 -------- src/pal/core/0013A0F0.c | 18 ------ src/pal/core/0013B460.c | 35 ------------ src/pal/core/001464C0.c | 10 ---- src/pal/core/0014C168.c | 30 ---------- src/pal/core/0014CCA0.c | 20 ------- src/pal/core/001501B0.c | 18 ------ src/pal/game/004CEB68.c | 55 ------------------- src/pal/net/01EA4570.c | 10 ---- .../l00_multiplayer_menu/L00_00714AD8.c | 12 ---- 14 files changed, 335 deletions(-) delete mode 100644 src/pal/core/0012AA70.c delete mode 100644 src/pal/core/0012CA90.c delete mode 100644 src/pal/core/001373B0.c delete mode 100644 src/pal/core/00137FB0.c delete mode 100644 src/pal/core/00138100.c delete mode 100644 src/pal/core/0013A0F0.c delete mode 100644 src/pal/core/0013B460.c delete mode 100644 src/pal/core/001464C0.c delete mode 100644 src/pal/core/0014C168.c delete mode 100644 src/pal/core/0014CCA0.c delete mode 100644 src/pal/core/001501B0.c delete mode 100644 src/pal/game/004CEB68.c delete mode 100644 src/pal/net/01EA4570.c delete mode 100644 src/pal/overlays/l00_multiplayer_menu/L00_00714AD8.c diff --git a/src/pal/core/0012AA70.c b/src/pal/core/0012AA70.c deleted file mode 100644 index b86bfe63..00000000 --- a/src/pal/core/0012AA70.c +++ /dev/null @@ -1,30 +0,0 @@ -/* cflags: @ee29 -O2 -G0 */ -#include "common.h" - -extern s32 func_0012A718(void *client, s32 command, u32 mode, - const void *send, s32 sendSize, - void *receive, s32 receiveSize, - void (*complete)(void *), void *argument); -extern s32 func_00127A08(s32 microseconds); - -s32 func_0012AA70(void *client, s32 command, u32 mode, const void *send, s32 sendSize, void *receive, s32 receiveSize, void (*complete)(void *), void *argument, s32 failFast) -{ - s32 failed = 0; - s32 delay = 1; - s32 attempt = 0; - - do { - failed = (u32)func_0012A718(client, command, mode, send, sendSize, - receive, receiveSize, complete, argument) >> - 31; - if (!failed || failFast) { - break; - } - func_00127A08(delay * 1000); - if (delay < 127) { - delay *= 2; - } - attempt++; - } while (attempt < 101); - return failed; -} diff --git a/src/pal/core/0012CA90.c b/src/pal/core/0012CA90.c deleted file mode 100644 index 653605f6..00000000 --- a/src/pal/core/0012CA90.c +++ /dev/null @@ -1,27 +0,0 @@ -/* cflags: @ee29 -O2 -G0 */ -#include "common.h" - -extern s32 D_001A9580[]; -extern u8 D_001A9780[]; -extern s32 func_0012C4B8(void); -extern s32 func_0012C5B8(void); -extern s32 func_0012A718(void *client, s32 command, u32 mode, - const void *send, s32 sendSize, - void *receive, s32 receiveSize, - void (*complete)(void *), void *argument); - -s32 func_0012CA90(s32 descriptor) -{ - if (func_0012C4B8() < 0) { - return (s32)0xFFFF0000u; - } - if (func_0012C5B8()) { - return (s32)0xFFFEFFFCu; - } - D_001A9580[0] = descriptor; - if (func_0012A718(D_001A9780, 8, 0, D_001A9580, 4, - D_001A9580, 4, 0, 0) < 0) { - return (s32)0xFFFEFFFFu; - } - return D_001A9580[0]; -} diff --git a/src/pal/core/001373B0.c b/src/pal/core/001373B0.c deleted file mode 100644 index 8111e9ba..00000000 --- a/src/pal/core/001373B0.c +++ /dev/null @@ -1,23 +0,0 @@ -/* cflags: @ee29 -O2 -G0 */ -#include "common.h" -extern u8 D_00167210[]; -extern s32 D_001660C0[]; -extern s32 D_00166068; -extern s32 func_00137258(s32 command); -extern s32 func_00126BC0(s32 semaphore); -extern s32 func_0012A718(void *client, s32 command, u32 mode, - const void *send, s32 send_size, void *receive, s32 receive_size, - void (*complete)(void *), void *argument); -s32 func_001373B0(void) -{ - s32 result; - if (!func_00137258(2)) - return 0; - if (func_0012A718(D_00167210, 14, 0, 0, 0, D_001660C0, 4, 0, 0) < 0) { - func_00126BC0(D_00166068); - return 0; - } - result = *(s32 *)((u32)D_001660C0 | 0x20000000u); - func_00126BC0(D_00166068); - return result; -} diff --git a/src/pal/core/00137FB0.c b/src/pal/core/00137FB0.c deleted file mode 100644 index b7e8d2b0..00000000 --- a/src/pal/core/00137FB0.c +++ /dev/null @@ -1,23 +0,0 @@ -/* cflags: @ee29 -O2 -G0 */ -#include "common.h" -extern u8 D_00167BC0[]; -extern s32 D_00167240[]; -extern s32 D_0016606C; -extern s32 func_00137558(s32 command); -extern s32 func_00126BC0(s32 semaphore); -extern s32 func_0012A718(void *client, s32 command, u32 mode, - const void *send, s32 send_size, void *receive, s32 receive_size, - void (*complete)(void *), void *argument); -s32 func_00137FB0(void) -{ - s32 result; - if (!func_00137558(3)) - return -1; - if (func_0012A718(D_00167BC0, 4, 0, 0, 0, D_00167240, 4, 0, 0) < 0) { - func_00126BC0(D_0016606C); - return -1; - } - result = *(s32 *)((u32)D_00167240 | 0x20000000u); - func_00126BC0(D_0016606C); - return result; -} diff --git a/src/pal/core/00138100.c b/src/pal/core/00138100.c deleted file mode 100644 index 4e4f02e8..00000000 --- a/src/pal/core/00138100.c +++ /dev/null @@ -1,24 +0,0 @@ -/* cflags: @ee29 -O2 -G0 */ -#include "common.h" -extern u8 D_00167BC0[]; -extern s32 D_00167240[]; -extern s32 D_0016606C; -extern s32 func_00137558(s32 command); -extern s32 func_00126BC0(s32 semaphore); -extern s32 func_0012A718(void *client, s32 command, u32 mode, - const void *send, s32 send_size, void *receive, s32 receive_size, - void (*complete)(void *), void *argument); -s32 func_00138100(s32 *output) -{ - s32 result; - if (!func_00137558(33)) - return 0; - if (func_0012A718(D_00167BC0, 33, 0, 0, 0, D_00167240, 8, 0, 0) < 0) { - func_00126BC0(D_0016606C); - return 0; - } - *output = *(s32 *)(((u32)D_00167240 + 4u) | 0x20000000u); - result = *(s32 *)((u32)D_00167240 | 0x20000000u); - func_00126BC0(D_0016606C); - return result; -} diff --git a/src/pal/core/0013A0F0.c b/src/pal/core/0013A0F0.c deleted file mode 100644 index 753fafb9..00000000 --- a/src/pal/core/0013A0F0.c +++ /dev/null @@ -1,18 +0,0 @@ -/* cflags: @ee29 -O2 -G0 */ -#include "common.h" - -extern s32 D_00167C7C[]; -extern s32 D_00167C80[]; -extern s32 func_0013A7A0(s32 nonblocking, s32 *command, s32 *result); -extern s32 func_00126BB0(s32 semaphore); - -s32 func_0013A0F0(void) -{ - if (D_00167C7C[0] >= 0) { - func_0013A7A0(0, 0, 0); - func_00126BB0(D_00167C7C[0]); - D_00167C7C[0] = -1; - func_00126BB0(D_00167C80[0]); - } - return 1; -} diff --git a/src/pal/core/0013B460.c b/src/pal/core/0013B460.c deleted file mode 100644 index 92e3dea4..00000000 --- a/src/pal/core/0013B460.c +++ /dev/null @@ -1,35 +0,0 @@ -/* cflags: @ee29 -O2 -G0 */ -#include "common.h" - -extern u8 D_001AF040[]; -extern s32 D_001AF280[]; -extern s32 D_00167C98[]; -extern s32 D_00167CA4[]; -extern s32 func_0013C2E8(s32 enabled); -extern void func_00129990(s32 command); -extern s32 func_0012A718(void *client, s32 command, u32 mode, - const void *send, s32 sendSize, - void *receive, s32 receiveSize, - void (*complete)(void *), void *argument); - -s32 func_0013B460(void) -{ - s32 result; - - if (D_00167C98[0] == 0) { - return 1; - } - func_0013C2E8(0); - D_001AF280[0] = 15; - if (func_0012A718(D_001AF040, 1, 0, D_001AF280, 0x80, - D_001AF280, 0x80, 0, 0) < 0) { - return 0; - } - func_00129990((s32)0x80000019u); - result = D_001AF280[3]; - if (result == 1) { - D_00167C98[0] = 0; - } - D_00167CA4[0] = 0; - return result; -} diff --git a/src/pal/core/001464C0.c b/src/pal/core/001464C0.c deleted file mode 100644 index bf758d8c..00000000 --- a/src/pal/core/001464C0.c +++ /dev/null @@ -1,10 +0,0 @@ -/* cflags: @ee29 -O2 -G0 */ -#include "common.h" - -extern const char D_001957F0[]; -extern void func_001294F0(const char *format, ...); - -void func_001464C0(const char *message) -{ - func_001294F0(D_001957F0, message); -} diff --git a/src/pal/core/0014C168.c b/src/pal/core/0014C168.c deleted file mode 100644 index fd2e68b8..00000000 --- a/src/pal/core/0014C168.c +++ /dev/null @@ -1,30 +0,0 @@ -/* cflags: -fno-opt-stack */ -#include "common.h" -extern const f32 D_001A0218[]; -extern f32 func_001484E8(const s32 *steps, s32 unused, const f32 *samples, - f32 frequency, s32 length, f32 gain); -f32 func_0014C168(s32 index, const s32 *steps, s32 unused, const f32 *samples, s32 length, f32 gain, f32 *score) -{ - f32 candidates[2]; - f32 best = *(const f32 *)((u32)D_001A0218 + ((u32)index << 2)); - s32 count = 0; - s32 i; - if (index > 0) { - f32 previous = *(const f32 *)((u32)D_001A0218 + (((u32)index - 1u) << 2)); - candidates[count++] = (best + previous) * 0.5f; - } - index = (s32)((u32)index + 1u); - if (index < 74) { - f32 next = *(const f32 *)((u32)D_001A0218 + ((u32)index << 2)); - candidates[count++] = (best + next) * 0.5f; - } - for (i = 0; i < count; i++) { - f32 frequency = candidates[i]; - f32 value = func_001484E8(steps, unused, samples, frequency, length, gain); - if (*score < value) { - *score = value; - best = frequency; - } - } - return best; -} diff --git a/src/pal/core/0014CCA0.c b/src/pal/core/0014CCA0.c deleted file mode 100644 index 605fc659..00000000 --- a/src/pal/core/0014CCA0.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "common.h" -f32 func_0014CCA0(f32 level, f32 value, f32 minimum, f32 speed, f32 target) -{ - if (level <= 0.01f) - value = 0.0f; - if (level >= 0.45f) { - level -= 0.45f; - if (level * (speed * 0.5f) < 1.0f) - level += 0.0714285746216774f; - if (value < level) - value = level; - } - if (value < minimum && minimum >= 0.0714285746216774f) { - if (speed < target * 1.25f && speed > target * 0.8f) - value = value * 0.7f + minimum * 0.3f; - if (value < 0.0714285746216774f) - value += 0.0714285746216774f; - } - return value; -} diff --git a/src/pal/core/001501B0.c b/src/pal/core/001501B0.c deleted file mode 100644 index 700a414c..00000000 --- a/src/pal/core/001501B0.c +++ /dev/null @@ -1,18 +0,0 @@ -/* cflags: -fno-opt-stack */ -#include "common.h" - -extern const f32 D_001A3A20[]; -extern const f32 D_001A3A08[]; -extern f32 func_00147DE0(f32 value); - -f32 func_001501B0(f32 value, f32 scale) -{ - s32 band; - for (band = 0; band < 5; ++band) { - if (D_001A3A20[band] < value) { - break; - } - } - return (D_001A3A08[band] + func_00147DE0(scale) * 0.5f) + - -5.045318603515625f; -} diff --git a/src/pal/game/004CEB68.c b/src/pal/game/004CEB68.c deleted file mode 100644 index 3992edce..00000000 --- a/src/pal/game/004CEB68.c +++ /dev/null @@ -1,55 +0,0 @@ -#include "common.h" - -extern u8 D_0030ECC0[]; -extern s32 D_00171C88[]; - -s32 func_00506BB8(void); -void func_00502520(void *); -void func_004CEFD0(void); -void func_004CED68(void); -void func_004CEDA8(void); -s32 func_004A2468(void *); -void func_004CEE80(void); - -void func_004CEB68(void *arg0) { - s32 index; - s32 record; - s32 valueAddress; - s32 value; - s32 state; - - index = func_00506BB8(); - record = (s32)D_0030ECC0 + index * 0x280; - valueAddress = (s32)D_0030ECC0 + 0x27C + index * 0x280; - value = *(s32 *)valueAddress; - if (value != -1) { - if (value >= 0) { - D_00171C88[(u32)value >> 5] &= ~(1 << (value & 0x1F)); - } - *(s32 *)valueAddress = -1; - } - state = *(s32 *)record; - switch (state) { - case 1: - *(s32 *)record = 0; - break; - case 2: - func_00502520(arg0); - break; - case 0: - func_004CEFD0(); - break; - } - if ((*(s32 *)(record + 8) & 1) != 0) { - func_004CED68(); - } - if ((*(s32 *)(record + 8) & 2) != 0) { - func_004CEDA8(); - } - func_004A2468((void *)(record + 0x210)); - state = *(s32 *)(record + 8); - state &= 4; - if (state != 0) { - func_004CEE80(); - } -} diff --git a/src/pal/net/01EA4570.c b/src/pal/net/01EA4570.c deleted file mode 100644 index 36cfd3b7..00000000 --- a/src/pal/net/01EA4570.c +++ /dev/null @@ -1,10 +0,0 @@ -/* cflags: -O2 -G8 -mno-split-addresses -malign-jumps=3 */ -#include "common.h" - -extern s32 D_001AF998[]; - -s32 func_01EA4570(u32 index) { - u32 byte_offset = index * sizeof(s32); - if (index >= 4) return 0; - return *(s32 *)((u8 *)D_001AF998 + byte_offset); -} diff --git a/src/pal/overlays/l00_multiplayer_menu/L00_00714AD8.c b/src/pal/overlays/l00_multiplayer_menu/L00_00714AD8.c deleted file mode 100644 index 0f3a25ba..00000000 --- a/src/pal/overlays/l00_multiplayer_menu/L00_00714AD8.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "common.h" - -extern u8 D_004B7D58[]; -s32 func_L00_00714570(); -s32 func_L00_00714B50(); - -s64 func_L00_00714AD8(char *arg0, s32 arg1) { - func_L00_00714570(arg0); - *(s32 *)(arg0 + 88) = (s32)D_004B7D58; - func_L00_00714B50(arg0, arg1); - return (s32)arg0; -} From 7fec4f43adda774e37926f2e8d3e0049b2c75358 Mon Sep 17 00:00:00 2001 From: Adrien Girardeau Date: Tue, 10 Nov 2026 20:43:53 +0000 Subject: [PATCH 3/4] feat: match 236 more US shape twins Same method as the first commit: the matched twin C, constants set to retail, callees and globals renamed to what the disc reaches (from the relocations, then from audit_relocs.py lines). Nine src/pal files added or kept by this branch that the US C now covers are dropped, and four nonmatching/ drafts are replaced. Co-Authored-By: Claude --- config/pal/map.tsv | 254 +- config/us/map.tsv | 252 +- nonmatching/game/func_0046CEA0.c | 87 - nonmatching/game/func_0046E9E8.c | 35 - nonmatching/game/func_004A06F8.c | 82 - nonmatching/game/func_004A8280.c | 37 - nonmatching/game/func_004A8E78.c | 52 - nonmatching/game/func_004B9440.c | 40 - nonmatching/game/func_004C9090.c | 37 - nonmatching/game/func_004CBB98.c | 53 - nonmatching/game/func_004D9408.c | 61 - nonmatching/game/func_004F7FD8.c | 77 - nonmatching/shared/func_L00_00599710.c | 74 - nonmatching/shared/func_L01_0063B1B8.c | 13 - progress/pal/report.json | 9426 +++++++++-------- progress/report.json | 6138 ++++++++--- src/{pal => }/core/00139DA0.c | 2 +- src/core/00159258.c | 20 + src/game/0041DA98.c | 78 + src/game/0041E280.c | 32 + src/game/004230F8.c | 43 + src/game/00429BE8.c | 40 + src/game/0042B700.c | 29 + src/game/00430D08.c | 32 + src/game/00430E80.c | 79 + src/game/004331B0.c | 39 + src/game/004332B0.c | 14 + src/game/004363D0.c | 22 + src/game/0043D160.c | 26 + src/game/0043D250.c | 32 + src/game/004473C0.c | 44 + src/game/00448B40.c | 20 + src/game/00448D98.c | 34 + src/game/0044A410.c | 60 + src/game/0044AA58.c | 28 + src/game/0044ABC0.c | 14 + src/game/0044D6D0.c | 53 + src/game/0044DF08.c | 109 + src/game/00452598.c | 25 + src/game/00454420.c | 38 + src/game/00454600.c | 30 + src/game/004597B8.c | 25 + src/game/0045D108.c | 26 + src/game/0045E860.c | 63 + src/game/00460B00.c | 45 + src/game/00460D48.c | 76 + src/game/00462D68.c | 36 + src/game/00463B78.c | 43 + src/game/004653A8.c | 34 + src/game/004655A0.c | 32 + src/game/00465F38.c | 31 + src/game/004660F8.c | 31 + src/game/004661D8.c | 48 + src/game/00468C78.c | 46 + src/game/0046A9E8.c | 23 + src/game/0046CEA0.c | 69 + src/game/0046D708.c | 40 + src/game/0046E9E8.c | 33 + src/game/0047ED10.c | 19 + src/game/0048B840.c | 36 + src/game/0048BB38.c | 26 + src/game/0048BC20.c | 26 + src/game/0048BD08.c | 26 + src/game/0048BF90.c | 26 + src/game/0048C078.c | 26 + src/game/0048C160.c | 26 + src/game/0048C248.c | 26 + src/game/0048C330.c | 24 + src/game/0048C440.c | 41 + src/game/00498270.c | 41 + src/game/00498A98.c | 37 + src/game/004993D8.c | 43 + src/game/0049E140.c | 47 + src/game/0049F4F8.c | 50 + src/game/0049F660.c | 27 + src/game/0049F758.c | 28 + src/game/0049F828.c | 37 + src/game/004A06F8.c | 79 + src/game/004A0870.c | 79 + src/game/004A09E8.c | 79 + src/game/004A1240.c | 47 + src/game/004A1B48.c | 70 + src/game/004A2B18.c | 40 + src/game/004A2C28.c | 56 + src/game/004A4880.c | 29 + src/game/004A8280.c | 42 + src/game/004A8430.c | 34 + src/game/004A89E8.c | 28 + src/game/004A8E78.c | 58 + src/game/004AD1D8.c | 47 + src/game/004B4050.c | 59 + src/game/004B6740.c | 38 + src/game/004B83C8.c | 46 + src/game/004B84D0.c | 47 + src/game/004B9240.c | 31 + src/game/004B9440.c | 24 + src/game/004C1FA8.c | 78 + src/game/004C33D0.c | 37 + src/game/004C44E8.c | 82 + src/game/004C4698.c | 77 + src/game/004C6BA0.c | 66 + src/game/004C7168.c | 35 + src/game/004C9090.c | 40 + src/game/004CBB98.c | 75 + src/game/004CDF08.c | 51 + src/game/004CF950.c | 45 + src/game/004D4C58.c | 79 + src/game/004D6378.c | 26 + src/game/004D8A18.c | 47 + src/game/004D9048.c | 61 + src/game/004D9408.c | 52 + src/game/004DA2D8.c | 85 + src/game/004DA960.c | 28 + src/game/004DAA78.c | 80 + src/game/004DEF78.c | 37 + src/game/004EE150.c | 35 + src/game/004F0660.c | 39 + src/game/004F1D20.c | 35 + src/game/004F1EA0.c | 60 + src/game/004F5350.c | 24 + src/game/004F7FD8.c | 49 + src/game/004FAAA8.c | 19 + src/game/004FC310.c | 30 + src/game/004FEF80.c | 60 + src/game/00502510.c | 70 + src/game/005040B0.c | 79 + src/game/00504550.c | 52 + src/game/00504648.c | 52 + src/game/00504AA8.c | 61 + src/game/00504F68.c | 55 + src/game/00505238.c | 52 + src/game/00505328.c | 52 + src/game/005081B0.c | 79 + src/game/0050BE90.c | 61 + src/game/0050C100.c | 86 + src/game/0050C7D8.c | 64 + src/game/00511060.c | 41 + src/game/0051A638.c | 49 + src/game/0053D6E0.c | 30 + src/game/005480A8.c | 29 + src/game/0054A0C0.c | 23 + src/game/0054C250.c | 44 + src/game/0054CC60.c | 48 + .../l00_multiplayer_menu/L00_004F8F78.c | 58 + .../l00_multiplayer_menu/L00_004FD6B8.c | 27 + .../l00_multiplayer_menu/L00_00501980.c | 55 + .../l00_multiplayer_menu/L00_00505368.c | 58 + .../l00_multiplayer_menu/L00_0051E1D8.c | 24 + .../l00_multiplayer_menu/L00_00526DA8.c | 66 + .../l00_multiplayer_menu/L00_00545C48.c | 24 + .../l00_multiplayer_menu/L00_00551DA0.c | 17 + .../l00_multiplayer_menu/L00_00565150.c | 24 + .../l00_multiplayer_menu/L00_005661C8.c | 24 + .../l00_multiplayer_menu/L00_0069DA50.c | 52 + .../l00_multiplayer_menu/L00_00711478.c | 21 + .../l00_multiplayer_menu/L00_007121A0.c | 23 + .../l00_multiplayer_menu/L00_00712220.c | 23 + .../l00_multiplayer_menu/L00_00713360.c | 14 + .../l00_multiplayer_menu/L00_007141C8.c | 7 + .../l00_multiplayer_menu/L00_00714F10.c | 53 + .../l00_multiplayer_menu/L00_00717580.c | 45 + .../l00_multiplayer_menu/L00_00717678.c | 45 + .../l00_multiplayer_menu/L00_007177B0.c | 45 + .../l00_multiplayer_menu/L00_007178A8.c | 7 + .../l00_multiplayer_menu/L00_00721A28.c | 62 + .../l00_multiplayer_menu/L00_00725150.c | 16 + .../l00_multiplayer_menu/L00_00725188.c | 62 + .../l00_multiplayer_menu/L00_0072BD20.c | 12 + .../l00_multiplayer_menu/L00_0072FDF0.c | 12 + .../l00_multiplayer_menu/L00_00734928.c | 12 + .../l00_multiplayer_menu/L00_0073F590.c | 15 + .../l00_multiplayer_menu/L00_0074AC98.c | 12 + .../l00_multiplayer_menu/L00_007527A8.c | 12 + .../l00_multiplayer_menu/L00_0075B8F8.c | 43 + .../l00_multiplayer_menu/L00_00766EB8.c | 72 + .../l00_multiplayer_menu/L00_00770340.c | 15 + .../l00_multiplayer_menu/L00_00770DB0.c | 13 + .../l00_multiplayer_menu/L00_00771A48.c | 12 + .../l00_multiplayer_menu/L00_00772B88.c | 12 + .../l00_multiplayer_menu/L00_00777150.c | 27 + .../l01_dreadzone_station/L01_004B8F68.c | 21 + .../l05_dark_cathedral/L05_0050A5F8.c | 68 + .../l13_maraxus_prison/L13_0046D2E8.c | 63 + src/overlays/l15_control_level/L15_004D6FD0.c | 96 + src/overlays/shared/L00_00599710.c | 62 + src/overlays/shared/L00_006027E8.c | 26 + src/overlays/shared/L00_006028D0.c | 26 + src/overlays/shared/L00_00602AA0.c | 26 + src/overlays/shared/L00_00602B88.c | 23 + src/overlays/shared/L00_00602C58.c | 23 + src/overlays/shared/L00_00602D28.c | 26 + src/overlays/shared/L00_00602E10.c | 26 + src/overlays/shared/L00_00602EF8.c | 26 + src/overlays/shared/L00_00602FE0.c | 26 + src/overlays/shared/L00_006282F0.c | 79 + src/overlays/shared/L00_00644D18.c | 40 + src/overlays/shared/L00_0064DC68.c | 40 + src/overlays/shared/L00_00666CE8.c | 34 + src/overlays/shared/L00_0069C6A8.c | 52 + src/overlays/shared/L00_0069C890.c | 52 + src/overlays/shared/L00_0069D7A8.c | 61 + src/overlays/shared/L00_006A06A0.c | 79 + src/overlays/shared/L00_006E8D78.c | 13 + src/overlays/shared/L01_003C9A68.c | 64 + src/overlays/shared/L01_003DAF28.c | 62 + src/overlays/shared/L01_003EE950.c | 34 + src/overlays/shared/L01_00412848.c | 31 + src/overlays/shared/L01_00431B38.c | 57 + src/overlays/shared/L01_00450348.c | 29 + src/overlays/shared/L01_00452D40.c | 40 + src/overlays/shared/L01_00453820.c | 53 + src/overlays/shared/L01_0045BF60.c | 11 + src/overlays/shared/L01_00469C88.c | 21 + src/overlays/shared/L01_0048DF40.c | 53 + src/overlays/shared/L01_00495A60.c | 21 + src/overlays/shared/L01_0049A7E8.c | 66 + src/overlays/shared/L01_004AC628.c | 32 + src/overlays/shared/L01_004ADC38.c | 21 + src/overlays/shared/L01_004B3FE8.c | 21 + src/overlays/shared/L01_004C1D28.c | 32 + src/overlays/shared/L01_004C7C58.c | 21 + src/overlays/shared/L01_004C9148.c | 46 + src/overlays/shared/L01_004D8C60.c | 24 + src/overlays/shared/L01_004D9AD8.c | 33 + src/overlays/shared/L01_004E49D8.c | 33 + src/overlays/shared/L01_004E4B20.c | 41 + src/overlays/shared/L01_004F2F20.c | 67 + src/overlays/shared/L01_00500548.c | 89 + src/overlays/shared/L01_005008D8.c | 81 + src/overlays/shared/L01_00501688.c | 58 + src/overlays/shared/L01_00501B38.c | 36 + src/overlays/shared/L01_00501C18.c | 26 + src/overlays/shared/L01_0051D538.c | 28 + src/overlays/shared/L01_0051D7F0.c | 21 + src/overlays/shared/L01_0055CBE0.c | 8 + src/overlays/shared/L01_0056D0C8.c | 56 + src/overlays/shared/L01_0056F250.c | 14 + src/overlays/shared/L01_00585D40.c | 11 + src/overlays/shared/L01_005A37B8.c | 16 + src/overlays/shared/L01_005B4EB0.c | 12 + src/overlays/shared/L01_0063B1B8.c | 20 + src/overlays/shared/L02_004CB2E8.c | 17 + src/overlays/shared/L02_004E6370.c | 68 + src/overlays/shared/L04_00497910.c | 20 + src/overlays/shared/L05_004EEEC8.c | 41 + src/overlays/shared/L06_0049AFE8.c | 91 + src/overlays/shared/L06_004C7378.c | 17 + src/overlays/shared/L06_004C8388.c | 12 + src/overlays/shared/L10_004DCC58.c | 17 + src/overlays/shared/L11_00492768.c | 56 + src/overlays/shared/L13_004BD628.c | 46 + src/overlays/shared/L41_004484C8.c | 85 + src/pal/game/004DA960.c | 44 - src/pal/game/0054C250.c | 40 - src/pal/net/01ED66B0.c | 16 - src/pal/net/01EEE13C.c | 22 - src/pal/net/01EF2CC4.c | 17 - src/pal/net/01F04C2C.c | 8 - src/pal/net/01F07100.c | 17 - src/pal/overlays/shared/L01_0045BF60.c | 26 - 260 files changed, 19560 insertions(+), 6964 deletions(-) delete mode 100644 nonmatching/game/func_0046CEA0.c delete mode 100644 nonmatching/game/func_0046E9E8.c delete mode 100644 nonmatching/game/func_004A06F8.c delete mode 100644 nonmatching/game/func_004A8280.c delete mode 100644 nonmatching/game/func_004A8E78.c delete mode 100644 nonmatching/game/func_004B9440.c delete mode 100644 nonmatching/game/func_004C9090.c delete mode 100644 nonmatching/game/func_004CBB98.c delete mode 100644 nonmatching/game/func_004D9408.c delete mode 100644 nonmatching/game/func_004F7FD8.c delete mode 100644 nonmatching/shared/func_L00_00599710.c delete mode 100644 nonmatching/shared/func_L01_0063B1B8.c rename src/{pal => }/core/00139DA0.c (86%) create mode 100644 src/core/00159258.c create mode 100644 src/game/0041DA98.c create mode 100644 src/game/0041E280.c create mode 100644 src/game/004230F8.c create mode 100644 src/game/00429BE8.c create mode 100644 src/game/0042B700.c create mode 100644 src/game/00430D08.c create mode 100644 src/game/00430E80.c create mode 100644 src/game/004331B0.c create mode 100644 src/game/004332B0.c create mode 100644 src/game/004363D0.c create mode 100644 src/game/0043D160.c create mode 100644 src/game/0043D250.c create mode 100644 src/game/004473C0.c create mode 100644 src/game/00448B40.c create mode 100644 src/game/00448D98.c create mode 100644 src/game/0044A410.c create mode 100644 src/game/0044AA58.c create mode 100644 src/game/0044ABC0.c create mode 100644 src/game/0044D6D0.c create mode 100644 src/game/0044DF08.c create mode 100644 src/game/00452598.c create mode 100644 src/game/00454420.c create mode 100644 src/game/00454600.c create mode 100644 src/game/004597B8.c create mode 100644 src/game/0045D108.c create mode 100644 src/game/0045E860.c create mode 100644 src/game/00460B00.c create mode 100644 src/game/00460D48.c create mode 100644 src/game/00462D68.c create mode 100644 src/game/00463B78.c create mode 100644 src/game/004653A8.c create mode 100644 src/game/004655A0.c create mode 100644 src/game/00465F38.c create mode 100644 src/game/004660F8.c create mode 100644 src/game/004661D8.c create mode 100644 src/game/00468C78.c create mode 100644 src/game/0046A9E8.c create mode 100644 src/game/0046CEA0.c create mode 100644 src/game/0046D708.c create mode 100644 src/game/0046E9E8.c create mode 100644 src/game/0047ED10.c create mode 100644 src/game/0048B840.c create mode 100644 src/game/0048BB38.c create mode 100644 src/game/0048BC20.c create mode 100644 src/game/0048BD08.c create mode 100644 src/game/0048BF90.c create mode 100644 src/game/0048C078.c create mode 100644 src/game/0048C160.c create mode 100644 src/game/0048C248.c create mode 100644 src/game/0048C330.c create mode 100644 src/game/0048C440.c create mode 100644 src/game/00498270.c create mode 100644 src/game/00498A98.c create mode 100644 src/game/004993D8.c create mode 100644 src/game/0049E140.c create mode 100644 src/game/0049F4F8.c create mode 100644 src/game/0049F660.c create mode 100644 src/game/0049F758.c create mode 100644 src/game/0049F828.c create mode 100644 src/game/004A06F8.c create mode 100644 src/game/004A0870.c create mode 100644 src/game/004A09E8.c create mode 100644 src/game/004A1240.c create mode 100644 src/game/004A1B48.c create mode 100644 src/game/004A2B18.c create mode 100644 src/game/004A2C28.c create mode 100644 src/game/004A4880.c create mode 100644 src/game/004A8280.c create mode 100644 src/game/004A8430.c create mode 100644 src/game/004A89E8.c create mode 100644 src/game/004A8E78.c create mode 100644 src/game/004AD1D8.c create mode 100644 src/game/004B4050.c create mode 100644 src/game/004B6740.c create mode 100644 src/game/004B83C8.c create mode 100644 src/game/004B84D0.c create mode 100644 src/game/004B9240.c create mode 100644 src/game/004B9440.c create mode 100644 src/game/004C1FA8.c create mode 100644 src/game/004C33D0.c create mode 100644 src/game/004C44E8.c create mode 100644 src/game/004C4698.c create mode 100644 src/game/004C6BA0.c create mode 100644 src/game/004C7168.c create mode 100644 src/game/004C9090.c create mode 100644 src/game/004CBB98.c create mode 100644 src/game/004CDF08.c create mode 100644 src/game/004CF950.c create mode 100644 src/game/004D4C58.c create mode 100644 src/game/004D6378.c create mode 100644 src/game/004D8A18.c create mode 100644 src/game/004D9048.c create mode 100644 src/game/004D9408.c create mode 100644 src/game/004DA2D8.c create mode 100644 src/game/004DA960.c create mode 100644 src/game/004DAA78.c create mode 100644 src/game/004DEF78.c create mode 100644 src/game/004EE150.c create mode 100644 src/game/004F0660.c create mode 100644 src/game/004F1D20.c create mode 100644 src/game/004F1EA0.c create mode 100644 src/game/004F5350.c create mode 100644 src/game/004F7FD8.c create mode 100644 src/game/004FAAA8.c create mode 100644 src/game/004FC310.c create mode 100644 src/game/004FEF80.c create mode 100644 src/game/00502510.c create mode 100644 src/game/005040B0.c create mode 100644 src/game/00504550.c create mode 100644 src/game/00504648.c create mode 100644 src/game/00504AA8.c create mode 100644 src/game/00504F68.c create mode 100644 src/game/00505238.c create mode 100644 src/game/00505328.c create mode 100644 src/game/005081B0.c create mode 100644 src/game/0050BE90.c create mode 100644 src/game/0050C100.c create mode 100644 src/game/0050C7D8.c create mode 100644 src/game/00511060.c create mode 100644 src/game/0051A638.c create mode 100644 src/game/0053D6E0.c create mode 100644 src/game/005480A8.c create mode 100644 src/game/0054A0C0.c create mode 100644 src/game/0054C250.c create mode 100644 src/game/0054CC60.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_004F8F78.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_004FD6B8.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00501980.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00505368.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_0051E1D8.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00526DA8.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00545C48.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00551DA0.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00565150.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_005661C8.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_0069DA50.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00711478.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_007121A0.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00712220.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00713360.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_007141C8.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00714F10.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00717580.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00717678.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_007177B0.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_007178A8.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00721A28.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00725150.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00725188.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_0072BD20.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_0072FDF0.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00734928.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_0073F590.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_0074AC98.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_007527A8.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_0075B8F8.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00766EB8.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00770340.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00770DB0.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00771A48.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00772B88.c create mode 100644 src/overlays/l00_multiplayer_menu/L00_00777150.c create mode 100644 src/overlays/l01_dreadzone_station/L01_004B8F68.c create mode 100644 src/overlays/l05_dark_cathedral/L05_0050A5F8.c create mode 100644 src/overlays/l13_maraxus_prison/L13_0046D2E8.c create mode 100644 src/overlays/l15_control_level/L15_004D6FD0.c create mode 100644 src/overlays/shared/L00_00599710.c create mode 100644 src/overlays/shared/L00_006027E8.c create mode 100644 src/overlays/shared/L00_006028D0.c create mode 100644 src/overlays/shared/L00_00602AA0.c create mode 100644 src/overlays/shared/L00_00602B88.c create mode 100644 src/overlays/shared/L00_00602C58.c create mode 100644 src/overlays/shared/L00_00602D28.c create mode 100644 src/overlays/shared/L00_00602E10.c create mode 100644 src/overlays/shared/L00_00602EF8.c create mode 100644 src/overlays/shared/L00_00602FE0.c create mode 100644 src/overlays/shared/L00_006282F0.c create mode 100644 src/overlays/shared/L00_00644D18.c create mode 100644 src/overlays/shared/L00_0064DC68.c create mode 100644 src/overlays/shared/L00_00666CE8.c create mode 100644 src/overlays/shared/L00_0069C6A8.c create mode 100644 src/overlays/shared/L00_0069C890.c create mode 100644 src/overlays/shared/L00_0069D7A8.c create mode 100644 src/overlays/shared/L00_006A06A0.c create mode 100644 src/overlays/shared/L00_006E8D78.c create mode 100644 src/overlays/shared/L01_003C9A68.c create mode 100644 src/overlays/shared/L01_003DAF28.c create mode 100644 src/overlays/shared/L01_003EE950.c create mode 100644 src/overlays/shared/L01_00412848.c create mode 100644 src/overlays/shared/L01_00431B38.c create mode 100644 src/overlays/shared/L01_00450348.c create mode 100644 src/overlays/shared/L01_00452D40.c create mode 100644 src/overlays/shared/L01_00453820.c create mode 100644 src/overlays/shared/L01_0045BF60.c create mode 100644 src/overlays/shared/L01_00469C88.c create mode 100644 src/overlays/shared/L01_0048DF40.c create mode 100644 src/overlays/shared/L01_00495A60.c create mode 100644 src/overlays/shared/L01_0049A7E8.c create mode 100644 src/overlays/shared/L01_004AC628.c create mode 100644 src/overlays/shared/L01_004ADC38.c create mode 100644 src/overlays/shared/L01_004B3FE8.c create mode 100644 src/overlays/shared/L01_004C1D28.c create mode 100644 src/overlays/shared/L01_004C7C58.c create mode 100644 src/overlays/shared/L01_004C9148.c create mode 100644 src/overlays/shared/L01_004D8C60.c create mode 100644 src/overlays/shared/L01_004D9AD8.c create mode 100644 src/overlays/shared/L01_004E49D8.c create mode 100644 src/overlays/shared/L01_004E4B20.c create mode 100644 src/overlays/shared/L01_004F2F20.c create mode 100644 src/overlays/shared/L01_00500548.c create mode 100644 src/overlays/shared/L01_005008D8.c create mode 100644 src/overlays/shared/L01_00501688.c create mode 100644 src/overlays/shared/L01_00501B38.c create mode 100644 src/overlays/shared/L01_00501C18.c create mode 100644 src/overlays/shared/L01_0051D538.c create mode 100644 src/overlays/shared/L01_0051D7F0.c create mode 100644 src/overlays/shared/L01_0055CBE0.c create mode 100644 src/overlays/shared/L01_0056D0C8.c create mode 100644 src/overlays/shared/L01_0056F250.c create mode 100644 src/overlays/shared/L01_00585D40.c create mode 100644 src/overlays/shared/L01_005A37B8.c create mode 100644 src/overlays/shared/L01_005B4EB0.c create mode 100644 src/overlays/shared/L01_0063B1B8.c create mode 100644 src/overlays/shared/L02_004CB2E8.c create mode 100644 src/overlays/shared/L02_004E6370.c create mode 100644 src/overlays/shared/L04_00497910.c create mode 100644 src/overlays/shared/L05_004EEEC8.c create mode 100644 src/overlays/shared/L06_0049AFE8.c create mode 100644 src/overlays/shared/L06_004C7378.c create mode 100644 src/overlays/shared/L06_004C8388.c create mode 100644 src/overlays/shared/L10_004DCC58.c create mode 100644 src/overlays/shared/L11_00492768.c create mode 100644 src/overlays/shared/L13_004BD628.c create mode 100644 src/overlays/shared/L41_004484C8.c delete mode 100644 src/pal/game/004DA960.c delete mode 100644 src/pal/game/0054C250.c delete mode 100644 src/pal/net/01ED66B0.c delete mode 100644 src/pal/net/01EEE13C.c delete mode 100644 src/pal/net/01EF2CC4.c delete mode 100644 src/pal/net/01F04C2C.c delete mode 100644 src/pal/net/01F07100.c delete mode 100644 src/pal/overlays/shared/L01_0045BF60.c diff --git a/config/pal/map.tsv b/config/pal/map.tsv index eab9174a..e08292fe 100644 --- a/config/pal/map.tsv +++ b/config/pal/map.tsv @@ -287,7 +287,7 @@ func_00139A58 src/core/00139A58.c match func_00139A58 main:core.text:00139A58:40 func_00139A80 src/core/00139A80.c match func_00139A80 main:core.text:00139A80:52 100.00 func_00139AB8 src/core/00139AB8.c match func_00139AB8 main:core.text:00139AB8:40 100.00 func_00139AE0 src/core/00139AE0.c match func_00139AE0 main:core.text:00139AE0:220 100.00 -func_00139DA0 src/pal/core/00139DA0.c match func_00139DA0 main:core.text:00139DA0:104 100.00 +func_00139DA0 src/core/00139DA0.c match func_00139DA0 main:core.text:00139DA0:104 100.00 func_0013A0F0 src/core/0013A0F0.c match func_0013A0F0 main:core.text:0013A0F0:88 100.00 func_0013A148 src/core/0013A148.c match func_0012B010 main:core.text:0012B010:12 100.00 func_0013A160 src/core/0013A160.c match func_0013A160 main:core.text:0013A160:296 100.00 @@ -733,6 +733,7 @@ func_00159128 src/core/00159128.c match func_00159138 main:core.text:00159138:8 func_00159130 src/core/00159130.c match func_00159140 main:core.text:00159140:168 100.00 func_00159140 src/pal/core/00159140.c match func_00159140 main:core.text:00159140:168 100.00 func_001591F0 src/core/001591F0.c match func_00159200 main:core.text:00159200:96 100.00 +func_00159258 src/core/00159258.c match func_00159268 main:core.text:00159268:112 100.00 func_00159268 src/pal/core/00159268.c match func_00159268 main:core.text:00159268:112 100.00 func_001592D8 src/core/001592D8.c match func_001592E8 main:core.text:001592E8:48 100.00 func_00159308 src/core/00159308.c match func_00159318 main:core.text:00159318:48 100.00 @@ -1004,7 +1005,9 @@ func_00415EC8 src/game/00415EC8.c match func_00415EC8 main:.text:00415EC8:120,fr func_0041AC68 src/game/0041AC68.c match func_0041ACB8 main:.text:0041ACB8:124,frontbin:.text:0041AA38:124 100.00 func_0041C960 src/game/0041C960.c match func_0041CA18 main:.text:0041CA18:68,frontbin:.text:0041C798:68 100.00 func_0041D7F0 src/game/0041D7F0.c match func_0041D8F0 main:.text:0041D8F0:108,frontbin:.text:0041D670:108 100.00 +func_0041DA98 src/game/0041DA98.c match func_0041DB98 main:.text:0041DB98:364,frontbin:.text:0041D918:364 100.00 func_0041DB98 src/pal/game/0041DB98.c match func_0041DB98 main:.text:0041DB98:364 100.00 +func_0041E280 src/game/0041E280.c differs - - 0.00 func_0041E390 src/pal/game/0041E390.c match func_0041E390 main:.text:0041E390:300 100.00 func_0041FD80 src/game/0041FD80.c match func_0041FE98 main:.text:0041FE98:36,frontbin:.text:0041FC18:36 100.00 func_00420988 src/game/00420988.c match func_00420AD8 main:.text:00420AD8:20,frontbin:.text:00420858:20 100.00 @@ -1013,6 +1016,7 @@ func_00420E68 src/game/00420E68.c match func_00420FC0 main:.text:00420FC0:32,fro func_00420E88 src/game/00420E88.c match func_00420FE0 main:.text:00420FE0:44,frontbin:.text:00420D60:44 100.00 func_00421670 src/game/00421670.c match func_004217C8 main:.text:004217C8:32,frontbin:.text:00421548:32 100.00 func_00421AB8 src/game/00421AB8.c match func_00421C28 main:.text:00421C28:28,frontbin:.text:004219A8:28 100.00 +func_004230F8 src/game/004230F8.c match func_004232A0 main:.text:004232A0:284,frontbin:.text:00423020:284 100.00 func_004232A0 src/pal/game/004232A0.c match func_004232A0 main:.text:004232A0:284 100.00 func_004244C0 src/pal/game/004244C0.c match func_004244C0 main:.text:004244C0:184 100.00 func_00424578 src/game/00424578.c match func_00424778 main:.text:00424778:84,frontbin:.text:004244F8:84 100.00 @@ -1024,21 +1028,28 @@ func_004259B0 src/game/004259B0.c match func_00425BC0 main:.text:00425BC0:24,fro func_004259C8 src/game/004259C8.c match func_00425BD8 main:.text:00425BD8:24,frontbin:.text:00425958:24 100.00 func_004259E0 src/game/004259E0.c match func_00425BF0 main:.text:00425BF0:16,frontbin:.text:00425970:16 100.00 func_00427270 src/game/00427270.c match func_00427488 main:.text:00427488:8,frontbin:.text:00427208:8 100.00 +func_00429BE8 src/game/00429BE8.c match func_00429E58 main:.text:00429E58:268,frontbin:.text:00429BD8:268 100.00 func_00429E58 src/pal/game/00429E58.c match func_00429E58 main:.text:00429E58:268 100.00 +func_0042B700 src/game/0042B700.c match func_0042BA60 main:.text:0042BA60:204,frontbin:.text:0042B7E0:204 100.00 func_0042BA60 src/pal/game/0042BA60.c match func_0042BA60 main:.text:0042BA60:204 100.00 func_0042ED20 src/game/0042ED20.c match func_0042F150 main:.text:0042F150:12,frontbin:.text:0042EED0:12 100.00 func_0042ED30 src/game/0042ED30.c match func_0042F160 main:.text:0042F160:164,frontbin:.text:0042EEE0:164 100.00 func_00430C10 src/game/00430C10.c match func_00431098 main:.text:00431098:220,frontbin:.text:00430E18:220 100.00 +func_00430D08 src/game/00430D08.c match func_00431190 main:.text:00431190:220,frontbin:.text:00430F10:220 100.00 +func_00430E80 src/game/00430E80.c match func_00431308 main:.text:00431308:376,frontbin:.text:00431088:376 100.00 func_00431190 src/pal/game/00431190.c match func_00431190 main:.text:00431190:220 100.00 func_004312A8 src/game/004312A8.c match func_00431758 main:.text:00431758:12,frontbin:.text:004314D8:12 100.00 func_00431308 src/pal/game/00431308.c match func_00431308 main:.text:00431308:376 100.00 func_00431568 src/game/00431568.c match func_00431A18 main:.text:00431A18:68,frontbin:.text:00431798:68 100.00 func_00432178 src/game/00432178.c match func_00432630 main:.text:00432630:88,frontbin:.text:004323B0:88 100.00 +func_004331B0 src/game/004331B0.c match func_00433688 main:.text:00433688:256,frontbin:.text:00433408:256 100.00 +func_004332B0 src/game/004332B0.c match func_00433788 main:.text:00433788:100,frontbin:.text:00433508:100 100.00 func_00433318 src/game/00433318.c match func_004337F0 main:.text:004337F0:168,frontbin:.text:00433570:168 100.00 func_00433638 src/game/00433638.c match func_00433B10 main:.text:00433B10:88,frontbin:.text:00433890:88 100.00 func_00433688 src/pal/game/00433688.c match func_00433688 main:.text:00433688:256 100.00 func_00433788 src/pal/game/00433788.c match func_00433788 main:.text:00433788:100 100.00 func_004352F8 src/game/004352F8.c match func_004357E0 main:.text:004357E0:100,frontbin:.text:00435560:100 100.00 +func_004363D0 src/game/004363D0.c match func_004368B8 main:.text:004368B8:448,frontbin:.text:00436638:448 100.00 func_004368B8 src/pal/game/004368B8.c match func_004368B8 main:.text:004368B8:448 100.00 func_00436970 src/game/00436970.c match func_00436E58 main:.text:00436E58:64,frontbin:.text:00436BD8:64 100.00 func_004369B0 src/game/004369B0.c match func_00436E98 main:.text:00436E98:64,frontbin:.text:00436C18:64 100.00 @@ -1085,6 +1096,8 @@ func_0043A9D0 src/pal/game/0043A9D0.c match func_0043A9D0 main:.text:0043A9D0:14 func_0043AEF8 src/game/0043AEF8.c match func_0043B4F0 main:.text:0043B4F0:68,frontbin:.text:0043AD98:68 100.00 func_0043B698 src/game/0043B698.c match func_0043BC90 main:.text:0043BC90:56,frontbin:.text:0043B538:56 100.00 func_0043CF28 src/game/0043CF28.c match func_0043D550 main:.text:0043D550:28,frontbin:.text:0043CDF8:28 100.00 +func_0043D160 src/game/0043D160.c match func_0043D788 main:.text:0043D788:232,frontbin:.text:0043D030:232 100.00 +func_0043D250 src/game/0043D250.c match func_0043D878 main:.text:0043D878:272,frontbin:.text:0043D120:272 100.00 func_0043D788 src/pal/game/0043D788.c match func_0043D788 main:.text:0043D788:232 100.00 func_0043D878 src/pal/game/0043D878.c match func_0043D878 main:.text:0043D878:272 100.00 func_0043D918 src/game/0043D918.c match func_0043DF40 main:.text:0043DF40:12,frontbin:.text:0043D7E8:12 100.00 @@ -1099,13 +1112,16 @@ func_00445BE0 src/pal/game/00445BE0.c match func_00445BE0 main:.text:00445BE0:88 func_00446988 src/game/00446988.c match func_00446FC8 main:.text:00446FC8:96,frontbin:.text:00446870:96 100.00 func_00446A50 src/game/00446A50.c match func_00447090 main:.text:00447090:32,frontbin:.text:00446938:32 100.00 func_00446C70 src/game/00446C70.c match func_004472B0 main:.text:004472B0:8,frontbin:.text:00446B58:8 100.00 +func_004473C0 src/game/004473C0.c match func_00447A00 main:.text:00447A00:212,frontbin:.text:004472A8:212 100.00 func_00447498 src/game/00447498.c match func_00447AD8 main:.text:00447AD8:184,frontbin:.text:00447380:184 100.00 func_00447938 src/game/00447938.c match func_00447F78 main:.text:00447F78:80,frontbin:.text:00447820:80 100.00 func_00447A00 src/pal/game/00447A00.c match func_00447A00 main:.text:00447A00:212 100.00 func_00448720 src/game/00448720.c match func_00448D60 main:.text:00448D60:104,frontbin:.text:00448608:104 100.00 func_00448960 src/game/00448960.c match func_00448FA0 main:.text:00448FA0:120,frontbin:.text:00448848:120 100.00 func_00448A20 src/game/00448A20.c match func_00449060 main:.text:00449060:68,frontbin:.text:00448908:68 100.00 +func_00448B40 src/game/00448B40.c match func_00449180 main:.text:00449180:208,frontbin:.text:00448A28:208 100.00 func_00448C10 src/game/00448C10.c match func_00449250 main:.text:00449250:64,frontbin:.text:00448AF8:64 100.00 +func_00448D98 src/game/00448D98.c match func_004493D8 main:.text:004493D8:264,frontbin:.text:00448C80:264 100.00 func_00449180 src/pal/game/00449180.c match func_00449180 main:.text:00449180:208 100.00 func_00449298 src/game/00449298.c match func_004498D8 main:.text:004498D8:184,frontbin:.text:00449180:184 100.00 func_004493B0 src/game/004493B0.c match func_004499F0 main:.text:004499F0:56,frontbin:.text:00449298:56 100.00 @@ -1113,8 +1129,11 @@ func_004493D8 src/pal/game/004493D8.c match func_004493D8 main:.text:004493D8:26 func_004493E8 src/game/004493E8.c match func_00449A28 main:.text:00449A28:92,frontbin:.text:004492D0:92 100.00 func_004496E0 src/game/004496E0.c match func_00449D20 main:.text:00449D20:352,frontbin:.text:004495C8:352 100.00 func_00449D20 src/pal/game/00449D20.c match func_00449D20 main:.text:00449D20:352 100.00 +func_0044A410 src/game/0044A410.c match func_0044AAB8 main:.text:0044AAB8:436,frontbin:.text:0044A360:436 100.00 +func_0044AA58 src/game/0044AA58.c match func_0044B100 main:.text:0044B100:200,frontbin:.text:0044A9A8:200 100.00 func_0044AAB8 src/pal/game/0044AAB8.c match func_0044AAB8 main:.text:0044AAB8:436 100.00 func_0044AB20 src/game/0044AB20.c match func_0044B1C8 main:.text:0044B1C8:156,frontbin:.text:0044AA70:156 100.00 +func_0044ABC0 src/game/0044ABC0.c match func_0044B268 main:.text:0044B268:316,frontbin:.text:0044AB10:316 100.00 func_0044B100 src/pal/game/0044B100.c match func_0044B100 main:.text:0044B100:200 100.00 func_0044B110 src/game/0044B110.c match func_0044B7B8 main:.text:0044B7B8:20,frontbin:.text:0044B060:20 100.00 func_0044B128 src/game/0044B128.c match func_0044B7D0 main:.text:0044B7D0:16,frontbin:.text:0044B078:16 100.00 @@ -1130,19 +1149,24 @@ func_0044D238 src/game/0044D238.c match func_0044D8E0 main:.text:0044D8E0:128,fr func_0044D538 src/game/0044D538.c match func_0044DBE0 main:.text:0044DBE0:148,frontbin:.text:0044D488:148 100.00 func_0044D5D0 src/game/0044D5D0.c match func_0044DC78 main:.text:0044DC78:148,frontbin:.text:0044D520:148 100.00 func_0044D668 src/game/0044D668.c match func_0044DD10 main:.text:0044DD10:104,frontbin:.text:0044D5B8:104 100.00 +func_0044D6D0 src/game/0044D6D0.c match func_0044DD78 main:.text:0044DD78:328,frontbin:.text:0044D620:328 100.00 func_0044D938 src/game/0044D938.c match func_0044DFE0 main:.text:0044DFE0:172,frontbin:.text:0044D888:172 100.00 func_0044D9E8 src/game/0044D9E8.c match func_0044E090 main:.text:0044E090:196,frontbin:.text:0044D938:196 100.00 func_0044DAB0 src/game/0044DAB0.c match func_0044E158 main:.text:0044E158:148,frontbin:.text:0044DA00:148 100.00 func_0044DD78 src/pal/game/0044DD78.c match func_0044DD78 main:.text:0044DD78:328 100.00 func_0044DE80 src/game/0044DE80.c match func_0044E528 main:.text:0044E528:132,frontbin:.text:0044DDD0:132 100.00 +func_0044DF08 src/game/0044DF08.c match func_0044E5B0 main:.text:0044E5B0:324,frontbin:.text:0044DE58:324 100.00 func_0044E5B0 src/pal/game/0044E5B0.c match func_0044E5B0 main:.text:0044E5B0:324 100.00 +func_00452598 src/game/00452598.c match func_00452DC0 main:.text:00452DC0:256,frontbin:.text:00452668:256 100.00 func_00452698 src/game/00452698.c match func_00452EC0 main:.text:00452EC0:68,frontbin:.text:00452768:68 100.00 func_004526E0 src/game/004526E0.c match func_00452F08 main:.text:00452F08:172,frontbin:.text:004527B0:172 100.00 func_00452DC0 src/pal/game/00452DC0.c match func_00452DC0 main:.text:00452DC0:256 100.00 func_00454258 src/game/00454258.c match func_00454A70 main:.text:00454A70:60,frontbin:.text:00454318:60 100.00 func_00454338 src/game/00454338.c match func_00454B50 main:.text:00454B50:20,frontbin:.text:004543F8:20 100.00 func_00454400 src/game/00454400.c match func_00454C18 main:.text:00454C18:28,frontbin:.text:004544C0:28 100.00 +func_00454420 src/game/00454420.c match func_00454C38 main:.text:00454C38:468,frontbin:.text:004544E0:468 100.00 func_004545F8 src/game/004545F8.c match func_00454E10 main:.text:00454E10:8,frontbin:.text:004546B8:8 100.00 +func_00454600 src/game/00454600.c match func_00454E18 main:.text:00454E18:380,frontbin:.text:004546C0:380 100.00 func_00454A60 src/game/00454A60.c match func_00455278 main:.text:00455278:8,frontbin:.text:00454B20:8 100.00 func_00454A68 src/game/00454A68.c match func_00455280 main:.text:00455280:8,frontbin:.text:00454B28:8 100.00 func_00454C38 src/pal/game/00454C38.c match func_00454C38 main:.text:00454C38:468 100.00 @@ -1169,6 +1193,7 @@ func_00459408 src/game/00459408.c match func_00459C20 main:.text:00459C20:36,fro func_00459430 src/game/00459430.c match func_00459C48 main:.text:00459C48:148,frontbin:.text:004594F0:148 100.00 func_004596E0 src/game/004596E0.c match func_00459EF8 main:.text:00459EF8:108,frontbin:.text:004597A0:108 100.00 func_00459758 src/game/00459758.c match func_00459F70 main:.text:00459F70:92,frontbin:.text:00459818:92 100.00 +func_004597B8 src/game/004597B8.c match func_00459FD0 main:.text:00459FD0:284,frontbin:.text:00459878:284 100.00 func_004598E0 src/game/004598E0.c match func_0045A0F8 main:.text:0045A0F8:8,frontbin:.text:004599A0:8 100.00 func_004598E8 src/game/004598E8.c match func_0045A100 main:.text:0045A100:116,frontbin:.text:004599A8:116 100.00 func_00459978 src/game/00459978.c match func_0045A190 main:.text:0045A190:112,frontbin:.text:00459A38:112 100.00 @@ -1196,6 +1221,7 @@ func_0045CB70 src/game/0045CB70.c match func_0045D368 main:.text:0045D368:8,fron func_0045CE88 src/game/0045CE88.c match func_0045D680 main:.text:0045D680:44,frontbin:.text:0045CF28:44 100.00 func_0045CEC8 src/game/0045CEC8.c match func_0045D6C0 main:.text:0045D6C0:188,frontbin:.text:0045CF68:188 100.00 func_0045D090 src/game/0045D090.c match func_0045D890 main:.text:0045D890:52,frontbin:.text:0045D138:52 100.00 +func_0045D108 src/game/0045D108.c differs - - 0.00 func_0045D7B0 src/game/0045D7B0.c match func_0045DFC8 main:.text:0045DFC8:216,frontbin:.text:0045D870:216 100.00 func_0045D908 src/pal/game/0045D908.c match func_0045D908 main:.text:0045D908:92 100.00 func_0045DE00 src/game/0045DE00.c match func_0045E618 main:.text:0045E618:52,frontbin:.text:0045DEC0:52 100.00 @@ -1213,6 +1239,7 @@ func_0045E780 src/game/0045E780.c match func_0045EF98 main:.text:0045EF98:16,fro func_0045E790 src/game/0045E790.c match func_0045EFA8 main:.text:0045EFA8:116,frontbin:.text:0045E850:116 100.00 func_0045E808 src/game/0045E808.c match func_0045F020 main:.text:0045F020:40,frontbin:.text:0045E8C8:40 100.00 func_0045E830 src/game/0045E830.c match func_0045F048 main:.text:0045F048:44,frontbin:.text:0045E8F0:44 100.00 +func_0045E860 src/game/0045E860.c match func_0045F078 main:.text:0045F078:352,frontbin:.text:0045E920:352 100.00 func_0045F078 src/pal/game/0045F078.c match func_0045F078 main:.text:0045F078:352 100.00 func_0045F410 src/game/0045F410.c match func_0045FC28 main:.text:0045FC28:80,frontbin:.text:0045F4D0:80 100.00 func_0045F460 src/game/0045F460.c match func_0045FC78 main:.text:0045FC78:52,frontbin:.text:0045F520:52 100.00 @@ -1241,8 +1268,10 @@ func_004604F0 src/game/004604F0.c match func_00460D30 main:.text:00460D30:104,fr func_00460558 src/game/00460558.c match func_00460D98 main:.text:00460D98:76,frontbin:.text:00460640:76 100.00 func_004609E8 src/game/004609E8.c match func_00461228 main:.text:00461228:192,frontbin:.text:00460AD0:192 100.00 func_00460AA8 src/game/00460AA8.c match func_004612E8 main:.text:004612E8:88,frontbin:.text:00460B90:88 100.00 +func_00460B00 src/game/00460B00.c match func_00461340 main:.text:00461340:412,frontbin:.text:00460BE8:412 100.00 func_00460CA0 src/game/00460CA0.c match func_004614E0 main:.text:004614E0:92,frontbin:.text:00460D88:92 100.00 func_00460D00 src/game/00460D00.c match func_00461540 main:.text:00461540:72,frontbin:.text:00460DE8:72 100.00 +func_00460D48 src/game/00460D48.c match func_00461588 main:.text:00461588:744,frontbin:.text:00460E30:744 100.00 func_00461030 src/game/00461030.c match func_00461870 main:.text:00461870:80,frontbin:.text:00461118:80 100.00 func_00461080 src/game/00461080.c match func_004618C0 main:.text:004618C0:36,frontbin:.text:00461168:36 100.00 func_004610A8 src/game/004610A8.c match func_004618E8 main:.text:004618E8:84,frontbin:.text:00461190:84 100.00 @@ -1255,7 +1284,9 @@ func_00461E08 src/game/00461E08.c match func_00462648 main:.text:00462648:64,fro func_00461E48 src/game/00461E48.c match func_00462688 main:.text:00462688:68,frontbin:.text:00461F30:68 100.00 func_00461E90 src/game/00461E90.c match func_004626D0 main:.text:004626D0:16,frontbin:.text:00461F78:16 100.00 func_004625A0 src/game/004625A0.c match func_00462DE0 main:.text:00462DE0:104,frontbin:.text:00462688:104 100.00 +func_00462D68 src/game/00462D68.c match func_004635A8 main:.text:004635A8:276,frontbin:.text:00462E50:276 100.00 func_004635A8 src/pal/game/004635A8.c match func_004635A8 main:.text:004635A8:276 100.00 +func_00463B78 src/game/00463B78.c match func_004643B8 main:.text:004643B8:236,frontbin:.text:00463C60:236 100.00 func_00463C68 src/game/00463C68.c match func_004644A8 main:.text:004644A8:76,frontbin:.text:00463D50:76 100.00 func_00464038 src/game/00464038.c match func_00464878 main:.text:00464878:80,frontbin:.text:00464120:80 100.00 func_00464088 src/game/00464088.c match func_004648C8 main:.text:004648C8:8,frontbin:.text:00464170:8 100.00 @@ -1279,8 +1310,10 @@ func_00465118 src/game/00465118.c match func_00465960 main:.text:00465960:96,fro func_00465238 src/game/00465238.c match func_00465A80 main:.text:00465A80:128,frontbin:.text:00465328:128 100.00 func_004652B8 src/game/004652B8.c match func_00465B00 main:.text:00465B00:132,frontbin:.text:004653A8:132 100.00 func_00465340 src/game/00465340.c match func_00465B88 main:.text:00465B88:100,frontbin:.text:00465430:100 100.00 +func_004653A8 src/game/004653A8.c match func_00465BF0 main:.text:00465BF0:164,frontbin:.text:00465498:164 100.00 func_004654B0 src/pal/game/004654B0.c match func_004654B0 main:.text:004654B0:228 100.00 func_00465530 src/game/00465530.c match func_00465D78 main:.text:00465D78:108,frontbin:.text:00465620:108 100.00 +func_004655A0 src/game/004655A0.c match func_00465DE8 main:.text:00465DE8:216,frontbin:.text:00465690:216 100.00 func_00465678 src/game/00465678.c match func_00465EC0 main:.text:00465EC0:44,frontbin:.text:00465768:44 100.00 func_004656A8 src/game/004656A8.c match func_00465EF0 main:.text:00465EF0:68,frontbin:.text:00465798:68 100.00 func_004656F0 src/game/004656F0.c match func_00465F38 main:.text:00465F38:76,frontbin:.text:004657E0:76 100.00 @@ -1300,6 +1333,9 @@ func_00465DE8 src/pal/game/00465DE8.c match func_00465DE8 main:.text:00465DE8:21 func_00465E80 src/game/00465E80.c match func_004666C8 main:.text:004666C8:144,frontbin:.text:00465F70:144 100.00 func_00465F10 src/game/00465F10.c match func_00466758 main:.text:00466758:8,frontbin:.text:00466000:8 100.00 func_00465F18 src/game/00465F18.c match func_00466760 main:.text:00466760:8,frontbin:.text:00466008:8 100.00 +func_00465F38 src/game/00465F38.c match func_00466780 main:.text:00466780:420,frontbin:.text:00466028:420 100.00 +func_004660F8 src/game/004660F8.c match func_00466940 main:.text:00466940:220,frontbin:.text:004661E8:220 100.00 +func_004661D8 src/game/004661D8.c match func_00466A20 main:.text:00466A20:312,frontbin:.text:004662C8:312 100.00 func_00466780 src/pal/game/00466780.c match func_00466780 main:.text:00466780:420 100.00 func_00466940 src/pal/game/00466940.c match func_00466940 main:.text:00466940:220 100.00 func_00466A20 src/pal/game/00466A20.c match func_00466A20 main:.text:00466A20:312 100.00 @@ -1308,6 +1344,7 @@ func_00468B40 src/game/00468B40.c match func_004693D0 main:.text:004693D0:56,fro func_00468B78 src/game/00468B78.c match func_00469408 main:.text:00469408:100,frontbin:.text:00468CB0:100 100.00 func_00468BE0 src/game/00468BE0.c match func_00469470 main:.text:00469470:88,frontbin:.text:00468D18:88 100.00 func_00468C38 src/game/00468C38.c match func_004694C8 main:.text:004694C8:60,frontbin:.text:00468D70:60 100.00 +func_00468C78 src/game/00468C78.c match func_00469508 main:.text:00469508:276,frontbin:.text:00468DB0:276 100.00 func_004690E8 src/game/004690E8.c match func_00469978 main:.text:00469978:48,frontbin:.text:00469220:48 100.00 func_004691F0 src/game/004691F0.c match func_00469A80 main:.text:00469A80:140,frontbin:.text:00469328:140 100.00 func_00469280 src/game/00469280.c differs - - 0.00 @@ -1319,6 +1356,7 @@ func_0046A290 src/game/0046A290.c match func_0046AB50 main:.text:0046AB50:112,fr func_0046A320 src/game/0046A320.c match func_0046ABE0 main:.text:0046ABE0:48,frontbin:.text:0046A4A0:48 100.00 func_0046A350 src/game/0046A350.c match func_0046AC10 main:.text:0046AC10:8,frontbin:.text:0046A4D0:8 100.00 func_0046A358 src/game/0046A358.c match func_0046AC18 main:.text:0046AC18:8,frontbin:.text:0046A4D8:8 100.00 +func_0046A9E8 src/game/0046A9E8.c match func_0046B2A8 main:.text:0046B2A8:216,frontbin:.text:0046AB68:216 100.00 func_0046B2A8 src/pal/game/0046B2A8.c match func_0046B2A8 main:.text:0046B2A8:216 100.00 func_0046B4C0 src/game/0046B4C0.c match func_0046BD80 main:.text:0046BD80:32,frontbin:.text:0046B640:32 100.00 func_0046B4E0 src/game/0046B4E0.c match func_0046BDA0 main:.text:0046BDA0:212,frontbin:.text:0046B660:212 100.00 @@ -1331,6 +1369,7 @@ func_0046C440 src/game/0046C440.c match func_0046CD20 main:.text:0046CD20:8,fron func_0046C7D0 src/game/0046C7D0.c match func_0046D0B0 main:.text:0046D0B0:172,frontbin:.text:0046C970:172 100.00 func_0046CAE8 src/game/0046CAE8.c match func_0046D3C8 main:.text:0046D3C8:240,frontbin:.text:0046CC88:240 100.00 func_0046CBD8 src/game/0046CBD8.c match func_0046D4B8 main:.text:0046D4B8:216,frontbin:.text:0046CD78:216 100.00 +func_0046CEA0 src/game/0046CEA0.c match func_0046D780 main:.text:0046D780:552,frontbin:.text:0046D040:552 100.00 func_0046D0C8 src/game/0046D0C8.c match func_0046D9A8 main:.text:0046D9A8:68,frontbin:.text:0046D268:68 100.00 func_0046D110 src/game/0046D110.c match func_0046D9F0 main:.text:0046D9F0:40,frontbin:.text:0046D2B0:40 100.00 func_0046D138 src/game/0046D138.c match func_0046DA18 main:.text:0046DA18:44,frontbin:.text:0046D2D8:44 100.00 @@ -1345,12 +1384,14 @@ func_0046D5B8 src/game/0046D5B8.c match func_0046DE98 main:.text:0046DE98:8,fron func_0046D5C0 src/game/0046D5C0.c match func_0046DEA0 main:.text:0046DEA0:64,frontbin:.text:0046D760:64 100.00 func_0046D668 src/game/0046D668.c match func_0046DF48 main:.text:0046DF48:60,frontbin:.text:0046D808:60 100.00 func_0046D6A8 src/game/0046D6A8.c match func_0046DF88 main:.text:0046DF88:92,frontbin:.text:0046D848:92 100.00 +func_0046D708 src/game/0046D708.c match func_0046DFE8 main:.text:0046DFE8:204,frontbin:.text:0046D8A8:204 100.00 func_0046D780 src/pal/game/0046D780.c match func_0046D780 main:.text:0046D780:552 100.00 func_0046D7D8 src/game/0046D7D8.c match func_0046E0B8 main:.text:0046E0B8:68,frontbin:.text:0046D978:68 100.00 func_0046D820 src/game/0046D820.c match func_0046E100 main:.text:0046E100:64,frontbin:.text:0046D9C0:64 100.00 func_0046DAA0 src/game/0046DAA0.c match func_0046E380 main:.text:0046E380:84,frontbin:.text:0046DC40:84 100.00 func_0046DD78 src/pal/game/0046DD78.c match func_0046DD78 main:.text:0046DD78:240 100.00 func_0046DFE8 src/pal/game/0046DFE8.c match func_0046DFE8 main:.text:0046DFE8:204 100.00 +func_0046E9E8 src/game/0046E9E8.c match func_0046F2C8 main:.text:0046F2C8:224,frontbin:.text:0046EB88:224 100.00 func_0046EDD8 src/game/0046EDD8.c match func_0046F6B8 main:.text:0046F6B8:84,frontbin:.text:0046EF78:84 100.00 func_0046EFE0 src/game/0046EFE0.c match func_0046F8C0 main:.text:0046F8C0:132,frontbin:.text:0046F180:132 100.00 func_0046F068 src/game/0046F068.c match func_0046F948 main:.text:0046F948:100,frontbin:.text:0046F208:100 100.00 @@ -1462,6 +1503,7 @@ func_0047EB60 src/game/0047EB60.c match func_0047F490 main:.text:0047F490:76,fro func_0047EBC0 src/game/0047EBC0.c match func_0047F4F0 main:.text:0047F4F0:68,frontbin:.text:0047EDB0:68 100.00 func_0047EC78 src/game/0047EC78.c match func_0047F5A8 main:.text:0047F5A8:80,frontbin:.text:0047EE68:80 100.00 func_0047ECC8 src/game/0047ECC8.c match func_0047F5F8 main:.text:0047F5F8:72,frontbin:.text:0047EEB8:72 100.00 +func_0047ED10 src/game/0047ED10.c match func_0047F640 main:.text:0047F640:256,frontbin:.text:0047EF00:256 100.00 func_0047EE10 src/game/0047EE10.c match func_0047F740 main:.text:0047F740:152,frontbin:.text:0047F000:152 100.00 func_0047EF38 src/game/0047EF38.c match func_0047F868 main:.text:0047F868:108,frontbin:.text:0047F128:108 100.00 func_0047F538 src/game/0047F538.c match func_0047FE90 main:.text:0047FE90:8,frontbin:.text:0047F750:8 100.00 @@ -1537,11 +1579,21 @@ func_0048AF50 src/pal/game/0048AF50.c match func_0048AF50 main:.text:0048AF50:76 func_0048AF98 src/game/0048AF98.c match func_0048BA50 main:.text:0048BA50:96,frontbin:.text:0048B310:96 100.00 func_0048B470 src/game/0048B470.c match func_0048BF28 main:.text:0048BF28:236,frontbin:.text:0048B7E8:236 100.00 func_0048B818 src/game/0048B818.c match func_0048C2D0 main:.text:0048C2D0:36,frontbin:.text:0048BB90:36 100.00 +func_0048B840 src/game/0048B840.c match func_0048C2F8 main:.text:0048C2F8:292,frontbin:.text:0048BBB8:292 100.00 func_0048B968 src/game/0048B968.c match func_0048C420 main:.text:0048C420:228,frontbin:.text:0048BCE0:228 100.00 func_0048BA50 src/game/0048BA50.c match func_0048C508 main:.text:0048C508:228,frontbin:.text:0048BDC8:228 100.00 +func_0048BB38 src/game/0048BB38.c match func_0048C5F0 main:.text:0048C5F0:228,frontbin:.text:0048BEB0:228 100.00 +func_0048BC20 src/game/0048BC20.c match func_0048C6D8 main:.text:0048C6D8:232,frontbin:.text:0048BF98:232 100.00 +func_0048BD08 src/game/0048BD08.c match func_0048C7C0 main:.text:0048C7C0:228,frontbin:.text:0048C080:228 100.00 func_0048BDF0 src/game/0048BDF0.c match func_0048C8A8 main:.text:0048C8A8:204,frontbin:.text:0048C168:204 100.00 func_0048BEC0 src/game/0048BEC0.c match func_0048C978 main:.text:0048C978:204,frontbin:.text:0048C238:204 100.00 +func_0048BF90 src/game/0048BF90.c match func_0048CA48 main:.text:0048CA48:228,frontbin:.text:0048C308:228 100.00 +func_0048C078 src/game/0048C078.c match func_0048CB30 main:.text:0048CB30:228,frontbin:.text:0048C3F0:228 100.00 +func_0048C160 src/game/0048C160.c match func_0048CC18 main:.text:0048CC18:228,frontbin:.text:0048C4D8:228 100.00 +func_0048C248 src/game/0048C248.c match func_0048CD00 main:.text:0048CD00:228,frontbin:.text:0048C5C0:228 100.00 func_0048C2F8 src/pal/game/0048C2F8.c match func_0048C2F8 main:.text:0048C2F8:292 100.00 +func_0048C330 src/game/0048C330.c match func_0048CDE8 main:.text:0048CDE8:268,frontbin:.text:0048C6A8:268 100.00 +func_0048C440 src/game/0048C440.c match func_0048CEF8 main:.text:0048CEF8:384,frontbin:.text:0048C7B8:384 100.00 func_0048C508 src/pal/game/0048C508.c match func_0048C508 main:.text:0048C508:228 100.00 func_0048C5F0 src/pal/game/0048C5F0.c match func_0048C5F0 main:.text:0048C5F0:228 100.00 func_0048C6D8 src/pal/game/0048C6D8.c match func_0048C6D8 main:.text:0048C6D8:232 100.00 @@ -1657,6 +1709,7 @@ func_00498098 src/game/00498098.c match func_00498DD0 main:.text:00498DD0:100,fr func_00498100 src/game/00498100.c match func_00498E38 main:.text:00498E38:28,frontbin:.text:004986F8:28 100.00 func_00498120 src/game/00498120.c match func_00498E58 main:.text:00498E58:44,frontbin:.text:00498718:44 100.00 func_004981F8 src/game/004981F8.c match func_00498F30 main:.text:00498F30:120,frontbin:.text:004987F0:120 100.00 +func_00498270 src/game/00498270.c match func_00498FA8 main:.text:00498FA8:248,frontbin:.text:00498868:248 100.00 func_00498368 src/game/00498368.c match func_004990A0 main:.text:004990A0:120,frontbin:.text:00498960:120 100.00 func_004983E0 src/game/004983E0.c match func_00499118 main:.text:00499118:8,frontbin:.text:004989D8:8 100.00 func_004983E8 src/game/004983E8.c match func_00499120 main:.text:00499120:204,frontbin:.text:004989E0:204 100.00 @@ -1670,6 +1723,7 @@ func_00498890 src/game/00498890.c match func_004995C8 main:.text:004995C8:136,fr func_00498950 src/game/00498950.c match func_00499688 main:.text:00499688:112,frontbin:.text:00498F48:112 100.00 func_004989C0 src/game/004989C0.c match func_004996F8 main:.text:004996F8:48,frontbin:.text:00498FB8:48 100.00 func_004989F0 src/game/004989F0.c match func_00499728 main:.text:00499728:168,frontbin:.text:00498FE8:168 100.00 +func_00498A98 src/game/00498A98.c match func_004997D0 main:.text:004997D0:284,frontbin:.text:00499090:284 100.00 func_00498BF4 src/game/00498BF4.c match func_0049992C main:.text:0049992C:12,frontbin:.text:004991EC:12 100.00 func_00498C00 src/game/00498C00.c match func_00499938 main:.text:00499938:12,frontbin:.text:004991F8:12 100.00 func_00498C0C src/game/00498C0C.c match func_00499944 main:.text:00499944:12,frontbin:.text:00499204:12 100.00 @@ -1697,6 +1751,7 @@ func_00499120 src/pal/game/00499120.c match func_00499120 main:.text:00499120:20 func_00499270 src/game/00499270.c match func_00499FA8 main:.text:00499FA8:36,frontbin:.text:00499868:36 100.00 func_00499298 src/game/00499298.c match func_00499FD0 main:.text:00499FD0:136,frontbin:.text:00499890:136 100.00 func_004993D0 src/game/004993D0.c match func_0049A108 main:.text:0049A108:8,frontbin:.text:004999C8:8 100.00 +func_004993D8 src/game/004993D8.c match func_0049A110 main:.text:0049A110:264,frontbin:.text:004999D0:264 100.00 func_004994E0 src/game/004994E0.c match func_0049A218 main:.text:0049A218:84,frontbin:.text:00499AD8:84 100.00 func_004995F0 src/game/004995F0.c match func_0049A328 main:.text:0049A328:228,frontbin:.text:00499BE8:228 100.00 func_00499790 src/game/00499790.c match func_0049A4C8 main:.text:0049A4C8:360,frontbin:.text:00499D88:360 100.00 @@ -1773,6 +1828,7 @@ func_0049D280 src/game/0049D280.c match func_0049DFB8 main:.text:0049DFB8:120,fr func_0049D308 src/game/0049D308.c match func_0049E040 main:.text:0049E040:144,frontbin:.text:0049D900:144 100.00 func_0049D398 src/game/0049D398.c match func_0049E0D0 main:.text:0049E0D0:148,frontbin:.text:0049D990:148 100.00 func_0049DF30 src/game/0049DF30.c match func_0049EC68 main:.text:0049EC68:116,frontbin:.text:0049E528:116 100.00 +func_0049E140 src/game/0049E140.c match func_0049EE78 main:.text:0049EE78:376,frontbin:.text:0049E738:376 100.00 func_0049E2B8 src/game/0049E2B8.c match func_0049EFF0 main:.text:0049EFF0:304,frontbin:.text:0049E8B0:304 100.00 func_0049E3E8 src/game/0049E3E8.c match func_0049F120 main:.text:0049F120:144,frontbin:.text:0049E9E0:144 100.00 func_0049E578 src/game/0049E578.c match func_0049F2B0 main:.text:0049F2B0:56,frontbin:.text:0049EB70:56 100.00 @@ -1784,6 +1840,10 @@ func_0049EFE0 src/game/0049EFE0.c match func_0049FD18 main:.text:0049FD18:44,fro func_0049F010 src/game/0049F010.c match func_0049FD48 main:.text:0049FD48:44,frontbin:.text:0049F608:44 100.00 func_0049F2F0 src/game/0049F2F0.c match func_004A0028 main:.text:004A0028:388,frontbin:.text:0049F8E8:388 100.00 func_0049F478 src/game/0049F478.c match func_004A01B0 main:.text:004A01B0:128,frontbin:.text:0049FA70:128 100.00 +func_0049F4F8 src/game/0049F4F8.c match func_004A0230 main:.text:004A0230:356,frontbin:.text:0049FAF0:356 100.00 +func_0049F660 src/game/0049F660.c match func_004A0398 main:.text:004A0398:244,frontbin:.text:0049FC58:244 100.00 +func_0049F758 src/game/0049F758.c match func_004A0490 main:.text:004A0490:204,frontbin:.text:0049FD50:204 100.00 +func_0049F828 src/game/0049F828.c match func_004A0560 main:.text:004A0560:252,frontbin:.text:0049FE20:252 100.00 func_0049F928 src/game/0049F928.c match func_004A0660 main:.text:004A0660:200,frontbin:.text:0049FF20:200 100.00 func_0049F9F0 src/game/0049F9F0.c match func_004A0728 main:.text:004A0728:72,frontbin:.text:0049FFE8:72 100.00 func_0049FA38 src/game/0049FA38.c match func_004A0770 main:.text:004A0770:164,frontbin:.text:004A0030:164 100.00 @@ -1802,6 +1862,9 @@ func_004A0560 src/pal/game/004A0560.c match func_004A0560 main:.text:004A0560:25 func_004A05F0 src/game/004A05F0.c match func_004A1328 main:.text:004A1328:200,frontbin:.text:004A0BE8:200 100.00 func_004A0660 src/pal/game/004A0660.c match func_004A0660 main:.text:004A0660:200 100.00 func_004A06B8 src/game/004A06B8.c match func_004A13F0 main:.text:004A13F0:60,frontbin:.text:004A0CB0:60 100.00 +func_004A06F8 src/game/004A06F8.c match func_004A1430 main:.text:004A1430:376,frontbin:.text:004A0CF0:376 100.00 +func_004A0870 src/game/004A0870.c match func_004A15A8 main:.text:004A15A8:376,frontbin:.text:004A0E68:376 100.00 +func_004A09E8 src/game/004A09E8.c match func_004A1720 main:.text:004A1720:376,frontbin:.text:004A0FE0:376 100.00 func_004A0B68 src/game/004A0B68.c match func_004A18A0 main:.text:004A18A0:124,frontbin:.text:004A1160:124 100.00 func_004A0BE8 src/game/004A0BE8.c match func_004A1920 main:.text:004A1920:8,frontbin:.text:004A11E0:8 100.00 func_004A0BF0 src/game/004A0BF0.c match func_004A1928 main:.text:004A1928:116,frontbin:.text:004A11E8:116 100.00 @@ -1811,6 +1874,7 @@ func_004A1010 src/game/004A1010.c match func_004A1D48 main:.text:004A1D48:300,fr func_004A1140 src/game/004A1140.c match func_004A1E78 main:.text:004A1E78:44,frontbin:.text:004A1738:44 100.00 func_004A1170 src/game/004A1170.c match func_004A1EA8 main:.text:004A1EA8:128,frontbin:.text:004A1768:128 100.00 func_004A11F0 src/game/004A11F0.c match func_004A1F28 main:.text:004A1F28:80,frontbin:.text:004A17E8:80 100.00 +func_004A1240 src/game/004A1240.c match func_004A1F78 main:.text:004A1F78:204,frontbin:.text:004A1838:204 100.00 func_004A1310 src/game/004A1310.c match func_004A2048 main:.text:004A2048:72,frontbin:.text:004A1908:72 100.00 func_004A1358 src/game/004A1358.c match func_004A2090 main:.text:004A2090:72,frontbin:.text:004A1950:72 100.00 func_004A13A0 src/game/004A13A0.c match func_004A20D8 main:.text:004A20D8:160,frontbin:.text:004A1998:160 100.00 @@ -1823,6 +1887,7 @@ func_004A1AD8 src/game/004A1AD8.c match func_004A2810 main:.text:004A2810:8,fron func_004A1AE0 src/game/004A1AE0.c match func_004A2818 main:.text:004A2818:64,frontbin:.text:004A20D8:64 100.00 func_004A1B20 src/game/004A1B20.c match func_004A2858 main:.text:004A2858:28,frontbin:.text:004A2118:28 100.00 func_004A1B40 src/game/004A1B40.c match func_004A2878 main:.text:004A2878:8,frontbin:.text:004A2138:8 100.00 +func_004A1B48 src/game/004A1B48.c differs - - 0.00 func_004A1D50 src/game/004A1D50.c match func_004A2A88 main:.text:004A2A88:8,frontbin:.text:004A2348:8 100.00 func_004A1D58 src/game/004A1D58.c match func_004A2A90 main:.text:004A2A90:48,frontbin:.text:004A2350:48 100.00 func_004A1D88 src/game/004A1D88.c match func_004A2AC0 main:.text:004A2AC0:84,frontbin:.text:004A2380:84 100.00 @@ -1870,9 +1935,11 @@ func_004A2A18 src/game/004A2A18.c match func_004A3778 main:.text:004A3778:48,fro func_004A2A48 src/game/004A2A48.c match func_004A37A8 main:.text:004A37A8:136,frontbin:.text:004A3068:136 100.00 func_004A2AD0 src/game/004A2AD0.c match func_004A3830 main:.text:004A3830:52,frontbin:.text:004A30F0:52 100.00 func_004A2B08 src/game/004A2B08.c match func_004A3868 main:.text:004A3868:16,frontbin:.text:004A3128:16 100.00 +func_004A2B18 src/game/004A2B18.c match func_004A3878 main:.text:004A3878:236,frontbin:.text:004A3138:236 100.00 func_004A2BA8 src/pal/game/004A2BA8.c match func_004A2BA8 main:.text:004A2BA8:280 100.00 func_004A2C08 src/game/004A2C08.c match func_004A3968 main:.text:004A3968:28,frontbin:.text:004A3228:28 100.00 func_004A2C1C src/game/004A2C1C.c match func_004A3400 main:.text:004A3400:8,frontbin:.text:004A2CC0:8 100.00 +func_004A2C28 src/game/004A2C28.c match func_004A3988 main:.text:004A3988:228,frontbin:.text:004A3248:228 100.00 func_004A2D10 src/game/004A2D10.c match func_004A3A70 main:.text:004A3A70:40,frontbin:.text:004A3330:40 100.00 func_004A2D38 src/game/004A2D38.c match func_004A3A98 main:.text:004A3A98:8,frontbin:.text:004A3358:8 100.00 func_004A2D40 src/game/004A2D40.c match func_004A3AA0 main:.text:004A3AA0:76,frontbin:.text:004A3360:76 100.00 @@ -1905,6 +1972,7 @@ func_004A3A28 src/game/004A3A28.c match func_004A4788 main:.text:004A4788:336,fr func_004A45F8 src/game/004A45F8.c match func_004A5370 main:.text:004A5370:176,frontbin:.text:004A4C30:176 100.00 func_004A46A8 src/game/004A46A8.c match func_004A5420 main:.text:004A5420:244,frontbin:.text:004A4CE0:244 100.00 func_004A47A0 src/game/004A47A0.c match func_004A5518 main:.text:004A5518:220,frontbin:.text:004A4DD8:220 100.00 +func_004A4880 src/game/004A4880.c match func_004A55F8 main:.text:004A55F8:348,frontbin:.text:004A4EB8:348 100.00 func_004A49E0 src/game/004A49E0.c match func_004A5758 main:.text:004A5758:480,frontbin:.text:004A5018:480 100.00 func_004A4D08 src/game/004A4D08.c match func_004A5A80 main:.text:004A5A80:60,frontbin:.text:004A5340:60 100.00 func_004A4D48 src/game/004A4D48.c match func_004A5AC0 main:.text:004A5AC0:88,frontbin:.text:004A5380:88 100.00 @@ -1943,17 +2011,21 @@ func_004A7DB0 src/game/004A7DB0.c match func_004A8B20 main:.text:004A8B20:32,fro func_004A7DD0 src/game/004A7DD0.c match func_004A8B40 main:.text:004A8B40:640,frontbin:.text:004A8400:640 100.00 func_004A8050 src/game/004A8050.c match func_004A8DC0 main:.text:004A8DC0:160,frontbin:.text:004A8680:160 100.00 func_004A81D0 src/game/004A81D0.c match func_004A8F40 main:.text:004A8F40:164,frontbin:.text:004A8800:164 100.00 +func_004A8280 src/game/004A8280.c match func_004A8FF0 main:.text:004A8FF0:292,frontbin:.text:004A88B0:292 100.00 func_004A83A8 src/game/004A83A8.c match func_004A9118 main:.text:004A9118:136,frontbin:.text:004A89D8:136 100.00 +func_004A8430 src/game/004A8430.c match func_004A91A0 main:.text:004A91A0:228,frontbin:.text:004A8A60:228 100.00 func_004A8518 src/game/004A8518.c match func_004A9288 main:.text:004A9288:184,frontbin:.text:004A8B48:184 100.00 func_004A85D0 src/game/004A85D0.c match func_004A9340 main:.text:004A9340:44,frontbin:.text:004A8C00:44 100.00 func_004A8600 src/game/004A8600.c match func_004A9370 main:.text:004A9370:224,frontbin:.text:004A8C30:224 100.00 func_004A86E0 src/game/004A86E0.c match func_004A9450 main:.text:004A9450:148,frontbin:.text:004A8D10:148 100.00 func_004A8778 src/game/004A8778.c differs - - 0.00 func_004A89A0 src/game/004A89A0.c match func_004A9718 main:.text:004A9718:68,frontbin:.text:004A8FD8:68 100.00 +func_004A89E8 src/game/004A89E8.c match func_004A9760 main:.text:004A9760:292,frontbin:.text:004A9020:292 100.00 func_004A8B10 src/game/004A8B10.c match func_004A9888 main:.text:004A9888:184,frontbin:.text:004A9148:184 100.00 func_004A8BD0 src/game/004A8BD0.c match func_004A9948 main:.text:004A9948:88,frontbin:.text:004A9208:88 100.00 func_004A8C28 src/game/004A8C28.c match func_004A99A0 main:.text:004A99A0:64,frontbin:.text:004A9260:64 100.00 func_004A8C68 src/game/004A8C68.c match func_004A99E0 main:.text:004A99E0:80,frontbin:.text:004A92A0:80 100.00 +func_004A8E78 src/game/004A8E78.c match func_004A9BF0 main:.text:004A9BF0:236,frontbin:.text:004A94B0:236 100.00 func_004A8F68 src/game/004A8F68.c match func_004A9CE0 main:.text:004A9CE0:308,frontbin:.text:004A95A0:308 100.00 func_004A8FF0 src/pal/game/004A8FF0.c match func_004A8FF0 main:.text:004A8FF0:292 100.00 func_004A90A0 src/game/004A90A0.c match func_004A9E18 main:.text:004A9E18:72,frontbin:.text:004A96D8:72 100.00 @@ -1986,6 +2058,7 @@ func_004AB8B0 src/game/004AB8B0.c match func_004AC708 main:.text:004AC708:52,fro func_004ABCE8 src/pal/game/004ABCE8.c match func_004ABCE8 main:.text:004ABCE8:268 100.00 func_004ABEA0 src/pal/game/004ABEA0.c match func_004ABEA0 main:.text:004ABEA0:216 100.00 func_004AD1B8 src/game/004AD1B8.c match func_004AE038 main:.text:004AE038:28,frontbin:.text:004AD8F8:28 100.00 +func_004AD1D8 src/game/004AD1D8.c match func_004AE058 main:.text:004AE058:220,frontbin:.text:004AD918:220 100.00 func_004AD2B8 src/game/004AD2B8.c match func_004AE138 main:.text:004AE138:88,frontbin:.text:004AD9F8:88 100.00 func_004AD310 src/game/004AD310.c match func_004AE190 main:.text:004AE190:72,frontbin:.text:004ADA50:72 100.00 func_004AD358 src/game/004AD358.c match func_004AE1D8 main:.text:004AE1D8:136,frontbin:.text:004ADA98:136 100.00 @@ -2089,6 +2162,7 @@ func_004B3DE0 src/game/004B3DE0.c match func_004B4CA8 main:.text:004B4CA8:60,fro func_004B3E20 src/game/004B3E20.c match func_004B4CE8 main:.text:004B4CE8:136,frontbin:.text:004B45A8:136 100.00 func_004B3EA8 src/game/004B3EA8.c match func_004B4D70 main:.text:004B4D70:80,frontbin:.text:004B4630:80 100.00 func_004B3EF8 src/game/004B3EF8.c match func_004B4DC0 main:.text:004B4DC0:340,frontbin:.text:004B4680:340 100.00 +func_004B4050 src/game/004B4050.c match func_004B4F18 main:.text:004B4F18:420,frontbin:.text:004B47D8:420 100.00 func_004B4A40 src/game/004B4A40.c match func_004B5930 main:.text:004B5930:84,frontbin:.text:004B51F0:84 100.00 func_004B4A98 src/game/004B4A98.c match func_004B5988 main:.text:004B5988:232,frontbin:.text:004B5248:232 100.00 func_004B4B80 src/game/004B4B80.c match func_004B5A70 main:.text:004B5A70:228,frontbin:.text:004B5330:228 100.00 @@ -2124,6 +2198,7 @@ func_004B5E70 src/game/004B5E70.c match func_004B6D60 main:.text:004B6D60:260,fr func_004B5F78 src/game/004B5F78.c match func_004B6E68 main:.text:004B6E68:116,frontbin:.text:004B6728:116 100.00 func_004B6378 src/game/004B6378.c match func_004B7268 main:.text:004B7268:604,frontbin:.text:004B6B28:604 100.00 func_004B64A0 src/pal/game/004B64A0.c match func_004B64A0 main:.text:004B64A0:260 100.00 +func_004B6740 src/game/004B6740.c match func_004B7630 main:.text:004B7630:328,frontbin:.text:004B6EF0:328 100.00 func_004B6888 src/game/004B6888.c match func_004B7778 main:.text:004B7778:200,frontbin:.text:004B7038:200 100.00 func_004B6950 src/game/004B6950.c match func_004B7840 main:.text:004B7840:28,frontbin:.text:004B7100:28 100.00 func_004B6970 src/game/004B6970.c match func_004B7860 main:.text:004B7860:28,frontbin:.text:004B7120:28 100.00 @@ -2185,6 +2260,8 @@ func_004B7E78 src/game/004B7E78.c match func_004B8D68 main:.text:004B8D68:444,fr func_004B8038 src/game/004B8038.c match func_004B8F28 main:.text:004B8F28:152,frontbin:.text:004B87E8:152 100.00 func_004B80D0 src/game/004B80D0.c match func_004B8FC0 main:.text:004B8FC0:136,frontbin:.text:004B8880:136 100.00 func_004B8158 src/game/004B8158.c match func_004B9048 main:.text:004B9048:624,frontbin:.text:004B8908:624 100.00 +func_004B83C8 src/game/004B83C8.c match func_004B92B8 main:.text:004B92B8:264,frontbin:.text:004B8B78:264 100.00 +func_004B84D0 src/game/004B84D0.c match func_004B93C0 main:.text:004B93C0:264,frontbin:.text:004B8C80:264 100.00 func_004B85D8 src/game/004B85D8.c match func_004B94C8 main:.text:004B94C8:428,frontbin:.text:004B8D88:428 100.00 func_004B8788 src/game/004B8788.c match func_004B9678 main:.text:004B9678:256,frontbin:.text:004B8F38:256 100.00 func_004B8888 src/game/004B8888.c match func_004B9778 main:.text:004B9778:124,frontbin:.text:004B9038:124 100.00 @@ -2198,6 +2275,8 @@ func_004B8FF0 src/game/004B8FF0.c match func_004B9EE0 main:.text:004B9EE0:336,fr func_004B9140 src/game/004B9140.c match func_004BA030 main:.text:004BA030:92,frontbin:.text:004B98F0:92 100.00 func_004B91A0 src/game/004B91A0.c match func_004BA090 main:.text:004BA090:104,frontbin:.text:004B9950:104 100.00 func_004B9208 src/game/004B9208.c match func_004BA0F8 main:.text:004BA0F8:52,frontbin:.text:004B99B8:52 100.00 +func_004B9240 src/game/004B9240.c match func_004BA130 main:.text:004BA130:236,frontbin:.text:004B99F0:236 100.00 +func_004B9440 src/game/004B9440.c match func_004BA330 main:.text:004BA330:284,frontbin:.text:004B9BF0:284 100.00 func_004B9560 src/game/004B9560.c match func_004BA450 main:.text:004BA450:68,frontbin:.text:004B9D10:68 100.00 func_004B95A8 src/game/004B95A8.c match func_004BA498 main:.text:004BA498:256,frontbin:.text:004B9D58:256 100.00 func_004B99A8 src/game/004B99A8.c match func_004BA898 main:.text:004BA898:28,frontbin:.text:004BA158:28 100.00 @@ -2298,6 +2377,7 @@ func_004C13F8 src/game/004C13F8.c match func_004C2220 main:.text:004C2220:160,fr func_004C1498 src/game/004C1498.c match func_004C22C0 main:.text:004C22C0:76,frontbin:.text:004C1B80:76 100.00 func_004C14F0 src/game/004C14F0.c match func_004C2318 main:.text:004C2318:336,frontbin:.text:004C1BD8:336 100.00 func_004C1E98 src/game/004C1E98.c match func_004C2CC0 main:.text:004C2CC0:264,frontbin:.text:004C2580:264 100.00 +func_004C1FA8 src/game/004C1FA8.c match func_004C2DD0 main:.text:004C2DD0:500,frontbin:.text:004C2690:500 100.00 func_004C21A0 src/game/004C21A0.c match func_004C2FC8 main:.text:004C2FC8:68,frontbin:.text:004C2888:68 100.00 func_004C21E8 src/game/004C21E8.c match func_004C3010 main:.text:004C3010:680,frontbin:.text:004C28D0:680 100.00 func_004C2490 src/game/004C2490.c match func_004C32B8 main:.text:004C32B8:196,frontbin:.text:004C2B78:196 100.00 @@ -2312,6 +2392,7 @@ func_004C2FF8 src/game/004C2FF8.c match func_004C3E20 main:.text:004C3E20:192,fr func_004C3010 src/pal/game/004C3010.c match func_004C3010 main:.text:004C3010:680 100.00 func_004C30B8 src/game/004C30B8.c match func_004C3EE0 main:.text:004C3EE0:132,frontbin:.text:004C37A0:132 100.00 func_004C3250 src/game/004C3250.c match func_004C4078 main:.text:004C4078:192,frontbin:.text:004C3938:192 100.00 +func_004C33D0 src/game/004C33D0.c match func_004C41F8 main:.text:004C41F8:260,frontbin:.text:004C3AB8:260 100.00 func_004C37A0 src/game/004C37A0.c match func_004C45C8 main:.text:004C45C8:128,frontbin:.text:004C3E88:128 100.00 func_004C3820 src/game/004C3820.c match func_004C4648 main:.text:004C4648:196,frontbin:.text:004C3F08:196 100.00 func_004C38E8 src/game/004C38E8.c match func_004C4710 main:.text:004C4710:156,frontbin:.text:004C3FD0:156 100.00 @@ -2329,6 +2410,8 @@ func_004C40C8 src/game/004C40C8.c match func_004C4EF0 main:.text:004C4EF0:300,fr func_004C41F8 src/game/004C41F8.c match func_004C5020 main:.text:004C5020:8,frontbin:.text:004C48E0:8 100.00 func_004C4490 src/game/004C4490.c match func_004C52B8 main:.text:004C52B8:36,frontbin:.text:004C4B78:36 100.00 func_004C44B8 src/game/004C44B8.c match func_004C52E0 main:.text:004C52E0:48,frontbin:.text:004C4BA0:48 100.00 +func_004C44E8 src/game/004C44E8.c match func_004C5310 main:.text:004C5310:432,frontbin:.text:004C4BD0:432 100.00 +func_004C4698 src/game/004C4698.c match func_004C54C0 main:.text:004C54C0:400,frontbin:.text:004C4D80:400 100.00 func_004C4D20 src/pal/game/004C4D20.c match func_004C4D20 main:.text:004C4D20:288 100.00 func_004C5310 src/pal/game/004C5310.c match func_004C5310 main:.text:004C5310:432 100.00 func_004C54C0 src/pal/game/004C54C0.c match func_004C54C0 main:.text:004C54C0:400 100.00 @@ -2346,11 +2429,13 @@ func_004C6768 src/game/004C6768.c match func_004C7590 main:.text:004C7590:108,fr func_004C67D8 src/game/004C67D8.c match func_004C7600 main:.text:004C7600:144,frontbin:.text:004C6EC0:144 100.00 func_004C6910 src/game/004C6910.c match func_004C7738 main:.text:004C7738:84,frontbin:.text:004C6FF8:84 100.00 func_004C6968 src/game/004C6968.c match func_004C7790 main:.text:004C7790:8,frontbin:.text:004C7050:8 100.00 +func_004C6BA0 src/game/004C6BA0.c match func_004C79C8 main:.text:004C79C8:284,frontbin:.text:004C7288:284 100.00 func_004C6C10 src/pal/game/004C6C10.c match func_004C6C10 main:.text:004C6C10:476 100.00 func_004C70C0 src/game/004C70C0.c match func_004C7EE8 main:.text:004C7EE8:92,frontbin:.text:004C77A8:92 100.00 func_004C7110 src/game/004C7110.c match func_004C7F38 main:.text:004C7F38:12,frontbin:.text:004C77F8:12 100.00 func_004C7158 src/game/004C7158.c match func_004C7F80 main:.text:004C7F80:8,frontbin:.text:004C7840:8 100.00 func_004C7160 src/game/004C7160.c match func_004C7F88 main:.text:004C7F88:8,frontbin:.text:004C7848:8 100.00 +func_004C7168 src/game/004C7168.c match func_004C7F90 main:.text:004C7F90:212,frontbin:.text:004C7850:212 100.00 func_004C7240 src/game/004C7240.c match func_004C8068 main:.text:004C8068:156,frontbin:.text:004C7928:156 100.00 func_004C72E0 src/game/004C72E0.c match func_004C8108 main:.text:004C8108:196,frontbin:.text:004C79C8:196 100.00 func_004C73A8 src/game/004C73A8.c match func_004C81D0 main:.text:004C81D0:60,frontbin:.text:004C7A90:60 100.00 @@ -2377,6 +2462,7 @@ func_004C8768 src/game/004C8768.c match func_004C9590 main:.text:004C9590:200,fr func_004C8830 src/game/004C8830.c match func_004C9658 main:.text:004C9658:816,frontbin:.text:004C8F18:816 100.00 func_004C8C70 src/game/004C8C70.c match func_004C9A98 main:.text:004C9A98:644,frontbin:.text:004C9358:644 100.00 func_004C8EF8 src/game/004C8EF8.c match func_004C9D20 main:.text:004C9D20:180,frontbin:.text:004C95E0:180 100.00 +func_004C9090 src/game/004C9090.c match func_004C9EB8 main:.text:004C9EB8:216,frontbin:.text:004C9778:216 100.00 func_004C9168 src/game/004C9168.c match func_004C9F90 main:.text:004C9F90:52,frontbin:.text:004C9850:52 100.00 func_004C91A0 src/game/004C91A0.c match func_004C9FC8 main:.text:004C9FC8:100,frontbin:.text:004C9888:100 100.00 func_004C9208 src/game/004C9208.c match func_004CA030 main:.text:004CA030:56,frontbin:.text:004C98F0:56 100.00 @@ -2426,6 +2512,7 @@ func_004CB798 src/game/004CB798.c match func_004CC638 main:.text:004CC638:112,fr func_004CB808 src/game/004CB808.c match func_004CC6A8 main:.text:004CC6A8:64,frontbin:.text:004CBF68:64 100.00 func_004CB848 src/game/004CB848.c match func_004CC6E8 main:.text:004CC6E8:240,frontbin:.text:004CBFA8:240 100.00 func_004CB938 src/game/004CB938.c match func_004CC7D8 main:.text:004CC7D8:604,frontbin:.text:004CC098:604 100.00 +func_004CBB98 src/game/004CBB98.c match func_004CCA38 main:.text:004CCA38:628,frontbin:.text:004CC2F8:628 100.00 func_004CBE10 src/game/004CBE10.c match func_004CCCB0 main:.text:004CCCB0:232,frontbin:.text:004CC570:232 100.00 func_004CBEF8 src/game/004CBEF8.c match func_004CCD98 main:.text:004CCD98:184,frontbin:.text:004CC658:184 100.00 func_004CBFB0 src/game/004CBFB0.c match func_004CCE50 main:.text:004CCE50:260,frontbin:.text:004CC710:260 100.00 @@ -2473,6 +2560,7 @@ func_004CDA88 src/pal/game/004CDA88.c match func_004CDA88 main:.text:004CDA88:23 func_004CDC10 src/game/004CDC10.c match func_004CEAB0 main:.text:004CEAB0:184,frontbin:.text:004CE370:184 100.00 func_004CDCC8 src/game/004CDCC8.c match func_004CEB68 main:.text:004CEB68:308,frontbin:.text:004CE428:308 100.00 func_004CDEC8 src/game/004CDEC8.c match func_004CED68 main:.text:004CED68:64,frontbin:.text:004CE628:64 100.00 +func_004CDF08 src/game/004CDF08.c match func_004CEDA8 main:.text:004CEDA8:212,frontbin:.text:004CE668:212 100.00 func_004CDFE0 src/game/004CDFE0.c match func_004CEE80 main:.text:004CEE80:136,frontbin:.text:004CE740:136 100.00 func_004CE068 src/game/004CE068.c match func_004CEF08 main:.text:004CEF08:28,frontbin:.text:004CE7C8:28 100.00 func_004CE088 src/game/004CE088.c match func_004CEF28 main:.text:004CEF28:12,frontbin:.text:004CE7E8:12 100.00 @@ -2509,6 +2597,7 @@ func_004CF6D8 src/game/004CF6D8.c match func_004D0578 main:.text:004D0578:160,fr func_004CF778 src/game/004CF778.c match func_004D0618 main:.text:004D0618:232,frontbin:.text:004CFED8:232 100.00 func_004CF860 src/game/004CF860.c match func_004D0700 main:.text:004D0700:172,frontbin:.text:004CFFC0:172 100.00 func_004CF910 src/game/004CF910.c match func_004D07B0 main:.text:004D07B0:64,frontbin:.text:004D0070:64 100.00 +func_004CF950 src/game/004CF950.c match func_004D07F0 main:.text:004D07F0:240,frontbin:.text:004D00B0:240 100.00 func_004CFA08 src/pal/game/004CFA08.c match func_004CFA08 main:.text:004CFA08:232 100.00 func_004CFA40 src/game/004CFA40.c match func_004D08E0 main:.text:004D08E0:136,frontbin:.text:004D01A0:136 100.00 func_004CFAC8 src/game/004CFAC8.c match func_004D0968 main:.text:004D0968:12,frontbin:.text:004D0228:12 100.00 @@ -2616,6 +2705,7 @@ func_004D4770 src/game/004D4770.c match func_004D5688 main:.text:004D5688:40,fro func_004D4928 src/game/004D4928.c match func_004D5840 main:.text:004D5840:128,frontbin:.text:004D5100:128 100.00 func_004D49A8 src/game/004D49A8.c match func_004D58C0 main:.text:004D58C0:512,frontbin:.text:004D5180:512 100.00 func_004D4BA8 src/game/004D4BA8.c match func_004D5AC0 main:.text:004D5AC0:172,frontbin:.text:004D5380:172 100.00 +func_004D4C58 src/game/004D4C58.c match func_004D5B70 main:.text:004D5B70:548,frontbin:.text:004D5430:548 100.00 func_004D4D38 src/pal/game/004D4D38.c match func_004D4D38 main:.text:004D4D38:200 100.00 func_004D5550 src/game/004D5550.c match func_004D6468 main:.text:004D6468:184,frontbin:.text:004D5D28:184 100.00 func_004D5608 src/game/004D5608.c match func_004D6520 main:.text:004D6520:108,frontbin:.text:004D5DE0:108 100.00 @@ -2643,6 +2733,7 @@ func_004D6140 src/game/004D6140.c match func_004D7058 main:.text:004D7058:56,fro func_004D6178 src/game/004D6178.c match func_004D7090 main:.text:004D7090:136,frontbin:.text:004D6950:136 100.00 func_004D6200 src/game/004D6200.c match func_004D7118 main:.text:004D7118:240,frontbin:.text:004D69D8:240 100.00 func_004D62F0 src/game/004D62F0.c match func_004D7208 main:.text:004D7208:136,frontbin:.text:004D6AC8:136 100.00 +func_004D6378 src/game/004D6378.c match func_004D7290 main:.text:004D7290:296,frontbin:.text:004D6B50:296 100.00 func_004D64A0 src/game/004D64A0.c match func_004D73B8 main:.text:004D73B8:76,frontbin:.text:004D6C78:76 100.00 func_004D6920 src/pal/game/004D6920.c match func_004D6920 main:.text:004D6920:392 100.00 func_004D6DD0 src/game/004D6DD0.c match func_004D7CE8 main:.text:004D7CE8:120,frontbin:.text:004D75A8:120 100.00 @@ -2682,6 +2773,7 @@ func_004D8818 src/game/004D8818.c match func_004D9730 main:.text:004D9730:48,fro func_004D8848 src/game/004D8848.c match func_004D9760 main:.text:004D9760:232,frontbin:.text:004D9020:232 100.00 func_004D8930 src/game/004D8930.c match func_004D9848 main:.text:004D9848:88,frontbin:.text:004D9108:88 100.00 func_004D8988 src/game/004D8988.c match func_004D98A0 main:.text:004D98A0:140,frontbin:.text:004D9160:140 100.00 +func_004D8A18 src/game/004D8A18.c match func_004D9930 main:.text:004D9930:212,frontbin:.text:004D91F0:212 100.00 func_004D8AF0 src/game/004D8AF0.c match func_004D9A08 main:.text:004D9A08:136,frontbin:.text:004D92C8:136 100.00 func_004D8B80 src/game/004D8B80.c match func_004D9A98 main:.text:004D9A98:336,frontbin:.text:004D9358:336 100.00 func_004D8CD0 src/game/004D8CD0.c match func_004D9BE8 main:.text:004D9BE8:40,frontbin:.text:004D94A8:40 100.00 @@ -2692,9 +2784,11 @@ func_004D8E58 src/game/004D8E58.c match func_004D9D70 main:.text:004D9D70:88,fro func_004D8EB0 src/game/004D8EB0.c match func_004D9DC8 main:.text:004D9DC8:192,frontbin:.text:004D9688:192 100.00 func_004D8F70 src/game/004D8F70.c match func_004D9E88 main:.text:004D9E88:168,frontbin:.text:004D9748:168 100.00 func_004D9018 src/game/004D9018.c match func_004D9F30 main:.text:004D9F30:48,frontbin:.text:004D97F0:48 100.00 +func_004D9048 src/game/004D9048.c match func_004D9F60 main:.text:004D9F60:544,frontbin:.text:004D9820:544 100.00 func_004D9268 src/game/004D9268.c match func_004DA180 main:.text:004DA180:136,frontbin:.text:004D9A40:136 100.00 func_004D92F0 src/game/004D92F0.c match func_004DA208 main:.text:004DA208:136,frontbin:.text:004D9AC8:136 100.00 func_004D9378 src/game/004D9378.c match func_004DA290 main:.text:004DA290:144,frontbin:.text:004D9B50:144 100.00 +func_004D9408 src/game/004D9408.c match func_004DA320 main:.text:004DA320:236,frontbin:.text:004D9BE0:236 100.00 func_004D95C8 src/game/004D95C8.c match func_004DA4E0 main:.text:004DA4E0:336,frontbin:.text:004D9DA0:336 100.00 func_004D9718 src/game/004D9718.c match func_004DA630 main:.text:004DA630:40,frontbin:.text:004D9EF0:40 100.00 func_004D9740 src/game/004D9740.c match func_004DA658 main:.text:004DA658:104,frontbin:.text:004D9F18:104 100.00 @@ -2716,8 +2810,10 @@ func_004D9EB0 src/game/004D9EB0.c differs - - 0.00 func_004D9F60 src/pal/game/004D9F60.c match func_004D9F60 main:.text:004D9F60:544 100.00 func_004DA140 src/game/004DA140.c match func_004DB060 main:.text:004DB060:172,frontbin:.text:004DA920:172 100.00 func_004DA1F0 src/game/004DA1F0.c match func_004DB110 main:.text:004DB110:228,frontbin:.text:004DA9D0:228 100.00 +func_004DA2D8 src/game/004DA2D8.c match func_004DB1F8 main:.text:004DB1F8:780,frontbin:.text:004DAAB8:780 100.00 func_004DA320 src/pal/game/004DA320.c match func_004DA320 main:.text:004DA320:236 100.00 -func_004DA960 src/pal/game/004DA960.c match func_004DA960 main:.text:004DA960:212 100.00 +func_004DA960 src/game/004DA960.c match func_004DA960 main:.text:004DA960:212,frontbin:.text:004DA220:212 100.00 +func_004DAA78 src/game/004DAA78.c match func_004DB998 main:.text:004DB998:276,frontbin:.text:004DB258:276 100.00 func_004DAB90 src/game/004DAB90.c match func_004DBAB0 main:.text:004DBAB0:272,frontbin:.text:004DB370:272 100.00 func_004DACA0 src/game/004DACA0.c match func_004DBBC0 main:.text:004DBBC0:28,frontbin:.text:004DB480:28 100.00 func_004DACC0 src/game/004DACC0.c match func_004DBBE0 main:.text:004DBBE0:108,frontbin:.text:004DB4A0:108 100.00 @@ -2764,6 +2860,7 @@ func_004DCDC0 src/pal/game/004DCDC0.c match func_004DCDC0 main:.text:004DCDC0:79 func_004DD810 src/pal/game/004DD810.c match func_004DD810 main:.text:004DD810:248 100.00 func_004DEAE0 src/game/004DEAE0.c match func_004DFA40 main:.text:004DFA40:188,frontbin:.text:004DF300:188 100.00 func_004DEDD8 src/game/004DEDD8.c match func_004DFD38 main:.text:004DFD38:288,frontbin:.text:004DF5F8:288 100.00 +func_004DEF78 src/game/004DEF78.c match func_004DFED8 main:.text:004DFED8:280,frontbin:.text:004DF798:280 100.00 func_004DF098 src/game/004DF098.c match func_004DFFF8 main:.text:004DFFF8:92,frontbin:.text:004DF8B8:92 100.00 func_004DFD38 src/pal/game/004DFD38.c match func_004DFD38 main:.text:004DFD38:288 100.00 func_004DFED8 src/pal/game/004DFED8.c match func_004DFED8 main:.text:004DFED8:280 100.00 @@ -2844,6 +2941,7 @@ func_004EDCE8 src/game/004EDCE8.c match func_004EED20 main:.text:004EED20:152,fr func_004EDE40 src/game/004EDE40.c match func_004EEE78 main:.text:004EEE78:92,frontbin:.text:004EE778:92 100.00 func_004EDEA8 src/game/004EDEA8.c match func_004EEEE0 main:.text:004EEEE0:344,frontbin:.text:004EE7E0:344 100.00 func_004EE000 src/game/004EE000.c match func_004EF038 main:.text:004EF038:336,frontbin:.text:004EE938:336 100.00 +func_004EE150 src/game/004EE150.c match func_004EF188 main:.text:004EF188:216,frontbin:.text:004EEA88:216 100.00 func_004EE368 src/game/004EE368.c match func_004EF3B0 main:.text:004EF3B0:8,frontbin:.text:004EECB0:8 100.00 func_004EE6E8 src/game/004EE6E8.c match func_004EF730 main:.text:004EF730:48,frontbin:.text:004EF030:48 100.00 func_004EE718 src/game/004EE718.c match func_004EF760 main:.text:004EF760:116,frontbin:.text:004EF060:116 100.00 @@ -2879,6 +2977,7 @@ func_004EFE28 src/game/004EFE28.c match func_004F0E90 main:.text:004F0E90:388,fr func_004F0220 src/game/004F0220.c match func_004F1288 main:.text:004F1288:8,frontbin:.text:004F0B88:8 100.00 func_004F0228 src/game/004F0228.c match func_004F1290 main:.text:004F1290:424,frontbin:.text:004F0B90:424 100.00 func_004F0650 src/game/004F0650.c differs - - 0.00 +func_004F0660 src/game/004F0660.c match func_004F16C8 main:.text:004F16C8:276,frontbin:.text:004F0FC8:276 100.00 func_004F0778 src/game/004F0778.c match func_004F17E0 main:.text:004F17E0:208,frontbin:.text:004F10E0:208 100.00 func_004F0848 src/game/004F0848.c match func_004F18B0 main:.text:004F18B0:304,frontbin:.text:004F11B0:304 100.00 func_004F08E0 src/pal/game/004F08E0.c match func_004F08E0 main:.text:004F08E0:208 100.00 @@ -2920,7 +3019,9 @@ func_004F1CA0 src/game/004F1CA0.c match func_004F2D08 main:.text:004F2D08:8,fron func_004F1CA8 src/game/004F1CA8.c match func_004F2D10 main:.text:004F2D10:12,frontbin:.text:004F2610:12 100.00 func_004F1CB8 src/game/004F1CB8.c match func_004F2D20 main:.text:004F2D20:64,frontbin:.text:004F2620:64 100.00 func_004F1CF8 src/game/004F1CF8.c match func_004F2D60 main:.text:004F2D60:28,frontbin:.text:004F2660:28 100.00 +func_004F1D20 src/game/004F1D20.c match func_004F2D88 main:.text:004F2D88:204,frontbin:.text:004F2688:204 100.00 func_004F1DF0 src/game/004F1DF0.c match func_004F2E58 main:.text:004F2E58:72,frontbin:.text:004F2758:72 100.00 +func_004F1EA0 src/game/004F1EA0.c match func_004F2F08 main:.text:004F2F08:424,frontbin:.text:004F2808:424 100.00 func_004F2048 src/game/004F2048.c match func_004F30B0 main:.text:004F30B0:40,frontbin:.text:004F29B0:40 100.00 func_004F2070 src/game/004F2070.c match func_004F30D8 main:.text:004F30D8:48,frontbin:.text:004F29D8:48 100.00 func_004F20A0 src/game/004F20A0.c match func_004F3108 main:.text:004F3108:40,frontbin:.text:004F2A08:40 100.00 @@ -2968,6 +3069,7 @@ func_004F5000 src/game/004F5000.c match func_004F6080 main:.text:004F6080:8,fron func_004F5008 src/game/004F5008.c match func_004F6088 main:.text:004F6088:28,frontbin:.text:004F5988:28 100.00 func_004F50D0 src/game/004F50D0.c match func_004F6150 main:.text:004F6150:8,frontbin:.text:004F5A50:8 100.00 func_004F5180 src/game/004F5180.c match func_004F6200 main:.text:004F6200:460,frontbin:.text:004F5B00:460 100.00 +func_004F5350 src/game/004F5350.c match func_004F63D0 main:.text:004F63D0:112,frontbin:.text:004F5CD0:112 100.00 func_004F53C0 src/game/004F53C0.c match func_004F6440 main:.text:004F6440:84,frontbin:.text:004F5D40:84 100.00 func_004F5418 src/game/004F5418.c match func_004F6498 main:.text:004F6498:8,frontbin:.text:004F5D98:8 100.00 func_004F5420 src/game/004F5420.c match func_004F64A0 main:.text:004F64A0:8,frontbin:.text:004F5DA0:8 100.00 @@ -3003,6 +3105,7 @@ func_004F7A98 src/game/004F7A98.c match func_004F8B18 main:.text:004F8B18:36,fro func_004F7AC0 src/game/004F7AC0.c match func_004F8B40 main:.text:004F8B40:36,frontbin:.text:004F8440:36 100.00 func_004F7AE8 src/game/004F7AE8.c match func_004F8B68 main:.text:004F8B68:36,frontbin:.text:004F8468:36 100.00 func_004F7B10 src/game/004F7B10.c match func_004F8B90 main:.text:004F8B90:36,frontbin:.text:004F8490:36 100.00 +func_004F7FD8 src/game/004F7FD8.c match func_004F9058 main:.text:004F9058:508,frontbin:.text:004F8958:508 100.00 func_004F86EC src/game/004F86EC.c match func_004F976C main:.text:004F976C:8,frontbin:.text:004F906C:8 100.00 func_004F86F4 src/game/004F86F4.c match func_004F9774 main:.text:004F9774:8,frontbin:.text:004F9074:8 100.00 func_004F86FC src/game/004F86FC.c match func_004F977C main:.text:004F977C:8,frontbin:.text:004F907C:8 100.00 @@ -3015,6 +3118,7 @@ func_004F9CC0 src/game/004F9CC0.c match func_004FAD40 main:.text:004FAD40:116,fr func_004F9F28 src/game/004F9F28.c match func_004FAFA8 main:.text:004FAFA8:472,frontbin:.text:004FA8A8:472 100.00 func_004FA838 src/game/004FA838.c match func_004FB8B8 main:.text:004FB8B8:152,frontbin:.text:004FB1B8:152 100.00 func_004FA8D0 src/game/004FA8D0.c match func_004FB950 main:.text:004FB950:472,frontbin:.text:004FB250:472 100.00 +func_004FAAA8 src/game/004FAAA8.c match func_004FBB28 main:.text:004FBB28:212,frontbin:.text:004FB428:212 100.00 func_004FAB80 src/game/004FAB80.c match func_004FBC00 main:.text:004FBC00:180,frontbin:.text:004FB500:180 100.00 func_004FAF08 src/game/004FAF08.c match func_004FBF88 main:.text:004FBF88:224,frontbin:.text:004FB888:224 100.00 func_004FAFE8 src/game/004FAFE8.c match func_004FC068 main:.text:004FC068:552,frontbin:.text:004FB968:552 100.00 @@ -3027,6 +3131,7 @@ func_004FC068 src/pal/game/004FC068.c match func_004FC068 main:.text:004FC068:55 func_004FC160 src/game/004FC160.c differs - - 0.00 func_004FC298 src/game/004FC298.c match func_004FD308 main:.text:004FD308:36,frontbin:.text:004FCC08:36 100.00 func_004FC2C0 src/game/004FC2C0.c match func_004FD330 main:.text:004FD330:76,frontbin:.text:004FCC30:76 100.00 +func_004FC310 src/game/004FC310.c match func_004FD380 main:.text:004FD380:248,frontbin:.text:004FCC80:248 100.00 func_004FC408 src/game/004FC408.c match func_004FD478 main:.text:004FD478:132,frontbin:.text:004FCD78:132 100.00 func_004FC490 src/game/004FC490.c match func_004FD500 main:.text:004FD500:136,frontbin:.text:004FCE00:136 100.00 func_004FC650 src/game/004FC650.c match func_004FD6C0 main:.text:004FD6C0:40,frontbin:.text:004FCFC0:40 100.00 @@ -3047,6 +3152,7 @@ func_004FEDC8 src/game/004FEDC8.c match func_004FFE38 main:.text:004FFE38:100,fr func_004FEE38 src/game/004FEE38.c match func_004FFEA8 main:.text:004FFEA8:48,frontbin:.text:004FF7A8:48 100.00 func_004FEE68 src/game/004FEE68.c match func_004FFED8 main:.text:004FFED8:8,frontbin:.text:004FF7D8:8 100.00 func_004FEE70 src/game/004FEE70.c match func_004FFEE0 main:.text:004FFEE0:268,frontbin:.text:004FF7E0:268 100.00 +func_004FEF80 src/game/004FEF80.c match func_004FFFF0 main:.text:004FFFF0:268,frontbin:.text:004FF8F0:268 100.00 func_004FF4C0 src/game/004FF4C0.c match func_00500530 main:.text:00500530:48,frontbin:.text:004FFE30:48 100.00 func_004FF4F0 src/game/004FF4F0.c match func_00500560 main:.text:00500560:68,frontbin:.text:004FFE60:68 100.00 func_004FF538 src/game/004FF538.c match func_005005A8 main:.text:005005A8:48,frontbin:.text:004FFEA8:48 100.00 @@ -3147,6 +3253,7 @@ func_00502460 src/game/00502460.c match func_005034D0 main:.text:005034D0:8,fron func_00502468 src/game/00502468.c match func_005034D8 main:.text:005034D8:12,frontbin:.text:00502DD8:12 100.00 func_00502478 src/game/00502478.c match func_005034E8 main:.text:005034E8:84,frontbin:.text:00502DE8:84 100.00 func_005024D0 src/game/005024D0.c match func_00503540 main:.text:00503540:64,frontbin:.text:00502E40:64 100.00 +func_00502510 src/game/00502510.c match func_00503580 main:.text:00503580:548,frontbin:.text:00502E80:548 100.00 func_00502738 src/game/00502738.c match func_005037A8 main:.text:005037A8:152,frontbin:.text:005030A8:152 100.00 func_00502848 src/game/00502848.c match func_005038B8 main:.text:005038B8:120,frontbin:.text:005031B8:120 100.00 func_005028C0 src/game/005028C0.c match func_00503930 main:.text:00503930:112,frontbin:.text:00503230:112 100.00 @@ -3171,25 +3278,32 @@ func_00503E70 src/game/00503E70.c match func_00501ED0 main:.text:00501ED0:8,fron func_00503E78 src/game/00503E78.c match func_00504F10 main:.text:00504F10:92,frontbin:.text:00504810:92 100.00 func_00503EE0 src/game/00503EE0.c match func_00504F78 main:.text:00504F78:200,frontbin:.text:00504878:200 100.00 func_00503FA8 src/game/00503FA8.c match func_00505040 main:.text:00505040:264,frontbin:.text:00504940:264 100.00 +func_005040B0 src/game/005040B0.c match func_00505148 main:.text:00505148:376,frontbin:.text:00504A48:376 100.00 func_00504228 src/game/00504228.c match func_005052C0 main:.text:005052C0:8,frontbin:.text:00504BC0:8 100.00 func_00504230 src/game/00504230.c match func_005052C8 main:.text:005052C8:8,frontbin:.text:00504BC8:8 100.00 func_00504238 src/game/00504238.c match func_005052D0 main:.text:005052D0:244,frontbin:.text:00504BD0:244 100.00 func_00504338 src/game/00504338.c match func_005053D0 main:.text:005053D0:184,frontbin:.text:00504CD0:184 100.00 func_005043F0 src/game/005043F0.c match func_00505488 main:.text:00505488:184,frontbin:.text:00504D88:184 100.00 func_005044A8 src/game/005044A8.c match func_00505540 main:.text:00505540:168,frontbin:.text:00504E40:168 100.00 +func_00504550 src/game/00504550.c match func_005055E8 main:.text:005055E8:244,frontbin:.text:00504EE8:244 100.00 +func_00504648 src/game/00504648.c match func_005056E0 main:.text:005056E0:244,frontbin:.text:00504FE0:244 100.00 func_00504740 src/game/00504740.c match func_005057D8 main:.text:005057D8:244,frontbin:.text:005050D8:244 100.00 func_00504840 src/game/00504840.c match func_005058D8 main:.text:005058D8:108,frontbin:.text:005051D8:108 100.00 func_005048B8 src/game/005048B8.c match func_00505950 main:.text:00505950:244,frontbin:.text:00505250:244 100.00 func_005049B8 src/game/005049B8.c match func_00505A50 main:.text:00505A50:228,frontbin:.text:00505350:228 100.00 +func_00504AA8 src/game/00504AA8.c match func_00505B40 main:.text:00505B40:228,frontbin:.text:00505440:228 100.00 func_00504B90 src/game/00504B90.c match func_00505C28 main:.text:00505C28:228,frontbin:.text:00505528:228 100.00 func_00504C80 src/game/00504C80.c match func_00505D18 main:.text:00505D18:228,frontbin:.text:00505618:228 100.00 func_00504CC8 src/pal/game/00504CC8.c match func_00504CC8 main:.text:00504CC8:204 100.00 func_00504D68 src/game/00504D68.c match func_00505E00 main:.text:00505E00:244,frontbin:.text:00505700:244 100.00 func_00504E68 src/game/00504E68.c match func_00505F00 main:.text:00505F00:244,frontbin:.text:00505800:244 100.00 +func_00504F68 src/game/00504F68.c match func_00506000 main:.text:00506000:212,frontbin:.text:00505900:212 100.00 func_00505040 src/game/00505040.c match func_005060D8 main:.text:005060D8:212,frontbin:.text:005059D8:212 100.00 func_00505118 src/game/00505118.c match func_005061B0 main:.text:005061B0:276,frontbin:.text:00505AB0:276 100.00 func_00505148 src/pal/game/00505148.c match func_00505148 main:.text:00505148:376 100.00 +func_00505238 src/game/00505238.c match func_005062D0 main:.text:005062D0:228,frontbin:.text:00505BD0:228 100.00 func_005052D0 src/pal/game/005052D0.c match func_005052D0 main:.text:005052D0:244 100.00 +func_00505328 src/game/00505328.c match func_005063C0 main:.text:005063C0:228,frontbin:.text:00505CC0:228 100.00 func_00505410 src/game/00505410.c match func_005064A8 main:.text:005064A8:228,frontbin:.text:00505DA8:228 100.00 func_005054F8 src/game/005054F8.c match func_00506590 main:.text:00506590:228,frontbin:.text:00505E90:228 100.00 func_005055E0 src/game/005055E0.c match func_00506678 main:.text:00506678:228,frontbin:.text:00505F78:228 100.00 @@ -3252,6 +3366,7 @@ func_00507FF0 src/game/00507FF0.c match func_00509088 main:.text:00509088:112,fr func_00508060 src/game/00508060.c match func_005090F8 main:.text:005090F8:112,frontbin:.text:005089F8:112 100.00 func_005080D0 src/game/005080D0.c match func_00509168 main:.text:00509168:112,frontbin:.text:00508A68:112 100.00 func_00508140 src/game/00508140.c match func_005091D8 main:.text:005091D8:112,frontbin:.text:00508AD8:112 100.00 +func_005081B0 src/game/005081B0.c match func_00509248 main:.text:00509248:376,frontbin:.text:00508B48:376 100.00 func_00508328 src/game/00508328.c match func_005093C0 main:.text:005093C0:100,frontbin:.text:00508CC0:100 100.00 func_00508390 src/game/00508390.c match func_00509428 main:.text:00509428:192,frontbin:.text:00508D28:192 100.00 func_00508450 src/game/00508450.c match func_005094E8 main:.text:005094E8:104,frontbin:.text:00508DE8:104 100.00 @@ -3376,9 +3491,11 @@ func_0050BC50 src/game/0050BC50.c match func_0050CCE8 main:.text:0050CCE8:120,fr func_0050BCC8 src/game/0050BCC8.c match func_0050CD60 main:.text:0050CD60:100,frontbin:.text:0050C660:100 100.00 func_0050BD30 src/game/0050BD30.c match func_0050CDC8 main:.text:0050CDC8:100,frontbin:.text:0050C6C8:100 100.00 func_0050BD98 src/game/0050BD98.c match func_0050CE30 main:.text:0050CE30:104,frontbin:.text:0050C730:104 100.00 +func_0050BE90 src/game/0050BE90.c match func_0050CF28 main:.text:0050CF28:276,frontbin:.text:0050C828:276 100.00 func_0050BFA8 src/game/0050BFA8.c match func_0050D040 main:.text:0050D040:172,frontbin:.text:0050C940:172 100.00 func_0050C058 src/game/0050C058.c match func_0050D0F0 main:.text:0050D0F0:52,frontbin:.text:0050C9F0:52 100.00 func_0050C090 src/game/0050C090.c match func_0050D128 main:.text:0050D128:108,frontbin:.text:0050CA28:108 100.00 +func_0050C100 src/game/0050C100.c match func_0050D198 main:.text:0050D198:428,frontbin:.text:0050CA98:428 100.00 func_0050C2B0 src/game/0050C2B0.c match func_0050D348 main:.text:0050D348:180,frontbin:.text:0050CC48:180 100.00 func_0050C368 src/game/0050C368.c match func_0050D400 main:.text:0050D400:8,frontbin:.text:0050CD00:8 100.00 func_0050C4B0 src/game/0050C4B0.c match func_0050D548 main:.text:0050D548:48,frontbin:.text:0050CE48:48 100.00 @@ -3390,6 +3507,7 @@ func_0050C630 src/game/0050C630.c match func_0050D6C8 main:.text:0050D6C8:8,fron func_0050C638 src/game/0050C638.c match func_0050D6D0 main:.text:0050D6D0:264,frontbin:.text:0050CFD0:264 100.00 func_0050C740 src/game/0050C740.c match func_0050D7D8 main:.text:0050D7D8:28,frontbin:.text:0050D0D8:28 100.00 func_0050C768 src/game/0050C768.c match func_0050D800 main:.text:0050D800:108,frontbin:.text:0050D100:108 100.00 +func_0050C7D8 src/game/0050C7D8.c match func_0050D870 main:.text:0050D870:240,frontbin:.text:0050D170:240 100.00 func_0050CC98 src/game/0050CC98.c match func_0050DD30 main:.text:0050DD30:280,frontbin:.text:0050D630:280 100.00 func_0050CDB0 src/game/0050CDB0.c match func_0050DE48 main:.text:0050DE48:112,frontbin:.text:0050D748:112 100.00 func_0050CE20 src/game/0050CE20.c match func_0050DEB8 main:.text:0050DEB8:36,frontbin:.text:0050D7B8:36 100.00 @@ -3473,6 +3591,7 @@ func_00510CA8 src/game/00510CA8.c match func_00511D80 main:.text:00511D80:108,fr func_00510DE0 src/game/00510DE0.c match func_00511EB8 main:.text:00511EB8:68,frontbin:.text:005117B8:68 100.00 func_00510EB0 src/game/00510EB0.c match func_00511F88 main:.text:00511F88:20,frontbin:.text:00511888:20 100.00 func_00510FB8 src/game/00510FB8.c match func_00512090 main:.text:00512090:68,frontbin:.text:00511990:68 100.00 +func_00511060 src/game/00511060.c match func_00512138 main:.text:00512138:240,frontbin:.text:00511A38:240 100.00 func_00511150 src/game/00511150.c match func_00512228 main:.text:00512228:124,frontbin:.text:00511B28:124 100.00 func_00511298 src/game/00511298.c match func_00512370 main:.text:00512370:44,frontbin:.text:00511C70:44 100.00 func_005112C8 src/game/005112C8.c match func_005123A0 main:.text:005123A0:68,frontbin:.text:00511CA0:68 100.00 @@ -3511,6 +3630,7 @@ func_005176C8 src/pal/game/005176C8.c match func_005176C8 main:.text:005176C8:74 func_005179B0 src/pal/game/005179B0.c match func_005179B0 main:.text:005179B0:456 100.00 func_00517B28 src/game/00517B28.c match func_00518C08 main:.text:00518C08:132,frontbin:.text:00518508:132 100.00 func_00517F30 src/game/00517F30.c match func_00519010 main:.text:00519010:28,frontbin:.text:00518910:28 100.00 +func_0051A638 src/game/0051A638.c match func_0051B7B8 main:.text:0051B7B8:340,frontbin:.text:0051B0B8:340 100.00 func_0051A790 src/game/0051A790.c match func_0051B910 main:.text:0051B910:140,frontbin:.text:0051B210:140 100.00 func_0051AE08 src/game/0051AE08.c match func_0051BF88 main:.text:0051BF88:8,frontbin:.text:0051B888:8 100.00 func_0051AEF8 src/game/0051AEF8.c match func_0051C078 main:.text:0051C078:224,frontbin:.text:0051B978:224 100.00 @@ -3588,6 +3708,7 @@ func_0053CC50 src/game/0053CC50.c match func_0053E000 main:.text:0053E000:8,fron func_0053CC58 src/game/0053CC58.c match func_0053E008 main:.text:0053E008:44,frontbin:.text:0053D908:44 100.00 func_0053CC88 src/game/0053CC88.c match func_0053E038 main:.text:0053E038:84,frontbin:.text:0053D938:84 100.00 func_0053CCF0 src/game/0053CCF0.c match func_0053E0A0 main:.text:0053E0A0:184,frontbin:.text:0053D9A0:184 100.00 +func_0053D6E0 src/game/0053D6E0.c match func_0053EA90 main:.text:0053EA90:260,frontbin:.text:0053E390:260 100.00 func_0053E0D8 src/game/0053E0D8.c match func_0053F4D8 main:.text:0053F4D8:64,frontbin:.text:0053EDD8:64 100.00 func_0053E150 src/game/0053E150.c match func_00549F78 main:.text:00549F78:8,frontbin:.text:00549878:8 100.00 func_0053EA90 src/pal/game/0053EA90.c match func_0053EA90 main:.text:0053EA90:260 100.00 @@ -3638,6 +3759,7 @@ func_00547D98 src/game/00547D98.c match func_00549300 main:.text:00549300:44,fro func_00547E30 src/game/00547E30.c match func_00549398 main:.text:00549398:152,frontbin:.text:00548C98:152 100.00 func_00547FF8 src/game/00547FF8.c match func_00549560 main:.text:00549560:28,frontbin:.text:00548E60:28 100.00 func_00548018 src/game/00548018.c match func_00549580 main:.text:00549580:36,frontbin:.text:00548E80:36 100.00 +func_005480A8 src/game/005480A8.c match func_00549610 main:.text:00549610:256,frontbin:.text:00548F10:256 100.00 func_00548478 src/game/00548478.c match func_005499E0 main:.text:005499E0:80,frontbin:.text:005492E0:80 100.00 func_00548518 src/game/00548518.c match func_00549A80 main:.text:00549A80:48,frontbin:.text:00549380:48 100.00 func_00548550 src/game/00548550.c differs - - 0.00 @@ -3667,6 +3789,7 @@ func_00549DC0 src/game/00549DC0.c match func_0054B328 main:.text:0054B328:328,fr func_00549F08 src/game/00549F08.c match func_0054B470 main:.text:0054B470:200,frontbin:.text:0054AD70:200 100.00 func_00549FD0 src/game/00549FD0.c match func_0054B538 main:.text:0054B538:96,frontbin:.text:0054AE38:96 100.00 func_0054A038 src/game/0054A038.c match func_0054B5A0 main:.text:0054B5A0:136,frontbin:.text:0054AEA0:136 100.00 +func_0054A0C0 src/game/0054A0C0.c match func_0054B628 main:.text:0054B628:204,frontbin:.text:0054AF28:204 100.00 func_0054A190 src/game/0054A190.c match func_0054B6F8 main:.text:0054B6F8:204,frontbin:.text:0054AFF8:204 100.00 func_0054A268 src/game/0054A268.c match func_0054B7D0 main:.text:0054B7D0:36,frontbin:.text:0054B0D0:36 100.00 func_0054A360 src/pal/game/0054A360.c match func_0054A360 main:.text:0054A360:336 100.00 @@ -3702,10 +3825,11 @@ func_0054B5A8 src/game/0054B5A8.c match func_0054CB10 main:.text:0054CB10:28,fro func_0054B628 src/pal/game/0054B628.c match func_0054B628 main:.text:0054B628:204 100.00 func_0054BA08 src/pal/game/0054BA08.c match func_0054BA08 main:.text:0054BA08:224 100.00 func_0054BCF0 src/pal/game/0054BCF0.c match func_0054BCF0 main:.text:0054BCF0:84 100.00 -func_0054C250 src/pal/game/0054C250.c match func_0054C250 main:.text:0054C250:224 100.00 +func_0054C250 src/game/0054C250.c match func_0054C250 main:.text:0054C250:224,frontbin:.text:0054BB50:224 100.00 func_0054C330 src/pal/game/0054C330.c match func_0054C330 main:.text:0054C330:208 100.00 func_0054C650 src/pal/game/0054C650.c match func_0054C650 main:.text:0054C650:100 100.00 func_0054CBE0 src/game/0054CBE0.c match func_0054E148 main:.text:0054E148:124,frontbin:.text:0054DA48:124 100.00 +func_0054CC60 src/game/0054CC60.c match func_0054E1C8 main:.text:0054E1C8:544,frontbin:.text:0054DAC8:544 100.00 func_0054CE80 src/game/0054CE80.c match func_0054E3E8 main:.text:0054E3E8:104,frontbin:.text:0054DCE8:104 100.00 func_0054D3A8 src/game/0054D3A8.c match func_0054E910 main:.text:0054E910:88,frontbin:.text:0054E210:88 100.00 func_0054D400 src/game/0054D400.c match func_0054E968 main:.text:0054E968:424,frontbin:.text:0054E268:424 100.00 @@ -4705,12 +4829,14 @@ func_L00_004F8268 src/overlays/l00_multiplayer_menu/L00_004F8268.c match func_L0 func_L00_004F8680 src/overlays/l00_multiplayer_menu/L00_004F8680.c match func_L00_004F8B80 level_00:.text:004F8B80:24 100.00 func_L00_004F8C38 src/overlays/l00_multiplayer_menu/L00_004F8C38.c match func_L00_004F9138 level_00:.text:004F9138:8 100.00 func_L00_004F8C40 src/overlays/l00_multiplayer_menu/L00_004F8C40.c match func_L00_004F9140 level_00:.text:004F9140:152 100.00 +func_L00_004F8F78 src/overlays/l00_multiplayer_menu/L00_004F8F78.c match func_L00_004F9478 level_00:.text:004F9478:260 100.00 func_L00_004FACD8 src/overlays/l00_multiplayer_menu/L00_004FACD8.c match func_L00_004FB1D8 level_00:.text:004FB1D8:36 100.00 func_L00_004FAD00 src/overlays/l00_multiplayer_menu/L00_004FAD00.c match func_L00_004FB200 level_00:.text:004FB200:36 100.00 func_L00_004FB1D8 src/pal/overlays/l00_multiplayer_menu/L00_004FB1D8.c match func_L00_004FB1D8 level_00:.text:004FB1D8:36 100.00 func_L00_004FB200 src/pal/overlays/l00_multiplayer_menu/L00_004FB200.c match func_L00_004FB200 level_00:.text:004FB200:36 100.00 func_L00_004FBA28 src/overlays/l00_multiplayer_menu/L00_004FBA28.c match func_L00_004FBF28 level_00:.text:004FBF28:52 100.00 func_L00_004FBD60 src/overlays/l00_multiplayer_menu/L00_004FBD60.c match func_L00_004FC260 level_00:.text:004FC260:48 100.00 +func_L00_004FD6B8 src/overlays/l00_multiplayer_menu/L00_004FD6B8.c match func_L00_004FDBB8 level_00:.text:004FDBB8:256 100.00 func_L00_004FD9E8 src/overlays/l00_multiplayer_menu/L00_004FD9E8.c match func_L00_004FDEE8 level_00:.text:004FDEE8:36 100.00 func_L00_004FDA10 src/overlays/shared/L00_004FDA10.c match func_L00_004FDF10 level_00:.text:004FDF10:8 100.00 func_L00_004FDE68 src/overlays/l00_multiplayer_menu/L00_004FDE68.c match func_L00_004FE368 level_00:.text:004FE368:172 100.00 @@ -4732,7 +4858,9 @@ func_L00_00500CC0 src/overlays/l00_multiplayer_menu/L00_00500CC0.c match func_L0 func_L00_00500CC8 src/overlays/l00_multiplayer_menu/L00_00500CC8.c match func_L00_005011C8 level_00:.text:005011C8:12 100.00 func_L00_00500CF0 src/overlays/shared/L00_00500CF0.c match func_L00_005011F0 level_00:.text:005011F0:8 100.00 func_L00_00500CF8 src/overlays/l00_multiplayer_menu/L00_00500CF8.c match func_L00_005011F8 level_00:.text:005011F8:16 100.00 +func_L00_00501980 src/overlays/l00_multiplayer_menu/L00_00501980.c match func_L00_00501E80 level_00:.text:00501E80:260 100.00 func_L00_00501E98 src/overlays/l00_multiplayer_menu/L00_00501E98.c match func_L00_00502398 level_00:.text:00502398:104 100.00 +func_L00_00505368 src/overlays/l00_multiplayer_menu/L00_00505368.c match func_L00_00505868 level_00:.text:00505868:268 100.00 func_L00_00505FF8 src/overlays/l00_multiplayer_menu/L00_00505FF8.c match func_L00_005064F8 level_00:.text:005064F8:48 100.00 func_L00_00506028 src/overlays/l00_multiplayer_menu/L00_00506028.c match func_L00_00506528 level_00:.text:00506528:60 100.00 func_L00_00506368 src/overlays/l00_multiplayer_menu/L00_00506368.c match func_L00_00506868 level_00:.text:00506868:104 100.00 @@ -4847,6 +4975,7 @@ func_L00_0051D278 src/overlays/l00_multiplayer_menu/L00_0051D278.c match func_L0 func_L00_0051D3D8 src/overlays/l00_multiplayer_menu/L00_0051D3D8.c match func_L00_0051D8D8 level_00:.text:0051D8D8:56 100.00 func_L00_0051D410 src/overlays/l00_multiplayer_menu/L00_0051D410.c match func_L00_0051D910 level_00:.text:0051D910:676 100.00 func_L00_0051D878 src/overlays/l00_multiplayer_menu/L00_0051D878.c match func_L00_0051DD78 level_00:.text:0051DD78:572 100.00 +func_L00_0051E1D8 src/overlays/l00_multiplayer_menu/L00_0051E1D8.c match func_L00_0051E6D8 level_00:.text:0051E6D8:104 100.00 func_L00_0051E250 src/overlays/l00_multiplayer_menu/L00_0051E250.c match func_L00_0051E750 level_00:.text:0051E750:104 100.00 func_L00_0051E2B8 src/overlays/l00_multiplayer_menu/L00_0051E2B8.c match func_L00_0051E7B8 level_00:.text:0051E7B8:764 100.00 func_L00_0051E6B8 src/overlays/l00_multiplayer_menu/L00_0051E6B8.c match func_L00_0051EBB8 level_00:.text:0051EBB8:476 100.00 @@ -4888,6 +5017,7 @@ func_L00_005269F0 src/overlays/l00_multiplayer_menu/L00_005269F0.c match func_L0 func_L00_00526AC8 src/overlays/l00_multiplayer_menu/L00_00526AC8.c match func_L00_00526FC8 level_00:.text:00526FC8:12 100.00 func_L00_00526AD8 src/overlays/l00_multiplayer_menu/L00_00526AD8.c match func_L00_00526FD8 level_00:.text:00526FD8:12 100.00 func_L00_00526AE8 src/overlays/l00_multiplayer_menu/L00_00526AE8.c match func_L00_00526FE8 level_00:.text:00526FE8:12 100.00 +func_L00_00526DA8 src/overlays/l00_multiplayer_menu/L00_00526DA8.c match func_L00_005272A8 level_00:.text:005272A8:260 100.00 func_L00_00526EB0 src/overlays/l00_multiplayer_menu/L00_00526EB0.c match func_L00_005273B0 level_00:.text:005273B0:80 100.00 func_L00_00527340 src/overlays/l00_multiplayer_menu/L00_00527340.c match func_L00_00527840 level_00:.text:00527840:596 100.00 func_L00_00527DE0 src/overlays/l00_multiplayer_menu/L00_00527DE0.c match func_L00_005282E0 level_00:.text:005282E0:432 100.00 @@ -5062,6 +5192,7 @@ func_L00_005421E0 src/overlays/l00_multiplayer_menu/L00_005421E0.c match func_L0 func_L00_005424F8 src/overlays/l00_multiplayer_menu/L00_005424F8.c match func_L00_005429F8 level_00:.text:005429F8:24 100.00 func_L00_00542FC0 src/overlays/l00_multiplayer_menu/L00_00542FC0.c match func_L00_005434C0 level_00:.text:005434C0:24 100.00 func_L00_00543218 src/overlays/l00_multiplayer_menu/L00_00543218.c match func_L00_00543718 level_00:.text:00543718:24 100.00 +func_L00_00545C48 src/overlays/l00_multiplayer_menu/L00_00545C48.c match func_L00_00546148 level_00:.text:00546148:104 100.00 func_L00_00546148 src/pal/overlays/l00_multiplayer_menu/L00_00546148.c match func_L00_00546148 level_00:.text:00546148:104 100.00 func_L00_005461D8 src/overlays/l00_multiplayer_menu/L00_005461D8.c match func_L00_005466D8 level_00:.text:005466D8:440 100.00 func_L00_00546390 src/overlays/l00_multiplayer_menu/L00_00546390.c match func_L00_00546890 level_00:.text:00546890:28 100.00 @@ -5074,6 +5205,7 @@ func_L00_00547998 src/overlays/l00_multiplayer_menu/L00_00547998.c match func_L0 func_L00_00547CF0 src/overlays/l00_multiplayer_menu/L00_00547CF0.c match func_L00_005481F0 level_00:.text:005481F0:468 100.00 func_L00_00548028 src/overlays/l00_multiplayer_menu/L00_00548028.c match func_L00_00548528 level_00:.text:00548528:20 100.00 func_L00_00548040 src/overlays/l00_multiplayer_menu/L00_00548040.c match func_L00_00548540 level_00:.text:00548540:48 100.00 +func_L00_00551DA0 src/overlays/l00_multiplayer_menu/L00_00551DA0.c match func_L00_005522A0 level_00:.text:005522A0:48 100.00 func_L00_00551DD0 src/overlays/l00_multiplayer_menu/L00_00551DD0.c match func_L00_005522D0 level_00:.text:005522D0:32 100.00 func_L00_00551E18 src/overlays/l00_multiplayer_menu/L00_00551E18.c match func_L00_00552318 level_00:.text:00552318:496 100.00 func_L00_00552038 src/overlays/l00_multiplayer_menu/L00_00552038.c match func_L00_00552538 level_00:.text:00552538:12 100.00 @@ -5096,7 +5228,9 @@ func_L00_00559B50 src/overlays/l00_multiplayer_menu/L00_00559B50.c match func_L0 func_L00_0055AB58 src/overlays/l00_multiplayer_menu/L00_0055AB58.c match func_L00_0055B058 level_00:.text:0055B058:64 100.00 func_L00_0055BD50 src/overlays/l00_multiplayer_menu/L00_0055BD50.c match func_L00_0055C250 level_00:.text:0055C250:24 100.00 func_L00_0055BD68 src/overlays/l00_multiplayer_menu/L00_0055BD68.c match func_L00_0055C268 level_00:.text:0055C268:24 100.00 +func_L00_00565150 src/overlays/l00_multiplayer_menu/L00_00565150.c match func_L00_00565650 level_00:.text:00565650:104 100.00 func_L00_00565650 src/pal/overlays/l00_multiplayer_menu/L00_00565650.c match func_L00_00565650 level_00:.text:00565650:104 100.00 +func_L00_005661C8 src/overlays/l00_multiplayer_menu/L00_005661C8.c match func_L00_005666C8 level_00:.text:005666C8:104 100.00 func_L00_00566230 src/overlays/shared/L00_00566230.c match func_L00_00566730 level_00:.text:00566730:28 100.00 func_L00_00566250 src/overlays/shared/L00_00566250.c match func_L00_00566750 level_00:.text:00566750:28 100.00 func_L00_00566270 src/overlays/shared/L00_00566270.c match func_L00_00566770 level_00:.text:00566770:28 100.00 @@ -5176,6 +5310,7 @@ func_L00_005969C8 src/overlays/shared/L00_005969C8.c match func_L00_005975C8 lev func_L00_005969E8 src/overlays/shared/L00_005969E8.c match func_L00_005975E8 level_00:.text:005975E8:28 100.00 func_L00_00596A08 src/overlays/shared/L00_00596A08.c match func_L00_00597608 level_00:.text:00597608:28 100.00 func_L00_00599350 src/overlays/shared/L00_00599350.c differs - - 0.00 +func_L00_00599710 src/overlays/shared/L00_00599710.c differs - - 0.00 func_L00_00599918 src/overlays/shared/L00_00599918.c match func_L00_0059A520 level_00:.text:0059A520:8 100.00 func_L00_00599920 src/overlays/shared/L00_00599920.c match func_L00_0059A528 level_00:.text:0059A528:8 100.00 func_L00_005999D0 src/overlays/shared/L00_005999D0.c match func_L00_0059A5D8 level_00:.text:0059A5D8:88 100.00 @@ -5347,6 +5482,15 @@ func_L00_005FFEB0 src/overlays/shared/L00_005FFEB0.c match func_L00_00602B10 lev func_L00_00601788 src/overlays/shared/L00_00601788.c match func_L00_006043E8 level_00:.text:006043E8:28 100.00 func_L00_006017A8 src/overlays/shared/L00_006017A8.c match func_L00_00604408 level_00:.text:00604408:224 100.00 func_L00_00601D20 src/pal/overlays/shared/L00_00601D20.c match func_L00_00601D20 level_00:.text:00601D20:112 100.00 +func_L00_006027E8 src/overlays/shared/L00_006027E8.c match func_L00_00605448 level_00:.text:00605448:228 100.00 +func_L00_006028D0 src/overlays/shared/L00_006028D0.c match func_L00_00605530 level_00:.text:00605530:228 100.00 +func_L00_00602AA0 src/overlays/shared/L00_00602AA0.c match func_L00_00605700 level_00:.text:00605700:228 100.00 +func_L00_00602B88 src/overlays/shared/L00_00602B88.c match func_L00_006057E8 level_00:.text:006057E8:204 100.00 +func_L00_00602C58 src/overlays/shared/L00_00602C58.c match func_L00_006058B8 level_00:.text:006058B8:204 100.00 +func_L00_00602D28 src/overlays/shared/L00_00602D28.c match func_L00_00605988 level_00:.text:00605988:228 100.00 +func_L00_00602E10 src/overlays/shared/L00_00602E10.c match func_L00_00605A70 level_00:.text:00605A70:228 100.00 +func_L00_00602EF8 src/overlays/shared/L00_00602EF8.c match func_L00_00605B58 level_00:.text:00605B58:228 100.00 +func_L00_00602FE0 src/overlays/shared/L00_00602FE0.c match func_L00_00605C40 level_00:.text:00605C40:228 100.00 func_L00_00603418 src/overlays/shared/L00_00603418.c match func_L00_00606078 level_00:.text:00606078:56 100.00 func_L00_00603EC8 src/overlays/shared/L00_00603EC8.c match func_L00_00606B28 level_00:.text:00606B28:28 100.00 func_L00_00605448 src/pal/overlays/l00_multiplayer_menu/L00_00605448.c match func_L00_00605448 level_00:.text:00605448:228 100.00 @@ -5456,6 +5600,7 @@ func_L00_00624A78 src/overlays/shared/L00_00624A78.c match func_L00_00627C78 lev func_L00_00625838 src/overlays/shared/L00_00625838.c match func_L00_00628A38 level_00:.text:00628A38:116 100.00 func_L00_006268E8 src/overlays/shared/L00_006268E8.c match func_L00_00629AE8 level_00:.text:00629AE8:44 100.00 func_L00_00626918 src/overlays/shared/L00_00626918.c match func_L00_00629B18 level_00:.text:00629B18:44 100.00 +func_L00_006282F0 src/overlays/shared/L00_006282F0.c match func_L00_0062B4F0 level_00:.text:0062B4F0:376 100.00 func_L00_00628D90 src/overlays/shared/L00_00628D90.c match func_L00_0062BFD8 level_00:.text:0062BFD8:72 100.00 func_L00_00628DD8 src/overlays/shared/L00_00628DD8.c match func_L00_0062BFD8 level_00:.text:0062BFD8:72 100.00 func_L00_006294F8 src/overlays/shared/L00_006294F8.c match func_L00_0062C6F8 level_00:.text:0062C6F8:92 100.00 @@ -5568,6 +5713,7 @@ func_L00_00642AF0 src/overlays/shared/L00_00642AF0.c match func_L00_00645DF8 lev func_L00_00642C10 src/overlays/shared/L00_00642C10.c match func_L00_00645ED8 level_00:.text:00645ED8:336 100.00 func_L00_00643598 src/overlays/shared/L00_00643598.c match func_L00_00646860 level_00:.text:00646860:156 100.00 func_L00_006437A0 src/overlays/shared/L00_006437A0.c match func_L00_00646A68 level_00:.text:00646A68:56 100.00 +func_L00_00644D18 src/overlays/shared/L00_00644D18.c match func_L00_00647FE0 level_00:.text:00647FE0:476 100.00 func_L00_00644F38 src/overlays/shared/L00_00644F38.c match func_L00_00648200 level_00:.text:00648200:108 100.00 func_L00_006452E8 src/overlays/shared/L00_006452E8.c match func_L00_006485B0 level_00:.text:006485B0:336 100.00 func_L00_00645760 src/overlays/shared/L00_00645760.c match func_L00_00648A28 level_00:.text:00648A28:156 100.00 @@ -5581,6 +5727,7 @@ func_L00_0064C338 src/overlays/shared/L00_0064C338.c match func_L00_0064F628 lev func_L00_0064D3F0 src/overlays/shared/L00_0064D3F0.c match func_L00_006506E0 level_00:.text:006506E0:28 100.00 func_L00_0064D4D8 src/overlays/shared/L00_0064D4D8.c match func_L00_006507C8 level_00:.text:006507C8:8 100.00 func_L00_0064D4F0 src/overlays/shared/L00_0064D4F0.c match func_L00_006507E0 level_00:.text:006507E0:336 100.00 +func_L00_0064DC68 src/overlays/shared/L00_0064DC68.c match func_L00_00650F58 level_00:.text:00650F58:476 100.00 func_L00_0064EFA8 src/overlays/shared/L00_0064EFA8.c match func_L00_00652298 level_00:.text:00652298:64 100.00 func_L00_0064F4F0 src/overlays/shared/L00_0064F4F0.c match func_L00_006527E0 level_00:.text:006527E0:56 100.00 func_L00_00650148 src/overlays/shared/L00_00650148.c match func_L00_00653438 level_00:.text:00653438:92 100.00 @@ -5695,6 +5842,7 @@ func_L00_00664CB8 src/overlays/shared/L00_00664CB8.c match func_L00_006680E0 lev func_L00_00665120 src/overlays/shared/L00_00665120.c match func_L00_00668548 level_00:.text:00668548:64 100.00 func_L00_00665160 src/overlays/shared/L00_00665160.c match func_L00_00668588 level_00:.text:00668588:180 100.00 func_L00_00665218 src/overlays/shared/L00_00665218.c match func_L00_00668640 level_00:.text:00668640:32 100.00 +func_L00_00666CE8 src/overlays/shared/L00_00666CE8.c match func_L00_0066A110 level_00:.text:0066A110:264 100.00 func_L00_00666DF0 src/overlays/shared/L00_00666DF0.c match func_L00_0066A218 level_00:.text:0066A218:260 100.00 func_L00_00666EF8 src/overlays/shared/L00_00666EF8.c match func_L00_0066A320 level_00:.text:0066A320:132 100.00 func_L00_00666F80 src/overlays/shared/L00_00666F80.c match func_L00_0066A3A8 level_00:.text:0066A3A8:80 100.00 @@ -5791,7 +5939,9 @@ func_L00_0069C298 src/overlays/l00_multiplayer_menu/L00_0069C298.c match func_L0 func_L00_0069C340 src/overlays/shared/L00_0069C340.c match func_L00_0069FB20 level_00:.text:0069FB20:244 100.00 func_L00_0069C438 src/overlays/shared/L00_0069C438.c match func_L00_0069FC18 level_00:.text:0069FC18:244 100.00 func_L00_0069C530 src/overlays/shared/L00_0069C530.c match func_L00_0069FD10 level_00:.text:0069FD10:244 100.00 +func_L00_0069C6A8 src/overlays/shared/L00_0069C6A8.c match func_L00_0069FE88 level_00:.text:0069FE88:244 100.00 func_L00_0069C7A8 src/overlays/shared/L00_0069C7A8.c match func_L00_0069FF88 level_00:.text:0069FF88:228 100.00 +func_L00_0069C890 src/overlays/shared/L00_0069C890.c match func_L00_006A0070 level_00:.text:006A0070:244 100.00 func_L00_0069C988 src/overlays/shared/L00_0069C988.c match func_L00_006A0168 level_00:.text:006A0168:228 100.00 func_L00_0069CA70 src/overlays/shared/L00_0069CA70.c match func_L00_006A0250 level_00:.text:006A0250:228 100.00 func_L00_0069CB60 src/overlays/shared/L00_0069CB60.c match func_L00_006A0340 level_00:.text:006A0340:228 100.00 @@ -5805,9 +5955,11 @@ func_L00_0069D408 src/overlays/shared/L00_0069D408.c match func_L00_006A0BE8 lev func_L00_0069D4F0 src/overlays/shared/L00_0069D4F0.c match func_L00_006A0CD0 level_00:.text:006A0CD0:228 100.00 func_L00_0069D5D8 src/overlays/shared/L00_0069D5D8.c match func_L00_006A0DB8 level_00:.text:006A0DB8:228 100.00 func_L00_0069D6C0 src/overlays/shared/L00_0069D6C0.c match func_L00_006A0EA0 level_00:.text:006A0EA0:228 100.00 +func_L00_0069D7A8 src/overlays/shared/L00_0069D7A8.c match func_L00_006A0F88 level_00:.text:006A0F88:276 100.00 func_L00_0069D898 src/pal/overlays/l00_multiplayer_menu/L00_0069D898.c match func_L00_0069D898 level_00:.text:0069D898:8 100.00 func_L00_0069D8C0 src/overlays/l00_multiplayer_menu/L00_0069D8C0.c match func_L00_006A10A0 level_00:.text:006A10A0:244 100.00 func_L00_0069D9B8 src/overlays/l00_multiplayer_menu/L00_0069D9B8.c match func_L00_006A1198 level_00:.text:006A1198:144 100.00 +func_L00_0069DA50 src/overlays/l00_multiplayer_menu/L00_0069DA50.c match func_L00_006A1230 level_00:.text:006A1230:244 100.00 func_L00_0069DB48 src/overlays/shared/L00_0069DB48.c match func_L00_006A1328 level_00:.text:006A1328:228 100.00 func_L00_0069DCD8 src/overlays/shared/L00_0069DCD8.c match func_L00_006A14B8 level_00:.text:006A14B8:124 100.00 func_L00_0069DF18 src/overlays/l00_multiplayer_menu/L00_0069DF18.c match func_L00_006A16F8 level_00:.text:006A16F8:124 100.00 @@ -5841,6 +5993,7 @@ func_L00_006A04E0 src/overlays/shared/L00_006A04E0.c match func_L00_006A3CC0 lev func_L00_006A0550 src/overlays/shared/L00_006A0550.c match func_L00_006A3D30 level_00:.text:006A3D30:112 100.00 func_L00_006A05C0 src/overlays/shared/L00_006A05C0.c match func_L00_006A3DA0 level_00:.text:006A3DA0:112 100.00 func_L00_006A0630 src/overlays/shared/L00_006A0630.c match func_L00_006A3E10 level_00:.text:006A3E10:112 100.00 +func_L00_006A06A0 src/overlays/shared/L00_006A06A0.c match func_L00_006A3E80 level_00:.text:006A3E80:376 100.00 func_L00_006A0818 src/overlays/shared/L00_006A0818.c match func_L00_006A3FF8 level_00:.text:006A3FF8:100 100.00 func_L00_006A0880 src/overlays/shared/L00_006A0880.c match func_L00_006A4060 level_00:.text:006A4060:192 100.00 func_L00_006A0940 src/overlays/shared/L00_006A0940.c match func_L00_006A4120 level_00:.text:006A4120:104 100.00 @@ -6047,6 +6200,7 @@ func_L00_006D3860 src/overlays/shared/L00_006D3860.c match func_L00_006D7268 lev func_L00_006D38A0 src/overlays/shared/L00_006D38A0.c match func_L00_006D72A8 level_00:.text:006D72A8:8 100.00 func_L00_006D3930 src/overlays/shared/L00_006D3930.c match func_L00_006D7338 level_00:.text:006D7338:8 100.00 func_L00_006D4A90 src/pal/overlays/shared/L00_006D4A90.c match func_L00_006D4A90 level_00:.text:006D4A90:84 100.00 +func_L00_006E8D78 src/overlays/shared/L00_006E8D78.c match func_L00_006EC938 level_00:.text:006EC938:80 100.00 func_L00_006EA508 src/overlays/shared/L00_006EA508.c match func_L00_006EE0C8 level_00:.text:006EE0C8:28 100.00 func_L00_006EA5B8 src/overlays/shared/L00_006EA5B8.c match func_L00_006EE178 level_00:.text:006EE178:180 100.00 func_L00_006EA978 src/overlays/shared/L00_006EA978.c match func_L00_006EE538 level_00:.text:006EE538:52 100.00 @@ -6291,6 +6445,7 @@ func_L00_007111E0 src/overlays/l00_multiplayer_menu/L00_007111E0.c match func_L0 func_L00_00711338 src/overlays/l00_multiplayer_menu/L00_00711338.c match func_L00_00715158 level_00:.text:00715158:92 100.00 func_L00_00711398 src/overlays/l00_multiplayer_menu/L00_00711398.c match func_L00_007151B8 level_00:.text:007151B8:116 100.00 func_L00_00711410 src/overlays/l00_multiplayer_menu/L00_00711410.c match func_L00_00715230 level_00:.text:00715230:104 100.00 +func_L00_00711478 src/overlays/l00_multiplayer_menu/L00_00711478.c match func_L00_00715298 level_00:.text:00715298:132 100.00 func_L00_00711500 src/overlays/l00_multiplayer_menu/L00_00711500.c match func_L00_00715320 level_00:.text:00715320:116 100.00 func_L00_00711578 src/overlays/l00_multiplayer_menu/L00_00711578.c match func_L00_00715398 level_00:.text:00715398:116 100.00 func_L00_007115F0 src/overlays/l00_multiplayer_menu/L00_007115F0.c match func_L00_00715410 level_00:.text:00715410:8 100.00 @@ -6325,6 +6480,8 @@ func_L00_00712030 src/overlays/l00_multiplayer_menu/L00_00712030.c match func_L0 func_L00_00712040 src/overlays/l00_multiplayer_menu/L00_00712040.c match func_L00_00715E60 level_00:.text:00715E60:112 100.00 func_L00_007120B8 src/overlays/l00_multiplayer_menu/L00_007120B8.c match func_L00_00715ED8 level_00:.text:00715ED8:76 100.00 func_L00_00712108 src/overlays/l00_multiplayer_menu/L00_00712108.c match func_L00_00715F28 level_00:.text:00715F28:40 100.00 +func_L00_007121A0 src/overlays/l00_multiplayer_menu/L00_007121A0.c match func_L00_00715FC0 level_00:.text:00715FC0:128 100.00 +func_L00_00712220 src/overlays/l00_multiplayer_menu/L00_00712220.c match func_L00_00716040 level_00:.text:00716040:128 100.00 func_L00_007122A0 src/overlays/shared/L00_007122A0.c match func_L00_007160C0 level_00:.text:007160C0:8 100.00 func_L00_007122A8 src/overlays/shared/L00_007122A8.c match func_L00_007160C8 level_00:.text:007160C8:28 100.00 func_L00_007122C8 src/overlays/shared/L00_007122C8.c match func_L00_007160E8 level_00:.text:007160E8:8 100.00 @@ -6353,6 +6510,7 @@ func_L00_007132F0 src/overlays/l00_multiplayer_menu/L00_007132F0.c match func_L0 func_L00_00713318 src/overlays/l00_multiplayer_menu/L00_00713318.c match func_L00_00717138 level_00:.text:00717138:56 100.00 func_L00_00713350 src/overlays/shared/L00_00713350.c match func_L00_00717170 level_00:.text:00717170:8 100.00 func_L00_00713358 src/overlays/shared/L00_00713358.c match func_L00_00717178 level_00:.text:00717178:8 100.00 +func_L00_00713360 src/overlays/l00_multiplayer_menu/L00_00713360.c match func_L00_00717180 level_00:.text:00717180:48 100.00 func_L00_00713390 src/overlays/l00_multiplayer_menu/L00_00713390.c match func_L00_007171B0 level_00:.text:007171B0:140 100.00 func_L00_00713420 src/overlays/l00_multiplayer_menu/L00_00713420.c match func_L00_00717240 level_00:.text:00717240:12 100.00 func_L00_00713430 src/overlays/l00_multiplayer_menu/L00_00713430.c match func_L00_00717250 level_00:.text:00717250:8 100.00 @@ -6378,6 +6536,7 @@ func_L00_00713E88 src/overlays/shared/L00_00713E88.c match func_L00_00717CD0 lev func_L00_00713E90 src/overlays/shared/L00_00713E90.c match func_L00_00717CD8 level_00:.text:00717CD8:8 100.00 func_L00_00714150 src/overlays/l00_multiplayer_menu/L00_00714150.c match func_L00_00717F98 level_00:.text:00717F98:76 100.00 func_L00_007141A0 src/overlays/l00_multiplayer_menu/L00_007141A0.c match func_L00_00717FE8 level_00:.text:00717FE8:40 100.00 +func_L00_007141C8 src/overlays/l00_multiplayer_menu/L00_007141C8.c match func_L00_00718010 level_00:.text:00718010:56 100.00 func_L00_00714200 src/overlays/l00_multiplayer_menu/L00_00714200.c match func_L00_00718048 level_00:.text:00718048:32 100.00 func_L00_00714220 src/overlays/l00_multiplayer_menu/L00_00714220.c match func_L00_00718068 level_00:.text:00718068:40 100.00 func_L00_00714248 src/overlays/l00_multiplayer_menu/L00_00714248.c match func_L00_00718090 level_00:.text:00718090:8 100.00 @@ -6426,6 +6585,7 @@ func_L00_00714EE0 src/overlays/l00_multiplayer_menu/L00_00714EE0.c match func_L0 func_L00_00714EF0 src/overlays/l00_multiplayer_menu/L00_00714EF0.c match func_L00_00718D38 level_00:.text:00718D38:12 100.00 func_L00_00714F00 src/overlays/shared/L00_00714F00.c match func_L00_00718D48 level_00:.text:00718D48:8 100.00 func_L00_00714F08 src/overlays/shared/L00_00714F08.c match func_L00_00718D50 level_00:.text:00718D50:8 100.00 +func_L00_00714F10 src/overlays/l00_multiplayer_menu/L00_00714F10.c differs - - 0.00 func_L00_00715090 src/overlays/l00_multiplayer_menu/L00_00715090.c match func_L00_00718ED8 level_00:.text:00718ED8:92 100.00 func_L00_007150F0 src/overlays/l00_multiplayer_menu/L00_007150F0.c match func_L00_00718F38 level_00:.text:00718F38:80 100.00 func_L00_00715140 src/overlays/l00_multiplayer_menu/L00_00715140.c match func_L00_00718F88 level_00:.text:00718F88:116 100.00 @@ -6467,7 +6627,11 @@ func_L00_00716D98 src/overlays/shared/L00_00716D98.c match func_L00_0071ABE0 lev func_L00_00717030 src/pal/overlays/l00_multiplayer_menu/L00_00717030.c match func_L00_00717030 level_00:.text:00717030:36 100.00 func_L00_00717180 src/pal/overlays/l00_multiplayer_menu/L00_00717180.c match func_L00_00717180 level_00:.text:00717180:48 100.00 func_L00_007174C0 src/overlays/l00_multiplayer_menu/L00_007174C0.c match func_L00_0071B308 level_00:.text:0071B308:192 100.00 +func_L00_00717580 src/overlays/l00_multiplayer_menu/L00_00717580.c match func_L00_0071B3C8 level_00:.text:0071B3C8:248 100.00 +func_L00_00717678 src/overlays/l00_multiplayer_menu/L00_00717678.c match func_L00_0071B4C0 level_00:.text:0071B4C0:248 100.00 func_L00_00717770 src/overlays/l00_multiplayer_menu/L00_00717770.c match func_L00_0071B5B8 level_00:.text:0071B5B8:60 100.00 +func_L00_007177B0 src/overlays/l00_multiplayer_menu/L00_007177B0.c match func_L00_0071B5F8 level_00:.text:0071B5F8:248 100.00 +func_L00_007178A8 src/overlays/l00_multiplayer_menu/L00_007178A8.c match func_L00_0071B6F0 level_00:.text:0071B6F0:56 100.00 func_L00_007178E0 src/overlays/l00_multiplayer_menu/L00_007178E0.c match func_L00_0071B728 level_00:.text:0071B728:32 100.00 func_L00_00717900 src/overlays/l00_multiplayer_menu/L00_00717900.c match func_L00_0071B748 level_00:.text:0071B748:8 100.00 func_L00_00717908 src/overlays/l00_multiplayer_menu/L00_00717908.c match func_L00_0071B750 level_00:.text:0071B750:12 100.00 @@ -6545,6 +6709,7 @@ func_L00_00720EE0 src/overlays/l00_multiplayer_menu/L00_00720EE0.c match func_L0 func_L00_007211E0 src/overlays/l00_multiplayer_menu/L00_007211E0.c match func_L00_00725200 level_00:.text:00725200:76 100.00 func_L00_00721548 src/overlays/shared/L00_00721548.c match func_L00_00725568 level_00:.text:00725568:28 100.00 func_L00_00721758 src/overlays/shared/L00_00721758.c match func_L00_00725778 level_00:.text:00725778:8 100.00 +func_L00_00721A28 src/overlays/l00_multiplayer_menu/L00_00721A28.c differs - - 0.00 func_L00_00721FB0 src/overlays/l00_multiplayer_menu/L00_00721FB0.c match func_L00_00725FD0 level_00:.text:00725FD0:40 100.00 func_L00_00722178 src/overlays/l00_multiplayer_menu/L00_00722178.c match func_L00_007261C8 level_00:.text:007261C8:76 100.00 func_L00_00722328 src/overlays/shared/L00_00722328.c match func_L00_00726378 level_00:.text:00726378:28 100.00 @@ -6556,6 +6721,8 @@ func_L00_007231F0 src/overlays/shared/L00_007231F0.c match func_L00_00727300 lev func_L00_00723D80 src/overlays/l00_multiplayer_menu/L00_00723D80.c match func_L00_00727E90 level_00:.text:00727E90:40 100.00 func_L00_007240E8 src/overlays/l00_multiplayer_menu/L00_007240E8.c match func_L00_00728258 level_00:.text:00728258:76 100.00 func_L00_00724B70 src/overlays/shared/L00_00724B70.c match func_L00_00728CE0 level_00:.text:00728CE0:28 100.00 +func_L00_00725150 src/overlays/l00_multiplayer_menu/L00_00725150.c match func_L00_007292C0 level_00:.text:007292C0:52 100.00 +func_L00_00725188 src/overlays/l00_multiplayer_menu/L00_00725188.c differs - - 0.00 func_L00_00725A48 src/pal/overlays/l00_multiplayer_menu/L00_00725A48.c match func_L00_00725A48 level_00:.text:00725A48:456 100.00 func_L00_00726200 src/overlays/l00_multiplayer_menu/L00_00726200.c match func_L00_0072A370 level_00:.text:0072A370:40 100.00 func_L00_00726440 src/overlays/l00_multiplayer_menu/L00_00726440.c match func_L00_0072A618 level_00:.text:0072A618:76 100.00 @@ -6575,6 +6742,7 @@ func_L00_0072A108 src/overlays/shared/L00_0072A108.c match func_L00_0072E388 lev func_L00_0072A128 src/overlays/l00_multiplayer_menu/L00_0072A128.c match func_L00_0072E3A8 level_00:.text:0072E3A8:40 100.00 func_L00_0072A150 src/overlays/l00_multiplayer_menu/L00_0072A150.c match func_L00_0072E3D0 level_00:.text:0072E3D0:40 100.00 func_L00_0072A928 src/overlays/l00_multiplayer_menu/L00_0072A928.c match func_L00_0072EC00 level_00:.text:0072EC00:8 100.00 +func_L00_0072BD20 src/overlays/l00_multiplayer_menu/L00_0072BD20.c match func_L00_0072FFF8 level_00:.text:0072FFF8:80 100.00 func_L00_0072C570 src/overlays/l00_multiplayer_menu/L00_0072C570.c match func_L00_00730860 level_00:.text:00730860:76 100.00 func_L00_0072D110 src/overlays/l00_multiplayer_menu/L00_0072D110.c match func_L00_00731668 level_00:.text:00731668:44 100.00 func_L00_0072D140 src/overlays/l00_multiplayer_menu/L00_0072D140.c match func_L00_00731698 level_00:.text:00731698:160 100.00 @@ -6582,6 +6750,7 @@ func_L00_0072D878 src/pal/overlays/l00_multiplayer_menu/L00_0072D878.c match fun func_L00_0072E600 src/overlays/shared/L00_0072E600.c match func_L00_00732B78 level_00:.text:00732B78:28 100.00 func_L00_0072EF68 src/overlays/l00_multiplayer_menu/L00_0072EF68.c match func_L00_007334E0 level_00:.text:007334E0:12 100.00 func_L00_0072F888 src/overlays/l00_multiplayer_menu/L00_0072F888.c match func_L00_00733E00 level_00:.text:00733E00:1372 100.00 +func_L00_0072FDF0 src/overlays/l00_multiplayer_menu/L00_0072FDF0.c match func_L00_00734368 level_00:.text:00734368:80 100.00 func_L00_0072FFF8 src/pal/overlays/l00_multiplayer_menu/L00_0072FFF8.c match func_L00_0072FFF8 level_00:.text:0072FFF8:80 100.00 func_L00_007301F0 src/overlays/l00_multiplayer_menu/L00_007301F0.c match func_L00_00734768 level_00:.text:00734768:36 100.00 func_L00_00730760 src/overlays/shared/L00_00730760.c match func_L00_00734CD8 level_00:.text:00734CD8:28 100.00 @@ -6594,6 +6763,7 @@ func_L00_00733B40 src/overlays/shared/L00_00733B40.c match func_L00_00738100 lev func_L00_00733B68 src/overlays/l00_multiplayer_menu/L00_00733B68.c match func_L00_00738128 level_00:.text:00738128:60 100.00 func_L00_00733BA8 src/overlays/l00_multiplayer_menu/L00_00733BA8.c match func_L00_00738168 level_00:.text:00738168:56 100.00 func_L00_00734368 src/pal/overlays/l00_multiplayer_menu/L00_00734368.c match func_L00_00734368 level_00:.text:00734368:80 100.00 +func_L00_00734928 src/overlays/l00_multiplayer_menu/L00_00734928.c match func_L00_00738EE8 level_00:.text:00738EE8:80 100.00 func_L00_007356A0 src/overlays/shared/L00_007356A0.c match func_L00_00739D58 level_00:.text:00739D58:28 100.00 func_L00_00737208 src/overlays/l00_multiplayer_menu/L00_00737208.c match func_L00_0073B8C0 level_00:.text:0073B8C0:40 100.00 func_L00_00737230 src/overlays/l00_multiplayer_menu/L00_00737230.c match func_L00_0073B8E8 level_00:.text:0073B8E8:1280 100.00 @@ -6617,6 +6787,7 @@ func_L00_0073D928 src/overlays/l00_multiplayer_menu/L00_0073D928.c match func_L0 func_L00_0073E978 src/overlays/l00_multiplayer_menu/L00_0073E978.c match func_L00_00743070 level_00:.text:00743070:40 100.00 func_L00_0073EBC0 src/overlays/l00_multiplayer_menu/L00_0073EBC0.c match func_L00_00743368 level_00:.text:00743368:76 100.00 func_L00_0073F310 src/overlays/shared/L00_0073F310.c match func_L00_00743AB8 level_00:.text:00743AB8:28 100.00 +func_L00_0073F590 src/overlays/l00_multiplayer_menu/L00_0073F590.c match func_L00_00743D38 level_00:.text:00743D38:88 100.00 func_L00_00740838 src/overlays/l00_multiplayer_menu/L00_00740838.c match func_L00_00744FE0 level_00:.text:00744FE0:40 100.00 func_L00_00740AE0 src/overlays/l00_multiplayer_menu/L00_00740AE0.c match func_L00_00745310 level_00:.text:00745310:100 100.00 func_L00_00741000 src/overlays/shared/L00_00741000.c match func_L00_00745830 level_00:.text:00745830:28 100.00 @@ -6659,6 +6830,7 @@ func_L00_007493B8 src/overlays/l00_multiplayer_menu/L00_007493B8.c match func_L0 func_L00_00749408 src/overlays/l00_multiplayer_menu/L00_00749408.c match func_L00_0074E038 level_00:.text:0074E038:80 100.00 func_L00_0074A280 src/overlays/l00_multiplayer_menu/L00_0074A280.c match func_L00_0074EEB0 level_00:.text:0074EEB0:40 100.00 func_L00_0074A3C8 src/overlays/l00_multiplayer_menu/L00_0074A3C8.c match func_L00_0074EFF8 level_00:.text:0074EFF8:60 100.00 +func_L00_0074AC98 src/overlays/l00_multiplayer_menu/L00_0074AC98.c match func_L00_0074F8C8 level_00:.text:0074F8C8:80 100.00 func_L00_0074B058 src/overlays/l00_multiplayer_menu/L00_0074B058.c match func_L00_0074FC88 level_00:.text:0074FC88:76 100.00 func_L00_0074B7B0 src/overlays/l00_multiplayer_menu/L00_0074B7B0.c match func_L00_007503E0 level_00:.text:007503E0:28 100.00 func_L00_0074D140 src/overlays/l00_multiplayer_menu/L00_0074D140.c match func_L00_00751D70 level_00:.text:00751D70:40 100.00 @@ -6670,9 +6842,10 @@ func_L00_0074FF50 src/overlays/l00_multiplayer_menu/L00_0074FF50.c match func_L0 func_L00_00750290 src/overlays/l00_multiplayer_menu/L00_00750290.c match func_L00_00755000 level_00:.text:00755000:76 100.00 func_L00_007508F8 src/overlays/l00_multiplayer_menu/L00_007508F8.c match func_L00_00755668 level_00:.text:00755668:28 100.00 func_L00_00750918 src/overlays/l00_multiplayer_menu/L00_00750918.c match func_L00_00755688 level_00:.text:00755688:24 100.00 -func_L00_00751B48 src/overlays/l00_multiplayer_menu/L00_00751B48.c match func_L00_007568B8 level_00:.text:007568B8:44 100.00 +func_L00_00751B48 src/overlays/l00_multiplayer_menu/L00_00751B48.c match func_L00_007568E8 level_00:.text:007568E8:44 100.00 func_L00_00752488 src/overlays/l00_multiplayer_menu/L00_00752488.c match func_L00_00757278 level_00:.text:00757278:40 100.00 func_L00_00752780 src/overlays/l00_multiplayer_menu/L00_00752780.c match func_L00_00757568 level_00:.text:00757568:36 100.00 +func_L00_007527A8 src/overlays/l00_multiplayer_menu/L00_007527A8.c match func_L00_00757590 level_00:.text:00757590:56 100.00 func_L00_00753168 src/overlays/shared/L00_00753168.c match func_L00_00757F50 level_00:.text:00757F50:8 100.00 func_L00_00753190 src/overlays/l00_multiplayer_menu/L00_00753190.c match func_L00_00757F78 level_00:.text:00757F78:148 100.00 func_L00_00753C68 src/overlays/l00_multiplayer_menu/L00_00753C68.c match func_L00_00758A80 level_00:.text:00758A80:1028 100.00 @@ -6692,6 +6865,7 @@ func_L00_00757660 src/overlays/l00_multiplayer_menu/L00_00757660.c match func_L0 func_L00_00758C10 src/overlays/l00_multiplayer_menu/L00_00758C10.c match func_L00_0075DB08 level_00:.text:0075DB08:40 100.00 func_L00_00759E08 src/overlays/l00_multiplayer_menu/L00_00759E08.c match func_L00_0075EDA8 level_00:.text:0075EDA8:64 100.00 func_L00_0075A8B8 src/pal/overlays/l00_multiplayer_menu/L00_0075A8B8.c match func_L00_0075A8B8 level_00:.text:0075A8B8:48 100.00 +func_L00_0075B8F8 src/overlays/l00_multiplayer_menu/L00_0075B8F8.c match func_L00_00760898 level_00:.text:00760898:260 100.00 func_L00_0075C8C0 src/overlays/l00_multiplayer_menu/L00_0075C8C0.c match func_L00_00761860 level_00:.text:00761860:56 100.00 func_L00_0075CA50 src/overlays/l00_multiplayer_menu/L00_0075CA50.c match func_L00_007619F0 level_00:.text:007619F0:72 100.00 func_L00_0075D0E0 src/overlays/l00_multiplayer_menu/L00_0075D0E0.c match func_L00_00762080 level_00:.text:00762080:48 100.00 @@ -6752,6 +6926,7 @@ func_L00_007662D8 src/overlays/l00_multiplayer_menu/L00_007662D8.c match func_L0 func_L00_00766650 src/overlays/l00_multiplayer_menu/L00_00766650.c match func_L00_0076B660 level_00:.text:0076B660:1060 100.00 func_L00_00766C00 src/overlays/l00_multiplayer_menu/L00_00766C00.c match func_L00_0076BC10 level_00:.text:0076BC10:28 100.00 func_L00_00766DB0 src/overlays/l00_multiplayer_menu/L00_00766DB0.c match func_L00_0076BDC0 level_00:.text:0076BDC0:28 100.00 +func_L00_00766EB8 src/overlays/l00_multiplayer_menu/L00_00766EB8.c match func_L00_0076BEC8 level_00:.text:0076BEC8:380 100.00 func_L00_00767968 src/overlays/l00_multiplayer_menu/L00_00767968.c match func_L00_0076C978 level_00:.text:0076C978:228 100.00 func_L00_00767C60 src/overlays/l00_multiplayer_menu/L00_00767C60.c match func_L00_0076CC70 level_00:.text:0076CC70:128 100.00 func_L00_00767CE0 src/overlays/l00_multiplayer_menu/L00_00767CE0.c match func_L00_0076CCF0 level_00:.text:0076CCF0:104 100.00 @@ -6806,6 +6981,7 @@ func_L00_0076E5C0 src/overlays/l00_multiplayer_menu/L00_0076E5C0.c match func_L0 func_L00_0076E5D0 src/overlays/l00_multiplayer_menu/L00_0076E5D0.c match func_L00_007735E0 level_00:.text:007735E0:80 100.00 func_L00_0076E620 src/overlays/l00_multiplayer_menu/L00_0076E620.c match func_L00_00773630 level_00:.text:00773630:76 100.00 func_L00_0076F1E0 src/overlays/l00_multiplayer_menu/L00_0076F1E0.c match func_L00_007741F0 level_00:.text:007741F0:20 100.00 +func_L00_00770340 src/overlays/l00_multiplayer_menu/L00_00770340.c match func_L00_00775350 level_00:.text:00775350:76 100.00 func_L00_00770590 src/overlays/l00_multiplayer_menu/L00_00770590.c match func_L00_007755A0 level_00:.text:007755A0:44 100.00 func_L00_00770710 src/overlays/l00_multiplayer_menu/L00_00770710.c match func_L00_00775720 level_00:.text:00775720:28 100.00 func_L00_00770730 src/overlays/l00_multiplayer_menu/L00_00770730.c match func_L00_00775740 level_00:.text:00775740:932 100.00 @@ -6815,17 +6991,20 @@ func_L00_00770CA8 src/overlays/l00_multiplayer_menu/L00_00770CA8.c match func_L0 func_L00_00770CD0 src/overlays/l00_multiplayer_menu/L00_00770CD0.c match func_L00_00775CE0 level_00:.text:00775CE0:108 100.00 func_L00_00770D40 src/overlays/l00_multiplayer_menu/L00_00770D40.c match func_L00_00775D50 level_00:.text:00775D50:60 100.00 func_L00_00770D80 src/overlays/l00_multiplayer_menu/L00_00770D80.c match func_L00_00775D90 level_00:.text:00775D90:48 100.00 +func_L00_00770DB0 src/overlays/l00_multiplayer_menu/L00_00770DB0.c match func_L00_00775DC0 level_00:.text:00775DC0:64 100.00 func_L00_00771028 src/overlays/l00_multiplayer_menu/L00_00771028.c match func_L00_00776038 level_00:.text:00776038:156 100.00 func_L00_007710C8 src/overlays/l00_multiplayer_menu/L00_007710C8.c match func_L00_007760D8 level_00:.text:007760D8:1116 100.00 func_L00_007716B8 src/overlays/l00_multiplayer_menu/L00_007716B8.c match func_L00_007766C8 level_00:.text:007766C8:28 100.00 func_L00_00771868 src/overlays/l00_multiplayer_menu/L00_00771868.c match func_L00_00776878 level_00:.text:00776878:28 100.00 func_L00_00771970 src/overlays/l00_multiplayer_menu/L00_00771970.c match func_L00_00776980 level_00:.text:00776980:108 100.00 func_L00_007719E0 src/overlays/l00_multiplayer_menu/L00_007719E0.c match func_L00_007769F0 level_00:.text:007769F0:60 100.00 +func_L00_00771A48 src/overlays/l00_multiplayer_menu/L00_00771A48.c match func_L00_00776A58 level_00:.text:00776A58:60 100.00 func_L00_00771BD8 src/overlays/l00_multiplayer_menu/L00_00771BD8.c match func_L00_00776BE8 level_00:.text:00776BE8:148 100.00 func_L00_00771D20 src/overlays/l00_multiplayer_menu/L00_00771D20.c match func_L00_00776D30 level_00:.text:00776D30:96 100.00 func_L00_00771D80 src/overlays/l00_multiplayer_menu/L00_00771D80.c match func_L00_00776D90 level_00:.text:00776D90:88 100.00 func_L00_007729F0 src/overlays/l00_multiplayer_menu/L00_007729F0.c match func_L00_00777A00 level_00:.text:00777A00:108 100.00 func_L00_00772A60 src/overlays/l00_multiplayer_menu/L00_00772A60.c match func_L00_00777A70 level_00:.text:00777A70:60 100.00 +func_L00_00772B88 src/overlays/l00_multiplayer_menu/L00_00772B88.c match func_L00_00777B98 level_00:.text:00777B98:60 100.00 func_L00_00772EE0 src/pal/overlays/l00_multiplayer_menu/L00_00772EE0.c match func_L00_00772EE0 level_00:.text:00772EE0:40 100.00 func_L00_00773090 src/overlays/l00_multiplayer_menu/L00_00773090.c match func_L00_00778468 level_00:.text:00778468:32 100.00 func_L00_00773130 src/overlays/l00_multiplayer_menu/L00_00773130.c match func_L00_00778508 level_00:.text:00778508:108 100.00 @@ -6887,6 +7066,7 @@ func_L00_00776A58 src/pal/overlays/l00_multiplayer_menu/L00_00776A58.c match fun func_L00_00776DE8 src/pal/overlays/l00_multiplayer_menu/L00_00776DE8.c match func_L00_00776DE8 level_00:.text:00776DE8:1076 100.00 func_L00_00776E88 src/overlays/l00_multiplayer_menu/L00_00776E88.c match func_L00_0077C260 level_00:.text:0077C260:88 100.00 func_L00_007770F0 src/overlays/l00_multiplayer_menu/L00_007770F0.c match func_L00_0077C4C8 level_00:.text:0077C4C8:96 100.00 +func_L00_00777150 src/overlays/l00_multiplayer_menu/L00_00777150.c match func_L00_0077C528 level_00:.text:0077C528:136 100.00 func_L00_00777750 src/overlays/l00_multiplayer_menu/L00_00777750.c match func_L00_0077CB28 level_00:.text:0077CB28:88 100.00 func_L00_00777B98 src/pal/overlays/l00_multiplayer_menu/L00_00777B98.c match func_L00_00777B98 level_00:.text:00777B98:60 100.00 func_L00_00777C50 src/overlays/l00_multiplayer_menu/L00_00777C50.c match func_L00_0077D028 level_00:.text:0077D028:208 100.00 @@ -6976,6 +7156,7 @@ func_L00_0077E0F0 src/overlays/l00_multiplayer_menu/L00_0077E0F0.c match func_L0 func_L00_0077FB48 src/pal/overlays/l00_multiplayer_menu/L00_0077FB48.c match func_L00_0077FB48 level_00:.text:0077FB48:40 100.00 func_L01_003C8CE0 src/overlays/shared/L01_003C8CE0.c match func_L01_003C8E60 level_01:.text:003C8E60:68 100.00 func_L01_003C9930 src/overlays/shared/L01_003C9930.c match func_L01_003C9C18 level_01:.text:003C9C18:312 100.00 +func_L01_003C9A68 src/overlays/shared/L01_003C9A68.c match func_L01_003C9D50 level_01:.text:003C9D50:428 100.00 func_L01_003C9CA8 src/overlays/shared/L01_003C9CA8.c match func_L01_003C9F90 level_01:.text:003C9F90:44 100.00 func_L01_003C9CD8 src/overlays/shared/L01_003C9CD8.c match func_L01_003C9FC0 level_01:.text:003C9FC0:16 100.00 func_L01_003C9CF0 src/overlays/shared/L01_003C9CF0.c match func_L01_003C9FD8 level_01:.text:003C9FD8:48 100.00 @@ -7023,6 +7204,7 @@ func_L01_003D7848 src/overlays/shared/L01_003D7848.c match func_L01_003D7CF0 lev func_L01_003D7880 src/overlays/shared/L01_003D7880.c match func_L01_003D7D28 level_01:.text:003D7D28:16 100.00 func_L01_003D78E0 src/overlays/shared/L01_003D78E0.c match func_L01_003D7D88 level_01:.text:003D7D88:28 100.00 func_L01_003D87E8 src/overlays/shared/L01_003D87E8.c match func_L01_003D8C90 level_01:.text:003D8C90:112 100.00 +func_L01_003DAF28 src/overlays/shared/L01_003DAF28.c match func_004149F0 level_01:.text:003DB3D0:460 100.00 func_L01_003DCB10 src/pal/overlays/shared/L01_003DCB10.c match func_L01_003DCB10 level_01:.text:003DCB10:244 100.00 func_L01_003E9CA0 src/overlays/shared/L01_003E9CA0.c match func_L01_003EA540 level_01:.text:003EA540:92 100.00 func_L01_003EBCC0 src/overlays/shared/L01_003EBCC0.c match func_L01_003EC570 level_01:.text:003EC570:28 100.00 @@ -7030,6 +7212,7 @@ func_L01_003EE3D8 src/overlays/shared/L01_003EE3D8.c differs - - 0.00 func_L01_003EE6E8 src/overlays/shared/L01_003EE6E8.c match func_L01_003EEFC0 level_01:.text:003EEFC0:520 100.00 func_L01_003EE8F0 src/overlays/shared/L01_003EE8F0.c match func_L01_003EF1C8 level_01:.text:003EF1C8:64 100.00 func_L01_003EE930 src/overlays/shared/L01_003EE930.c match func_L01_003EF208 level_01:.text:003EF208:32 100.00 +func_L01_003EE950 src/overlays/shared/L01_003EE950.c match func_L01_003EF228 level_01:.text:003EF228:172 100.00 func_L01_003EEA00 src/overlays/shared/L01_003EEA00.c match func_L01_003EF2D8 level_01:.text:003EF2D8:28 100.00 func_L01_003EECB0 src/pal/overlays/shared/L01_003EECB0.c match func_L01_003EECB0 level_01:.text:003EECB0:224 100.00 func_L01_003EF228 src/pal/overlays/shared/L01_003EF228.c match func_L01_003EF228 level_01:.text:003EF228:172 100.00 @@ -7053,6 +7236,7 @@ func_L01_0040F0B0 src/overlays/shared/L01_0040F0B0.c match func_L01_0040FBE8 lev func_L01_0040F2B8 src/overlays/shared/L01_0040F2B8.c match func_L01_0040FDF0 level_01:.text:0040FDF0:52 100.00 func_L01_0040F2F0 src/overlays/shared/L01_0040F2F0.c match func_L01_0040FE28 level_01:.text:0040FE28:72 100.00 func_L01_00412268 src/pal/overlays/shared/L01_00412268.c match func_L01_00412268 level_01:.text:00412268:44 100.00 +func_L01_00412848 src/overlays/shared/L01_00412848.c match func_L01_004133F0 level_01:.text:004133F0:340 100.00 func_L01_004133F0 src/pal/overlays/shared/L01_004133F0.c match func_L01_004133F0 level_01:.text:004133F0:340 100.00 func_L01_00413548 src/pal/overlays/shared/L01_00413548.c match func_L01_00413548 level_01:.text:00413548:700 100.00 func_L01_00413928 src/overlays/shared/L01_00413928.c match func_L01_004144F0 level_01:.text:004144F0:36 100.00 @@ -7087,6 +7271,7 @@ func_L01_0042F2D0 src/overlays/shared/L01_0042F2D0.c match func_L01_00430050 lev func_L01_004302D0 src/overlays/shared/L01_004302D0.c match func_L01_00431050 level_01:.text:00431050:120 100.00 func_L01_00431A38 src/overlays/shared/L01_00431A38.c match func_L01_00432818 level_01:.text:00432818:220 100.00 func_L01_00431B18 src/overlays/shared/L01_00431B18.c match func_L01_004328F8 level_01:.text:004328F8:28 100.00 +func_L01_00431B38 src/overlays/shared/L01_00431B38.c differs - - 0.00 func_L01_00431EF0 src/overlays/shared/L01_00431EF0.c match func_L01_00432CD0 level_01:.text:00432CD0:224 100.00 func_L01_00432918 src/pal/overlays/shared/L01_00432918.c match func_L01_00432918 level_01:.text:00432918:400 100.00 func_L01_00432F68 src/overlays/shared/L01_00432F68.c match func_L01_00433D80 level_01:.text:00433D80:48 100.00 @@ -7130,15 +7315,18 @@ func_L01_0044AA78 src/overlays/shared/L01_0044AA78.c differs - - 0.00 func_L01_0044ABC8 src/overlays/shared/L01_0044ABC8.c match func_L01_0044BD08 level_01:.text:0044BD08:136 100.00 func_L01_0044BBA0 src/pal/overlays/shared/L01_0044BBA0.c match func_L01_0044BBA0 level_01:.text:0044BBA0:196 100.00 func_L01_0044DC30 src/overlays/shared/L01_0044DC30.c match func_L01_0044ED90 level_01:.text:0044ED90:60 100.00 +func_L01_00450348 src/overlays/shared/L01_00450348.c match func_L01_004515A8 level_01:.text:004515A8:336 100.00 func_L01_004515A8 src/pal/overlays/shared/L01_004515A8.c match func_L01_004515A8 level_01:.text:004515A8:336 100.00 func_L01_004522C0 src/overlays/shared/L01_004522C0.c match func_L01_00453540 level_01:.text:00453540:56 100.00 func_L01_00452670 src/overlays/shared/L01_00452670.c match func_L01_00453920 level_01:.text:00453920:40 100.00 func_L01_00452BC8 src/overlays/shared/L01_00452BC8.c match func_L01_00453E78 level_01:.text:00453E78:52 100.00 func_L01_00452C00 src/overlays/shared/L01_00452C00.c match func_L01_00453EB0 level_01:.text:00453EB0:56 100.00 func_L01_00452C38 src/overlays/shared/L01_00452C38.c match func_L01_00453EE8 level_01:.text:00453EE8:20 100.00 +func_L01_00452D40 src/overlays/shared/L01_00452D40.c differs - - 0.00 func_L01_004536F8 src/overlays/shared/L01_004536F8.c match func_L01_004549D0 level_01:.text:004549D0:32 100.00 func_L01_00453718 src/overlays/shared/L01_00453718.c match func_L01_004549F0 level_01:.text:004549F0:52 100.00 func_L01_004537F8 src/overlays/shared/L01_004537F8.c match func_L01_00454AD0 level_01:.text:00454AD0:40 100.00 +func_L01_00453820 src/overlays/shared/L01_00453820.c match func_L01_00454AF8 level_01:.text:00454AF8:268 100.00 func_L01_00453980 src/overlays/shared/L01_00453980.c match func_L01_00454C58 level_01:.text:00454C58:64 100.00 func_L01_00453FF0 src/pal/overlays/shared/L01_00453FF0.c match func_L01_00453FF0 level_01:.text:00453FF0:208 100.00 func_L01_00454C58 src/pal/overlays/l01_dreadzone_station/L01_00454C58.c match func_L01_00454C58 level_01:.text:00454C58:64 100.00 @@ -7171,7 +7359,7 @@ func_L01_0045B5C8 src/overlays/shared/L01_0045B5C8.c match func_L01_0045C8A8 lev func_L01_0045B5D8 src/overlays/shared/L01_0045B5D8.c match func_L01_0045C8B8 level_01:.text:0045C8B8:12 100.00 func_L01_0045B648 src/overlays/shared/L01_0045B648.c match func_L01_0045C928 level_01:.text:0045C928:84 100.00 func_L01_0045BE60 src/overlays/shared/L01_0045BE60.c differs - - 0.00 -func_L01_0045BF60 src/pal/overlays/shared/L01_0045BF60.c match func_L01_0045BF60 level_01:.text:0045BF60:212 100.00 +func_L01_0045BF60 src/overlays/shared/L01_0045BF60.c match func_L01_0045BF60 level_01:.text:0045BF60:212 100.00 func_L01_0045C068 src/overlays/shared/L01_0045C068.c match func_L01_0045D348 level_01:.text:0045D348:16 100.00 func_L01_0045C0C8 src/overlays/shared/L01_0045C0C8.c match func_L01_0045D3A8 level_01:.text:0045D3A8:40 100.00 func_L01_0045C0F0 src/overlays/shared/L01_0045C0F0.c match func_L01_0045D3D0 level_01:.text:0045D3D0:72 100.00 @@ -7232,6 +7420,7 @@ func_L01_00469A08 src/overlays/shared/L01_00469A08.c match func_L01_0046ADF0 lev func_L01_00469AF8 src/overlays/shared/L01_00469AF8.c differs - - 0.00 func_L01_00469BA0 src/pal/overlays/shared/L01_00469BA0.c match func_L01_00469BA0 level_01:.text:00469BA0:640 100.00 func_L01_00469C78 src/overlays/shared/L01_00469C78.c match func_L01_0046B060 level_01:.text:0046B060:12 100.00 +func_L01_00469C88 src/overlays/shared/L01_00469C88.c match func_L01_0046B070 level_01:.text:0046B070:56 100.00 func_L01_00469EF8 src/overlays/shared/L01_00469EF8.c match func_L01_0046B2E0 level_01:.text:0046B2E0:16 100.00 func_L01_0046A2F0 src/pal/overlays/shared/L01_0046A2F0.c match func_L01_0046A2F0 level_01:.text:0046A2F0:44 100.00 func_L01_0046AEE0 src/pal/overlays/shared/L01_0046AEE0.c match func_L01_0046AEE0 level_01:.text:0046AEE0:248 100.00 @@ -7303,6 +7492,7 @@ func_L01_0048AE20 src/overlays/shared/L01_0048AE20.c match func_L01_0048C4C8 lev func_L01_0048C5D0 src/pal/overlays/shared/L01_0048C5D0.c match func_L01_0048C5D0 level_01:.text:0048C5D0:404 100.00 func_L01_0048DDB0 src/overlays/shared/L01_0048DDB0.c match func_L01_0048F480 level_01:.text:0048F480:288 100.00 func_L01_0048DED0 src/overlays/shared/L01_0048DED0.c match func_L01_0048F5A0 level_01:.text:0048F5A0:112 100.00 +func_L01_0048DF40 src/overlays/shared/L01_0048DF40.c differs - - 0.00 func_L01_0048E0C8 src/overlays/shared/L01_0048E0C8.c match func_L01_0048F798 level_01:.text:0048F798:56 100.00 func_L01_0048EC90 src/overlays/shared/L01_0048EC90.c match func_L01_00490390 level_01:.text:00490390:76 100.00 func_L01_0048ECE0 src/overlays/shared/L01_0048ECE0.c match func_L01_004903E0 level_01:.text:004903E0:72 100.00 @@ -7377,6 +7567,7 @@ func_L01_00495918 src/overlays/shared/L01_00495918.c match func_L01_00497110 lev func_L01_00495948 src/overlays/shared/L01_00495948.c match func_L01_00497140 level_01:.text:00497140:40 100.00 func_L01_00495970 src/overlays/shared/L01_00495970.c match func_L01_00497168 level_01:.text:00497168:88 100.00 func_L01_00495A50 src/overlays/shared/L01_00495A50.c match func_L01_00497248 level_01:.text:00497248:12 100.00 +func_L01_00495A60 src/overlays/shared/L01_00495A60.c match func_L01_00497258 level_01:.text:00497258:56 100.00 func_L01_00495B00 src/overlays/shared/L01_00495B00.c match func_L01_004972F8 level_01:.text:004972F8:112 100.00 func_L01_00495B70 src/overlays/shared/L01_00495B70.c match func_L01_00497368 level_01:.text:00497368:16 100.00 func_L01_00496278 src/pal/overlays/shared/L01_00496278.c match func_L01_00496278 level_01:.text:00496278:648 100.00 @@ -7404,6 +7595,7 @@ func_L01_00499260 src/overlays/shared/L01_00499260.c match func_L01_0049AA70 lev func_L01_00499DF8 src/overlays/shared/L01_00499DF8.c match func_L01_0049B608 level_01:.text:0049B608:108 100.00 func_L01_0049A788 src/overlays/shared/L01_0049A788.c match func_L01_0049BFD8 level_01:.text:0049BFD8:64 100.00 func_L01_0049A7C8 src/overlays/shared/L01_0049A7C8.c match func_L01_0049C018 level_01:.text:0049C018:28 100.00 +func_L01_0049A7E8 src/overlays/shared/L01_0049A7E8.c differs - - 0.00 func_L01_0049B448 src/overlays/shared/L01_0049B448.c match func_L01_0049CC98 level_01:.text:0049CC98:12 100.00 func_L01_0049B498 src/overlays/shared/L01_0049B498.c match func_L01_0049CCE8 level_01:.text:0049CCE8:64 100.00 func_L01_0049B4D8 src/overlays/shared/L01_0049B4D8.c match func_L01_0049CD28 level_01:.text:0049CD28:152 100.00 @@ -7419,12 +7611,14 @@ func_L01_004AAD30 src/overlays/shared/L01_004AAD30.c match func_L01_004AC7D0 lev func_L01_004ABE88 src/pal/overlays/l01_dreadzone_station/L01_004ABE88.c match func_L01_004ABE88 level_01:.text:004ABE88:544 100.00 func_L01_004AC298 src/overlays/shared/L01_004AC298.c match func_L01_004ADD38 level_01:.text:004ADD38:124 100.00 func_L01_004AC568 src/overlays/shared/L01_004AC568.c match func_L01_004AE008 level_01:.text:004AE008:188 100.00 +func_L01_004AC628 src/overlays/shared/L01_004AC628.c match func_L01_004AE0C8 level_01:.text:004AE0C8:220 100.00 func_L01_004AC708 src/pal/overlays/shared/L01_004AC708.c match func_L01_004AC708 level_01:.text:004AC708:196 100.00 func_L01_004AD698 src/overlays/shared/L01_004AD698.c match func_L01_004AF140 level_01:.text:004AF140:80 100.00 func_L01_004AD6E8 src/overlays/shared/L01_004AD6E8.c match func_L01_004AF190 level_01:.text:004AF190:16 100.00 func_L01_004AD9F8 src/overlays/shared/L01_004AD9F8.c match func_L01_004AF4A0 level_01:.text:004AF4A0:196 100.00 func_L01_004ADAC0 src/overlays/shared/L01_004ADAC0.c match func_L01_004AF568 level_01:.text:004AF568:184 100.00 func_L01_004ADC28 src/overlays/shared/L01_004ADC28.c match func_L01_004AF6D0 level_01:.text:004AF6D0:12 100.00 +func_L01_004ADC38 src/overlays/shared/L01_004ADC38.c match func_L01_004AF6E0 level_01:.text:004AF6E0:56 100.00 func_L01_004ADC80 src/overlays/shared/L01_004ADC80.c match func_L01_004AF728 level_01:.text:004AF728:12 100.00 func_L01_004ADDB8 src/pal/overlays/shared/L01_004ADDB8.c match func_L01_004ADDB8 level_01:.text:004ADDB8:588 100.00 func_L01_004ADF78 src/overlays/shared/L01_004ADF78.c match func_L01_004AFA20 level_01:.text:004AFA20:56 100.00 @@ -7467,6 +7661,7 @@ func_L01_004B3E58 src/overlays/shared/L01_004B3E58.c match func_L01_004B5988 lev func_L01_004B3EA8 src/overlays/shared/L01_004B3EA8.c match func_L01_004B59D8 level_01:.text:004B59D8:116 100.00 func_L01_004B3F20 src/overlays/shared/L01_004B3F20.c match func_L01_004B5A50 level_01:.text:004B5A50:44 100.00 func_L01_004B3FD8 src/overlays/shared/L01_004B3FD8.c match func_L01_004B5B08 level_01:.text:004B5B08:12 100.00 +func_L01_004B3FE8 src/overlays/shared/L01_004B3FE8.c match func_L01_004B5B18 level_01:.text:004B5B18:56 100.00 func_L01_004B4038 src/overlays/shared/L01_004B4038.c match func_L01_004B5B68 level_01:.text:004B5B68:28 100.00 func_L01_004B48F8 src/pal/overlays/shared/L01_004B48F8.c match func_L01_004B48F8 level_01:.text:004B48F8:136 100.00 func_L01_004B57F8 src/pal/overlays/shared/L01_004B57F8.c match func_L01_004B57F8 level_01:.text:004B57F8:76 100.00 @@ -7482,6 +7677,7 @@ func_L01_004B8A78 src/pal/overlays/shared/L01_004B8A78.c match func_L01_004B8A78 func_L01_004B8C38 src/overlays/shared/L01_004B8C38.c match func_L01_004BA7B0 level_01:.text:004BA7B0:76 100.00 func_L01_004B8C88 src/overlays/shared/L01_004B8C88.c match func_L01_004BA800 level_01:.text:004BA800:108 100.00 func_L01_004B8F58 src/overlays/l01_dreadzone_station/L01_004B8F58.c match func_L01_004BAAD0 level_01:.text:004BAAD0:12 100.00 +func_L01_004B8F68 src/overlays/l01_dreadzone_station/L01_004B8F68.c match func_L01_004BAAE0 level_01:.text:004BAAE0:56 100.00 func_L01_004B8FB8 src/overlays/shared/L01_004B8FB8.c match func_L01_004BAB30 level_01:.text:004BAB30:28 100.00 func_L01_004B8FD8 src/overlays/shared/L01_004B8FD8.c match func_L01_004BAB50 level_01:.text:004BAB50:96 100.00 func_L01_004B9038 src/overlays/shared/L01_004B9038.c match func_L01_004BABB0 level_01:.text:004BABB0:16 100.00 @@ -7504,6 +7700,7 @@ func_L01_004BE590 src/overlays/l01_dreadzone_station/L01_004BE590.c match func_L func_L01_004BF378 src/pal/overlays/l01_dreadzone_station/L01_004BF378.c match func_L01_004BF378 level_01:.text:004BF378:356 100.00 func_L01_004C1108 src/overlays/shared/L01_004C1108.c match func_L01_004C2F30 level_01:.text:004C2F30:156 100.00 func_L01_004C17F0 src/overlays/shared/L01_004C17F0.c match func_L01_004C3628 level_01:.text:004C3628:56 100.00 +func_L01_004C1D28 src/overlays/shared/L01_004C1D28.c differs - - 0.00 func_L01_004C22F0 src/overlays/shared/L01_004C22F0.c differs - - 0.00 func_L01_004C2310 src/pal/overlays/shared/L01_004C2310.c match func_L01_004C2310 level_01:.text:004C2310:820 100.00 func_L01_004C26F0 src/overlays/shared/L01_004C26F0.c match func_L01_004C4540 level_01:.text:004C4540:12 100.00 @@ -7537,6 +7734,7 @@ func_L01_004C7970 src/overlays/shared/L01_004C7970.c match func_L01_004C9888 lev func_L01_004C7B68 src/overlays/shared/L01_004C7B68.c match func_L01_004C9A80 level_01:.text:004C9A80:148 100.00 func_L01_004C7C00 src/overlays/shared/L01_004C7C00.c match func_L01_004C9B18 level_01:.text:004C9B18:68 100.00 func_L01_004C7C48 src/overlays/shared/L01_004C7C48.c match func_L01_004C9B60 level_01:.text:004C9B60:12 100.00 +func_L01_004C7C58 src/overlays/shared/L01_004C7C58.c match func_L01_004C9B70 level_01:.text:004C9B70:56 100.00 func_L01_004C7CA0 src/overlays/shared/L01_004C7CA0.c match func_L01_004C9BB8 level_01:.text:004C9BB8:12 100.00 func_L01_004C7CB0 src/overlays/l01_dreadzone_station/L01_004C7CB0.c match func_L01_004C9BC8 level_01:.text:004C9BC8:28 100.00 func_L01_004C8070 src/overlays/shared/L01_004C8070.c match func_L01_004C9F88 level_01:.text:004C9F88:56 100.00 @@ -7548,6 +7746,7 @@ func_L01_004C8A38 src/overlays/shared/L01_004C8A38.c match func_L01_004CA948 lev func_L01_004C8A80 src/overlays/shared/L01_004C8A80.c match func_L01_004CA990 level_01:.text:004CA990:32 100.00 func_L01_004C8AA8 src/overlays/shared/L01_004C8AA8.c match func_L01_004CA9B8 level_01:.text:004CA9B8:24 100.00 func_L01_004C8AC8 src/overlays/shared/L01_004C8AC8.c match func_L01_004CA9D8 level_01:.text:004CA9D8:28 100.00 +func_L01_004C9148 src/overlays/shared/L01_004C9148.c differs - - 0.00 func_L01_004C9B70 src/pal/overlays/l01_dreadzone_station/L01_004C9B70.c match func_L01_004C9B70 level_01:.text:004C9B70:56 100.00 func_L01_004CA0F0 src/overlays/shared/L01_004CA0F0.c match func_L01_004CC018 level_01:.text:004CC018:64 100.00 func_L01_004CA138 src/overlays/shared/L01_004CA138.c match func_L01_004CC060 level_01:.text:004CC060:32 100.00 @@ -7591,6 +7790,7 @@ func_L01_004D2B68 src/overlays/shared/L01_004D2B68.c match func_L01_004D4AC0 lev func_L01_004D3140 src/overlays/shared/L01_004D3140.c match func_L01_004D5098 level_01:.text:004D5098:56 100.00 func_L01_004D7000 src/pal/overlays/shared/L01_004D7000.c match func_L01_004D7000 level_01:.text:004D7000:228 100.00 func_L01_004D71B0 src/overlays/shared/L01_004D71B0.c match func_L01_004D9130 level_01:.text:004D9130:228 100.00 +func_L01_004D8C60 src/overlays/shared/L01_004D8C60.c differs - - 0.00 func_L01_004D8D18 src/overlays/shared/L01_004D8D18.c match func_L01_004DAC98 level_01:.text:004DAC98:80 100.00 func_L01_004D8D68 src/overlays/shared/L01_004D8D68.c match func_L01_004DACE8 level_01:.text:004DACE8:80 100.00 func_L01_004D8DB8 src/overlays/shared/L01_004D8DB8.c match func_L01_004DAD38 level_01:.text:004DAD38:16 100.00 @@ -7604,6 +7804,7 @@ func_L01_004D90B0 src/overlays/shared/L01_004D90B0.c match func_L01_004DB030 lev func_L01_004D94B0 src/overlays/shared/L01_004D94B0.c match func_L01_004DB450 level_01:.text:004DB450:32 100.00 func_L01_004D9838 src/overlays/shared/L01_004D9838.c match func_L01_004DB7D8 level_01:.text:004DB7D8:32 100.00 func_L01_004D9AA8 src/overlays/shared/L01_004D9AA8.c match func_L01_004DBA48 level_01:.text:004DBA48:44 100.00 +func_L01_004D9AD8 src/overlays/shared/L01_004D9AD8.c differs - - 0.00 func_L01_004D9BB0 src/overlays/shared/L01_004D9BB0.c match func_L01_004DBB50 level_01:.text:004DBB50:28 100.00 func_L01_004DA958 src/overlays/shared/L01_004DA958.c match func_L01_004DC8F8 level_01:.text:004DC8F8:112 100.00 func_L01_004DAAE0 src/overlays/shared/L01_004DAAE0.c match func_L01_004DCA80 level_01:.text:004DCA80:120 100.00 @@ -7643,7 +7844,9 @@ func_L01_004E39B0 src/overlays/shared/L01_004E39B0.c match func_L01_004E5950 lev func_L01_004E3F40 src/overlays/shared/L01_004E3F40.c match func_L01_004E5EE0 level_01:.text:004E5EE0:32 100.00 func_L01_004E4960 src/overlays/l01_dreadzone_station/L01_004E4960.c match func_L01_004E6918 level_01:.text:004E6918:64 100.00 func_L01_004E49A0 src/overlays/l01_dreadzone_station/L01_004E49A0.c match func_L01_004E6958 level_01:.text:004E6958:56 100.00 +func_L01_004E49D8 src/overlays/shared/L01_004E49D8.c match func_L01_004E6990 level_01:.text:004E6990:224 100.00 func_L01_004E4AB8 src/overlays/shared/L01_004E4AB8.c match func_L01_004E6A70 level_01:.text:004E6A70:104 100.00 +func_L01_004E4B20 src/overlays/shared/L01_004E4B20.c differs - - 0.00 func_L01_004E4CE8 src/pal/overlays/l01_dreadzone_station/L01_004E4CE8.c match func_L01_004E4CE8 level_01:.text:004E4CE8:656 100.00 func_L01_004E4D98 src/overlays/shared/L01_004E4D98.c match func_L01_004E6D50 level_01:.text:004E6D50:44 100.00 func_L01_004E4DC8 src/overlays/shared/L01_004E4DC8.c match func_L01_004E6D80 level_01:.text:004E6D80:40 100.00 @@ -7706,6 +7909,7 @@ func_L01_004EE5D8 src/overlays/shared/L01_004EE5D8.c match func_L01_004F05A0 lev func_L01_004EFD50 src/overlays/shared/L01_004EFD50.c differs - - 0.00 func_L01_004EFFF0 src/pal/overlays/shared/L01_004EFFF0.c match func_L01_004EFFF0 level_01:.text:004EFFF0:132 100.00 func_L01_004F1D18 src/pal/overlays/shared/L01_004F1D18.c match func_L01_004F1D18 level_01:.text:004F1D18:92 100.00 +func_L01_004F2F20 src/overlays/shared/L01_004F2F20.c match func_L01_004F4F00 level_01:.text:004F4F00:260 100.00 func_L01_004F3100 src/overlays/shared/L01_004F3100.c match func_L01_004F50E0 level_01:.text:004F50E0:36 100.00 func_L01_004F31E0 src/overlays/shared/L01_004F31E0.c match func_L01_004F51C0 level_01:.text:004F51C0:48 100.00 func_L01_004F3210 src/overlays/shared/L01_004F3210.c match func_L01_004F51F0 level_01:.text:004F51F0:12 100.00 @@ -7736,13 +7940,18 @@ func_L01_004FEE98 src/overlays/l01_dreadzone_station/L01_004FEE98.c match func_L func_L01_004FF3D0 src/overlays/shared/L01_004FF3D0.c match func_L01_00501420 level_01:.text:00501420:28 100.00 func_L01_004FF3F0 src/overlays/shared/L01_004FF3F0.c differs - - 0.00 func_L01_005004B8 src/overlays/shared/L01_005004B8.c match func_L01_00502508 level_01:.text:00502508:144 100.00 +func_L01_00500548 src/overlays/shared/L01_00500548.c differs - - 0.00 func_L01_00500720 src/overlays/shared/L01_00500720.c match func_L01_00502770 level_01:.text:00502770:356 100.00 func_L01_00500888 src/overlays/shared/L01_00500888.c match func_L01_005028D8 level_01:.text:005028D8:76 100.00 +func_L01_005008D8 src/overlays/shared/L01_005008D8.c differs - - 0.00 func_L01_00500AA8 src/overlays/shared/L01_00500AA8.c match func_L01_00502AF8 level_01:.text:00502AF8:76 100.00 func_L01_00501170 src/overlays/shared/L01_00501170.c match func_L01_005031C0 level_01:.text:005031C0:56 100.00 func_L01_00501418 src/overlays/shared/L01_00501418.c match func_L01_00503468 level_01:.text:00503468:220 100.00 func_L01_00501440 src/pal/overlays/shared/L01_00501440.c match func_L01_00501440 level_01:.text:00501440:164 100.00 +func_L01_00501688 src/overlays/shared/L01_00501688.c match func_L01_005036D8 level_01:.text:005036D8:268 100.00 func_L01_00501798 src/overlays/shared/L01_00501798.c match func_L01_005037E8 level_01:.text:005037E8:12 100.00 +func_L01_00501B38 src/overlays/shared/L01_00501B38.c match func_L01_00503B88 level_01:.text:00503B88:220 100.00 +func_L01_00501C18 src/overlays/shared/L01_00501C18.c match func_L01_00503C68 level_01:.text:00503C68:124 100.00 func_L01_00502598 src/pal/overlays/shared/L01_00502598.c match func_L01_00502598 level_01:.text:00502598:468 100.00 func_L01_00502928 src/pal/overlays/shared/L01_00502928.c match func_L01_00502928 level_01:.text:00502928:460 100.00 func_L01_005039E0 src/overlays/shared/L01_005039E0.c match func_L01_00505AF8 level_01:.text:00505AF8:132 100.00 @@ -7795,6 +8004,8 @@ func_L01_00518460 src/overlays/shared/L01_00518460.c differs - - 0.00 func_L01_00518500 src/overlays/shared/L01_00518500.c match func_L01_0051A738 level_01:.text:0051A738:56 100.00 func_L01_00519218 src/pal/overlays/shared/L01_00519218.c match func_L01_00519218 level_01:.text:00519218:60 100.00 func_L01_0051A698 src/pal/overlays/l01_dreadzone_station/L01_0051A698.c match func_L01_0051A698 level_01:.text:0051A698:160 100.00 +func_L01_0051D538 src/overlays/shared/L01_0051D538.c match func_L01_0051F7E0 level_01:.text:0051F7E0:112 100.00 +func_L01_0051D7F0 src/overlays/shared/L01_0051D7F0.c match func_L01_0051FA98 level_01:.text:0051FA98:88 100.00 func_L01_0051F7E0 src/pal/overlays/shared/L01_0051F7E0.c match func_L01_0051F7E0 level_01:.text:0051F7E0:112 100.00 func_L01_0051FA98 src/pal/overlays/shared/L01_0051FA98.c match func_L01_0051FA98 level_01:.text:0051FA98:88 100.00 func_L01_00520938 src/overlays/shared/L01_00520938.c match func_L01_00522BE0 level_01:.text:00522BE0:104 100.00 @@ -7838,6 +8049,7 @@ func_L01_0055AC18 src/overlays/shared/L01_0055AC18.c match func_L01_0055D7C0 lev func_L01_0055B180 src/overlays/shared/L01_0055B180.c match func_L01_0055DD70 level_01:.text:0055DD70:44 100.00 func_L01_0055B1C0 src/overlays/shared/L01_0055B1C0.c match func_L01_0055DDB0 level_01:.text:0055DDB0:164 100.00 func_L01_0055B6A8 src/pal/overlays/shared/L01_0055B6A8.c match func_L01_0055B6A8 level_01:.text:0055B6A8:112 100.00 +func_L01_0055CBE0 src/overlays/shared/L01_0055CBE0.c match func_L01_0055F7C8 level_01:.text:0055F7C8:48 100.00 func_L01_0055D050 src/overlays/shared/L01_0055D050.c match func_L01_0055FC30 level_01:.text:0055FC30:80 100.00 func_L01_0055E7B0 src/overlays/shared/L01_0055E7B0.c match func_L01_00561390 level_01:.text:00561390:8 100.00 func_L01_0055F7C8 src/pal/overlays/shared/L01_0055F7C8.c match func_L01_0055F7C8 level_01:.text:0055F7C8:48 100.00 @@ -7860,6 +8072,7 @@ func_L01_0056BC58 src/overlays/shared/L01_0056BC58.c match func_L01_0056E818 lev func_L01_0056C6C0 src/overlays/shared/L01_0056C6C0.c differs - - 0.00 func_L01_0056C878 src/overlays/shared/L01_0056C878.c match func_L01_0056F450 level_01:.text:0056F450:1100 100.00 func_L01_0056CDB0 src/overlays/shared/L01_0056CDB0.c match func_L01_0056F988 level_01:.text:0056F988:172 100.00 +func_L01_0056D0C8 src/overlays/shared/L01_0056D0C8.c differs - - 0.00 func_L01_0056D480 src/overlays/shared/L01_0056D480.c match func_L01_00570060 level_01:.text:00570060:220 100.00 func_L01_0056D620 src/overlays/shared/L01_0056D620.c match func_L01_00570200 level_01:.text:00570200:120 100.00 func_L01_0056D6C8 src/overlays/shared/L01_0056D6C8.c match func_L01_005702A8 level_01:.text:005702A8:44 100.00 @@ -7875,6 +8088,7 @@ func_L01_0056E6F0 src/overlays/shared/L01_0056E6F0.c match func_L01_005712D0 lev func_L01_0056E7A8 src/overlays/shared/L01_0056E7A8.c match func_L01_00571388 level_01:.text:00571388:80 100.00 func_L01_0056E7F8 src/overlays/shared/L01_0056E7F8.c match func_L01_005713D8 level_01:.text:005713D8:92 100.00 func_L01_0056E9D0 src/overlays/shared/L01_0056E9D0.c match func_L01_005715B0 level_01:.text:005715B0:100 100.00 +func_L01_0056F250 src/overlays/shared/L01_0056F250.c match func_L01_00571E30 level_01:.text:00571E30:68 100.00 func_L01_0056F280 src/pal/overlays/shared/L01_0056F280.c match func_L01_0056F280 level_01:.text:0056F280:316 100.00 func_L01_0056FCA0 src/pal/overlays/shared/L01_0056FCA0.c match func_L01_0056FCA0 level_01:.text:0056FCA0:440 100.00 func_L01_00571E30 src/pal/overlays/shared/L01_00571E30.c match func_L01_00571E30 level_01:.text:00571E30:68 100.00 @@ -7901,6 +8115,7 @@ func_L01_00584568 src/overlays/shared/L01_00584568.c match func_L01_00588828 lev func_L01_00585B78 src/overlays/shared/L01_00585B78.c match func_L01_00589E38 level_01:.text:00589E38:52 100.00 func_L01_00585C00 src/overlays/shared/L01_00585C00.c match func_L01_00589EC0 level_01:.text:00589EC0:160 100.00 func_L01_00585CA0 src/overlays/shared/L01_00585CA0.c match func_L01_00589F60 level_01:.text:00589F60:160 100.00 +func_L01_00585D40 src/overlays/shared/L01_00585D40.c match func_L01_0058A000 level_01:.text:0058A000:68 100.00 func_L01_00585DB0 src/overlays/shared/L01_00585DB0.c match func_L01_0058A070 level_01:.text:0058A070:48 100.00 func_L01_00586138 src/overlays/shared/L01_00586138.c match func_L01_0058A3F8 level_01:.text:0058A3F8:40 100.00 func_L01_00586160 src/overlays/shared/L01_00586160.c match func_L01_0058A420 level_01:.text:0058A420:128 100.00 @@ -7939,6 +8154,7 @@ func_L01_005A0228 src/overlays/shared/L01_005A0228.c match func_L01_005A45A0 lev func_L01_005A14A8 src/overlays/shared/L01_005A14A8.c match func_L01_005A5820 level_01:.text:005A5820:168 100.00 func_L01_005A21A8 src/overlays/shared/L01_005A21A8.c match func_L01_005A6520 level_01:.text:005A6520:136 100.00 func_L01_005A24D0 src/overlays/shared/L01_005A24D0.c match func_L01_005A6848 level_01:.text:005A6848:40 100.00 +func_L01_005A37B8 src/overlays/shared/L01_005A37B8.c match func_L01_005A7B30 level_01:.text:005A7B30:124 100.00 func_L01_005A4648 src/overlays/shared/L01_005A4648.c match func_L01_005A89C0 level_01:.text:005A89C0:52 100.00 func_L01_005A4680 src/overlays/shared/L01_005A4680.c match func_L01_005A89F8 level_01:.text:005A89F8:228 100.00 func_L01_005A4CF0 src/overlays/shared/L01_005A4CF0.c match func_L01_005A9068 level_01:.text:005A9068:12 100.00 @@ -7957,6 +8173,7 @@ func_L01_005AB590 src/overlays/shared/L01_005AB590.c match func_L01_005AF920 lev func_L01_005AB5E0 src/overlays/shared/L01_005AB5E0.c match func_L01_005AF970 level_01:.text:005AF970:40 100.00 func_L01_005AC6C8 src/overlays/shared/L01_005AC6C8.c match func_L01_005B0A58 level_01:.text:005B0A58:128 100.00 func_L01_005B3880 src/pal/overlays/shared/L01_005B3880.c match func_L01_005B3880 level_01:.text:005B3880:72 100.00 +func_L01_005B4EB0 src/overlays/shared/L01_005B4EB0.c match func_L01_005B93B8 level_01:.text:005B93B8:52 100.00 func_L01_005B4F70 src/overlays/shared/L01_005B4F70.c match func_L01_005B9478 level_01:.text:005B9478:76 100.00 func_L01_005B4FC0 src/overlays/shared/L01_005B4FC0.c match func_L01_005B94C8 level_01:.text:005B94C8:40 100.00 func_L01_005B4FE8 src/overlays/shared/L01_005B4FE8.c match func_L01_005B94F0 level_01:.text:005B94F0:580 100.00 @@ -7998,6 +8215,7 @@ func_L01_00633168 src/overlays/shared/L01_00633168.c match func_L01_00638150 lev func_L01_00636D50 src/overlays/shared/L01_00636D50.c match func_L01_0063BD40 level_01:.text:0063BD40:40 100.00 func_L01_00636E18 src/overlays/shared/L01_00636E18.c match func_L01_0063BE08 level_01:.text:0063BE08:72 100.00 func_L01_0063B140 src/overlays/shared/L01_0063B140.c match func_L01_00640238 level_01:.text:00640238:120 100.00 +func_L01_0063B1B8 src/overlays/shared/L01_0063B1B8.c match func_L01_006402B0 level_01:.text:006402B0:48 100.00 func_L01_0063B370 src/overlays/shared/L01_0063B370.c match func_L01_00640468 level_01:.text:00640468:88 100.00 func_L01_006402B0 src/pal/overlays/shared/L01_006402B0.c match func_L01_006402B0 level_01:.text:006402B0:48 100.00 func_L01_00640588 src/pal/overlays/shared/L01_00640588.c match func_L01_00640588 level_01:.text:00640588:212 100.00 @@ -8079,6 +8297,7 @@ func_L02_004CB278 src/overlays/shared/L02_004CB278.c match func_L02_004CCE58 lev func_L02_004CB288 src/overlays/shared/L02_004CB288.c match func_L02_004CCE68 level_02:.text:004CCE68:40 100.00 func_L02_004CB2B0 src/overlays/shared/L02_004CB2B0.c match func_L02_004CCE90 level_02:.text:004CCE90:12 100.00 func_L02_004CB2C0 src/overlays/shared/L02_004CB2C0.c match func_L02_004CCEA0 level_02:.text:004CCEA0:40 100.00 +func_L02_004CB2E8 src/overlays/shared/L02_004CB2E8.c differs - - 0.00 func_L02_004CBE78 src/pal/overlays/shared/L02_004CBE78.c match func_L02_004CBE78 level_02:.text:004CBE78:184 100.00 func_L02_004CC2F0 src/overlays/shared/L02_004CC2F0.c match func_L02_004CDED0 level_02:.text:004CDED0:16 100.00 func_L02_004CC300 src/overlays/shared/L02_004CC300.c match func_L02_004CDEE0 level_02:.text:004CDEE0:16 100.00 @@ -8090,6 +8309,7 @@ func_L02_004CF980 src/overlays/shared/L02_004CF980.c match func_L02_004D15F8 lev func_L02_004E3248 src/overlays/shared/L02_004E3248.c match func_L02_004E5148 level_02:.text:004E5148:40 100.00 func_L02_004E3270 src/overlays/shared/L02_004E3270.c match func_L02_004E5170 level_02:.text:004E5170:68 100.00 func_L02_004E3CE8 src/overlays/shared/L02_004E3CE8.c match func_L02_004E5C18 level_02:.text:004E5C18:36 100.00 +func_L02_004E6370 src/overlays/shared/L02_004E6370.c differs - - 0.00 func_L02_004E82A8 src/pal/overlays/shared/L02_004E82A8.c match func_L02_004E82A8 level_02:.text:004E82A8:624 100.00 func_L02_00503360 src/overlays/shared/L02_00503360.c match func_L02_005056F8 level_02:.text:005056F8:52 100.00 func_L02_0053B470 src/overlays/shared/L02_0053B470.c match func_L02_0053F150 level_02:.text:0053F150:104 100.00 @@ -8105,6 +8325,7 @@ func_L04_00486AC0 src/overlays/l04_sarathos_swamp/L04_00486AC0.c match func_L04_ func_L04_00486AD0 src/overlays/l04_sarathos_swamp/L04_00486AD0.c match func_L04_00488128 level_04:.text:00488128:16 100.00 func_L04_00486AE0 src/overlays/shared/L04_00486AE0.c match func_L04_00488138 level_04:.text:00488138:20 100.00 func_L04_00487B50 src/pal/overlays/l04_sarathos_swamp/L04_00487B50.c match func_L04_00487B50 level_04:.text:00487B50:376 100.00 +func_L04_00497910 src/overlays/shared/L04_00497910.c match func_L04_004991A8 level_04:.text:004991A8:108 100.00 func_L04_00497980 src/overlays/shared/L04_00497980.c match func_L04_00499218 level_04:.text:00499218:12 100.00 func_L04_00497B08 src/overlays/shared/L04_00497B08.c differs - - 0.00 func_L04_00498038 src/overlays/shared/L04_00498038.c match func_L04_004998D0 level_04:.text:004998D0:80 100.00 @@ -8204,6 +8425,7 @@ func_L05_004E00A8 src/overlays/shared/L05_004E00A8.c match func_L05_004E1C60 lev func_L05_004E0108 src/overlays/shared/L05_004E0108.c match func_L05_004E1CC0 level_05:.text:004E1CC0:16 100.00 func_L05_004E1110 src/pal/overlays/shared/L05_004E1110.c match func_L05_004E1110 level_05:.text:004E1110:88 100.00 func_L05_004EEE30 src/overlays/shared/L05_004EEE30.c match func_L05_004F0A88 level_05:.text:004F0A88:152 100.00 +func_L05_004EEEC8 src/overlays/shared/L05_004EEEC8.c differs - - 0.00 func_L05_004EF048 src/overlays/shared/L05_004EF048.c match func_L05_004F0CA0 level_05:.text:004F0CA0:16 100.00 func_L05_004F0B20 src/pal/overlays/shared/L05_004F0B20.c match func_L05_004F0B20 level_05:.text:004F0B20:276 100.00 func_L05_004F2518 src/overlays/l05_dark_cathedral/L05_004F2518.c match func_L05_004F41E8 level_05:.text:004F41E8:72 100.00 @@ -8211,6 +8433,7 @@ func_L05_004F43D8 src/overlays/l05_dark_cathedral/L05_004F43D8.c match func_L05_ func_L05_004F43E8 src/overlays/l05_dark_cathedral/L05_004F43E8.c match func_L05_004F60B8 level_05:.text:004F60B8:16 100.00 func_L05_004F43F8 src/overlays/l05_dark_cathedral/L05_004F43F8.c match func_L05_004F60C8 level_05:.text:004F60C8:20 100.00 func_L05_004F59C8 src/pal/overlays/l05_dark_cathedral/L05_004F59C8.c match func_L05_004F59C8 level_05:.text:004F59C8:320 100.00 +func_L05_0050A5F8 src/overlays/l05_dark_cathedral/L05_0050A5F8.c differs - - 0.00 func_L05_0050C5C0 src/pal/overlays/l05_dark_cathedral/L05_0050C5C0.c match func_L05_0050C5C0 level_05:.text:0050C5C0:624 100.00 func_L06_00401610 src/pal/overlays/l06_temple_of_shaar/L06_00401610.c match func_L06_00401610 level_06:.text:00401610:536 100.00 func_L06_004016F0 src/overlays/shared/L06_004016F0.c match func_L06_00401EE0 level_06:.text:00401EE0:40 100.00 @@ -8218,6 +8441,7 @@ func_L06_00401718 src/overlays/shared/L06_00401718.c match func_L06_00401F08 lev func_L06_00416C20 src/overlays/shared/L06_00416C20.c match func_L06_00417510 level_06:.text:00417510:256 100.00 func_L06_004999C0 src/overlays/shared/L06_004999C0.c match func_L06_0049AE90 level_06:.text:0049AE90:96 100.00 func_L06_0049AFC8 src/overlays/shared/L06_0049AFC8.c match func_L06_0049C4E8 level_06:.text:0049C4E8:32 100.00 +func_L06_0049AFE8 src/overlays/shared/L06_0049AFE8.c differs - - 0.00 func_L06_0049B380 src/overlays/shared/L06_0049B380.c match func_L06_0049C8A0 level_06:.text:0049C8A0:52 100.00 func_L06_0049B938 src/overlays/shared/L06_0049B938.c match func_L06_0049CE58 level_06:.text:0049CE58:36 100.00 func_L06_0049C508 src/pal/overlays/shared/L06_0049C508.c match func_L06_0049C508 level_06:.text:0049C508:604 100.00 @@ -8230,7 +8454,9 @@ func_L06_004C6F18 src/overlays/shared/L06_004C6F18.c match func_L06_004C8750 lev func_L06_004C7210 src/overlays/shared/L06_004C7210.c match func_L06_004C8A48 level_06:.text:004C8A48:16 100.00 func_L06_004C7300 src/overlays/shared/L06_004C7300.c match func_L06_004C8B38 level_06:.text:004C8B38:32 100.00 func_L06_004C7320 src/overlays/shared/L06_004C7320.c match func_L06_004C8B58 level_06:.text:004C8B58:84 100.00 +func_L06_004C7378 src/overlays/shared/L06_004C7378.c match func_L06_004C8BB0 level_06:.text:004C8BB0:120 100.00 func_L06_004C8068 src/overlays/shared/L06_004C8068.c match func_L06_004C98A0 level_06:.text:004C98A0:68 100.00 +func_L06_004C8388 src/overlays/shared/L06_004C8388.c match func_L06_004C9BC0 level_06:.text:004C9BC0:84 100.00 func_L06_004C83E8 src/overlays/shared/L06_004C83E8.c match func_L06_004C9C20 level_06:.text:004C9C20:72 100.00 func_L06_004C8430 src/overlays/shared/L06_004C8430.c differs - - 0.00 func_L06_004C8768 src/overlays/shared/L06_004C8768.c match func_L06_004C9FA0 level_06:.text:004C9FA0:76 100.00 @@ -8275,6 +8501,7 @@ func_L10_004D44D0 src/overlays/shared/L10_004D44D0.c match func_L10_004D5F10 lev func_L10_004D5370 src/overlays/l10_torval_ruins/L10_004D5370.c match func_L10_004D6DA8 level_10:.text:004D6DA8:12 100.00 func_L10_004D53A8 src/overlays/l10_torval_ruins/L10_004D53A8.c match func_L10_004D6DE0 level_10:.text:004D6DE0:16 100.00 func_L10_004D53C0 src/overlays/shared/L10_004D53C0.c match func_L10_004D6DF8 level_10:.text:004D6DF8:60 100.00 +func_L10_004DCC58 src/overlays/shared/L10_004DCC58.c differs - - 0.00 func_L10_004DCCE8 src/overlays/l10_torval_ruins/L10_004DCCE8.c match func_L10_004DE900 level_10:.text:004DE900:16 100.00 func_L10_004DE870 src/pal/overlays/l10_torval_ruins/L10_004DE870.c match func_L10_004DE870 level_10:.text:004DE870:140 100.00 func_L11_003FEB88 src/overlays/shared/L11_003FEB88.c match func_L11_003FF4B8 level_11:.text:003FF4B8:64 100.00 @@ -8282,6 +8509,7 @@ func_L11_003FF4B8 src/pal/overlays/l11_tempus_station/L11_003FF4B8.c match func_ func_L11_00408458 src/overlays/shared/L11_00408458.c differs - - 0.00 func_L11_00408DE8 src/pal/overlays/l11_tempus_station/L11_00408DE8.c match func_L11_00408DE8 level_11:.text:00408DE8:108 100.00 func_L11_00492720 src/overlays/shared/L11_00492720.c match func_L11_00493CB0 level_11:.text:00493CB0:72 100.00 +func_L11_00492768 src/overlays/shared/L11_00492768.c differs - - 0.00 func_L11_004928A0 src/overlays/shared/L11_004928A0.c match func_L11_00493E30 level_11:.text:00493E30:32 100.00 func_L11_00493CF8 src/pal/overlays/l11_tempus_station/L11_00493CF8.c match func_L11_00493CF8 level_11:.text:00493CF8:288 100.00 func_L13_003DEEF0 src/overlays/shared/L13_003DEEF0.c match func_L13_003DF368 level_13:.text:003DF368:16 100.00 @@ -8291,9 +8519,11 @@ func_L13_00459438 src/overlays/l13_maraxus_prison/L13_00459438.c match func_L13_ func_L13_00459448 src/overlays/l13_maraxus_prison/L13_00459448.c match func_L13_0045A5A0 level_13:.text:0045A5A0:12 100.00 func_L13_00459458 src/overlays/l13_maraxus_prison/L13_00459458.c match func_L13_0045A5B0 level_13:.text:0045A5B0:16 100.00 func_L13_00459968 src/pal/overlays/l13_maraxus_prison/L13_00459968.c match func_L13_00459968 level_13:.text:00459968:64 100.00 +func_L13_0046D2E8 src/overlays/l13_maraxus_prison/L13_0046D2E8.c match func_L13_0046E630 level_13:.text:0046E630:252 100.00 func_L13_0046D408 src/overlays/shared/L13_0046D408.c match func_L13_0046E750 level_13:.text:0046E750:140 100.00 func_L13_0046D498 src/overlays/shared/L13_0046D498.c match func_L13_0046E7E0 level_13:.text:0046E7E0:140 100.00 func_L13_0046E630 src/pal/overlays/l13_maraxus_prison/L13_0046E630.c match func_L13_0046E630 level_13:.text:0046E630:252 100.00 +func_L13_004BD628 src/overlays/shared/L13_004BD628.c differs - - 0.00 func_L13_004BE4B0 src/overlays/shared/L13_004BE4B0.c match func_L13_004BFE50 level_13:.text:004BFE50:24 100.00 func_L13_004BE4C8 src/overlays/shared/L13_004BE4C8.c match func_L13_004BFE68 level_13:.text:004BFE68:148 100.00 func_L13_004BEF98 src/pal/overlays/l13_maraxus_prison/L13_004BEF98.c match func_L13_004BEF98 level_13:.text:004BEF98:360 100.00 @@ -8323,6 +8553,7 @@ func_L15_004ADB18 src/overlays/shared/L15_004ADB18.c match func_L15_004AF290 lev func_L15_004AF138 src/pal/overlays/l15_control_level/L15_004AF138.c match func_L15_004AF138 level_15:.text:004AF138:344 100.00 func_L15_004CDDA8 src/pal/overlays/l15_control_level/L15_004CDDA8.c match func_L15_004CDDA8 level_15:.text:004CDDA8:96 100.00 func_L15_004D6800 src/overlays/shared/L15_004D6800.c match func_L15_004D8480 level_15:.text:004D8480:204 100.00 +func_L15_004D6FD0 src/overlays/l15_control_level/L15_004D6FD0.c match func_L15_004D8C50 level_15:.text:004D8C50:308 100.00 func_L15_004D72A0 src/overlays/shared/L15_004D72A0.c match func_L15_004D8F20 level_15:.text:004D8F20:52 100.00 func_L15_004D72D8 src/overlays/shared/L15_004D72D8.c match func_L15_004D8F58 level_15:.text:004D8F58:44 100.00 func_L15_004D8550 src/pal/overlays/l15_control_level/L15_004D8550.c match func_L15_004D8550 level_15:.text:004D8550:304 100.00 @@ -8472,6 +8703,7 @@ func_L41_00446DC8 src/overlays/l41_battledome_tower/L41_00446DC8.c match func_L4 func_L41_00446DF0 src/overlays/l41_battledome_tower/L41_00446DF0.c match func_L41_00447EF8 level_41:.text:00447EF8:116 100.00 func_L41_00446E70 src/overlays/shared/L41_00446E70.c match func_L41_00447F78 level_41:.text:00447F78:272 100.00 func_L41_00446FE8 src/pal/overlays/l41_battledome_tower/L41_00446FE8.c match func_L41_00446FE8 level_41:.text:00446FE8:196 100.00 +func_L41_004484C8 src/overlays/shared/L41_004484C8.c match func_L41_004495D0 level_41:.text:004495D0:260 100.00 func_L41_00448A40 src/overlays/shared/L41_00448A40.c match func_L41_00449B48 level_41:.text:00449B48:188 100.00 func_L41_00448B00 src/overlays/l41_battledome_tower/L41_00448B00.c match func_L41_00449C08 level_41:.text:00449C08:20 100.00 func_L41_00448B18 src/overlays/l41_battledome_tower/L41_00448B18.c match func_L41_00449C20 level_41:.text:00449C20:28 100.00 @@ -8534,9 +8766,7 @@ func_0015F018 nonmatching/core/func_0015F018.c near func_0015F028 main:core.text func_001614C0 nonmatching/core/func_001614C0.c near func_001614D0 main:core.text:001614D0:104 86.54 func_00406D60 nonmatching/game/func_00406D60.c none - - 0.00 func_0046A360 nonmatching/game/func_0046A360.c near func_0046AC20 main:.text:0046AC20:432 0.00 -func_0046CEA0 nonmatching/game/func_0046CEA0.c near func_0046D780 main:.text:0046D780:552 89.67 func_0046DB78 nonmatching/game/func_0046DB78.c none - - 0.00 -func_0046E9E8 nonmatching/game/func_0046E9E8.c near func_0046F2C8 main:.text:0046F2C8:224 92.41 func_0046EAC8 nonmatching/game/func_0046EAC8.c near func_0046F3A8 main:.text:0046F3A8:260 94.23 func_004766F0 nonmatching/game/func_004766F0.c none - - 0.00 func_004766F8 nonmatching/game/func_004766F8.c none - - 0.00 @@ -8548,11 +8778,8 @@ func_004979A8 nonmatching/game/func_004979A8.c none - - 0.00 func_00498730 nonmatching/game/func_00498730.c near func_00499468 main:.text:00499468:352 0.00 func_0049A694 nonmatching/game/func_0049A694.c none - - 0.00 func_0049D9D8 nonmatching/game/func_0049D9D8.c near func_0049E710 main:.text:0049E710:316 99.37 -func_004A06F8 nonmatching/game/func_004A06F8.c near func_004A1430 main:.text:004A1430:376 96.81 func_004A68D8 nonmatching/game/func_004A68D8.c near func_004A7648 main:.text:004A7648:464 98.71 -func_004A8280 nonmatching/game/func_004A8280.c near func_004A8FF0 main:.text:004A8FF0:292 89.38 func_004A8CB0 nonmatching/game/func_004A8CB0.c none - - 0.00 -func_004A8E78 nonmatching/game/func_004A8E78.c near func_004A9BF0 main:.text:004A9BF0:236 92.80 func_004A90E8 nonmatching/game/func_004A90E8.c near func_004A9E60 main:.text:004A9E60:428 93.46 func_004AB220 nonmatching/game/func_004AB220.c near func_004AC078 main:.text:004AC078:484 97.73 func_004AEE80 nonmatching/game/func_004AEE80.c near func_004AFD10 main:.text:004AFD10:744 94.49 @@ -8565,7 +8792,6 @@ func_004B5138 nonmatching/game/func_004B5138.c near func_004B6028 main:.text:004 func_004B65D8 nonmatching/game/func_004B65D8.c near func_004B74C8 main:.text:004B74C8:356 93.54 func_004B8928 nonmatching/game/func_004B8928.c near func_004B9818 main:.text:004B9818:184 51.63 func_004B9330 nonmatching/game/func_004B9330.c near func_004BA220 main:.text:004BA220:124 95.16 -func_004B9440 nonmatching/game/func_004B9440.c near func_004BA330 main:.text:004BA330:284 97.89 func_004BD128 nonmatching/game/func_004BD128.c near func_004BDF28 main:.text:004BDF28:732 97.40 func_004BDDF8 nonmatching/game/func_004BDDF8.c near func_004BEBF8 main:.text:004BEBF8:620 95.16 func_004BF4F0 nonmatching/game/func_004BF4F0.c near func_004C0318 main:.text:004C0318:360 89.44 @@ -8576,14 +8802,11 @@ func_004C34D8 nonmatching/game/func_004C34D8.c near func_004C4300 main:.text:004 func_004C6070 nonmatching/game/func_004C6070.c near func_004C6E98 main:.text:004C6E98:328 0.00 func_004C6DD0 nonmatching/game/func_004C6DD0.c near func_004C7BF8 main:.text:004C7BF8:752 97.74 func_004C8388 nonmatching/game/func_004C8388.c near func_004C7F48 main:.text:004C7F48:4 0.00 -func_004C9090 nonmatching/game/func_004C9090.c near func_004C9EB8 main:.text:004C9EB8:216 98.61 func_004CB0F0 nonmatching/game/func_004CB0F0.c near func_004CBF90 main:.text:004CBF90:88 88.64 -func_004CBB98 nonmatching/game/func_004CBB98.c near func_004CCA38 main:.text:004CCA38:628 98.73 func_004CCDC0 nonmatching/game/func_004CCDC0.c near func_004CDC60 main:.text:004CDC60:176 93.75 func_004D2D30 nonmatching/game/func_004D2D30.c near func_004D3C40 main:.text:004D3C40:712 94.38 func_004D4E80 nonmatching/game/func_004D4E80.c near func_004D5D98 main:.text:004D5D98:828 96.38 func_004D7BC0 nonmatching/game/func_004D7BC0.c near func_004D8AD8 main:.text:004D8AD8:384 92.19 -func_004D9408 nonmatching/game/func_004D9408.c near func_004DA320 main:.text:004DA320:236 97.46 func_004DC200 nonmatching/game/func_004DC200.c near func_004DD160 main:.text:004DD160:200 95.00 func_004DCCB8 nonmatching/game/func_004DCCB8.c near func_004DDC18 main:.text:004DDC18:472 86.23 func_004DF0F8 nonmatching/game/func_004DF0F8.c near func_004E0058 main:.text:004E0058:448 85.04 @@ -8595,7 +8818,6 @@ func_004F5700 nonmatching/game/func_004F5700.c near func_004F6780 main:.text:004 func_004F6750 nonmatching/game/func_004F6750.c near func_004F77D0 main:.text:004F77D0:496 92.94 func_004F6960 nonmatching/game/func_004F6960.c near func_004F79E0 main:.text:004F79E0:380 97.89 func_004F6AF0 nonmatching/game/func_004F6AF0.c near func_004F7B70 main:.text:004F7B70:536 97.76 -func_004F7FD8 nonmatching/game/func_004F7FD8.c near func_004F9058 main:.text:004F9058:508 87.01 func_004F8B60 nonmatching/game/func_004F8B60.c near func_004F9BE0 main:.text:004F9BE0:664 0.00 func_004F9680 nonmatching/game/func_004F9680.c near func_004FA700 main:.text:004FA700:228 98.25 func_005061D8 nonmatching/game/func_005061D8.c near func_00507270 main:.text:00507270:384 89.84 @@ -8667,7 +8889,6 @@ func_L00_00545F88 nonmatching/l00_multiplayer_menu/func_L00_00545F88.c near func func_L00_005466E8 nonmatching/l00_multiplayer_menu/func_L00_005466E8.c near func_L00_00546BE8 level_00:.text:00546BE8:1672 99.22 func_L00_005472D0 nonmatching/l00_multiplayer_menu/func_L00_005472D0.c near func_L00_005477D0 level_00:.text:005477D0:560 97.12 func_L00_00596268 nonmatching/shared/func_L00_00596268.c near func_L00_00596E68 level_00:.text:00596E68:140 95.71 -func_L00_00599710 nonmatching/shared/func_L00_00599710.c near func_L00_0059A318 level_00:.text:0059A318:516 84.88 func_L00_005C5428 nonmatching/shared/func_L00_005C5428.c near func_L00_005C66E8 level_00:.text:005C66E8:128 92.19 func_L00_005D5CE0 nonmatching/shared/func_L00_005D5CE0.c near func_L00_005D83B0 level_00:.text:005D83B0:400 0.00 func_L00_005E0ED0 nonmatching/shared/func_L00_005E0ED0.c near func_L00_005E3870 level_00:.text:005E3870:132 80.30 @@ -8718,7 +8939,6 @@ func_L01_005724C8 nonmatching/shared/func_L01_005724C8.c near func_L01_005750C0 func_L01_00591730 nonmatching/shared/func_L01_00591730.c none - - 0.00 func_L01_005AC9D0 nonmatching/shared/func_L01_005AC9D0.c near func_L01_005B0D60 level_01:.text:005B0D60:280 84.29 func_L01_005BAEC0 nonmatching/shared/func_L01_005BAEC0.c near func_L01_005BF498 level_01:.text:005BF498:164 81.71 -func_L01_0063B1B8 nonmatching/shared/func_L01_0063B1B8.c near func_L01_006402B0 level_01:.text:006402B0:48 27.27 func_L01_00666D98 nonmatching/shared/func_L01_00666D98.c near func_L01_0066BF30 level_01:.text:0066BF30:240 0.00 func_L01_006B3FE8 nonmatching/shared/func_L01_006B3FE8.c near func_L01_006B95B0 level_01:.text:006B95B0:136 82.86 func_L02_003C56E8 nonmatching/shared/func_L02_003C56E8.c near func_L02_003C5A60 level_02:.text:003C5A60:224 98.21 diff --git a/config/us/map.tsv b/config/us/map.tsv index e32c9d64..4361a323 100644 --- a/config/us/map.tsv +++ b/config/us/map.tsv @@ -287,7 +287,7 @@ func_00139A58 src/core/00139A58.c match func_00139A58 main:core.text:00139A58:40 func_00139A80 src/core/00139A80.c match func_00139A80 main:core.text:00139A80:52 100.00 func_00139AB8 src/core/00139AB8.c match func_00139AB8 main:core.text:00139AB8:40 100.00 func_00139AE0 src/core/00139AE0.c match func_00139AE0 main:core.text:00139AE0:220 100.00 -func_00139DA0 src/pal/core/00139DA0.c other - - 0.00 +func_00139DA0 src/core/00139DA0.c match func_00139DA0 main:core.text:00139DA0:104 100.00 func_0013A0F0 src/core/0013A0F0.c match func_0013A0F0 main:core.text:0013A0F0:88 100.00 func_0013A148 src/core/0013A148.c match func_0013A148 main:core.text:0013A148:12 100.00 func_0013A160 src/core/0013A160.c match func_0013A160 main:core.text:0013A160:296 100.00 @@ -733,6 +733,7 @@ func_00159128 src/core/00159128.c match func_00159128 main:core.text:00159128:8 func_00159130 src/core/00159130.c match func_00159130 main:core.text:00159130:168 100.00 func_00159140 src/pal/core/00159140.c other - - 0.00 func_001591F0 src/core/001591F0.c match func_001591F0 main:core.text:001591F0:96 100.00 +func_00159258 src/core/00159258.c match func_00159258 main:core.text:00159258:112 100.00 func_00159268 src/pal/core/00159268.c other - - 0.00 func_001592D8 src/core/001592D8.c match func_001592D8 main:core.text:001592D8:48 100.00 func_00159308 src/core/00159308.c match func_00159308 main:core.text:00159308:48 100.00 @@ -1004,7 +1005,9 @@ func_00415EC8 src/game/00415EC8.c match func_00415EC8 main:.text:00415EC8:120 10 func_0041AC68 src/game/0041AC68.c match func_0041AC68 main:.text:0041AC68:124 100.00 func_0041C960 src/game/0041C960.c match func_0041C960 main:.text:0041C960:68 100.00 func_0041D7F0 src/game/0041D7F0.c match func_0041D7F0 main:.text:0041D7F0:108 100.00 +func_0041DA98 src/game/0041DA98.c match func_0041DA98 main:.text:0041DA98:364 100.00 func_0041DB98 src/pal/game/0041DB98.c other - - 0.00 +func_0041E280 src/game/0041E280.c match func_0041E280 main:.text:0041E280:300 100.00 func_0041E390 src/pal/game/0041E390.c other - - 0.00 func_0041FD80 src/game/0041FD80.c match func_0041FD80 main:.text:0041FD80:36 100.00 func_00420988 src/game/00420988.c match func_00420988 main:.text:00420988:20 100.00 @@ -1013,6 +1016,7 @@ func_00420E68 src/game/00420E68.c match func_00420E68 main:.text:00420E68:32 100 func_00420E88 src/game/00420E88.c match func_00420E88 main:.text:00420E88:44 100.00 func_00421670 src/game/00421670.c match func_00421670 main:.text:00421670:32 100.00 func_00421AB8 src/game/00421AB8.c match func_00421AB8 main:.text:00421AB8:28 100.00 +func_004230F8 src/game/004230F8.c match func_004230F8 main:.text:004230F8:284 100.00 func_004232A0 src/pal/game/004232A0.c other - - 0.00 func_004244C0 src/pal/game/004244C0.c other - - 0.00 func_00424578 src/game/00424578.c match func_00424578 main:.text:00424578:84 100.00 @@ -1024,21 +1028,28 @@ func_004259B0 src/game/004259B0.c match func_004259B0 main:.text:004259B0:24 100 func_004259C8 src/game/004259C8.c match func_004259C8 main:.text:004259C8:24 100.00 func_004259E0 src/game/004259E0.c match func_004259E0 main:.text:004259E0:16 100.00 func_00427270 src/game/00427270.c match func_00427270 main:.text:00427270:8 100.00 +func_00429BE8 src/game/00429BE8.c match func_00429BE8 main:.text:00429BE8:268 100.00 func_00429E58 src/pal/game/00429E58.c other - - 0.00 +func_0042B700 src/game/0042B700.c match func_0042B700 main:.text:0042B700:204 100.00 func_0042BA60 src/pal/game/0042BA60.c other - - 0.00 func_0042ED20 src/game/0042ED20.c match func_0042ED20 main:.text:0042ED20:12 100.00 func_0042ED30 src/game/0042ED30.c match func_0042ED30 main:.text:0042ED30:164 100.00 func_00430C10 src/game/00430C10.c match func_00430C10 main:.text:00430C10:220 100.00 +func_00430D08 src/game/00430D08.c match func_00430D08 main:.text:00430D08:220 100.00 +func_00430E80 src/game/00430E80.c match func_00430E80 main:.text:00430E80:376 100.00 func_00431190 src/pal/game/00431190.c other - - 0.00 func_004312A8 src/game/004312A8.c match func_004312A8 main:.text:004312A8:12 100.00 func_00431308 src/pal/game/00431308.c other - - 0.00 func_00431568 src/game/00431568.c match func_00431568 main:.text:00431568:68 100.00 func_00432178 src/game/00432178.c match func_00432178 main:.text:00432178:88 100.00 +func_004331B0 src/game/004331B0.c match func_004331B0 main:.text:004331B0:256 100.00 +func_004332B0 src/game/004332B0.c match func_004332B0 main:.text:004332B0:100 100.00 func_00433318 src/game/00433318.c match func_00433318 main:.text:00433318:168 100.00 func_00433638 src/game/00433638.c match func_00433638 main:.text:00433638:88 100.00 func_00433688 src/pal/game/00433688.c other - - 0.00 func_00433788 src/pal/game/00433788.c other - - 0.00 func_004352F8 src/game/004352F8.c match func_004352F8 main:.text:004352F8:100 100.00 +func_004363D0 src/game/004363D0.c match func_004363D0 main:.text:004363D0:448 100.00 func_004368B8 src/pal/game/004368B8.c other - - 0.00 func_00436970 src/game/00436970.c match func_00436970 main:.text:00436970:64 100.00 func_004369B0 src/game/004369B0.c match func_004369B0 main:.text:004369B0:64 100.00 @@ -1085,6 +1096,8 @@ func_0043A9D0 src/pal/game/0043A9D0.c other - - 0.00 func_0043AEF8 src/game/0043AEF8.c match func_0043AEF8 main:.text:0043AEF8:68 100.00 func_0043B698 src/game/0043B698.c match func_0043B698 main:.text:0043B698:56 100.00 func_0043CF28 src/game/0043CF28.c match func_0043CF28 main:.text:0043CF28:28 100.00 +func_0043D160 src/game/0043D160.c match func_0043D160 main:.text:0043D160:232 100.00 +func_0043D250 src/game/0043D250.c match func_0043D250 main:.text:0043D250:272 100.00 func_0043D788 src/pal/game/0043D788.c other - - 0.00 func_0043D878 src/pal/game/0043D878.c other - - 0.00 func_0043D918 src/game/0043D918.c match func_0043D918 main:.text:0043D918:12 100.00 @@ -1099,13 +1112,16 @@ func_00445BE0 src/pal/game/00445BE0.c other - - 0.00 func_00446988 src/game/00446988.c match func_00446988 main:.text:00446988:96 100.00 func_00446A50 src/game/00446A50.c match func_00446A50 main:.text:00446A50:32 100.00 func_00446C70 src/game/00446C70.c match func_00446C70 main:.text:00446C70:8 100.00 +func_004473C0 src/game/004473C0.c match func_004473C0 main:.text:004473C0:212 100.00 func_00447498 src/game/00447498.c match func_00447498 main:.text:00447498:184 100.00 func_00447938 src/game/00447938.c match func_00447938 main:.text:00447938:80 100.00 func_00447A00 src/pal/game/00447A00.c other - - 0.00 func_00448720 src/game/00448720.c match func_00448720 main:.text:00448720:104 100.00 func_00448960 src/game/00448960.c match func_00448960 main:.text:00448960:120 100.00 func_00448A20 src/game/00448A20.c match func_00448A20 main:.text:00448A20:68 100.00 +func_00448B40 src/game/00448B40.c match func_00448B40 main:.text:00448B40:208 100.00 func_00448C10 src/game/00448C10.c match func_00448C10 main:.text:00448C10:64 100.00 +func_00448D98 src/game/00448D98.c match func_00448D98 main:.text:00448D98:264 100.00 func_00449180 src/pal/game/00449180.c other - - 0.00 func_00449298 src/game/00449298.c match func_00449298 main:.text:00449298:184 100.00 func_004493B0 src/game/004493B0.c match func_004493B0 main:.text:004493B0:56 100.00 @@ -1113,8 +1129,11 @@ func_004493D8 src/pal/game/004493D8.c other - - 0.00 func_004493E8 src/game/004493E8.c match func_004493E8 main:.text:004493E8:92 100.00 func_004496E0 src/game/004496E0.c match func_004496E0 main:.text:004496E0:352 100.00 func_00449D20 src/pal/game/00449D20.c other - - 0.00 +func_0044A410 src/game/0044A410.c match func_0044A410 main:.text:0044A410:436 100.00 +func_0044AA58 src/game/0044AA58.c match func_0044AA58 main:.text:0044AA58:200 100.00 func_0044AAB8 src/pal/game/0044AAB8.c other - - 0.00 func_0044AB20 src/game/0044AB20.c match func_0044AB20 main:.text:0044AB20:156 100.00 +func_0044ABC0 src/game/0044ABC0.c match func_0044ABC0 main:.text:0044ABC0:316 100.00 func_0044B100 src/pal/game/0044B100.c other - - 0.00 func_0044B110 src/game/0044B110.c match func_0044B110 main:.text:0044B110:20 100.00 func_0044B128 src/game/0044B128.c match func_0044B128 main:.text:0044B128:16 100.00 @@ -1130,19 +1149,24 @@ func_0044D238 src/game/0044D238.c match func_0044D238 main:.text:0044D238:128 10 func_0044D538 src/game/0044D538.c match func_0044D538 main:.text:0044D538:148 100.00 func_0044D5D0 src/game/0044D5D0.c match func_0044D5D0 main:.text:0044D5D0:148 100.00 func_0044D668 src/game/0044D668.c match func_0044D668 main:.text:0044D668:104 100.00 +func_0044D6D0 src/game/0044D6D0.c match func_0044D6D0 main:.text:0044D6D0:328 100.00 func_0044D938 src/game/0044D938.c match func_0044D938 main:.text:0044D938:172 100.00 func_0044D9E8 src/game/0044D9E8.c match func_0044D9E8 main:.text:0044D9E8:196 100.00 func_0044DAB0 src/game/0044DAB0.c match func_0044DAB0 main:.text:0044DAB0:148 100.00 func_0044DD78 src/pal/game/0044DD78.c other - - 0.00 func_0044DE80 src/game/0044DE80.c match func_0044DE80 main:.text:0044DE80:132 100.00 +func_0044DF08 src/game/0044DF08.c match func_0044DF08 main:.text:0044DF08:324 100.00 func_0044E5B0 src/pal/game/0044E5B0.c other - - 0.00 +func_00452598 src/game/00452598.c match func_00452598 main:.text:00452598:256 100.00 func_00452698 src/game/00452698.c match func_00452698 main:.text:00452698:68 100.00 func_004526E0 src/game/004526E0.c match func_004526E0 main:.text:004526E0:172 100.00 func_00452DC0 src/pal/game/00452DC0.c other - - 0.00 func_00454258 src/game/00454258.c match func_00454258 main:.text:00454258:60 100.00 func_00454338 src/game/00454338.c match func_00454338 main:.text:00454338:20 100.00 func_00454400 src/game/00454400.c match func_00454400 main:.text:00454400:28 100.00 +func_00454420 src/game/00454420.c match func_00454420 main:.text:00454420:468 100.00 func_004545F8 src/game/004545F8.c match func_004545F8 main:.text:004545F8:8 100.00 +func_00454600 src/game/00454600.c match func_00454600 main:.text:00454600:380 100.00 func_00454A60 src/game/00454A60.c match func_00454A60 main:.text:00454A60:8 100.00 func_00454A68 src/game/00454A68.c match func_00454A68 main:.text:00454A68:8 100.00 func_00454C38 src/pal/game/00454C38.c other - - 0.00 @@ -1169,6 +1193,7 @@ func_00459408 src/game/00459408.c match func_00459408 main:.text:00459408:36 100 func_00459430 src/game/00459430.c match func_00459430 main:.text:00459430:148 100.00 func_004596E0 src/game/004596E0.c match func_004596E0 main:.text:004596E0:108 100.00 func_00459758 src/game/00459758.c match func_00459758 main:.text:00459758:92 100.00 +func_004597B8 src/game/004597B8.c match func_004597B8 main:.text:004597B8:284 100.00 func_004598E0 src/game/004598E0.c match func_004598E0 main:.text:004598E0:8 100.00 func_004598E8 src/game/004598E8.c match func_004598E8 main:.text:004598E8:116 100.00 func_00459978 src/game/00459978.c match func_00459978 main:.text:00459978:112 100.00 @@ -1196,6 +1221,7 @@ func_0045CB70 src/game/0045CB70.c match func_0045CB70 main:.text:0045CB70:8 100. func_0045CE88 src/game/0045CE88.c match func_0045CE88 main:.text:0045CE88:44 100.00 func_0045CEC8 src/game/0045CEC8.c match func_0045CEC8 main:.text:0045CEC8:188 100.00 func_0045D090 src/game/0045D090.c match func_0045D090 main:.text:0045D090:52 100.00 +func_0045D108 src/game/0045D108.c match func_0045D108 main:.text:0045D108:92 100.00 func_0045D7B0 src/game/0045D7B0.c match func_0045D7B0 main:.text:0045D7B0:216 100.00 func_0045D908 src/pal/game/0045D908.c other - - 0.00 func_0045DE00 src/game/0045DE00.c match func_0045DE00 main:.text:0045DE00:52 100.00 @@ -1213,6 +1239,7 @@ func_0045E780 src/game/0045E780.c match func_0045E780 main:.text:0045E780:16 100 func_0045E790 src/game/0045E790.c match func_0045E790 main:.text:0045E790:116 100.00 func_0045E808 src/game/0045E808.c match func_0045E808 main:.text:0045E808:40 100.00 func_0045E830 src/game/0045E830.c match func_0045E830 main:.text:0045E830:44 100.00 +func_0045E860 src/game/0045E860.c match func_0045E860 main:.text:0045E860:352 100.00 func_0045F078 src/pal/game/0045F078.c other - - 0.00 func_0045F410 src/game/0045F410.c match func_0045F410 main:.text:0045F410:80 100.00 func_0045F460 src/game/0045F460.c match func_0045F460 main:.text:0045F460:52 100.00 @@ -1241,8 +1268,10 @@ func_004604F0 src/game/004604F0.c match func_004604F0 main:.text:004604F0:104 10 func_00460558 src/game/00460558.c match func_00460558 main:.text:00460558:76 100.00 func_004609E8 src/game/004609E8.c match func_004609E8 main:.text:004609E8:192 100.00 func_00460AA8 src/game/00460AA8.c match func_00460AA8 main:.text:00460AA8:88 100.00 +func_00460B00 src/game/00460B00.c match func_00460B00 main:.text:00460B00:412 100.00 func_00460CA0 src/game/00460CA0.c match func_00460CA0 main:.text:00460CA0:92 100.00 func_00460D00 src/game/00460D00.c match func_00460D00 main:.text:00460D00:72 100.00 +func_00460D48 src/game/00460D48.c match func_00460D48 main:.text:00460D48:744 100.00 func_00461030 src/game/00461030.c match func_00461030 main:.text:00461030:80 100.00 func_00461080 src/game/00461080.c match func_00461080 main:.text:00461080:36 100.00 func_004610A8 src/game/004610A8.c match func_004610A8 main:.text:004610A8:84 100.00 @@ -1255,7 +1284,9 @@ func_00461E08 src/game/00461E08.c match func_00461E08 main:.text:00461E08:64 100 func_00461E48 src/game/00461E48.c match func_00461E48 main:.text:00461E48:68 100.00 func_00461E90 src/game/00461E90.c match func_00461E90 main:.text:00461E90:16 100.00 func_004625A0 src/game/004625A0.c match func_004625A0 main:.text:004625A0:104 100.00 +func_00462D68 src/game/00462D68.c match func_00462D68 main:.text:00462D68:276 100.00 func_004635A8 src/pal/game/004635A8.c other - - 0.00 +func_00463B78 src/game/00463B78.c match func_00463B78 main:.text:00463B78:236 100.00 func_00463C68 src/game/00463C68.c match func_00463C68 main:.text:00463C68:76 100.00 func_00464038 src/game/00464038.c match func_00464038 main:.text:00464038:80 100.00 func_00464088 src/game/00464088.c match func_00464088 main:.text:00464088:8 100.00 @@ -1279,8 +1310,10 @@ func_00465118 src/game/00465118.c match func_00465118 main:.text:00465118:96 100 func_00465238 src/game/00465238.c match func_00465238 main:.text:00465238:128 100.00 func_004652B8 src/game/004652B8.c match func_004652B8 main:.text:004652B8:132 100.00 func_00465340 src/game/00465340.c match func_00465340 main:.text:00465340:100 100.00 +func_004653A8 src/game/004653A8.c match func_004653A8 main:.text:004653A8:164 100.00 func_004654B0 src/pal/game/004654B0.c other - - 0.00 func_00465530 src/game/00465530.c match func_00465530 main:.text:00465530:108 100.00 +func_004655A0 src/game/004655A0.c match func_004655A0 main:.text:004655A0:216 100.00 func_00465678 src/game/00465678.c match func_00465678 main:.text:00465678:44 100.00 func_004656A8 src/game/004656A8.c match func_004656A8 main:.text:004656A8:68 100.00 func_004656F0 src/game/004656F0.c match func_004656F0 main:.text:004656F0:76 100.00 @@ -1300,6 +1333,9 @@ func_00465DE8 src/pal/game/00465DE8.c other - - 0.00 func_00465E80 src/game/00465E80.c match func_00465E80 main:.text:00465E80:144 100.00 func_00465F10 src/game/00465F10.c match func_00465F10 main:.text:00465F10:8 100.00 func_00465F18 src/game/00465F18.c match func_00465F18 main:.text:00465F18:8 100.00 +func_00465F38 src/game/00465F38.c match func_00465F38 main:.text:00465F38:420 100.00 +func_004660F8 src/game/004660F8.c match func_004660F8 main:.text:004660F8:220 100.00 +func_004661D8 src/game/004661D8.c match func_004661D8 main:.text:004661D8:312 100.00 func_00466780 src/pal/game/00466780.c other - - 0.00 func_00466940 src/pal/game/00466940.c other - - 0.00 func_00466A20 src/pal/game/00466A20.c other - - 0.00 @@ -1308,6 +1344,7 @@ func_00468B40 src/game/00468B40.c match func_00468B40 main:.text:00468B40:56 100 func_00468B78 src/game/00468B78.c match func_00468B78 main:.text:00468B78:100 100.00 func_00468BE0 src/game/00468BE0.c match func_00468BE0 main:.text:00468BE0:88 100.00 func_00468C38 src/game/00468C38.c match func_00468C38 main:.text:00468C38:60 100.00 +func_00468C78 src/game/00468C78.c match func_00468C78 main:.text:00468C78:276 100.00 func_004690E8 src/game/004690E8.c match func_004690E8 main:.text:004690E8:48 100.00 func_004691F0 src/game/004691F0.c match func_004691F0 main:.text:004691F0:140 100.00 func_00469280 src/game/00469280.c match func_00469280 main:.text:00469280:52 100.00 @@ -1319,6 +1356,7 @@ func_0046A290 src/game/0046A290.c match func_0046A290 main:.text:0046A290:112,fr func_0046A320 src/game/0046A320.c match func_0046A320 main:.text:0046A320:48,frontbin:.text:004690E0:48 100.00 func_0046A350 src/game/0046A350.c match func_0046A350 main:.text:0046A350:8,frontbin:.text:00469110:8 100.00 func_0046A358 src/game/0046A358.c match func_0046A358 main:.text:0046A358:8,frontbin:.text:00469118:8 100.00 +func_0046A9E8 src/game/0046A9E8.c match func_0046A9E8 main:.text:0046A9E8:216,frontbin:.text:004697A8:216 100.00 func_0046B2A8 src/pal/game/0046B2A8.c other - - 0.00 func_0046B4C0 src/game/0046B4C0.c match func_0046B4C0 main:.text:0046B4C0:32,frontbin:.text:0046A280:32 100.00 func_0046B4E0 src/game/0046B4E0.c match func_0046B4E0 main:.text:0046B4E0:212,frontbin:.text:0046A2A0:212 100.00 @@ -1331,6 +1369,7 @@ func_0046C440 src/game/0046C440.c match func_0046C440 main:.text:0046C440:8,fron func_0046C7D0 src/game/0046C7D0.c match func_0046C7D0 main:.text:0046C7D0:172,frontbin:.text:0046B590:172 100.00 func_0046CAE8 src/game/0046CAE8.c match func_0046CAE8 main:.text:0046CAE8:240,frontbin:.text:0046B8A8:240 100.00 func_0046CBD8 src/game/0046CBD8.c match func_0046CBD8 main:.text:0046CBD8:216,frontbin:.text:0046B998:216 100.00 +func_0046CEA0 src/game/0046CEA0.c match func_0046CEA0 main:.text:0046CEA0:552,frontbin:.text:0046BC60:552 100.00 func_0046D0C8 src/game/0046D0C8.c match func_0046D0C8 main:.text:0046D0C8:68,frontbin:.text:0046BE88:68 100.00 func_0046D110 src/game/0046D110.c match func_0046D110 main:.text:0046D110:40,frontbin:.text:0046BED0:40 100.00 func_0046D138 src/game/0046D138.c match func_0046D138 main:.text:0046D138:44,frontbin:.text:0046BEF8:44 100.00 @@ -1345,12 +1384,14 @@ func_0046D5B8 src/game/0046D5B8.c match func_0046D5B8 main:.text:0046D5B8:8,fron func_0046D5C0 src/game/0046D5C0.c match func_0046D5C0 main:.text:0046D5C0:64,frontbin:.text:0046C380:64 100.00 func_0046D668 src/game/0046D668.c match func_0046D668 main:.text:0046D668:60,frontbin:.text:0046C428:60 100.00 func_0046D6A8 src/game/0046D6A8.c match func_0046D6A8 main:.text:0046D6A8:92,frontbin:.text:0046C468:92 100.00 +func_0046D708 src/game/0046D708.c match func_0046D708 main:.text:0046D708:204,frontbin:.text:0046C4C8:204 100.00 func_0046D780 src/pal/game/0046D780.c other - - 0.00 func_0046D7D8 src/game/0046D7D8.c match func_0046D7D8 main:.text:0046D7D8:68,frontbin:.text:0046C598:68 100.00 func_0046D820 src/game/0046D820.c match func_0046D820 main:.text:0046D820:64,frontbin:.text:0046C5E0:64 100.00 func_0046DAA0 src/game/0046DAA0.c match func_0046DAA0 main:.text:0046DAA0:84,frontbin:.text:0046C860:84 100.00 func_0046DD78 src/pal/game/0046DD78.c other - - 0.00 func_0046DFE8 src/pal/game/0046DFE8.c other - - 0.00 +func_0046E9E8 src/game/0046E9E8.c match func_0046E9E8 main:.text:0046E9E8:224,frontbin:.text:0046D7A8:224 100.00 func_0046EDD8 src/game/0046EDD8.c match func_0046EDD8 main:.text:0046EDD8:84,frontbin:.text:0046DB98:84 100.00 func_0046EFE0 src/game/0046EFE0.c match func_0046EFE0 main:.text:0046EFE0:132,frontbin:.text:0046DDA0:132 100.00 func_0046F068 src/game/0046F068.c match func_0046F068 main:.text:0046F068:100,frontbin:.text:0046DE28:100 100.00 @@ -1462,6 +1503,7 @@ func_0047EB60 src/game/0047EB60.c match func_0047EB60 main:.text:0047EB60:76,fro func_0047EBC0 src/game/0047EBC0.c match func_0047EBC0 main:.text:0047EBC0:68 100.00 func_0047EC78 src/game/0047EC78.c match func_0047EC78 main:.text:0047EC78:80,frontbin:.text:0047DA38:80 100.00 func_0047ECC8 src/game/0047ECC8.c match func_0047ECC8 main:.text:0047ECC8:72,frontbin:.text:0047DA88:72 100.00 +func_0047ED10 src/game/0047ED10.c match func_0047ED10 main:.text:0047ED10:256,frontbin:.text:0047DAD0:256 100.00 func_0047EE10 src/game/0047EE10.c match func_0047EE10 main:.text:0047EE10:152,frontbin:.text:0047DBD0:152 100.00 func_0047EF38 src/game/0047EF38.c match func_0047EF38 main:.text:0047EF38:108,frontbin:.text:0047DCF8:108 100.00 func_0047F538 src/game/0047F538.c match func_0047F538 main:.text:0047F538:8,frontbin:.text:0047E2F8:8 100.00 @@ -1537,11 +1579,21 @@ func_0048AF50 src/pal/game/0048AF50.c other - - 0.00 func_0048AF98 src/game/0048AF98.c match func_0048AF98 main:.text:0048AF98:96,frontbin:.text:00489C88:96 100.00 func_0048B470 src/game/0048B470.c match func_0048B470 main:.text:0048B470:236,frontbin:.text:0048A160:236 100.00 func_0048B818 src/game/0048B818.c match func_0048B818 main:.text:0048B818:36,frontbin:.text:0048A508:36 100.00 +func_0048B840 src/game/0048B840.c match func_0048B840 main:.text:0048B840:292,frontbin:.text:0048A530:292 100.00 func_0048B968 src/game/0048B968.c match func_0048B968 main:.text:0048B968:228,frontbin:.text:0048A658:228 100.00 func_0048BA50 src/game/0048BA50.c match func_0048BA50 main:.text:0048BA50:228,frontbin:.text:0048A740:228 100.00 +func_0048BB38 src/game/0048BB38.c match func_0048BB38 main:.text:0048BB38:228,frontbin:.text:0048A828:228 100.00 +func_0048BC20 src/game/0048BC20.c match func_0048BC20 main:.text:0048BC20:232,frontbin:.text:0048A910:232 100.00 +func_0048BD08 src/game/0048BD08.c match func_0048BD08 main:.text:0048BD08:228,frontbin:.text:0048A9F8:228 100.00 func_0048BDF0 src/game/0048BDF0.c match func_0048BDF0 main:.text:0048BDF0:204,frontbin:.text:0048AAE0:204 100.00 func_0048BEC0 src/game/0048BEC0.c match func_0048BEC0 main:.text:0048BEC0:204,frontbin:.text:0048ABB0:204 100.00 +func_0048BF90 src/game/0048BF90.c match func_0048BF90 main:.text:0048BF90:228,frontbin:.text:0048AC80:228 100.00 +func_0048C078 src/game/0048C078.c match func_0048C078 main:.text:0048C078:228,frontbin:.text:0048AD68:228 100.00 +func_0048C160 src/game/0048C160.c match func_0048C160 main:.text:0048C160:228,frontbin:.text:0048AE50:228 100.00 +func_0048C248 src/game/0048C248.c match func_0048C248 main:.text:0048C248:228,frontbin:.text:0048AF38:228 100.00 func_0048C2F8 src/pal/game/0048C2F8.c other - - 0.00 +func_0048C330 src/game/0048C330.c match func_0048C330 main:.text:0048C330:268,frontbin:.text:0048B020:268 100.00 +func_0048C440 src/game/0048C440.c match func_0048C440 main:.text:0048C440:384,frontbin:.text:0048B130:384 100.00 func_0048C508 src/pal/game/0048C508.c other - - 0.00 func_0048C5F0 src/pal/game/0048C5F0.c other - - 0.00 func_0048C6D8 src/pal/game/0048C6D8.c other - - 0.00 @@ -1657,6 +1709,7 @@ func_00498098 src/game/00498098.c match func_00498098 main:.text:00498098:100,fr func_00498100 src/game/00498100.c match func_00498100 main:.text:00498100:28,frontbin:.text:00496DF0:28 100.00 func_00498120 src/game/00498120.c match func_00498120 main:.text:00498120:44,frontbin:.text:00496E10:44 100.00 func_004981F8 src/game/004981F8.c match func_004981F8 main:.text:004981F8:120,frontbin:.text:00496EE8:120 100.00 +func_00498270 src/game/00498270.c match func_00498270 main:.text:00498270:248,frontbin:.text:00496F60:248 100.00 func_00498368 src/game/00498368.c match func_00498368 main:.text:00498368:120,frontbin:.text:00497058:120 100.00 func_004983E0 src/game/004983E0.c match func_004983E0 main:.text:004983E0:8,frontbin:.text:004970D0:8 100.00 func_004983E8 src/game/004983E8.c match func_004983E8 main:.text:004983E8:204,frontbin:.text:004970D8:204 100.00 @@ -1670,6 +1723,7 @@ func_00498890 src/game/00498890.c match func_00498890 main:.text:00498890:136,fr func_00498950 src/game/00498950.c match func_00498950 main:.text:00498950:112,frontbin:.text:00497640:112 100.00 func_004989C0 src/game/004989C0.c match func_004989C0 main:.text:004989C0:48,frontbin:.text:004976B0:48 100.00 func_004989F0 src/game/004989F0.c match func_004989F0 main:.text:004989F0:168,frontbin:.text:004976E0:168 100.00 +func_00498A98 src/game/00498A98.c match func_00498A98 main:.text:00498A98:284,frontbin:.text:00497788:284 100.00 func_00498BF4 src/game/00498BF4.c match func_00498BF4 main:.text:00498BF4:12,frontbin:.text:004978E4:12 100.00 func_00498C00 src/game/00498C00.c match func_00498C00 main:.text:00498C00:12,frontbin:.text:004978F0:12 100.00 func_00498C0C src/game/00498C0C.c match func_00498C0C main:.text:00498C0C:12,frontbin:.text:004978FC:12 100.00 @@ -1697,6 +1751,7 @@ func_00499120 src/pal/game/00499120.c other - - 0.00 func_00499270 src/game/00499270.c match func_00499270 main:.text:00499270:36,frontbin:.text:00497F60:36 100.00 func_00499298 src/game/00499298.c match func_00499298 main:.text:00499298:136,frontbin:.text:00497F88:136 100.00 func_004993D0 src/game/004993D0.c match func_004993D0 main:.text:004993D0:8,frontbin:.text:004980C0:8 100.00 +func_004993D8 src/game/004993D8.c match func_004993D8 main:.text:004993D8:264,frontbin:.text:004980C8:264 100.00 func_004994E0 src/game/004994E0.c match func_004994E0 main:.text:004994E0:84,frontbin:.text:004981D0:84 100.00 func_004995F0 src/game/004995F0.c match func_004995F0 main:.text:004995F0:228,frontbin:.text:004982E0:228 100.00 func_00499790 src/game/00499790.c match func_00499790 main:.text:00499790:360,frontbin:.text:00498480:360 100.00 @@ -1773,6 +1828,7 @@ func_0049D280 src/game/0049D280.c match func_0049D280 main:.text:0049D280:120,fr func_0049D308 src/game/0049D308.c match func_0049D308 main:.text:0049D308:144,frontbin:.text:0049BFF8:144 100.00 func_0049D398 src/game/0049D398.c match func_0049D398 main:.text:0049D398:148,frontbin:.text:0049C088:148 100.00 func_0049DF30 src/game/0049DF30.c match func_0049DF30 main:.text:0049DF30:116,frontbin:.text:0049CC20:116 100.00 +func_0049E140 src/game/0049E140.c match func_0049E140 main:.text:0049E140:376,frontbin:.text:0049CE30:376 100.00 func_0049E2B8 src/game/0049E2B8.c match func_0049E2B8 main:.text:0049E2B8:304,frontbin:.text:0049CFA8:304 100.00 func_0049E3E8 src/game/0049E3E8.c match func_0049E3E8 main:.text:0049E3E8:144,frontbin:.text:0049D0D8:144 100.00 func_0049E578 src/game/0049E578.c match func_0049E578 main:.text:0049E578:56,frontbin:.text:0049D268:56 100.00 @@ -1784,6 +1840,10 @@ func_0049EFE0 src/game/0049EFE0.c match func_0049EFE0 main:.text:0049EFE0:44,fro func_0049F010 src/game/0049F010.c match func_0049F010 main:.text:0049F010:44,frontbin:.text:0049DD00:44 100.00 func_0049F2F0 src/game/0049F2F0.c match func_0049F2F0 main:.text:0049F2F0:388,frontbin:.text:0049DFE0:388 100.00 func_0049F478 src/game/0049F478.c match func_0049F478 main:.text:0049F478:128,frontbin:.text:0049E168:128 100.00 +func_0049F4F8 src/game/0049F4F8.c match func_0049F4F8 main:.text:0049F4F8:356,frontbin:.text:0049E1E8:356 100.00 +func_0049F660 src/game/0049F660.c match func_0049F660 main:.text:0049F660:244,frontbin:.text:0049E350:244 100.00 +func_0049F758 src/game/0049F758.c match func_0049F758 main:.text:0049F758:204,frontbin:.text:0049E448:204 100.00 +func_0049F828 src/game/0049F828.c match func_0049F828 main:.text:0049F828:252,frontbin:.text:0049E518:252 100.00 func_0049F928 src/game/0049F928.c match func_0049F928 main:.text:0049F928:200,frontbin:.text:0049E618:200 100.00 func_0049F9F0 src/game/0049F9F0.c match func_0049F9F0 main:.text:0049F9F0:72,frontbin:.text:0049E6E0:72 100.00 func_0049FA38 src/game/0049FA38.c match func_0049FA38 main:.text:0049FA38:164,frontbin:.text:0049E728:164 100.00 @@ -1802,6 +1862,9 @@ func_004A0560 src/pal/game/004A0560.c other - - 0.00 func_004A05F0 src/game/004A05F0.c match func_004A05F0 main:.text:004A05F0:200,frontbin:.text:0049F2E0:200 100.00 func_004A0660 src/pal/game/004A0660.c other - - 0.00 func_004A06B8 src/game/004A06B8.c match func_004A06B8 main:.text:004A06B8:60,frontbin:.text:0049F3A8:60 100.00 +func_004A06F8 src/game/004A06F8.c match func_004A06F8 main:.text:004A06F8:376,frontbin:.text:0049F3E8:376 100.00 +func_004A0870 src/game/004A0870.c match func_004A0870 main:.text:004A0870:376,frontbin:.text:0049F560:376 100.00 +func_004A09E8 src/game/004A09E8.c match func_004A09E8 main:.text:004A09E8:376,frontbin:.text:0049F6D8:376 100.00 func_004A0B68 src/game/004A0B68.c match func_004A0B68 main:.text:004A0B68:124,frontbin:.text:0049F858:124 100.00 func_004A0BE8 src/game/004A0BE8.c match func_004A0BE8 main:.text:004A0BE8:8,frontbin:.text:0049F8D8:8 100.00 func_004A0BF0 src/game/004A0BF0.c match func_004A0BF0 main:.text:004A0BF0:116,frontbin:.text:0049F8E0:116 100.00 @@ -1811,6 +1874,7 @@ func_004A1010 src/game/004A1010.c match func_004A1010 main:.text:004A1010:300,fr func_004A1140 src/game/004A1140.c match func_004A1140 main:.text:004A1140:44,frontbin:.text:0049FE30:44 100.00 func_004A1170 src/game/004A1170.c match func_004A1170 main:.text:004A1170:128,frontbin:.text:0049FE60:128 100.00 func_004A11F0 src/game/004A11F0.c match func_004A11F0 main:.text:004A11F0:80,frontbin:.text:0049FEE0:80 100.00 +func_004A1240 src/game/004A1240.c match func_004A1240 main:.text:004A1240:204,frontbin:.text:0049FF30:204 100.00 func_004A1310 src/game/004A1310.c match func_004A1310 main:.text:004A1310:72,frontbin:.text:004A0000:72 100.00 func_004A1358 src/game/004A1358.c match func_004A1358 main:.text:004A1358:72,frontbin:.text:004A0048:72 100.00 func_004A13A0 src/game/004A13A0.c match func_004A13A0 main:.text:004A13A0:160,frontbin:.text:004A0090:160 100.00 @@ -1823,6 +1887,7 @@ func_004A1AD8 src/game/004A1AD8.c match func_004A1AD8 main:.text:004A1AD8:8,fron func_004A1AE0 src/game/004A1AE0.c match func_004A1AE0 main:.text:004A1AE0:64,frontbin:.text:004A07D0:64 100.00 func_004A1B20 src/game/004A1B20.c match func_004A1B20 main:.text:004A1B20:28,frontbin:.text:004A0810:28 100.00 func_004A1B40 src/game/004A1B40.c match func_004A1B40 main:.text:004A1B40:8,frontbin:.text:004A0830:8 100.00 +func_004A1B48 src/game/004A1B48.c match func_004A1B48 main:.text:004A1B48:516,frontbin:.text:004A0838:516 100.00 func_004A1D50 src/game/004A1D50.c match func_004A1D50 main:.text:004A1D50:8,frontbin:.text:004A0A40:8 100.00 func_004A1D58 src/game/004A1D58.c match func_004A1D58 main:.text:004A1D58:48,frontbin:.text:004A0A48:48 100.00 func_004A1D88 src/game/004A1D88.c match func_004A1D88 main:.text:004A1D88:84,frontbin:.text:004A0A78:84 100.00 @@ -1870,9 +1935,11 @@ func_004A2A18 src/game/004A2A18.c match func_004A2A18 main:.text:004A2A18:48,fro func_004A2A48 src/game/004A2A48.c match func_004A2A48 main:.text:004A2A48:136,frontbin:.text:004A1738:136 100.00 func_004A2AD0 src/game/004A2AD0.c match func_004A2AD0 main:.text:004A2AD0:52,frontbin:.text:004A17C0:52 100.00 func_004A2B08 src/game/004A2B08.c match func_004A2B08 main:.text:004A2B08:16,frontbin:.text:004A17F8:16 100.00 +func_004A2B18 src/game/004A2B18.c match func_004A2B18 main:.text:004A2B18:236,frontbin:.text:004A1808:236 100.00 func_004A2BA8 src/pal/game/004A2BA8.c other - - 0.00 func_004A2C08 src/game/004A2C08.c match func_004A2C08 main:.text:004A2C08:28,frontbin:.text:004A18F8:28 100.00 func_004A2C1C src/game/004A2C1C.c match func_004A2C1C main:.text:004A2C1C:8,frontbin:.text:004A190C:8 100.00 +func_004A2C28 src/game/004A2C28.c match func_004A2C28 main:.text:004A2C28:228,frontbin:.text:004A1918:228 100.00 func_004A2D10 src/game/004A2D10.c match func_004A2D10 main:.text:004A2D10:40,frontbin:.text:004A1A00:40 100.00 func_004A2D38 src/game/004A2D38.c match func_004A2D38 main:.text:004A2D38:8,frontbin:.text:004A1A28:8 100.00 func_004A2D40 src/game/004A2D40.c match func_004A2D40 main:.text:004A2D40:76,frontbin:.text:004A1A30:76 100.00 @@ -1905,6 +1972,7 @@ func_004A3A28 src/game/004A3A28.c match func_004A3A28 main:.text:004A3A28:336,fr func_004A45F8 src/game/004A45F8.c match func_004A45F8 main:.text:004A45F8:176,frontbin:.text:004A32E8:176 100.00 func_004A46A8 src/game/004A46A8.c match func_004A46A8 main:.text:004A46A8:244,frontbin:.text:004A3398:244 100.00 func_004A47A0 src/game/004A47A0.c match func_004A47A0 main:.text:004A47A0:220,frontbin:.text:004A3490:220 100.00 +func_004A4880 src/game/004A4880.c match func_004A4880 main:.text:004A4880:348,frontbin:.text:004A3570:348 100.00 func_004A49E0 src/game/004A49E0.c match func_004A49E0 main:.text:004A49E0:480,frontbin:.text:004A36D0:480 100.00 func_004A4D08 src/game/004A4D08.c match func_004A4D08 main:.text:004A4D08:60,frontbin:.text:004A39F8:60 100.00 func_004A4D48 src/game/004A4D48.c match func_004A4D48 main:.text:004A4D48:88,frontbin:.text:004A3A38:88 100.00 @@ -1943,17 +2011,21 @@ func_004A7DB0 src/game/004A7DB0.c match func_004A7DB0 main:.text:004A7DB0:32,fro func_004A7DD0 src/game/004A7DD0.c match func_004A7DD0 main:.text:004A7DD0:640,frontbin:.text:004A6AC0:640 100.00 func_004A8050 src/game/004A8050.c match func_004A8050 main:.text:004A8050:160,frontbin:.text:004A6D40:160 100.00 func_004A81D0 src/game/004A81D0.c match func_004A81D0 main:.text:004A81D0:164,frontbin:.text:004A6EC0:164 100.00 +func_004A8280 src/game/004A8280.c match func_004A8280 main:.text:004A8280:292,frontbin:.text:004A6F70:292 100.00 func_004A83A8 src/game/004A83A8.c match func_004A83A8 main:.text:004A83A8:136,frontbin:.text:004A7098:136 100.00 +func_004A8430 src/game/004A8430.c match func_004A8430 main:.text:004A8430:228,frontbin:.text:004A7120:228 100.00 func_004A8518 src/game/004A8518.c match func_004A8518 main:.text:004A8518:184,frontbin:.text:004A7208:184 100.00 func_004A85D0 src/game/004A85D0.c match func_004A85D0 main:.text:004A85D0:44,frontbin:.text:004A72C0:44 100.00 func_004A8600 src/game/004A8600.c match func_004A8600 main:.text:004A8600:224,frontbin:.text:004A72F0:224 100.00 func_004A86E0 src/game/004A86E0.c match func_004A86E0 main:.text:004A86E0:148,frontbin:.text:004A73D0:148 100.00 func_004A8778 src/game/004A8778.c match func_004A8778 main:.text:004A8778:552,frontbin:.text:004A7468:552 100.00 func_004A89A0 src/game/004A89A0.c match func_004A89A0 main:.text:004A89A0:68,frontbin:.text:004A7690:68 100.00 +func_004A89E8 src/game/004A89E8.c match func_004A89E8 main:.text:004A89E8:292,frontbin:.text:004A76D8:292 100.00 func_004A8B10 src/game/004A8B10.c match func_004A8B10 main:.text:004A8B10:184,frontbin:.text:004A7800:184 100.00 func_004A8BD0 src/game/004A8BD0.c match func_004A8BD0 main:.text:004A8BD0:88,frontbin:.text:004A78C0:88 100.00 func_004A8C28 src/game/004A8C28.c match func_004A8C28 main:.text:004A8C28:64,frontbin:.text:004A7918:64 100.00 func_004A8C68 src/game/004A8C68.c match func_004A8C68 main:.text:004A8C68:80,frontbin:.text:004A7958:80 100.00 +func_004A8E78 src/game/004A8E78.c match func_004A8E78 main:.text:004A8E78:236,frontbin:.text:004A7B68:236 100.00 func_004A8F68 src/game/004A8F68.c match func_004A8F68 main:.text:004A8F68:308,frontbin:.text:004A7C58:308 100.00 func_004A8FF0 src/pal/game/004A8FF0.c other - - 0.00 func_004A90A0 src/game/004A90A0.c match func_004A90A0 main:.text:004A90A0:72,frontbin:.text:004A7D90:72 100.00 @@ -1986,6 +2058,7 @@ func_004AB8B0 src/game/004AB8B0.c match func_004AB8B0 main:.text:004AB8B0:52,fro func_004ABCE8 src/pal/game/004ABCE8.c other - - 0.00 func_004ABEA0 src/pal/game/004ABEA0.c other - - 0.00 func_004AD1B8 src/game/004AD1B8.c match func_004AD1B8 main:.text:004AD1B8:28,frontbin:.text:004ABEA8:28 100.00 +func_004AD1D8 src/game/004AD1D8.c match func_004AD1D8 main:.text:004AD1D8:220,frontbin:.text:004ABEC8:220 100.00 func_004AD2B8 src/game/004AD2B8.c match func_004AD2B8 main:.text:004AD2B8:88,frontbin:.text:004ABFA8:88 100.00 func_004AD310 src/game/004AD310.c match func_004AD310 main:.text:004AD310:72,frontbin:.text:004AC000:72 100.00 func_004AD358 src/game/004AD358.c match func_004AD358 main:.text:004AD358:136,frontbin:.text:004AC048:136 100.00 @@ -2089,6 +2162,7 @@ func_004B3DE0 src/game/004B3DE0.c match func_004B3DE0 main:.text:004B3DE0:60,fro func_004B3E20 src/game/004B3E20.c match func_004B3E20 main:.text:004B3E20:136,frontbin:.text:004B2B10:136 100.00 func_004B3EA8 src/game/004B3EA8.c match func_004B3EA8 main:.text:004B3EA8:80,frontbin:.text:004B2B98:80 100.00 func_004B3EF8 src/game/004B3EF8.c match func_004B3EF8 main:.text:004B3EF8:340,frontbin:.text:004B2BE8:340 100.00 +func_004B4050 src/game/004B4050.c match func_004B4050 main:.text:004B4050:420,frontbin:.text:004B2D40:420 100.00 func_004B4A40 src/game/004B4A40.c match func_004B4A40 main:.text:004B4A40:84,frontbin:.text:004B3730:84 100.00 func_004B4A98 src/game/004B4A98.c match func_004B4A98 main:.text:004B4A98:232,frontbin:.text:004B3788:232 100.00 func_004B4B80 src/game/004B4B80.c match func_004B4B80 main:.text:004B4B80:228,frontbin:.text:004B3870:228 100.00 @@ -2124,6 +2198,7 @@ func_004B5E70 src/game/004B5E70.c match func_004B5E70 main:.text:004B5E70:260,fr func_004B5F78 src/game/004B5F78.c match func_004B5F78 main:.text:004B5F78:116,frontbin:.text:004B4C68:116 100.00 func_004B6378 src/game/004B6378.c match func_004B6378 main:.text:004B6378:604,frontbin:.text:004B5068:604 100.00 func_004B64A0 src/pal/game/004B64A0.c other - - 0.00 +func_004B6740 src/game/004B6740.c match func_004B6740 main:.text:004B6740:328,frontbin:.text:004B5430:328 100.00 func_004B6888 src/game/004B6888.c match func_004B6888 main:.text:004B6888:200,frontbin:.text:004B5578:200 100.00 func_004B6950 src/game/004B6950.c match func_004B6950 main:.text:004B6950:28,frontbin:.text:004B5640:28 100.00 func_004B6970 src/game/004B6970.c match func_004B6970 main:.text:004B6970:28,frontbin:.text:004B5660:28 100.00 @@ -2185,6 +2260,8 @@ func_004B7E78 src/game/004B7E78.c match func_004B7E78 main:.text:004B7E78:444,fr func_004B8038 src/game/004B8038.c match func_004B8038 main:.text:004B8038:152,frontbin:.text:004B6D28:152 100.00 func_004B80D0 src/game/004B80D0.c match func_004B80D0 main:.text:004B80D0:136,frontbin:.text:004B6DC0:136 100.00 func_004B8158 src/game/004B8158.c match func_004B8158 main:.text:004B8158:624,frontbin:.text:004B6E48:624 100.00 +func_004B83C8 src/game/004B83C8.c match func_004B83C8 main:.text:004B83C8:264,frontbin:.text:004B70B8:264 100.00 +func_004B84D0 src/game/004B84D0.c match func_004B84D0 main:.text:004B84D0:264,frontbin:.text:004B71C0:264 100.00 func_004B85D8 src/game/004B85D8.c match func_004B85D8 main:.text:004B85D8:428,frontbin:.text:004B72C8:428 100.00 func_004B8788 src/game/004B8788.c match func_004B8788 main:.text:004B8788:256,frontbin:.text:004B7478:256 100.00 func_004B8888 src/game/004B8888.c match func_004B8888 main:.text:004B8888:124,frontbin:.text:004B7578:124 100.00 @@ -2198,6 +2275,8 @@ func_004B8FF0 src/game/004B8FF0.c match func_004B8FF0 main:.text:004B8FF0:336,fr func_004B9140 src/game/004B9140.c match func_004B9140 main:.text:004B9140:92,frontbin:.text:004B7E30:92 100.00 func_004B91A0 src/game/004B91A0.c match func_004B91A0 main:.text:004B91A0:104,frontbin:.text:004B7E90:104 100.00 func_004B9208 src/game/004B9208.c match func_004B9208 main:.text:004B9208:52,frontbin:.text:004B7EF8:52 100.00 +func_004B9240 src/game/004B9240.c match func_004B9240 main:.text:004B9240:236,frontbin:.text:004B7F30:236 100.00 +func_004B9440 src/game/004B9440.c match func_004B9440 main:.text:004B9440:284,frontbin:.text:004B8130:284 100.00 func_004B9560 src/game/004B9560.c match func_004B9560 main:.text:004B9560:68,frontbin:.text:004B8250:68 100.00 func_004B95A8 src/game/004B95A8.c match func_004B95A8 main:.text:004B95A8:256,frontbin:.text:004B8298:256 100.00 func_004B99A8 src/game/004B99A8.c match func_004B99A8 main:.text:004B99A8:28,frontbin:.text:004B8698:28 100.00 @@ -2298,6 +2377,7 @@ func_004C13F8 src/game/004C13F8.c match func_004C13F8 main:.text:004C13F8:160,fr func_004C1498 src/game/004C1498.c match func_004C1498 main:.text:004C1498:76,frontbin:.text:004C0188:76 100.00 func_004C14F0 src/game/004C14F0.c match func_004C14F0 main:.text:004C14F0:336,frontbin:.text:004C01E0:336 100.00 func_004C1E98 src/game/004C1E98.c match func_004C1E98 main:.text:004C1E98:264,frontbin:.text:004C0B88:264 100.00 +func_004C1FA8 src/game/004C1FA8.c match func_004C1FA8 main:.text:004C1FA8:500 100.00 func_004C21A0 src/game/004C21A0.c match func_004C21A0 main:.text:004C21A0:68,frontbin:.text:004C0E90:68 100.00 func_004C21E8 src/game/004C21E8.c match func_004C21E8 main:.text:004C21E8:680,frontbin:.text:004C0ED8:680 100.00 func_004C2490 src/game/004C2490.c match func_004C2490 main:.text:004C2490:196,frontbin:.text:004C1180:196 100.00 @@ -2312,6 +2392,7 @@ func_004C2FF8 src/game/004C2FF8.c match func_004C2FF8 main:.text:004C2FF8:192,fr func_004C3010 src/pal/game/004C3010.c other - - 0.00 func_004C30B8 src/game/004C30B8.c match func_004C30B8 main:.text:004C30B8:132,frontbin:.text:004C1DA8:132 100.00 func_004C3250 src/game/004C3250.c match func_004C3250 main:.text:004C3250:192,frontbin:.text:004C1F40:192 100.00 +func_004C33D0 src/game/004C33D0.c match func_004C33D0 main:.text:004C33D0:260,frontbin:.text:004C20C0:260 100.00 func_004C37A0 src/game/004C37A0.c match func_004C37A0 main:.text:004C37A0:128,frontbin:.text:004C2490:128 100.00 func_004C3820 src/game/004C3820.c match func_004C3820 main:.text:004C3820:196,frontbin:.text:004C2510:196 100.00 func_004C38E8 src/game/004C38E8.c match func_004C38E8 main:.text:004C38E8:156,frontbin:.text:004C25D8:156 100.00 @@ -2329,6 +2410,8 @@ func_004C40C8 src/game/004C40C8.c match func_004C40C8 main:.text:004C40C8:300,fr func_004C41F8 src/game/004C41F8.c match func_004C41F8 main:.text:004C41F8:8,frontbin:.text:004C2EE8:8 100.00 func_004C4490 src/game/004C4490.c match func_004C4490 main:.text:004C4490:36,frontbin:.text:004C3180:36 100.00 func_004C44B8 src/game/004C44B8.c match func_004C44B8 main:.text:004C44B8:48,frontbin:.text:004C31A8:48 100.00 +func_004C44E8 src/game/004C44E8.c match func_004C44E8 main:.text:004C44E8:432,frontbin:.text:004C31D8:432 100.00 +func_004C4698 src/game/004C4698.c match func_004C4698 main:.text:004C4698:400,frontbin:.text:004C3388:400 100.00 func_004C4D20 src/pal/game/004C4D20.c other - - 0.00 func_004C5310 src/pal/game/004C5310.c other - - 0.00 func_004C54C0 src/pal/game/004C54C0.c other - - 0.00 @@ -2346,11 +2429,13 @@ func_004C6768 src/game/004C6768.c match func_004C6768 main:.text:004C6768:108,fr func_004C67D8 src/game/004C67D8.c match func_004C67D8 main:.text:004C67D8:144,frontbin:.text:004C54C8:144 100.00 func_004C6910 src/game/004C6910.c match func_004C6910 main:.text:004C6910:84,frontbin:.text:004C5600:84 100.00 func_004C6968 src/game/004C6968.c match func_004C6968 main:.text:004C6968:8,frontbin:.text:004C5658:8 100.00 +func_004C6BA0 src/game/004C6BA0.c match func_004C6BA0 main:.text:004C6BA0:284,frontbin:.text:004C5890:284 100.00 func_004C6C10 src/pal/game/004C6C10.c other - - 0.00 func_004C70C0 src/game/004C70C0.c match func_004C70C0 main:.text:004C70C0:92,frontbin:.text:004C5DB0:92 100.00 func_004C7110 src/game/004C7110.c match func_004C7110 main:.text:004C7110:12,frontbin:.text:004C5E00:12 100.00 func_004C7158 src/game/004C7158.c match func_004C7158 main:.text:004C7158:8,frontbin:.text:004C5E48:8 100.00 func_004C7160 src/game/004C7160.c match func_004C7160 main:.text:004C7160:8,frontbin:.text:004C5E50:8 100.00 +func_004C7168 src/game/004C7168.c match func_004C7168 main:.text:004C7168:212,frontbin:.text:004C5E58:212 100.00 func_004C7240 src/game/004C7240.c match func_004C7240 main:.text:004C7240:156,frontbin:.text:004C5F30:156 100.00 func_004C72E0 src/game/004C72E0.c match func_004C72E0 main:.text:004C72E0:196,frontbin:.text:004C5FD0:196 100.00 func_004C73A8 src/game/004C73A8.c match func_004C73A8 main:.text:004C73A8:60,frontbin:.text:004C6098:60 100.00 @@ -2377,6 +2462,7 @@ func_004C8768 src/game/004C8768.c match func_004C8768 main:.text:004C8768:200,fr func_004C8830 src/game/004C8830.c match func_004C8830 main:.text:004C8830:816,frontbin:.text:004C7520:816 100.00 func_004C8C70 src/game/004C8C70.c match func_004C8C70 main:.text:004C8C70:644,frontbin:.text:004C7960:644 100.00 func_004C8EF8 src/game/004C8EF8.c match func_004C8EF8 main:.text:004C8EF8:180,frontbin:.text:004C7BE8:180 100.00 +func_004C9090 src/game/004C9090.c match func_004C9090 main:.text:004C9090:216,frontbin:.text:004C7D80:216 100.00 func_004C9168 src/game/004C9168.c match func_004C9168 main:.text:004C9168:52,frontbin:.text:004C7E58:52 100.00 func_004C91A0 src/game/004C91A0.c match func_004C91A0 main:.text:004C91A0:100,frontbin:.text:004C7E90:100 100.00 func_004C9208 src/game/004C9208.c match func_004C9208 main:.text:004C9208:56,frontbin:.text:004C7EF8:56 100.00 @@ -2426,6 +2512,7 @@ func_004CB798 src/game/004CB798.c match func_004CB798 main:.text:004CB798:112,fr func_004CB808 src/game/004CB808.c match func_004CB808 main:.text:004CB808:64,frontbin:.text:004CA4F8:64 100.00 func_004CB848 src/game/004CB848.c match func_004CB848 main:.text:004CB848:240,frontbin:.text:004CA538:240 100.00 func_004CB938 src/game/004CB938.c match func_004CB938 main:.text:004CB938:604,frontbin:.text:004CA628:604 100.00 +func_004CBB98 src/game/004CBB98.c match func_004CBB98 main:.text:004CBB98:628,frontbin:.text:004CA888:628 100.00 func_004CBE10 src/game/004CBE10.c match func_004CBE10 main:.text:004CBE10:232,frontbin:.text:004CAB00:232 100.00 func_004CBEF8 src/game/004CBEF8.c match func_004CBEF8 main:.text:004CBEF8:184,frontbin:.text:004CABE8:184 100.00 func_004CBFB0 src/game/004CBFB0.c match func_004CBFB0 main:.text:004CBFB0:260,frontbin:.text:004CACA0:260 100.00 @@ -2473,6 +2560,7 @@ func_004CDA88 src/pal/game/004CDA88.c other - - 0.00 func_004CDC10 src/game/004CDC10.c match func_004CDC10 main:.text:004CDC10:184,frontbin:.text:004CC900:184 100.00 func_004CDCC8 src/game/004CDCC8.c match func_004CDCC8 main:.text:004CDCC8:308,frontbin:.text:004CC9B8:308 100.00 func_004CDEC8 src/game/004CDEC8.c match func_004CDEC8 main:.text:004CDEC8:64,frontbin:.text:004CCBB8:64 100.00 +func_004CDF08 src/game/004CDF08.c match func_004CDF08 main:.text:004CDF08:212,frontbin:.text:004CCBF8:212 100.00 func_004CDFE0 src/game/004CDFE0.c match func_004CDFE0 main:.text:004CDFE0:136,frontbin:.text:004CCCD0:136 100.00 func_004CE068 src/game/004CE068.c match func_004CE068 main:.text:004CE068:28,frontbin:.text:004CCD58:28 100.00 func_004CE088 src/game/004CE088.c match func_004CE088 main:.text:004CE088:12,frontbin:.text:004CCD78:12 100.00 @@ -2509,6 +2597,7 @@ func_004CF6D8 src/game/004CF6D8.c match func_004CF6D8 main:.text:004CF6D8:160,fr func_004CF778 src/game/004CF778.c match func_004CF778 main:.text:004CF778:232,frontbin:.text:004CE468:232 100.00 func_004CF860 src/game/004CF860.c match func_004CF860 main:.text:004CF860:172,frontbin:.text:004CE550:172 100.00 func_004CF910 src/game/004CF910.c match func_004CF910 main:.text:004CF910:64,frontbin:.text:004CE600:64 100.00 +func_004CF950 src/game/004CF950.c match func_004CF950 main:.text:004CF950:240,frontbin:.text:004CE640:240 100.00 func_004CFA08 src/pal/game/004CFA08.c other - - 0.00 func_004CFA40 src/game/004CFA40.c match func_004CFA40 main:.text:004CFA40:136,frontbin:.text:004CE730:136 100.00 func_004CFAC8 src/game/004CFAC8.c match func_004CFAC8 main:.text:004CFAC8:12,frontbin:.text:004CE7B8:12 100.00 @@ -2616,6 +2705,7 @@ func_004D4770 src/game/004D4770.c match func_004D4770 main:.text:004D4770:40,fro func_004D4928 src/game/004D4928.c match func_004D4928 main:.text:004D4928:128,frontbin:.text:004D3618:128 100.00 func_004D49A8 src/game/004D49A8.c match func_004D49A8 main:.text:004D49A8:512,frontbin:.text:004D3698:512 100.00 func_004D4BA8 src/game/004D4BA8.c match func_004D4BA8 main:.text:004D4BA8:172,frontbin:.text:004D3898:172 100.00 +func_004D4C58 src/game/004D4C58.c match func_004D4C58 main:.text:004D4C58:548,frontbin:.text:004D3948:548 100.00 func_004D4D38 src/pal/game/004D4D38.c other - - 0.00 func_004D5550 src/game/004D5550.c match func_004D5550 main:.text:004D5550:184,frontbin:.text:004D4240:184 100.00 func_004D5608 src/game/004D5608.c match func_004D5608 main:.text:004D5608:108,frontbin:.text:004D42F8:108 100.00 @@ -2643,6 +2733,7 @@ func_004D6140 src/game/004D6140.c match func_004D6140 main:.text:004D6140:56,fro func_004D6178 src/game/004D6178.c match func_004D6178 main:.text:004D6178:136,frontbin:.text:004D4E68:136 100.00 func_004D6200 src/game/004D6200.c match func_004D6200 main:.text:004D6200:240,frontbin:.text:004D4EF0:240 100.00 func_004D62F0 src/game/004D62F0.c match func_004D62F0 main:.text:004D62F0:136,frontbin:.text:004D4FE0:136 100.00 +func_004D6378 src/game/004D6378.c match func_004D6378 main:.text:004D6378:296,frontbin:.text:004D5068:296 100.00 func_004D64A0 src/game/004D64A0.c match func_004D64A0 main:.text:004D64A0:76,frontbin:.text:004D5190:76 100.00 func_004D6920 src/pal/game/004D6920.c other - - 0.00 func_004D6DD0 src/game/004D6DD0.c match func_004D6DD0 main:.text:004D6DD0:120,frontbin:.text:004D5AC0:120 100.00 @@ -2682,6 +2773,7 @@ func_004D8818 src/game/004D8818.c match func_004D8818 main:.text:004D8818:48,fro func_004D8848 src/game/004D8848.c match func_004D8848 main:.text:004D8848:232,frontbin:.text:004D7538:232 100.00 func_004D8930 src/game/004D8930.c match func_004D8930 main:.text:004D8930:88,frontbin:.text:004D7620:88 100.00 func_004D8988 src/game/004D8988.c match func_004D8988 main:.text:004D8988:140,frontbin:.text:004D7678:140 100.00 +func_004D8A18 src/game/004D8A18.c match func_004D8A18 main:.text:004D8A18:212,frontbin:.text:004D7708:212 100.00 func_004D8AF0 src/game/004D8AF0.c match func_004D8AF0 main:.text:004D8AF0:136,frontbin:.text:004D77E0:136 100.00 func_004D8B80 src/game/004D8B80.c match func_004D8B80 main:.text:004D8B80:336,frontbin:.text:004D7870:336 100.00 func_004D8CD0 src/game/004D8CD0.c match func_004D8CD0 main:.text:004D8CD0:40,frontbin:.text:004D79C0:40 100.00 @@ -2692,9 +2784,11 @@ func_004D8E58 src/game/004D8E58.c match func_004D8E58 main:.text:004D8E58:88,fro func_004D8EB0 src/game/004D8EB0.c match func_004D8EB0 main:.text:004D8EB0:192,frontbin:.text:004D7BA0:192 100.00 func_004D8F70 src/game/004D8F70.c match func_004D8F70 main:.text:004D8F70:168,frontbin:.text:004D7C60:168 100.00 func_004D9018 src/game/004D9018.c match func_004D9018 main:.text:004D9018:48,frontbin:.text:004D7D08:48 100.00 +func_004D9048 src/game/004D9048.c match func_004D9048 main:.text:004D9048:544,frontbin:.text:004D7D38:544 100.00 func_004D9268 src/game/004D9268.c match func_004D9268 main:.text:004D9268:136,frontbin:.text:004D7F58:136 100.00 func_004D92F0 src/game/004D92F0.c match func_004D92F0 main:.text:004D92F0:136,frontbin:.text:004D7FE0:136 100.00 func_004D9378 src/game/004D9378.c match func_004D9378 main:.text:004D9378:144,frontbin:.text:004D8068:144 100.00 +func_004D9408 src/game/004D9408.c match func_004D9408 main:.text:004D9408:236,frontbin:.text:004D80F8:236 100.00 func_004D95C8 src/game/004D95C8.c match func_004D95C8 main:.text:004D95C8:336,frontbin:.text:004D82B8:336 100.00 func_004D9718 src/game/004D9718.c match func_004D9718 main:.text:004D9718:40,frontbin:.text:004D8408:40 100.00 func_004D9740 src/game/004D9740.c match func_004D9740 main:.text:004D9740:104,frontbin:.text:004D8430:104 100.00 @@ -2716,8 +2810,10 @@ func_004D9EB0 src/game/004D9EB0.c match func_004D9EB0 main:.text:004D9EB0:652,fr func_004D9F60 src/pal/game/004D9F60.c other - - 0.00 func_004DA140 src/game/004DA140.c match func_004DA140 main:.text:004DA140:172,frontbin:.text:004D8E30:172 100.00 func_004DA1F0 src/game/004DA1F0.c match func_004DA1F0 main:.text:004DA1F0:228,frontbin:.text:004D8EE0:228 100.00 +func_004DA2D8 src/game/004DA2D8.c match func_004DA2D8 main:.text:004DA2D8:780,frontbin:.text:004D8FC8:780 100.00 func_004DA320 src/pal/game/004DA320.c other - - 0.00 -func_004DA960 src/pal/game/004DA960.c other - - 0.00 +func_004DA960 src/game/004DA960.c match func_004D9A48 main:.text:004D9A48:212,frontbin:.text:004D8738:212 100.00 +func_004DAA78 src/game/004DAA78.c match func_004DAA78 main:.text:004DAA78:276,frontbin:.text:004D9768:276 100.00 func_004DAB90 src/game/004DAB90.c match func_004DAB90 main:.text:004DAB90:272,frontbin:.text:004D9880:272 100.00 func_004DACA0 src/game/004DACA0.c match func_004DACA0 main:.text:004DACA0:28,frontbin:.text:004D9990:28 100.00 func_004DACC0 src/game/004DACC0.c match func_004DACC0 main:.text:004DACC0:108,frontbin:.text:004D99B0:108 100.00 @@ -2764,6 +2860,7 @@ func_004DCDC0 src/pal/game/004DCDC0.c other - - 0.00 func_004DD810 src/pal/game/004DD810.c other - - 0.00 func_004DEAE0 src/game/004DEAE0.c match func_004DEAE0 main:.text:004DEAE0:188,frontbin:.text:004DD7D0:188 100.00 func_004DEDD8 src/game/004DEDD8.c match func_004DEDD8 main:.text:004DEDD8:288,frontbin:.text:004DDAC8:288 100.00 +func_004DEF78 src/game/004DEF78.c match func_004DEF78 main:.text:004DEF78:280,frontbin:.text:004DDC68:280 100.00 func_004DF098 src/game/004DF098.c match func_004DF098 main:.text:004DF098:92,frontbin:.text:004DDD88:92 100.00 func_004DFD38 src/pal/game/004DFD38.c other - - 0.00 func_004DFED8 src/pal/game/004DFED8.c other - - 0.00 @@ -2844,6 +2941,7 @@ func_004EDCE8 src/game/004EDCE8.c match func_004EDCE8 main:.text:004EDCE8:152,fr func_004EDE40 src/game/004EDE40.c match func_004EDE40 main:.text:004EDE40:92,frontbin:.text:004ECAD0:92 100.00 func_004EDEA8 src/game/004EDEA8.c match func_004EDEA8 main:.text:004EDEA8:344 100.00 func_004EE000 src/game/004EE000.c match func_004EE000 main:.text:004EE000:336,frontbin:.text:004ECC90:336 100.00 +func_004EE150 src/game/004EE150.c match func_004EE150 main:.text:004EE150:216,frontbin:.text:004ECDE0:216 100.00 func_004EE368 src/game/004EE368.c match func_004EE368 main:.text:004EE368:8,frontbin:.text:004ECFF8:8 100.00 func_004EE6E8 src/game/004EE6E8.c match func_004EE6E8 main:.text:004EE6E8:48,frontbin:.text:004ED378:48 100.00 func_004EE718 src/game/004EE718.c match func_004EE718 main:.text:004EE718:116,frontbin:.text:004ED3A8:116 100.00 @@ -2879,6 +2977,7 @@ func_004EFE28 src/game/004EFE28.c match func_004EFE28 main:.text:004EFE28:388,fr func_004F0220 src/game/004F0220.c match func_004F0220 main:.text:004F0220:8,frontbin:.text:004EEEB0:8 100.00 func_004F0228 src/game/004F0228.c match func_004F0228 main:.text:004F0228:424,frontbin:.text:004EEEB8:424 100.00 func_004F0650 src/game/004F0650.c match func_004F0650 main:.text:004F0650:16,frontbin:.text:004EF2E0:16 100.00 +func_004F0660 src/game/004F0660.c match func_004F0660 main:.text:004F0660:276,frontbin:.text:004EF2F0:276 100.00 func_004F0778 src/game/004F0778.c match func_004F0778 main:.text:004F0778:208,frontbin:.text:004EF408:208 100.00 func_004F0848 src/game/004F0848.c match func_004F0848 main:.text:004F0848:304,frontbin:.text:004EF4D8:304 100.00 func_004F08E0 src/pal/game/004F08E0.c other - - 0.00 @@ -2920,7 +3019,9 @@ func_004F1CA0 src/game/004F1CA0.c match func_004F1CA0 main:.text:004F1CA0:8,fron func_004F1CA8 src/game/004F1CA8.c match func_004F1CA8 main:.text:004F1CA8:12,frontbin:.text:004F0938:12 100.00 func_004F1CB8 src/game/004F1CB8.c match func_004F1CB8 main:.text:004F1CB8:64,frontbin:.text:004F0948:64 100.00 func_004F1CF8 src/game/004F1CF8.c match func_004F1CF8 main:.text:004F1CF8:28,frontbin:.text:004F0988:28 100.00 +func_004F1D20 src/game/004F1D20.c match func_004F1D20 main:.text:004F1D20:204,frontbin:.text:004F09B0:204 100.00 func_004F1DF0 src/game/004F1DF0.c match func_004F1DF0 main:.text:004F1DF0:72,frontbin:.text:004F0A80:72 100.00 +func_004F1EA0 src/game/004F1EA0.c match func_004F1EA0 main:.text:004F1EA0:424,frontbin:.text:004F0B30:424 100.00 func_004F2048 src/game/004F2048.c match func_004F2048 main:.text:004F2048:40,frontbin:.text:004F0CD8:40 100.00 func_004F2070 src/game/004F2070.c match func_004F2070 main:.text:004F2070:48,frontbin:.text:004F0D00:48 100.00 func_004F20A0 src/game/004F20A0.c match func_004F20A0 main:.text:004F20A0:40,frontbin:.text:004F0D30:40 100.00 @@ -2968,6 +3069,7 @@ func_004F5000 src/game/004F5000.c match func_004F5000 main:.text:004F5000:8,fron func_004F5008 src/game/004F5008.c match func_004F5008 main:.text:004F5008:28,frontbin:.text:004F3C98:28 100.00 func_004F50D0 src/game/004F50D0.c match func_004F50D0 main:.text:004F50D0:8,frontbin:.text:004F3D60:8 100.00 func_004F5180 src/game/004F5180.c match func_004F5180 main:.text:004F5180:460,frontbin:.text:004F3E10:460 100.00 +func_004F5350 src/game/004F5350.c match func_004F5350 main:.text:004F5350:112,frontbin:.text:004F3FE0:112 100.00 func_004F53C0 src/game/004F53C0.c match func_004F53C0 main:.text:004F53C0:84,frontbin:.text:004F4050:84 100.00 func_004F5418 src/game/004F5418.c match func_004F5418 main:.text:004F5418:8,frontbin:.text:004F40A8:8 100.00 func_004F5420 src/game/004F5420.c match func_004F5420 main:.text:004F5420:8,frontbin:.text:004F40B0:8 100.00 @@ -3003,6 +3105,7 @@ func_004F7A98 src/game/004F7A98.c match func_004F7A98 main:.text:004F7A98:36,fro func_004F7AC0 src/game/004F7AC0.c match func_004F7AC0 main:.text:004F7AC0:36,frontbin:.text:004F6750:36 100.00 func_004F7AE8 src/game/004F7AE8.c match func_004F7AE8 main:.text:004F7AE8:36,frontbin:.text:004F6778:36 100.00 func_004F7B10 src/game/004F7B10.c match func_004F7B10 main:.text:004F7B10:36,frontbin:.text:004F67A0:36 100.00 +func_004F7FD8 src/game/004F7FD8.c match func_004F7FD8 main:.text:004F7FD8:508,frontbin:.text:004F6C68:508 100.00 func_004F86EC src/game/004F86EC.c match func_004F86EC main:.text:004F86EC:8,frontbin:.text:004F737C:8 100.00 func_004F86F4 src/game/004F86F4.c match func_004F86F4 main:.text:004F86F4:8,frontbin:.text:004F7384:8 100.00 func_004F86FC src/game/004F86FC.c match func_004F86FC main:.text:004F86FC:8,frontbin:.text:004F738C:8 100.00 @@ -3015,6 +3118,7 @@ func_004F9CC0 src/game/004F9CC0.c match func_004F9CC0 main:.text:004F9CC0:116,fr func_004F9F28 src/game/004F9F28.c match func_004F9F28 main:.text:004F9F28:472,frontbin:.text:004F8BB8:472 100.00 func_004FA838 src/game/004FA838.c match func_004FA838 main:.text:004FA838:152,frontbin:.text:004F94C8:152 100.00 func_004FA8D0 src/game/004FA8D0.c match func_004FA8D0 main:.text:004FA8D0:472,frontbin:.text:004F9560:472 100.00 +func_004FAAA8 src/game/004FAAA8.c match func_004FAAA8 main:.text:004FAAA8:212,frontbin:.text:004F9738:212 100.00 func_004FAB80 src/game/004FAB80.c match func_004FAB80 main:.text:004FAB80:180,frontbin:.text:004F9810:180 100.00 func_004FAF08 src/game/004FAF08.c match func_004FAF08 main:.text:004FAF08:224,frontbin:.text:004F9B98:224 100.00 func_004FAFE8 src/game/004FAFE8.c match func_004FAFE8 main:.text:004FAFE8:552,frontbin:.text:004F9C78:552 100.00 @@ -3027,6 +3131,7 @@ func_004FC068 src/pal/game/004FC068.c other - - 0.00 func_004FC160 src/game/004FC160.c match func_004FC160 main:.text:004FC160:296,frontbin:.text:004FADF0:296 100.00 func_004FC298 src/game/004FC298.c match func_004FC298 main:.text:004FC298:36,frontbin:.text:004FAF28:36 100.00 func_004FC2C0 src/game/004FC2C0.c match func_004FC2C0 main:.text:004FC2C0:76,frontbin:.text:004FAF50:76 100.00 +func_004FC310 src/game/004FC310.c match func_004FC310 main:.text:004FC310:248,frontbin:.text:004FAFA0:248 100.00 func_004FC408 src/game/004FC408.c match func_004FC408 main:.text:004FC408:132,frontbin:.text:004FB098:132 100.00 func_004FC490 src/game/004FC490.c match func_004FC490 main:.text:004FC490:136,frontbin:.text:004FB120:136 100.00 func_004FC650 src/game/004FC650.c match func_004FC650 main:.text:004FC650:40,frontbin:.text:004FB2E0:40 100.00 @@ -3047,6 +3152,7 @@ func_004FEDC8 src/game/004FEDC8.c match func_004FEDC8 main:.text:004FEDC8:100,fr func_004FEE38 src/game/004FEE38.c match func_004FEE38 main:.text:004FEE38:48 100.00 func_004FEE68 src/game/004FEE68.c match func_004FEE68 main:.text:004FEE68:8,frontbin:.text:004FDAF8:8 100.00 func_004FEE70 src/game/004FEE70.c match func_004FEE70 main:.text:004FEE70:268,frontbin:.text:004FDB00:268 100.00 +func_004FEF80 src/game/004FEF80.c match func_004FEF80 main:.text:004FEF80:268,frontbin:.text:004FDC10:268 100.00 func_004FF4C0 src/game/004FF4C0.c match func_004FF4C0 main:.text:004FF4C0:48,frontbin:.text:004FE150:48 100.00 func_004FF4F0 src/game/004FF4F0.c match func_004FF4F0 main:.text:004FF4F0:68,frontbin:.text:004FE180:68 100.00 func_004FF538 src/game/004FF538.c match func_004FF538 main:.text:004FF538:48,frontbin:.text:004FE1C8:48 100.00 @@ -3147,6 +3253,7 @@ func_00502460 src/game/00502460.c match func_00502460 main:.text:00502460:8,fron func_00502468 src/game/00502468.c match func_00502468 main:.text:00502468:12,frontbin:.text:005010F8:12 100.00 func_00502478 src/game/00502478.c match func_00502478 main:.text:00502478:84,frontbin:.text:00501108:84 100.00 func_005024D0 src/game/005024D0.c match func_005024D0 main:.text:005024D0:64,frontbin:.text:00501160:64 100.00 +func_00502510 src/game/00502510.c match func_00502510 main:.text:00502510:548,frontbin:.text:005011A0:548 100.00 func_00502738 src/game/00502738.c match func_00502738 main:.text:00502738:152,frontbin:.text:005013C8:152 100.00 func_00502848 src/game/00502848.c match func_00502848 main:.text:00502848:120,frontbin:.text:005014D8:120 100.00 func_005028C0 src/game/005028C0.c match func_005028C0 main:.text:005028C0:112,frontbin:.text:00501550:112 100.00 @@ -3171,25 +3278,32 @@ func_00503E70 src/game/00503E70.c match func_00503E70 main:.text:00503E70:8,fron func_00503E78 src/game/00503E78.c match func_00503E78 main:.text:00503E78:92,frontbin:.text:00502B08:92 100.00 func_00503EE0 src/game/00503EE0.c match func_00503EE0 main:.text:00503EE0:200,frontbin:.text:00502B70:200 100.00 func_00503FA8 src/game/00503FA8.c match func_00503FA8 main:.text:00503FA8:264,frontbin:.text:00502C38:264 100.00 +func_005040B0 src/game/005040B0.c match func_005040B0 main:.text:005040B0:376,frontbin:.text:00502D40:376 100.00 func_00504228 src/game/00504228.c match func_00504228 main:.text:00504228:8,frontbin:.text:00502EB8:8 100.00 func_00504230 src/game/00504230.c match func_00504230 main:.text:00504230:8,frontbin:.text:00502EC0:8 100.00 func_00504238 src/game/00504238.c match func_00504238 main:.text:00504238:244,frontbin:.text:00502EC8:244 100.00 func_00504338 src/game/00504338.c match func_00504338 main:.text:00504338:184,frontbin:.text:00502FC8:184 100.00 func_005043F0 src/game/005043F0.c match func_005043F0 main:.text:005043F0:184,frontbin:.text:00503080:184 100.00 func_005044A8 src/game/005044A8.c match func_005044A8 main:.text:005044A8:168,frontbin:.text:00503138:168 100.00 +func_00504550 src/game/00504550.c match func_00504550 main:.text:00504550:244,frontbin:.text:005031E0:244 100.00 +func_00504648 src/game/00504648.c match func_00504648 main:.text:00504648:244,frontbin:.text:005032D8:244 100.00 func_00504740 src/game/00504740.c match func_00504740 main:.text:00504740:244,frontbin:.text:005033D0:244 100.00 func_00504840 src/game/00504840.c match func_00504840 main:.text:00504840:108,frontbin:.text:005034D0:108 100.00 func_005048B8 src/game/005048B8.c match func_005048B8 main:.text:005048B8:244,frontbin:.text:00503548:244 100.00 func_005049B8 src/game/005049B8.c match func_005049B8 main:.text:005049B8:228,frontbin:.text:00503648:228 100.00 +func_00504AA8 src/game/00504AA8.c match func_00504AA8 main:.text:00504AA8:228,frontbin:.text:00503738:228 100.00 func_00504B90 src/game/00504B90.c match func_00504B90 main:.text:00504B90:228,frontbin:.text:00503820:228 100.00 func_00504C80 src/game/00504C80.c match func_00504C80 main:.text:00504C80:228,frontbin:.text:00503910:228 100.00 func_00504CC8 src/pal/game/00504CC8.c other - - 0.00 func_00504D68 src/game/00504D68.c match func_00504D68 main:.text:00504D68:244,frontbin:.text:005039F8:244 100.00 func_00504E68 src/game/00504E68.c match func_00504E68 main:.text:00504E68:244,frontbin:.text:00503AF8:244 100.00 +func_00504F68 src/game/00504F68.c match func_00504F68 main:.text:00504F68:212,frontbin:.text:00503BF8:212 100.00 func_00505040 src/game/00505040.c match func_00505040 main:.text:00505040:212,frontbin:.text:00503CD0:212 100.00 func_00505118 src/game/00505118.c match func_00505118 main:.text:00505118:276,frontbin:.text:00503DA8:276 100.00 func_00505148 src/pal/game/00505148.c other - - 0.00 +func_00505238 src/game/00505238.c match func_00505238 main:.text:00505238:228,frontbin:.text:00503EC8:228 100.00 func_005052D0 src/pal/game/005052D0.c other - - 0.00 +func_00505328 src/game/00505328.c match func_00505328 main:.text:00505328:228,frontbin:.text:00503FB8:228 100.00 func_00505410 src/game/00505410.c match func_00505410 main:.text:00505410:228,frontbin:.text:005040A0:228 100.00 func_005054F8 src/game/005054F8.c match func_005054F8 main:.text:005054F8:228,frontbin:.text:00504188:228 100.00 func_005055E0 src/game/005055E0.c match func_005055E0 main:.text:005055E0:228,frontbin:.text:00504270:228 100.00 @@ -3252,6 +3366,7 @@ func_00507FF0 src/game/00507FF0.c match func_00507FF0 main:.text:00507FF0:112,fr func_00508060 src/game/00508060.c match func_00508060 main:.text:00508060:112,frontbin:.text:00506CF0:112 100.00 func_005080D0 src/game/005080D0.c match func_005080D0 main:.text:005080D0:112,frontbin:.text:00506D60:112 100.00 func_00508140 src/game/00508140.c match func_00508140 main:.text:00508140:112,frontbin:.text:00506DD0:112 100.00 +func_005081B0 src/game/005081B0.c match func_005081B0 main:.text:005081B0:376,frontbin:.text:00506E40:376 100.00 func_00508328 src/game/00508328.c match func_00508328 main:.text:00508328:100,frontbin:.text:00506FB8:100 100.00 func_00508390 src/game/00508390.c match func_00508390 main:.text:00508390:192,frontbin:.text:00507020:192 100.00 func_00508450 src/game/00508450.c match func_00508450 main:.text:00508450:104,frontbin:.text:005070E0:104 100.00 @@ -3376,9 +3491,11 @@ func_0050BC50 src/game/0050BC50.c match func_0050BC50 main:.text:0050BC50:120,fr func_0050BCC8 src/game/0050BCC8.c match func_0050BCC8 main:.text:0050BCC8:100,frontbin:.text:0050A958:100 100.00 func_0050BD30 src/game/0050BD30.c match func_0050BD30 main:.text:0050BD30:100,frontbin:.text:0050A9C0:100 100.00 func_0050BD98 src/game/0050BD98.c match func_0050BD98 main:.text:0050BD98:104,frontbin:.text:0050AA28:104 100.00 +func_0050BE90 src/game/0050BE90.c match func_0050BE90 main:.text:0050BE90:276,frontbin:.text:0050AB20:276 100.00 func_0050BFA8 src/game/0050BFA8.c match func_0050BFA8 main:.text:0050BFA8:172,frontbin:.text:0050AC38:172 100.00 func_0050C058 src/game/0050C058.c match func_0050C058 main:.text:0050C058:52,frontbin:.text:0050ACE8:52 100.00 func_0050C090 src/game/0050C090.c match func_0050C090 main:.text:0050C090:108,frontbin:.text:0050AD20:108 100.00 +func_0050C100 src/game/0050C100.c match func_0050C100 main:.text:0050C100:428,frontbin:.text:0050AD90:428 100.00 func_0050C2B0 src/game/0050C2B0.c match func_0050C2B0 main:.text:0050C2B0:180,frontbin:.text:0050AF40:180 100.00 func_0050C368 src/game/0050C368.c match func_0050C368 main:.text:0050C368:8,frontbin:.text:0050AFF8:8 100.00 func_0050C4B0 src/game/0050C4B0.c match func_0050C4B0 main:.text:0050C4B0:48,frontbin:.text:0050B140:48 100.00 @@ -3390,6 +3507,7 @@ func_0050C630 src/game/0050C630.c match func_0050C630 main:.text:0050C630:8,fron func_0050C638 src/game/0050C638.c match func_0050C638 main:.text:0050C638:264,frontbin:.text:0050B2C8:264 100.00 func_0050C740 src/game/0050C740.c match func_0050C740 main:.text:0050C740:28,frontbin:.text:0050B3D0:28 100.00 func_0050C768 src/game/0050C768.c match func_0050C768 main:.text:0050C768:108,frontbin:.text:0050B3F8:108 100.00 +func_0050C7D8 src/game/0050C7D8.c match func_0050C7D8 main:.text:0050C7D8:240,frontbin:.text:0050B468:240 100.00 func_0050CC98 src/game/0050CC98.c match func_0050CC98 main:.text:0050CC98:280,frontbin:.text:0050B928:280 100.00 func_0050CDB0 src/game/0050CDB0.c match func_0050CDB0 main:.text:0050CDB0:112,frontbin:.text:0050BA40:112 100.00 func_0050CE20 src/game/0050CE20.c match func_0050CE20 main:.text:0050CE20:36,frontbin:.text:0050BAB0:36 100.00 @@ -3473,6 +3591,7 @@ func_00510CA8 src/game/00510CA8.c match func_00510CA8 main:.text:00510CA8:108,fr func_00510DE0 src/game/00510DE0.c match func_00510DE0 main:.text:00510DE0:68,frontbin:.text:0050FA70:68 100.00 func_00510EB0 src/game/00510EB0.c match func_00510EB0 main:.text:00510EB0:20,frontbin:.text:0050FB40:20 100.00 func_00510FB8 src/game/00510FB8.c match func_00510FB8 main:.text:00510FB8:68,frontbin:.text:0050FC48:68 100.00 +func_00511060 src/game/00511060.c match func_00511060 main:.text:00511060:240,frontbin:.text:0050FCF0:240 100.00 func_00511150 src/game/00511150.c match func_00511150 main:.text:00511150:124,frontbin:.text:0050FDE0:124 100.00 func_00511298 src/game/00511298.c match func_00511298 main:.text:00511298:44,frontbin:.text:0050FF28:44 100.00 func_005112C8 src/game/005112C8.c match func_005112C8 main:.text:005112C8:68,frontbin:.text:0050FF58:68 100.00 @@ -3511,6 +3630,7 @@ func_005176C8 src/pal/game/005176C8.c other - - 0.00 func_005179B0 src/pal/game/005179B0.c other - - 0.00 func_00517B28 src/game/00517B28.c match func_00517B28 main:.text:00517B28:132,frontbin:.text:005167B8:132 100.00 func_00517F30 src/game/00517F30.c match func_00517F30 main:.text:00517F30:28,frontbin:.text:00516BC0:28 100.00 +func_0051A638 src/game/0051A638.c match func_0051A638 main:.text:0051A638:340,frontbin:.text:005192C8:340 100.00 func_0051A790 src/game/0051A790.c match func_0051A790 main:.text:0051A790:140,frontbin:.text:00519420:140 100.00 func_0051AE08 src/game/0051AE08.c match func_0051AE08 main:.text:0051AE08:8,frontbin:.text:00519A98:8 100.00 func_0051AEF8 src/game/0051AEF8.c match func_0051AEF8 main:.text:0051AEF8:224,frontbin:.text:00519B88:224 100.00 @@ -3588,6 +3708,7 @@ func_0053CC50 src/game/0053CC50.c match func_0053CC50 main:.text:0053CC50:8,fron func_0053CC58 src/game/0053CC58.c match func_0053CC58 main:.text:0053CC58:44,frontbin:.text:0053B8E8:44 100.00 func_0053CC88 src/game/0053CC88.c match func_0053CC88 main:.text:0053CC88:84,frontbin:.text:0053B918:84 100.00 func_0053CCF0 src/game/0053CCF0.c match func_0053CCF0 main:.text:0053CCF0:184,frontbin:.text:0053B980:184 100.00 +func_0053D6E0 src/game/0053D6E0.c match func_0053D6E0 main:.text:0053D6E0:260,frontbin:.text:0053C370:260 100.00 func_0053E0D8 src/game/0053E0D8.c match func_0053E0D8 main:.text:0053E0D8:64,frontbin:.text:0053CD68:64 100.00 func_0053E150 src/game/0053E150.c match func_0053E150 main:.text:0053E150:8,frontbin:.text:0053CDE0:8 100.00 func_0053EA90 src/pal/game/0053EA90.c other - - 0.00 @@ -3638,6 +3759,7 @@ func_00547D98 src/game/00547D98.c match func_00547D98 main:.text:00547D98:44,fro func_00547E30 src/game/00547E30.c match func_00547E30 main:.text:00547E30:152,frontbin:.text:00546AC0:152 100.00 func_00547FF8 src/game/00547FF8.c match func_00547FF8 main:.text:00547FF8:28,frontbin:.text:00546C88:28 100.00 func_00548018 src/game/00548018.c match func_00548018 main:.text:00548018:36,frontbin:.text:00546CA8:36 100.00 +func_005480A8 src/game/005480A8.c match func_005480A8 main:.text:005480A8:256,frontbin:.text:00546D38:256 100.00 func_00548478 src/game/00548478.c match func_00548478 main:.text:00548478:80,frontbin:.text:00547108:80 100.00 func_00548518 src/game/00548518.c match func_00548518 main:.text:00548518:48,frontbin:.text:005471A8:48 100.00 func_00548550 src/game/00548550.c match func_00548550 main:.text:00548550:48,frontbin:.text:005471E0:48 100.00 @@ -3667,6 +3789,7 @@ func_00549DC0 src/game/00549DC0.c match func_00549DC0 main:.text:00549DC0:328,fr func_00549F08 src/game/00549F08.c match func_00549F08 main:.text:00549F08:200,frontbin:.text:00548B98:200 100.00 func_00549FD0 src/game/00549FD0.c match func_00549FD0 main:.text:00549FD0:96,frontbin:.text:00548C60:96 100.00 func_0054A038 src/game/0054A038.c match func_0054A038 main:.text:0054A038:136,frontbin:.text:00548CC8:136 100.00 +func_0054A0C0 src/game/0054A0C0.c match func_0054A0C0 main:.text:0054A0C0:204,frontbin:.text:00548D50:204 100.00 func_0054A190 src/game/0054A190.c match func_0054A190 main:.text:0054A190:204,frontbin:.text:00548E20:204 100.00 func_0054A268 src/game/0054A268.c match func_0054A268 main:.text:0054A268:36,frontbin:.text:00548EF8:36 100.00 func_0054A360 src/pal/game/0054A360.c other - - 0.00 @@ -3702,10 +3825,11 @@ func_0054B5A8 src/game/0054B5A8.c match func_0054B5A8 main:.text:0054B5A8:28,fro func_0054B628 src/pal/game/0054B628.c other - - 0.00 func_0054BA08 src/pal/game/0054BA08.c other - - 0.00 func_0054BCF0 src/pal/game/0054BCF0.c other - - 0.00 -func_0054C250 src/pal/game/0054C250.c other - - 0.00 +func_0054C250 src/game/0054C250.c nomatch func_0054C250 main:.text:0054C250:360 0.00 func_0054C330 src/pal/game/0054C330.c other - - 0.00 func_0054C650 src/pal/game/0054C650.c other - - 0.00 func_0054CBE0 src/game/0054CBE0.c match func_0054CBE0 main:.text:0054CBE0:124,frontbin:.text:0054B870:124 100.00 +func_0054CC60 src/game/0054CC60.c match func_0054CC60 main:.text:0054CC60:544,frontbin:.text:0054B8F0:544 100.00 func_0054CE80 src/game/0054CE80.c match func_0054CE80 main:.text:0054CE80:104,frontbin:.text:0054BB10:104 100.00 func_0054D3A8 src/game/0054D3A8.c match func_0054D3A8 main:.text:0054D3A8:88,frontbin:.text:0054C038:88 100.00 func_0054D400 src/game/0054D400.c match func_0054D400 main:.text:0054D400:424,frontbin:.text:0054C090:424 100.00 @@ -4705,12 +4829,14 @@ func_L00_004F8268 src/overlays/l00_multiplayer_menu/L00_004F8268.c match func_L0 func_L00_004F8680 src/overlays/l00_multiplayer_menu/L00_004F8680.c match func_L00_004F8680 level_00:.text:004F8680:24 100.00 func_L00_004F8C38 src/overlays/l00_multiplayer_menu/L00_004F8C38.c match func_L00_004F8C38 level_00:.text:004F8C38:8 100.00 func_L00_004F8C40 src/overlays/l00_multiplayer_menu/L00_004F8C40.c match func_L00_004F8C40 level_00:.text:004F8C40:152 100.00 +func_L00_004F8F78 src/overlays/l00_multiplayer_menu/L00_004F8F78.c match func_L00_004F8F78 level_00:.text:004F8F78:260 100.00 func_L00_004FACD8 src/overlays/l00_multiplayer_menu/L00_004FACD8.c match func_L00_004FACD8 level_00:.text:004FACD8:36 100.00 func_L00_004FAD00 src/overlays/l00_multiplayer_menu/L00_004FAD00.c match func_L00_004FAD00 level_00:.text:004FAD00:36 100.00 func_L00_004FB1D8 src/pal/overlays/l00_multiplayer_menu/L00_004FB1D8.c other - - 0.00 func_L00_004FB200 src/pal/overlays/l00_multiplayer_menu/L00_004FB200.c other - - 0.00 func_L00_004FBA28 src/overlays/l00_multiplayer_menu/L00_004FBA28.c match func_L00_004FBA28 level_00:.text:004FBA28:52 100.00 func_L00_004FBD60 src/overlays/l00_multiplayer_menu/L00_004FBD60.c match func_L00_004FBD60 level_00:.text:004FBD60:48 100.00 +func_L00_004FD6B8 src/overlays/l00_multiplayer_menu/L00_004FD6B8.c match func_L00_004FD6B8 level_00:.text:004FD6B8:256 100.00 func_L00_004FD9E8 src/overlays/l00_multiplayer_menu/L00_004FD9E8.c match func_L00_004FD9E8 level_00:.text:004FD9E8:36 100.00 func_L00_004FDA10 src/overlays/shared/L00_004FDA10.c match func_L00_004FDA10 level_00:.text:004FDA10:8 100.00 func_L00_004FDE68 src/overlays/l00_multiplayer_menu/L00_004FDE68.c match func_L00_004FDE68 level_00:.text:004FDE68:172 100.00 @@ -4732,7 +4858,9 @@ func_L00_00500CC0 src/overlays/l00_multiplayer_menu/L00_00500CC0.c match func_L0 func_L00_00500CC8 src/overlays/l00_multiplayer_menu/L00_00500CC8.c match func_L00_00500CC8 level_00:.text:00500CC8:12 100.00 func_L00_00500CF0 src/overlays/shared/L00_00500CF0.c match func_L00_00500CF0 level_00:.text:00500CF0:8 100.00 func_L00_00500CF8 src/overlays/l00_multiplayer_menu/L00_00500CF8.c match func_L00_00500CF8 level_00:.text:00500CF8:16 100.00 +func_L00_00501980 src/overlays/l00_multiplayer_menu/L00_00501980.c match func_L00_00501980 level_00:.text:00501980:260 100.00 func_L00_00501E98 src/overlays/l00_multiplayer_menu/L00_00501E98.c match func_L00_00501E98 level_00:.text:00501E98:104 100.00 +func_L00_00505368 src/overlays/l00_multiplayer_menu/L00_00505368.c match func_L00_00505368 level_00:.text:00505368:268 100.00 func_L00_00505FF8 src/overlays/l00_multiplayer_menu/L00_00505FF8.c match func_L00_00505FF8 level_00:.text:00505FF8:48 100.00 func_L00_00506028 src/overlays/l00_multiplayer_menu/L00_00506028.c match func_L00_00506028 level_00:.text:00506028:60 100.00 func_L00_00506368 src/overlays/l00_multiplayer_menu/L00_00506368.c match func_L00_00506368 level_00:.text:00506368:104 100.00 @@ -4847,6 +4975,7 @@ func_L00_0051D278 src/overlays/l00_multiplayer_menu/L00_0051D278.c match func_L0 func_L00_0051D3D8 src/overlays/l00_multiplayer_menu/L00_0051D3D8.c match func_L00_0051D3D8 level_00:.text:0051D3D8:56 100.00 func_L00_0051D410 src/overlays/l00_multiplayer_menu/L00_0051D410.c match func_L00_0051D410 level_00:.text:0051D410:676 100.00 func_L00_0051D878 src/overlays/l00_multiplayer_menu/L00_0051D878.c match func_L00_0051D878 level_00:.text:0051D878:572 100.00 +func_L00_0051E1D8 src/overlays/l00_multiplayer_menu/L00_0051E1D8.c match func_L00_0051E1D8 level_00:.text:0051E1D8:104 100.00 func_L00_0051E250 src/overlays/l00_multiplayer_menu/L00_0051E250.c match func_L00_0051E250 level_00:.text:0051E250:104 100.00 func_L00_0051E2B8 src/overlays/l00_multiplayer_menu/L00_0051E2B8.c match func_L00_0051E2B8 level_00:.text:0051E2B8:764 100.00 func_L00_0051E6B8 src/overlays/l00_multiplayer_menu/L00_0051E6B8.c match func_L00_0051E6B8 level_00:.text:0051E6B8:476 100.00 @@ -4888,6 +5017,7 @@ func_L00_005269F0 src/overlays/l00_multiplayer_menu/L00_005269F0.c match func_L0 func_L00_00526AC8 src/overlays/l00_multiplayer_menu/L00_00526AC8.c match func_L00_00526AC8 level_00:.text:00526AC8:12 100.00 func_L00_00526AD8 src/overlays/l00_multiplayer_menu/L00_00526AD8.c match func_L00_00526AD8 level_00:.text:00526AD8:12 100.00 func_L00_00526AE8 src/overlays/l00_multiplayer_menu/L00_00526AE8.c match func_L00_00526AE8 level_00:.text:00526AE8:12 100.00 +func_L00_00526DA8 src/overlays/l00_multiplayer_menu/L00_00526DA8.c match func_L00_00526DA8 level_00:.text:00526DA8:260 100.00 func_L00_00526EB0 src/overlays/l00_multiplayer_menu/L00_00526EB0.c match func_L00_00526EB0 level_00:.text:00526EB0:80 100.00 func_L00_00527340 src/overlays/l00_multiplayer_menu/L00_00527340.c match func_L00_00527340 level_00:.text:00527340:596 100.00 func_L00_00527DE0 src/overlays/l00_multiplayer_menu/L00_00527DE0.c match func_L00_00527DE0 level_00:.text:00527DE0:432 100.00 @@ -5062,6 +5192,7 @@ func_L00_005421E0 src/overlays/l00_multiplayer_menu/L00_005421E0.c match func_L0 func_L00_005424F8 src/overlays/l00_multiplayer_menu/L00_005424F8.c match func_L00_005424F8 level_00:.text:005424F8:24 100.00 func_L00_00542FC0 src/overlays/l00_multiplayer_menu/L00_00542FC0.c match func_L00_00542FC0 level_00:.text:00542FC0:24 100.00 func_L00_00543218 src/overlays/l00_multiplayer_menu/L00_00543218.c match func_L00_00543218 level_00:.text:00543218:24 100.00 +func_L00_00545C48 src/overlays/l00_multiplayer_menu/L00_00545C48.c match func_L00_00545C48 level_00:.text:00545C48:104 100.00 func_L00_00546148 src/pal/overlays/l00_multiplayer_menu/L00_00546148.c other - - 0.00 func_L00_005461D8 src/overlays/l00_multiplayer_menu/L00_005461D8.c match func_L00_005461D8 level_00:.text:005461D8:440 100.00 func_L00_00546390 src/overlays/l00_multiplayer_menu/L00_00546390.c match func_L00_00546390 level_00:.text:00546390:28 100.00 @@ -5074,6 +5205,7 @@ func_L00_00547998 src/overlays/l00_multiplayer_menu/L00_00547998.c match func_L0 func_L00_00547CF0 src/overlays/l00_multiplayer_menu/L00_00547CF0.c match func_L00_00547CF0 level_00:.text:00547CF0:468 100.00 func_L00_00548028 src/overlays/l00_multiplayer_menu/L00_00548028.c match func_L00_00548028 level_00:.text:00548028:20 100.00 func_L00_00548040 src/overlays/l00_multiplayer_menu/L00_00548040.c match func_L00_00548040 level_00:.text:00548040:48 100.00 +func_L00_00551DA0 src/overlays/l00_multiplayer_menu/L00_00551DA0.c match func_L00_00551DA0 level_00:.text:00551DA0:48 100.00 func_L00_00551DD0 src/overlays/l00_multiplayer_menu/L00_00551DD0.c match func_L00_00551DD0 level_00:.text:00551DD0:32 100.00 func_L00_00551E18 src/overlays/l00_multiplayer_menu/L00_00551E18.c match func_L00_00551E18 level_00:.text:00551E18:496 100.00 func_L00_00552038 src/overlays/l00_multiplayer_menu/L00_00552038.c match func_L00_00552038 level_00:.text:00552038:12 100.00 @@ -5096,7 +5228,9 @@ func_L00_00559B50 src/overlays/l00_multiplayer_menu/L00_00559B50.c match func_L0 func_L00_0055AB58 src/overlays/l00_multiplayer_menu/L00_0055AB58.c match func_L00_0055AB58 level_00:.text:0055AB58:64 100.00 func_L00_0055BD50 src/overlays/l00_multiplayer_menu/L00_0055BD50.c match func_L00_0055BD50 level_00:.text:0055BD50:24 100.00 func_L00_0055BD68 src/overlays/l00_multiplayer_menu/L00_0055BD68.c match func_L00_0055BD68 level_00:.text:0055BD68:24 100.00 +func_L00_00565150 src/overlays/l00_multiplayer_menu/L00_00565150.c match func_L00_00565150 level_00:.text:00565150:104 100.00 func_L00_00565650 src/pal/overlays/l00_multiplayer_menu/L00_00565650.c other - - 0.00 +func_L00_005661C8 src/overlays/l00_multiplayer_menu/L00_005661C8.c match func_L00_005661C8 level_00:.text:005661C8:104 100.00 func_L00_00566230 src/overlays/shared/L00_00566230.c match func_L00_00566230 level_00:.text:00566230:28 100.00 func_L00_00566250 src/overlays/shared/L00_00566250.c match func_L00_00566250 level_00:.text:00566250:28 100.00 func_L00_00566270 src/overlays/shared/L00_00566270.c match func_L00_00566270 level_00:.text:00566270:28 100.00 @@ -5176,6 +5310,7 @@ func_L00_005969C8 src/overlays/shared/L00_005969C8.c match func_L00_005969C8 lev func_L00_005969E8 src/overlays/shared/L00_005969E8.c match func_L00_005969E8 level_00:.text:005969E8:28 100.00 func_L00_00596A08 src/overlays/shared/L00_00596A08.c match func_L00_00596A08 level_00:.text:00596A08:28 100.00 func_L00_00599350 src/overlays/shared/L00_00599350.c match func_L00_00599350 level_00:.text:00599350:516 100.00 +func_L00_00599710 src/overlays/shared/L00_00599710.c match func_L00_00599710 level_00:.text:00599710:516 100.00 func_L00_00599918 src/overlays/shared/L00_00599918.c match func_L00_00599918 level_00:.text:00599918:8 100.00 func_L00_00599920 src/overlays/shared/L00_00599920.c match func_L00_00599920 level_00:.text:00599920:8 100.00 func_L00_005999D0 src/overlays/shared/L00_005999D0.c match func_L00_005999D0 level_00:.text:005999D0:88 100.00 @@ -5347,6 +5482,15 @@ func_L00_005FFEB0 src/overlays/shared/L00_005FFEB0.c match func_L00_005FFEB0 lev func_L00_00601788 src/overlays/shared/L00_00601788.c match func_L00_00601788 level_00:.text:00601788:28 100.00 func_L00_006017A8 src/overlays/shared/L00_006017A8.c match func_L00_006017A8 level_00:.text:006017A8:224 100.00 func_L00_00601D20 src/pal/overlays/shared/L00_00601D20.c other - - 0.00 +func_L00_006027E8 src/overlays/shared/L00_006027E8.c match func_L00_006027E8 level_00:.text:006027E8:228 100.00 +func_L00_006028D0 src/overlays/shared/L00_006028D0.c match func_L00_006028D0 level_00:.text:006028D0:228 100.00 +func_L00_00602AA0 src/overlays/shared/L00_00602AA0.c match func_L00_00602AA0 level_00:.text:00602AA0:228 100.00 +func_L00_00602B88 src/overlays/shared/L00_00602B88.c match func_L00_00602B88 level_00:.text:00602B88:204 100.00 +func_L00_00602C58 src/overlays/shared/L00_00602C58.c match func_L00_00602C58 level_00:.text:00602C58:204 100.00 +func_L00_00602D28 src/overlays/shared/L00_00602D28.c match func_L00_00602D28 level_00:.text:00602D28:228 100.00 +func_L00_00602E10 src/overlays/shared/L00_00602E10.c match func_L00_00602E10 level_00:.text:00602E10:228 100.00 +func_L00_00602EF8 src/overlays/shared/L00_00602EF8.c match func_L00_00602EF8 level_00:.text:00602EF8:228 100.00 +func_L00_00602FE0 src/overlays/shared/L00_00602FE0.c match func_L00_00602FE0 level_00:.text:00602FE0:228 100.00 func_L00_00603418 src/overlays/shared/L00_00603418.c match func_L00_00603418 level_00:.text:00603418:56 100.00 func_L00_00603EC8 src/overlays/shared/L00_00603EC8.c match func_L00_00603EC8 level_00:.text:00603EC8:28 100.00 func_L00_00605448 src/pal/overlays/l00_multiplayer_menu/L00_00605448.c other - - 0.00 @@ -5456,6 +5600,7 @@ func_L00_00624A78 src/overlays/shared/L00_00624A78.c match func_L00_00624A78 lev func_L00_00625838 src/overlays/shared/L00_00625838.c match func_L00_00625838 level_00:.text:00625838:116 100.00 func_L00_006268E8 src/overlays/shared/L00_006268E8.c match func_L00_006268E8 level_00:.text:006268E8:44 100.00 func_L00_00626918 src/overlays/shared/L00_00626918.c match func_L00_00626918 level_00:.text:00626918:44 100.00 +func_L00_006282F0 src/overlays/shared/L00_006282F0.c match func_L00_006282F0 level_00:.text:006282F0:376 100.00 func_L00_00628D90 src/overlays/shared/L00_00628D90.c match func_L00_00628D90 level_00:.text:00628D90:72 100.00 func_L00_00628DD8 src/overlays/shared/L00_00628DD8.c match func_L00_00628DD8 level_00:.text:00628DD8:72 100.00 func_L00_006294F8 src/overlays/shared/L00_006294F8.c match func_L00_006294F8 level_00:.text:006294F8:92 100.00 @@ -5568,6 +5713,7 @@ func_L00_00642AF0 src/overlays/shared/L00_00642AF0.c match func_L00_00642AF0 lev func_L00_00642C10 src/overlays/shared/L00_00642C10.c match func_L00_00642C10 level_00:.text:00642C10:336 100.00 func_L00_00643598 src/overlays/shared/L00_00643598.c match func_L00_00643598 level_00:.text:00643598:156 100.00 func_L00_006437A0 src/overlays/shared/L00_006437A0.c match func_L00_006437A0 level_00:.text:006437A0:56 100.00 +func_L00_00644D18 src/overlays/shared/L00_00644D18.c match func_L00_00644D18 level_00:.text:00644D18:476 100.00 func_L00_00644F38 src/overlays/shared/L00_00644F38.c match func_L00_00644F38 level_00:.text:00644F38:108 100.00 func_L00_006452E8 src/overlays/shared/L00_006452E8.c match func_L00_006452E8 level_00:.text:006452E8:336 100.00 func_L00_00645760 src/overlays/shared/L00_00645760.c match func_L00_00645760 level_00:.text:00645760:156 100.00 @@ -5581,6 +5727,7 @@ func_L00_0064C338 src/overlays/shared/L00_0064C338.c match func_L00_0064C338 lev func_L00_0064D3F0 src/overlays/shared/L00_0064D3F0.c match func_L00_0064D3F0 level_00:.text:0064D3F0:28 100.00 func_L00_0064D4D8 src/overlays/shared/L00_0064D4D8.c match func_L00_0064D4D8 level_00:.text:0064D4D8:8 100.00 func_L00_0064D4F0 src/overlays/shared/L00_0064D4F0.c match func_L00_0064D4F0 level_00:.text:0064D4F0:336 100.00 +func_L00_0064DC68 src/overlays/shared/L00_0064DC68.c match func_L00_0064DC68 level_00:.text:0064DC68:476 100.00 func_L00_0064EFA8 src/overlays/shared/L00_0064EFA8.c match func_L00_0064EFA8 level_00:.text:0064EFA8:64 100.00 func_L00_0064F4F0 src/overlays/shared/L00_0064F4F0.c match func_L00_0064F4F0 level_00:.text:0064F4F0:56 100.00 func_L00_00650148 src/overlays/shared/L00_00650148.c match func_L00_00650148 level_00:.text:00650148:92 100.00 @@ -5695,6 +5842,7 @@ func_L00_00664CB8 src/overlays/shared/L00_00664CB8.c match func_L00_00664CB8 lev func_L00_00665120 src/overlays/shared/L00_00665120.c match func_L00_00665120 level_00:.text:00665120:64 100.00 func_L00_00665160 src/overlays/shared/L00_00665160.c match func_L00_00665160 level_00:.text:00665160:180 100.00 func_L00_00665218 src/overlays/shared/L00_00665218.c match func_L00_00665218 level_00:.text:00665218:32 100.00 +func_L00_00666CE8 src/overlays/shared/L00_00666CE8.c match func_L00_00666CE8 level_00:.text:00666CE8:264 100.00 func_L00_00666DF0 src/overlays/shared/L00_00666DF0.c match func_L00_00666DF0 level_00:.text:00666DF0:260 100.00 func_L00_00666EF8 src/overlays/shared/L00_00666EF8.c match func_L00_00666EF8 level_00:.text:00666EF8:132 100.00 func_L00_00666F80 src/overlays/shared/L00_00666F80.c match func_L00_00666F80 level_00:.text:00666F80:80 100.00 @@ -5791,7 +5939,9 @@ func_L00_0069C298 src/overlays/l00_multiplayer_menu/L00_0069C298.c match func_L0 func_L00_0069C340 src/overlays/shared/L00_0069C340.c match func_L00_0069C340 level_00:.text:0069C340:244 100.00 func_L00_0069C438 src/overlays/shared/L00_0069C438.c match func_L00_0069C438 level_00:.text:0069C438:244 100.00 func_L00_0069C530 src/overlays/shared/L00_0069C530.c match func_L00_0069C530 level_00:.text:0069C530:244 100.00 +func_L00_0069C6A8 src/overlays/shared/L00_0069C6A8.c match func_L00_0069C6A8 level_00:.text:0069C6A8:244 100.00 func_L00_0069C7A8 src/overlays/shared/L00_0069C7A8.c match func_L00_0069C7A8 level_00:.text:0069C7A8:228 100.00 +func_L00_0069C890 src/overlays/shared/L00_0069C890.c match func_L00_0069C890 level_00:.text:0069C890:244 100.00 func_L00_0069C988 src/overlays/shared/L00_0069C988.c match func_L00_0069C988 level_00:.text:0069C988:228 100.00 func_L00_0069CA70 src/overlays/shared/L00_0069CA70.c match func_L00_0069CA70 level_00:.text:0069CA70:228 100.00 func_L00_0069CB60 src/overlays/shared/L00_0069CB60.c match func_L00_0069CB60 level_00:.text:0069CB60:228 100.00 @@ -5805,9 +5955,11 @@ func_L00_0069D408 src/overlays/shared/L00_0069D408.c match func_L00_0069D408 lev func_L00_0069D4F0 src/overlays/shared/L00_0069D4F0.c match func_L00_0069D4F0 level_00:.text:0069D4F0:228 100.00 func_L00_0069D5D8 src/overlays/shared/L00_0069D5D8.c match func_L00_0069D5D8 level_00:.text:0069D5D8:228 100.00 func_L00_0069D6C0 src/overlays/shared/L00_0069D6C0.c match func_L00_0069D6C0 level_00:.text:0069D6C0:228 100.00 +func_L00_0069D7A8 src/overlays/shared/L00_0069D7A8.c match func_L00_0069D7A8 level_00:.text:0069D7A8:276 100.00 func_L00_0069D898 src/pal/overlays/l00_multiplayer_menu/L00_0069D898.c other - - 0.00 func_L00_0069D8C0 src/overlays/l00_multiplayer_menu/L00_0069D8C0.c match func_L00_0069D8C0 level_00:.text:0069D8C0:244 100.00 func_L00_0069D9B8 src/overlays/l00_multiplayer_menu/L00_0069D9B8.c match func_L00_0069D9B8 level_00:.text:0069D9B8:144 100.00 +func_L00_0069DA50 src/overlays/l00_multiplayer_menu/L00_0069DA50.c match func_L00_0069DA50 level_00:.text:0069DA50:244 100.00 func_L00_0069DB48 src/overlays/shared/L00_0069DB48.c match func_L00_0069DB48 level_00:.text:0069DB48:228 100.00 func_L00_0069DCD8 src/overlays/shared/L00_0069DCD8.c match func_L00_0069DCD8 level_00:.text:0069DCD8:124 100.00 func_L00_0069DF18 src/overlays/l00_multiplayer_menu/L00_0069DF18.c match func_L00_0069DF18 level_00:.text:0069DF18:124 100.00 @@ -5841,6 +5993,7 @@ func_L00_006A04E0 src/overlays/shared/L00_006A04E0.c match func_L00_006A04E0 lev func_L00_006A0550 src/overlays/shared/L00_006A0550.c match func_L00_006A0550 level_00:.text:006A0550:112 100.00 func_L00_006A05C0 src/overlays/shared/L00_006A05C0.c match func_L00_006A05C0 level_00:.text:006A05C0:112 100.00 func_L00_006A0630 src/overlays/shared/L00_006A0630.c match func_L00_006A0630 level_00:.text:006A0630:112 100.00 +func_L00_006A06A0 src/overlays/shared/L00_006A06A0.c match func_L00_006A06A0 level_00:.text:006A06A0:376 100.00 func_L00_006A0818 src/overlays/shared/L00_006A0818.c match func_L00_006A0818 level_00:.text:006A0818:100 100.00 func_L00_006A0880 src/overlays/shared/L00_006A0880.c match func_L00_006A0880 level_00:.text:006A0880:192 100.00 func_L00_006A0940 src/overlays/shared/L00_006A0940.c match func_L00_006A0940 level_00:.text:006A0940:104 100.00 @@ -6047,6 +6200,7 @@ func_L00_006D3860 src/overlays/shared/L00_006D3860.c match func_L00_006D3860 lev func_L00_006D38A0 src/overlays/shared/L00_006D38A0.c match func_L00_006D38A0 level_00:.text:006D38A0:8 100.00 func_L00_006D3930 src/overlays/shared/L00_006D3930.c match func_L00_006D3930 level_00:.text:006D3930:8 100.00 func_L00_006D4A90 src/pal/overlays/shared/L00_006D4A90.c other - - 0.00 +func_L00_006E8D78 src/overlays/shared/L00_006E8D78.c match func_L00_006E8D78 level_00:.text:006E8D78:80 100.00 func_L00_006EA508 src/overlays/shared/L00_006EA508.c match func_L00_006EA508 level_00:.text:006EA508:28 100.00 func_L00_006EA5B8 src/overlays/shared/L00_006EA5B8.c match func_L00_006EA5B8 level_00:.text:006EA5B8:180 100.00 func_L00_006EA978 src/overlays/shared/L00_006EA978.c match func_L00_006EA978 level_00:.text:006EA978:52 100.00 @@ -6291,6 +6445,7 @@ func_L00_007111E0 src/overlays/l00_multiplayer_menu/L00_007111E0.c match func_L0 func_L00_00711338 src/overlays/l00_multiplayer_menu/L00_00711338.c match func_L00_00711338 level_00:.text:00711338:92 100.00 func_L00_00711398 src/overlays/l00_multiplayer_menu/L00_00711398.c match func_L00_00711398 level_00:.text:00711398:116 100.00 func_L00_00711410 src/overlays/l00_multiplayer_menu/L00_00711410.c match func_L00_00711410 level_00:.text:00711410:104 100.00 +func_L00_00711478 src/overlays/l00_multiplayer_menu/L00_00711478.c match func_L00_00711478 level_00:.text:00711478:132 100.00 func_L00_00711500 src/overlays/l00_multiplayer_menu/L00_00711500.c match func_L00_00711500 level_00:.text:00711500:116 100.00 func_L00_00711578 src/overlays/l00_multiplayer_menu/L00_00711578.c match func_L00_00711578 level_00:.text:00711578:116 100.00 func_L00_007115F0 src/overlays/l00_multiplayer_menu/L00_007115F0.c match func_L00_007115F0 level_00:.text:007115F0:8 100.00 @@ -6325,6 +6480,8 @@ func_L00_00712030 src/overlays/l00_multiplayer_menu/L00_00712030.c match func_L0 func_L00_00712040 src/overlays/l00_multiplayer_menu/L00_00712040.c match func_L00_00712040 level_00:.text:00712040:112 100.00 func_L00_007120B8 src/overlays/l00_multiplayer_menu/L00_007120B8.c match func_L00_007120B8 level_00:.text:007120B8:76 100.00 func_L00_00712108 src/overlays/l00_multiplayer_menu/L00_00712108.c match func_L00_00712108 level_00:.text:00712108:40 100.00 +func_L00_007121A0 src/overlays/l00_multiplayer_menu/L00_007121A0.c match func_L00_007121A0 level_00:.text:007121A0:128 100.00 +func_L00_00712220 src/overlays/l00_multiplayer_menu/L00_00712220.c match func_L00_00712220 level_00:.text:00712220:128 100.00 func_L00_007122A0 src/overlays/shared/L00_007122A0.c match func_L00_007122A0 level_00:.text:007122A0:8 100.00 func_L00_007122A8 src/overlays/shared/L00_007122A8.c match func_L00_007122A8 level_00:.text:007122A8:28 100.00 func_L00_007122C8 src/overlays/shared/L00_007122C8.c match func_L00_007122C8 level_00:.text:007122C8:8 100.00 @@ -6353,6 +6510,7 @@ func_L00_007132F0 src/overlays/l00_multiplayer_menu/L00_007132F0.c match func_L0 func_L00_00713318 src/overlays/l00_multiplayer_menu/L00_00713318.c match func_L00_00713318 level_00:.text:00713318:56 100.00 func_L00_00713350 src/overlays/shared/L00_00713350.c match func_L00_00713350 level_00:.text:00713350:8 100.00 func_L00_00713358 src/overlays/shared/L00_00713358.c match func_L00_00713358 level_00:.text:00713358:8 100.00 +func_L00_00713360 src/overlays/l00_multiplayer_menu/L00_00713360.c match func_L00_00713360 level_00:.text:00713360:48 100.00 func_L00_00713390 src/overlays/l00_multiplayer_menu/L00_00713390.c match func_L00_00713390 level_00:.text:00713390:140 100.00 func_L00_00713420 src/overlays/l00_multiplayer_menu/L00_00713420.c match func_L00_00713420 level_00:.text:00713420:12 100.00 func_L00_00713430 src/overlays/l00_multiplayer_menu/L00_00713430.c match func_L00_00713430 level_00:.text:00713430:8 100.00 @@ -6378,6 +6536,7 @@ func_L00_00713E88 src/overlays/shared/L00_00713E88.c match func_L00_00713E88 lev func_L00_00713E90 src/overlays/shared/L00_00713E90.c match func_L00_00713E90 level_00:.text:00713E90:8 100.00 func_L00_00714150 src/overlays/l00_multiplayer_menu/L00_00714150.c match func_L00_00714150 level_00:.text:00714150:76 100.00 func_L00_007141A0 src/overlays/l00_multiplayer_menu/L00_007141A0.c match func_L00_007141A0 level_00:.text:007141A0:40 100.00 +func_L00_007141C8 src/overlays/l00_multiplayer_menu/L00_007141C8.c match func_L00_007141C8 level_00:.text:007141C8:56 100.00 func_L00_00714200 src/overlays/l00_multiplayer_menu/L00_00714200.c match func_L00_00714200 level_00:.text:00714200:32 100.00 func_L00_00714220 src/overlays/l00_multiplayer_menu/L00_00714220.c match func_L00_00714220 level_00:.text:00714220:40 100.00 func_L00_00714248 src/overlays/l00_multiplayer_menu/L00_00714248.c match func_L00_00714248 level_00:.text:00714248:8 100.00 @@ -6426,6 +6585,7 @@ func_L00_00714EE0 src/overlays/l00_multiplayer_menu/L00_00714EE0.c match func_L0 func_L00_00714EF0 src/overlays/l00_multiplayer_menu/L00_00714EF0.c match func_L00_00714EF0 level_00:.text:00714EF0:12 100.00 func_L00_00714F00 src/overlays/shared/L00_00714F00.c match func_L00_00714F00 level_00:.text:00714F00:8 100.00 func_L00_00714F08 src/overlays/shared/L00_00714F08.c match func_L00_00714F08 level_00:.text:00714F08:8 100.00 +func_L00_00714F10 src/overlays/l00_multiplayer_menu/L00_00714F10.c match func_L00_00714F10 level_00:.text:00714F10:380 100.00 func_L00_00715090 src/overlays/l00_multiplayer_menu/L00_00715090.c match func_L00_00715090 level_00:.text:00715090:92 100.00 func_L00_007150F0 src/overlays/l00_multiplayer_menu/L00_007150F0.c match func_L00_007150F0 level_00:.text:007150F0:80 100.00 func_L00_00715140 src/overlays/l00_multiplayer_menu/L00_00715140.c match func_L00_00715140 level_00:.text:00715140:116 100.00 @@ -6467,7 +6627,11 @@ func_L00_00716D98 src/overlays/shared/L00_00716D98.c match func_L00_00716D98 lev func_L00_00717030 src/pal/overlays/l00_multiplayer_menu/L00_00717030.c other - - 0.00 func_L00_00717180 src/pal/overlays/l00_multiplayer_menu/L00_00717180.c other - - 0.00 func_L00_007174C0 src/overlays/l00_multiplayer_menu/L00_007174C0.c match func_L00_007174C0 level_00:.text:007174C0:192 100.00 +func_L00_00717580 src/overlays/l00_multiplayer_menu/L00_00717580.c match func_L00_00717580 level_00:.text:00717580:248 100.00 +func_L00_00717678 src/overlays/l00_multiplayer_menu/L00_00717678.c match func_L00_00717678 level_00:.text:00717678:248 100.00 func_L00_00717770 src/overlays/l00_multiplayer_menu/L00_00717770.c match func_L00_00717770 level_00:.text:00717770:60 100.00 +func_L00_007177B0 src/overlays/l00_multiplayer_menu/L00_007177B0.c match func_L00_007177B0 level_00:.text:007177B0:248 100.00 +func_L00_007178A8 src/overlays/l00_multiplayer_menu/L00_007178A8.c match func_L00_007178A8 level_00:.text:007178A8:56 100.00 func_L00_007178E0 src/overlays/l00_multiplayer_menu/L00_007178E0.c match func_L00_007178E0 level_00:.text:007178E0:32 100.00 func_L00_00717900 src/overlays/l00_multiplayer_menu/L00_00717900.c match func_L00_00717900 level_00:.text:00717900:8 100.00 func_L00_00717908 src/overlays/l00_multiplayer_menu/L00_00717908.c match func_L00_00717908 level_00:.text:00717908:12 100.00 @@ -6545,6 +6709,7 @@ func_L00_00720EE0 src/overlays/l00_multiplayer_menu/L00_00720EE0.c match func_L0 func_L00_007211E0 src/overlays/l00_multiplayer_menu/L00_007211E0.c match func_L00_007211E0 level_00:.text:007211E0:76 100.00 func_L00_00721548 src/overlays/shared/L00_00721548.c match func_L00_00721548 level_00:.text:00721548:28 100.00 func_L00_00721758 src/overlays/shared/L00_00721758.c match func_L00_00721758 level_00:.text:00721758:8 100.00 +func_L00_00721A28 src/overlays/l00_multiplayer_menu/L00_00721A28.c match func_L00_00721A28 level_00:.text:00721A28:456 100.00 func_L00_00721FB0 src/overlays/l00_multiplayer_menu/L00_00721FB0.c match func_L00_00721FB0 level_00:.text:00721FB0:40 100.00 func_L00_00722178 src/overlays/l00_multiplayer_menu/L00_00722178.c match func_L00_00722178 level_00:.text:00722178:76 100.00 func_L00_00722328 src/overlays/shared/L00_00722328.c match func_L00_00722328 level_00:.text:00722328:28 100.00 @@ -6556,6 +6721,8 @@ func_L00_007231F0 src/overlays/shared/L00_007231F0.c match func_L00_007231F0 lev func_L00_00723D80 src/overlays/l00_multiplayer_menu/L00_00723D80.c match func_L00_00723D80 level_00:.text:00723D80:40 100.00 func_L00_007240E8 src/overlays/l00_multiplayer_menu/L00_007240E8.c match func_L00_007240E8 level_00:.text:007240E8:76 100.00 func_L00_00724B70 src/overlays/shared/L00_00724B70.c match func_L00_00724B70 level_00:.text:00724B70:28 100.00 +func_L00_00725150 src/overlays/l00_multiplayer_menu/L00_00725150.c match func_L00_00725150 level_00:.text:00725150:52 100.00 +func_L00_00725188 src/overlays/l00_multiplayer_menu/L00_00725188.c match func_L00_00725188 level_00:.text:00725188:456 100.00 func_L00_00725A48 src/pal/overlays/l00_multiplayer_menu/L00_00725A48.c other - - 0.00 func_L00_00726200 src/overlays/l00_multiplayer_menu/L00_00726200.c match func_L00_00726200 level_00:.text:00726200:40 100.00 func_L00_00726440 src/overlays/l00_multiplayer_menu/L00_00726440.c match func_L00_00726440 level_00:.text:00726440:76 100.00 @@ -6575,6 +6742,7 @@ func_L00_0072A108 src/overlays/shared/L00_0072A108.c match func_L00_0072A108 lev func_L00_0072A128 src/overlays/l00_multiplayer_menu/L00_0072A128.c match func_L00_0072A128 level_00:.text:0072A128:40 100.00 func_L00_0072A150 src/overlays/l00_multiplayer_menu/L00_0072A150.c match func_L00_0072A150 level_00:.text:0072A150:40 100.00 func_L00_0072A928 src/overlays/l00_multiplayer_menu/L00_0072A928.c match func_L00_0072A928 level_00:.text:0072A928:8 100.00 +func_L00_0072BD20 src/overlays/l00_multiplayer_menu/L00_0072BD20.c match func_L00_0072BD20 level_00:.text:0072BD20:80 100.00 func_L00_0072C570 src/overlays/l00_multiplayer_menu/L00_0072C570.c match func_L00_0072C570 level_00:.text:0072C570:76 100.00 func_L00_0072D110 src/overlays/l00_multiplayer_menu/L00_0072D110.c match func_L00_0072D110 level_00:.text:0072D110:44 100.00 func_L00_0072D140 src/overlays/l00_multiplayer_menu/L00_0072D140.c match func_L00_0072D140 level_00:.text:0072D140:160 100.00 @@ -6582,6 +6750,7 @@ func_L00_0072D878 src/pal/overlays/l00_multiplayer_menu/L00_0072D878.c other - - func_L00_0072E600 src/overlays/shared/L00_0072E600.c match func_L00_0072E600 level_00:.text:0072E600:28 100.00 func_L00_0072EF68 src/overlays/l00_multiplayer_menu/L00_0072EF68.c match func_L00_0072EF68 level_00:.text:0072EF68:12 100.00 func_L00_0072F888 src/overlays/l00_multiplayer_menu/L00_0072F888.c match func_L00_0072F888 level_00:.text:0072F888:1372 100.00 +func_L00_0072FDF0 src/overlays/l00_multiplayer_menu/L00_0072FDF0.c match func_L00_0072FDF0 level_00:.text:0072FDF0:80 100.00 func_L00_0072FFF8 src/pal/overlays/l00_multiplayer_menu/L00_0072FFF8.c other - - 0.00 func_L00_007301F0 src/overlays/l00_multiplayer_menu/L00_007301F0.c match func_L00_007301F0 level_00:.text:007301F0:36 100.00 func_L00_00730760 src/overlays/shared/L00_00730760.c match func_L00_00730760 level_00:.text:00730760:28 100.00 @@ -6594,6 +6763,7 @@ func_L00_00733B40 src/overlays/shared/L00_00733B40.c match func_L00_00733B40 lev func_L00_00733B68 src/overlays/l00_multiplayer_menu/L00_00733B68.c match func_L00_00733B68 level_00:.text:00733B68:60 100.00 func_L00_00733BA8 src/overlays/l00_multiplayer_menu/L00_00733BA8.c match func_L00_00733BA8 level_00:.text:00733BA8:56 100.00 func_L00_00734368 src/pal/overlays/l00_multiplayer_menu/L00_00734368.c other - - 0.00 +func_L00_00734928 src/overlays/l00_multiplayer_menu/L00_00734928.c match func_L00_00734928 level_00:.text:00734928:80 100.00 func_L00_007356A0 src/overlays/shared/L00_007356A0.c match func_L00_007356A0 level_00:.text:007356A0:28 100.00 func_L00_00737208 src/overlays/l00_multiplayer_menu/L00_00737208.c match func_L00_00737208 level_00:.text:00737208:40 100.00 func_L00_00737230 src/overlays/l00_multiplayer_menu/L00_00737230.c match func_L00_00737230 level_00:.text:00737230:1280 100.00 @@ -6617,6 +6787,7 @@ func_L00_0073D928 src/overlays/l00_multiplayer_menu/L00_0073D928.c match func_L0 func_L00_0073E978 src/overlays/l00_multiplayer_menu/L00_0073E978.c match func_L00_0073E978 level_00:.text:0073E978:40 100.00 func_L00_0073EBC0 src/overlays/l00_multiplayer_menu/L00_0073EBC0.c match func_L00_0073EBC0 level_00:.text:0073EBC0:76 100.00 func_L00_0073F310 src/overlays/shared/L00_0073F310.c match func_L00_0073F310 level_00:.text:0073F310:28 100.00 +func_L00_0073F590 src/overlays/l00_multiplayer_menu/L00_0073F590.c match func_L00_0073F590 level_00:.text:0073F590:88 100.00 func_L00_00740838 src/overlays/l00_multiplayer_menu/L00_00740838.c match func_L00_00740838 level_00:.text:00740838:40 100.00 func_L00_00740AE0 src/overlays/l00_multiplayer_menu/L00_00740AE0.c match func_L00_00740AE0 level_00:.text:00740AE0:100 100.00 func_L00_00741000 src/overlays/shared/L00_00741000.c match func_L00_00741000 level_00:.text:00741000:28 100.00 @@ -6659,6 +6830,7 @@ func_L00_007493B8 src/overlays/l00_multiplayer_menu/L00_007493B8.c match func_L0 func_L00_00749408 src/overlays/l00_multiplayer_menu/L00_00749408.c match func_L00_00749408 level_00:.text:00749408:80 100.00 func_L00_0074A280 src/overlays/l00_multiplayer_menu/L00_0074A280.c match func_L00_0074A280 level_00:.text:0074A280:40 100.00 func_L00_0074A3C8 src/overlays/l00_multiplayer_menu/L00_0074A3C8.c match func_L00_0074A3C8 level_00:.text:0074A3C8:60 100.00 +func_L00_0074AC98 src/overlays/l00_multiplayer_menu/L00_0074AC98.c match func_L00_0074AC98 level_00:.text:0074AC98:80 100.00 func_L00_0074B058 src/overlays/l00_multiplayer_menu/L00_0074B058.c match func_L00_0074B058 level_00:.text:0074B058:76 100.00 func_L00_0074B7B0 src/overlays/l00_multiplayer_menu/L00_0074B7B0.c match func_L00_0074B7B0 level_00:.text:0074B7B0:28 100.00 func_L00_0074D140 src/overlays/l00_multiplayer_menu/L00_0074D140.c match func_L00_0074D140 level_00:.text:0074D140:40 100.00 @@ -6673,6 +6845,7 @@ func_L00_00750918 src/overlays/l00_multiplayer_menu/L00_00750918.c match func_L0 func_L00_00751B48 src/overlays/l00_multiplayer_menu/L00_00751B48.c match func_L00_00751B48 level_00:.text:00751B48:44 100.00 func_L00_00752488 src/overlays/l00_multiplayer_menu/L00_00752488.c match func_L00_00752488 level_00:.text:00752488:40 100.00 func_L00_00752780 src/overlays/l00_multiplayer_menu/L00_00752780.c match func_L00_00752780 level_00:.text:00752780:36 100.00 +func_L00_007527A8 src/overlays/l00_multiplayer_menu/L00_007527A8.c match func_L00_007527A8 level_00:.text:007527A8:56 100.00 func_L00_00753168 src/overlays/shared/L00_00753168.c match func_L00_00753168 level_00:.text:00753168:8 100.00 func_L00_00753190 src/overlays/l00_multiplayer_menu/L00_00753190.c match func_L00_00753190 level_00:.text:00753190:148 100.00 func_L00_00753C68 src/overlays/l00_multiplayer_menu/L00_00753C68.c match func_L00_00753C68 level_00:.text:00753C68:1028 100.00 @@ -6692,6 +6865,7 @@ func_L00_00757660 src/overlays/l00_multiplayer_menu/L00_00757660.c match func_L0 func_L00_00758C10 src/overlays/l00_multiplayer_menu/L00_00758C10.c match func_L00_00758C10 level_00:.text:00758C10:40 100.00 func_L00_00759E08 src/overlays/l00_multiplayer_menu/L00_00759E08.c match func_L00_00759E08 level_00:.text:00759E08:64 100.00 func_L00_0075A8B8 src/pal/overlays/l00_multiplayer_menu/L00_0075A8B8.c other - - 0.00 +func_L00_0075B8F8 src/overlays/l00_multiplayer_menu/L00_0075B8F8.c match func_L00_0075B8F8 level_00:.text:0075B8F8:260 100.00 func_L00_0075C8C0 src/overlays/l00_multiplayer_menu/L00_0075C8C0.c match func_L00_0075C8C0 level_00:.text:0075C8C0:56 100.00 func_L00_0075CA50 src/overlays/l00_multiplayer_menu/L00_0075CA50.c match func_L00_0075CA50 level_00:.text:0075CA50:72 100.00 func_L00_0075D0E0 src/overlays/l00_multiplayer_menu/L00_0075D0E0.c match func_L00_0075D0E0 level_00:.text:0075D0E0:48 100.00 @@ -6752,6 +6926,7 @@ func_L00_007662D8 src/overlays/l00_multiplayer_menu/L00_007662D8.c match func_L0 func_L00_00766650 src/overlays/l00_multiplayer_menu/L00_00766650.c match func_L00_00766650 level_00:.text:00766650:1060 100.00 func_L00_00766C00 src/overlays/l00_multiplayer_menu/L00_00766C00.c match func_L00_00766C00 level_00:.text:00766C00:28 100.00 func_L00_00766DB0 src/overlays/l00_multiplayer_menu/L00_00766DB0.c match func_L00_00766DB0 level_00:.text:00766DB0:28 100.00 +func_L00_00766EB8 src/overlays/l00_multiplayer_menu/L00_00766EB8.c match func_L00_00766EB8 level_00:.text:00766EB8:380 100.00 func_L00_00767968 src/overlays/l00_multiplayer_menu/L00_00767968.c match func_L00_00767968 level_00:.text:00767968:228 100.00 func_L00_00767C60 src/overlays/l00_multiplayer_menu/L00_00767C60.c match func_L00_00767C60 level_00:.text:00767C60:128 100.00 func_L00_00767CE0 src/overlays/l00_multiplayer_menu/L00_00767CE0.c match func_L00_00767CE0 level_00:.text:00767CE0:104 100.00 @@ -6806,6 +6981,7 @@ func_L00_0076E5C0 src/overlays/l00_multiplayer_menu/L00_0076E5C0.c match func_L0 func_L00_0076E5D0 src/overlays/l00_multiplayer_menu/L00_0076E5D0.c match func_L00_0076E5D0 level_00:.text:0076E5D0:80 100.00 func_L00_0076E620 src/overlays/l00_multiplayer_menu/L00_0076E620.c match func_L00_0076E620 level_00:.text:0076E620:76 100.00 func_L00_0076F1E0 src/overlays/l00_multiplayer_menu/L00_0076F1E0.c match func_L00_0076F1E0 level_00:.text:0076F1E0:20 100.00 +func_L00_00770340 src/overlays/l00_multiplayer_menu/L00_00770340.c match func_L00_00770340 level_00:.text:00770340:76 100.00 func_L00_00770590 src/overlays/l00_multiplayer_menu/L00_00770590.c match func_L00_00770590 level_00:.text:00770590:44 100.00 func_L00_00770710 src/overlays/l00_multiplayer_menu/L00_00770710.c match func_L00_00770710 level_00:.text:00770710:28 100.00 func_L00_00770730 src/overlays/l00_multiplayer_menu/L00_00770730.c match func_L00_00770730 level_00:.text:00770730:932 100.00 @@ -6815,17 +6991,20 @@ func_L00_00770CA8 src/overlays/l00_multiplayer_menu/L00_00770CA8.c match func_L0 func_L00_00770CD0 src/overlays/l00_multiplayer_menu/L00_00770CD0.c match func_L00_00770CD0 level_00:.text:00770CD0:108 100.00 func_L00_00770D40 src/overlays/l00_multiplayer_menu/L00_00770D40.c match func_L00_00770D40 level_00:.text:00770D40:60 100.00 func_L00_00770D80 src/overlays/l00_multiplayer_menu/L00_00770D80.c match func_L00_00770D80 level_00:.text:00770D80:48 100.00 +func_L00_00770DB0 src/overlays/l00_multiplayer_menu/L00_00770DB0.c match func_L00_00770DB0 level_00:.text:00770DB0:64 100.00 func_L00_00771028 src/overlays/l00_multiplayer_menu/L00_00771028.c match func_L00_00771028 level_00:.text:00771028:156 100.00 func_L00_007710C8 src/overlays/l00_multiplayer_menu/L00_007710C8.c match func_L00_007710C8 level_00:.text:007710C8:1116 100.00 func_L00_007716B8 src/overlays/l00_multiplayer_menu/L00_007716B8.c match func_L00_007716B8 level_00:.text:007716B8:28 100.00 func_L00_00771868 src/overlays/l00_multiplayer_menu/L00_00771868.c match func_L00_00771868 level_00:.text:00771868:28 100.00 func_L00_00771970 src/overlays/l00_multiplayer_menu/L00_00771970.c match func_L00_00771970 level_00:.text:00771970:108 100.00 func_L00_007719E0 src/overlays/l00_multiplayer_menu/L00_007719E0.c match func_L00_007719E0 level_00:.text:007719E0:60 100.00 +func_L00_00771A48 src/overlays/l00_multiplayer_menu/L00_00771A48.c match func_L00_00771A48 level_00:.text:00771A48:60 100.00 func_L00_00771BD8 src/overlays/l00_multiplayer_menu/L00_00771BD8.c match func_L00_00771BD8 level_00:.text:00771BD8:148 100.00 func_L00_00771D20 src/overlays/l00_multiplayer_menu/L00_00771D20.c match func_L00_00771D20 level_00:.text:00771D20:96 100.00 func_L00_00771D80 src/overlays/l00_multiplayer_menu/L00_00771D80.c match func_L00_00771D80 level_00:.text:00771D80:88 100.00 func_L00_007729F0 src/overlays/l00_multiplayer_menu/L00_007729F0.c match func_L00_007729F0 level_00:.text:007729F0:108 100.00 func_L00_00772A60 src/overlays/l00_multiplayer_menu/L00_00772A60.c match func_L00_00772A60 level_00:.text:00772A60:60 100.00 +func_L00_00772B88 src/overlays/l00_multiplayer_menu/L00_00772B88.c match func_L00_00772B88 level_00:.text:00772B88:60 100.00 func_L00_00772EE0 src/pal/overlays/l00_multiplayer_menu/L00_00772EE0.c other - - 0.00 func_L00_00773090 src/overlays/l00_multiplayer_menu/L00_00773090.c match func_L00_00773090 level_00:.text:00773090:32 100.00 func_L00_00773130 src/overlays/l00_multiplayer_menu/L00_00773130.c match func_L00_00773130 level_00:.text:00773130:108 100.00 @@ -6887,6 +7066,7 @@ func_L00_00776A58 src/pal/overlays/l00_multiplayer_menu/L00_00776A58.c other - - func_L00_00776DE8 src/pal/overlays/l00_multiplayer_menu/L00_00776DE8.c other - - 0.00 func_L00_00776E88 src/overlays/l00_multiplayer_menu/L00_00776E88.c match func_L00_00776E88 level_00:.text:00776E88:88 100.00 func_L00_007770F0 src/overlays/l00_multiplayer_menu/L00_007770F0.c match func_L00_007770F0 level_00:.text:007770F0:96 100.00 +func_L00_00777150 src/overlays/l00_multiplayer_menu/L00_00777150.c match func_L00_00777150 level_00:.text:00777150:136 100.00 func_L00_00777750 src/overlays/l00_multiplayer_menu/L00_00777750.c match func_L00_00777750 level_00:.text:00777750:88 100.00 func_L00_00777B98 src/pal/overlays/l00_multiplayer_menu/L00_00777B98.c other - - 0.00 func_L00_00777C50 src/overlays/l00_multiplayer_menu/L00_00777C50.c match func_L00_00777C50 level_00:.text:00777C50:208 100.00 @@ -6976,6 +7156,7 @@ func_L00_0077E0F0 src/overlays/l00_multiplayer_menu/L00_0077E0F0.c match func_L0 func_L00_0077FB48 src/pal/overlays/l00_multiplayer_menu/L00_0077FB48.c other - - 0.00 func_L01_003C8CE0 src/overlays/shared/L01_003C8CE0.c match func_L01_003C8CE0 level_01:.text:003C8CE0:68 100.00 func_L01_003C9930 src/overlays/shared/L01_003C9930.c match func_L01_003C9930 level_01:.text:003C9930:312 100.00 +func_L01_003C9A68 src/overlays/shared/L01_003C9A68.c match func_L01_003C9A68 level_01:.text:003C9A68:428 100.00 func_L01_003C9CA8 src/overlays/shared/L01_003C9CA8.c match func_L01_003C9CA8 level_01:.text:003C9CA8:44 100.00 func_L01_003C9CD8 src/overlays/shared/L01_003C9CD8.c match func_L01_003C9CD8 level_01:.text:003C9CD8:16 100.00 func_L01_003C9CF0 src/overlays/shared/L01_003C9CF0.c match func_L01_003C9CF0 level_01:.text:003C9CF0:48 100.00 @@ -7023,6 +7204,7 @@ func_L01_003D7848 src/overlays/shared/L01_003D7848.c match func_L01_003D7848 lev func_L01_003D7880 src/overlays/shared/L01_003D7880.c match func_L01_003D7880 level_01:.text:003D7880:16 100.00 func_L01_003D78E0 src/overlays/shared/L01_003D78E0.c match func_L01_003D78E0 level_01:.text:003D78E0:28 100.00 func_L01_003D87E8 src/overlays/shared/L01_003D87E8.c match func_L01_003D87E8 level_01:.text:003D87E8:112 100.00 +func_L01_003DAF28 src/overlays/shared/L01_003DAF28.c match func_L01_003DAF28 level_01:.text:003DAF28:460 100.00 func_L01_003DCB10 src/pal/overlays/shared/L01_003DCB10.c other - - 0.00 func_L01_003E9CA0 src/overlays/shared/L01_003E9CA0.c match func_L01_003E9CA0 level_01:.text:003E9CA0:92 100.00 func_L01_003EBCC0 src/overlays/shared/L01_003EBCC0.c match func_L01_003EBCC0 level_01:.text:003EBCC0:28 100.00 @@ -7030,6 +7212,7 @@ func_L01_003EE3D8 src/overlays/shared/L01_003EE3D8.c match func_L01_003EE3D8 lev func_L01_003EE6E8 src/overlays/shared/L01_003EE6E8.c match func_L01_003EE6E8 level_01:.text:003EE6E8:520 100.00 func_L01_003EE8F0 src/overlays/shared/L01_003EE8F0.c match func_L01_003EE8F0 level_01:.text:003EE8F0:64 100.00 func_L01_003EE930 src/overlays/shared/L01_003EE930.c match func_L01_003EE930 level_01:.text:003EE930:32 100.00 +func_L01_003EE950 src/overlays/shared/L01_003EE950.c match func_L01_003EE950 level_01:.text:003EE950:172 100.00 func_L01_003EEA00 src/overlays/shared/L01_003EEA00.c match func_L01_003EEA00 level_01:.text:003EEA00:28 100.00 func_L01_003EECB0 src/pal/overlays/shared/L01_003EECB0.c other - - 0.00 func_L01_003EF228 src/pal/overlays/shared/L01_003EF228.c other - - 0.00 @@ -7053,6 +7236,7 @@ func_L01_0040F0B0 src/overlays/shared/L01_0040F0B0.c match func_L01_0040F0B0 lev func_L01_0040F2B8 src/overlays/shared/L01_0040F2B8.c match func_L01_0040F2B8 level_01:.text:0040F2B8:52 100.00 func_L01_0040F2F0 src/overlays/shared/L01_0040F2F0.c match func_L01_0040F2F0 level_01:.text:0040F2F0:72 100.00 func_L01_00412268 src/pal/overlays/shared/L01_00412268.c other - - 0.00 +func_L01_00412848 src/overlays/shared/L01_00412848.c match func_L01_00412848 level_01:.text:00412848:340 100.00 func_L01_004133F0 src/pal/overlays/shared/L01_004133F0.c other - - 0.00 func_L01_00413548 src/pal/overlays/shared/L01_00413548.c other - - 0.00 func_L01_00413928 src/overlays/shared/L01_00413928.c match func_L01_00413928 level_01:.text:00413928:36 100.00 @@ -7087,6 +7271,7 @@ func_L01_0042F2D0 src/overlays/shared/L01_0042F2D0.c match func_L01_0042F2D0 lev func_L01_004302D0 src/overlays/shared/L01_004302D0.c match func_L01_004302D0 level_01:.text:004302D0:120 100.00 func_L01_00431A38 src/overlays/shared/L01_00431A38.c match func_L01_00431A38 level_01:.text:00431A38:220 100.00 func_L01_00431B18 src/overlays/shared/L01_00431B18.c match func_L01_00431B18 level_01:.text:00431B18:28 100.00 +func_L01_00431B38 src/overlays/shared/L01_00431B38.c match func_L01_00431B38 level_01:.text:00431B38:400 100.00 func_L01_00431EF0 src/overlays/shared/L01_00431EF0.c match func_L01_00431EF0 level_01:.text:00431EF0:224 100.00 func_L01_00432918 src/pal/overlays/shared/L01_00432918.c other - - 0.00 func_L01_00432F68 src/overlays/shared/L01_00432F68.c match func_L01_00432F68 level_01:.text:00432F68:48 100.00 @@ -7130,15 +7315,18 @@ func_L01_0044AA78 src/overlays/shared/L01_0044AA78.c match func_L01_0044AA78 lev func_L01_0044ABC8 src/overlays/shared/L01_0044ABC8.c match func_L01_0044ABC8 level_01:.text:0044ABC8:136 100.00 func_L01_0044BBA0 src/pal/overlays/shared/L01_0044BBA0.c other - - 0.00 func_L01_0044DC30 src/overlays/shared/L01_0044DC30.c match func_L01_0044DC30 level_01:.text:0044DC30:60 100.00 +func_L01_00450348 src/overlays/shared/L01_00450348.c match func_L01_00450348 level_01:.text:00450348:336 100.00 func_L01_004515A8 src/pal/overlays/shared/L01_004515A8.c other - - 0.00 func_L01_004522C0 src/overlays/shared/L01_004522C0.c match func_L01_004522C0 level_01:.text:004522C0:56 100.00 func_L01_00452670 src/overlays/shared/L01_00452670.c match func_L01_00452670 level_01:.text:00452670:40 100.00 func_L01_00452BC8 src/overlays/shared/L01_00452BC8.c match func_L01_00452BC8 level_01:.text:00452BC8:52 100.00 func_L01_00452C00 src/overlays/shared/L01_00452C00.c match func_L01_00452C00 level_01:.text:00452C00:56 100.00 func_L01_00452C38 src/overlays/shared/L01_00452C38.c match func_L01_00452C38 level_01:.text:00452C38:20 100.00 +func_L01_00452D40 src/overlays/shared/L01_00452D40.c match func_L01_00452D40 level_01:.text:00452D40:208 100.00 func_L01_004536F8 src/overlays/shared/L01_004536F8.c match func_L01_004536F8 level_01:.text:004536F8:32 100.00 func_L01_00453718 src/overlays/shared/L01_00453718.c match func_L01_00453718 level_01:.text:00453718:52 100.00 func_L01_004537F8 src/overlays/shared/L01_004537F8.c match func_L01_004537F8 level_01:.text:004537F8:40 100.00 +func_L01_00453820 src/overlays/shared/L01_00453820.c match func_L01_00453820 level_01:.text:00453820:268 100.00 func_L01_00453980 src/overlays/shared/L01_00453980.c match func_L01_00453980 level_01:.text:00453980:64 100.00 func_L01_00453FF0 src/pal/overlays/shared/L01_00453FF0.c other - - 0.00 func_L01_00454C58 src/pal/overlays/l01_dreadzone_station/L01_00454C58.c other - - 0.00 @@ -7171,7 +7359,7 @@ func_L01_0045B5C8 src/overlays/shared/L01_0045B5C8.c match func_L01_0045B5C8 lev func_L01_0045B5D8 src/overlays/shared/L01_0045B5D8.c match func_L01_0045B5D8 level_01:.text:0045B5D8:12 100.00 func_L01_0045B648 src/overlays/shared/L01_0045B648.c match func_L01_0045B648 level_01:.text:0045B648:84 100.00 func_L01_0045BE60 src/overlays/shared/L01_0045BE60.c match func_L01_0045BE60 level_01:.text:0045BE60:124 100.00 -func_L01_0045BF60 src/pal/overlays/shared/L01_0045BF60.c other - - 0.00 +func_L01_0045BF60 src/overlays/shared/L01_0045BF60.c differs - - 0.00 func_L01_0045C068 src/overlays/shared/L01_0045C068.c match func_L01_0045C068 level_01:.text:0045C068:16 100.00 func_L01_0045C0C8 src/overlays/shared/L01_0045C0C8.c match func_L01_0045C0C8 level_01:.text:0045C0C8:40 100.00 func_L01_0045C0F0 src/overlays/shared/L01_0045C0F0.c match func_L01_0045C0F0 level_01:.text:0045C0F0:72 100.00 @@ -7232,6 +7420,7 @@ func_L01_00469A08 src/overlays/shared/L01_00469A08.c match func_L01_00469A08 lev func_L01_00469AF8 src/overlays/shared/L01_00469AF8.c match func_L01_00469AF8 level_01:.text:00469AF8:248 100.00 func_L01_00469BA0 src/pal/overlays/shared/L01_00469BA0.c other - - 0.00 func_L01_00469C78 src/overlays/shared/L01_00469C78.c match func_L01_00469C78 level_01:.text:00469C78:12 100.00 +func_L01_00469C88 src/overlays/shared/L01_00469C88.c match func_L01_00469C88 level_01:.text:00469C88:56 100.00 func_L01_00469EF8 src/overlays/shared/L01_00469EF8.c match func_L01_00469EF8 level_01:.text:00469EF8:16 100.00 func_L01_0046A2F0 src/pal/overlays/shared/L01_0046A2F0.c other - - 0.00 func_L01_0046AEE0 src/pal/overlays/shared/L01_0046AEE0.c other - - 0.00 @@ -7303,6 +7492,7 @@ func_L01_0048AE20 src/overlays/shared/L01_0048AE20.c match func_L01_0048AE20 lev func_L01_0048C5D0 src/pal/overlays/shared/L01_0048C5D0.c other - - 0.00 func_L01_0048DDB0 src/overlays/shared/L01_0048DDB0.c match func_L01_0048DDB0 level_01:.text:0048DDB0:288 100.00 func_L01_0048DED0 src/overlays/shared/L01_0048DED0.c match func_L01_0048DED0 level_01:.text:0048DED0:112 100.00 +func_L01_0048DF40 src/overlays/shared/L01_0048DF40.c match func_L01_0048DF40 level_01:.text:0048DF40:388 100.00 func_L01_0048E0C8 src/overlays/shared/L01_0048E0C8.c match func_L01_0048E0C8 level_01:.text:0048E0C8:56 100.00 func_L01_0048EC90 src/overlays/shared/L01_0048EC90.c match func_L01_0048EC90 level_01:.text:0048EC90:76 100.00 func_L01_0048ECE0 src/overlays/shared/L01_0048ECE0.c match func_L01_0048ECE0 level_01:.text:0048ECE0:72 100.00 @@ -7377,6 +7567,7 @@ func_L01_00495918 src/overlays/shared/L01_00495918.c match func_L01_00495918 lev func_L01_00495948 src/overlays/shared/L01_00495948.c match func_L01_00495948 level_01:.text:00495948:40 100.00 func_L01_00495970 src/overlays/shared/L01_00495970.c match func_L01_00495970 level_01:.text:00495970:88 100.00 func_L01_00495A50 src/overlays/shared/L01_00495A50.c match func_L01_00495A50 level_01:.text:00495A50:12 100.00 +func_L01_00495A60 src/overlays/shared/L01_00495A60.c match func_L01_00495A60 level_01:.text:00495A60:56 100.00 func_L01_00495B00 src/overlays/shared/L01_00495B00.c match func_L01_00495B00 level_01:.text:00495B00:112 100.00 func_L01_00495B70 src/overlays/shared/L01_00495B70.c match func_L01_00495B70 level_01:.text:00495B70:16 100.00 func_L01_00496278 src/pal/overlays/shared/L01_00496278.c other - - 0.00 @@ -7404,6 +7595,7 @@ func_L01_00499260 src/overlays/shared/L01_00499260.c match func_L01_00499260 lev func_L01_00499DF8 src/overlays/shared/L01_00499DF8.c match func_L01_00499DF8 level_01:.text:00499DF8:108 100.00 func_L01_0049A788 src/overlays/shared/L01_0049A788.c match func_L01_0049A788 level_01:.text:0049A788:64 100.00 func_L01_0049A7C8 src/overlays/shared/L01_0049A7C8.c match func_L01_0049A7C8 level_01:.text:0049A7C8:28 100.00 +func_L01_0049A7E8 src/overlays/shared/L01_0049A7E8.c match func_L01_0049A7E8 level_01:.text:0049A7E8:260 100.00 func_L01_0049B448 src/overlays/shared/L01_0049B448.c match func_L01_0049B448 level_01:.text:0049B448:12 100.00 func_L01_0049B498 src/overlays/shared/L01_0049B498.c match func_L01_0049B498 level_01:.text:0049B498:64 100.00 func_L01_0049B4D8 src/overlays/shared/L01_0049B4D8.c match func_L01_0049B4D8 level_01:.text:0049B4D8:152 100.00 @@ -7419,12 +7611,14 @@ func_L01_004AAD30 src/overlays/shared/L01_004AAD30.c match func_L01_004AAD30 lev func_L01_004ABE88 src/pal/overlays/l01_dreadzone_station/L01_004ABE88.c other - - 0.00 func_L01_004AC298 src/overlays/shared/L01_004AC298.c match func_L01_004AC298 level_01:.text:004AC298:124 100.00 func_L01_004AC568 src/overlays/shared/L01_004AC568.c match func_L01_004AC568 level_01:.text:004AC568:188 100.00 +func_L01_004AC628 src/overlays/shared/L01_004AC628.c match func_L01_004AC628 level_01:.text:004AC628:220 100.00 func_L01_004AC708 src/pal/overlays/shared/L01_004AC708.c other - - 0.00 func_L01_004AD698 src/overlays/shared/L01_004AD698.c match func_L01_004AD698 level_01:.text:004AD698:80 100.00 func_L01_004AD6E8 src/overlays/shared/L01_004AD6E8.c match func_L01_004AD6E8 level_01:.text:004AD6E8:16 100.00 func_L01_004AD9F8 src/overlays/shared/L01_004AD9F8.c match func_L01_004AD9F8 level_01:.text:004AD9F8:196 100.00 func_L01_004ADAC0 src/overlays/shared/L01_004ADAC0.c match func_L01_004ADAC0 level_01:.text:004ADAC0:184 100.00 func_L01_004ADC28 src/overlays/shared/L01_004ADC28.c match func_L01_004ADC28 level_01:.text:004ADC28:12 100.00 +func_L01_004ADC38 src/overlays/shared/L01_004ADC38.c match func_L01_004ADC38 level_01:.text:004ADC38:56 100.00 func_L01_004ADC80 src/overlays/shared/L01_004ADC80.c match func_L01_004ADC80 level_01:.text:004ADC80:12 100.00 func_L01_004ADDB8 src/pal/overlays/shared/L01_004ADDB8.c other - - 0.00 func_L01_004ADF78 src/overlays/shared/L01_004ADF78.c match func_L01_004ADF78 level_01:.text:004ADF78:56 100.00 @@ -7467,6 +7661,7 @@ func_L01_004B3E58 src/overlays/shared/L01_004B3E58.c match func_L01_004B3E58 lev func_L01_004B3EA8 src/overlays/shared/L01_004B3EA8.c match func_L01_004B3EA8 level_01:.text:004B3EA8:116 100.00 func_L01_004B3F20 src/overlays/shared/L01_004B3F20.c match func_L01_004B3F20 level_01:.text:004B3F20:44 100.00 func_L01_004B3FD8 src/overlays/shared/L01_004B3FD8.c match func_L01_004B3FD8 level_01:.text:004B3FD8:12 100.00 +func_L01_004B3FE8 src/overlays/shared/L01_004B3FE8.c match func_L01_004B3FE8 level_01:.text:004B3FE8:56 100.00 func_L01_004B4038 src/overlays/shared/L01_004B4038.c match func_L01_004B4038 level_01:.text:004B4038:28 100.00 func_L01_004B48F8 src/pal/overlays/shared/L01_004B48F8.c other - - 0.00 func_L01_004B57F8 src/pal/overlays/shared/L01_004B57F8.c other - - 0.00 @@ -7482,6 +7677,7 @@ func_L01_004B8A78 src/pal/overlays/shared/L01_004B8A78.c other - - 0.00 func_L01_004B8C38 src/overlays/shared/L01_004B8C38.c match func_L01_004B8C38 level_01:.text:004B8C38:76 100.00 func_L01_004B8C88 src/overlays/shared/L01_004B8C88.c match func_L01_004B8C88 level_01:.text:004B8C88:108 100.00 func_L01_004B8F58 src/overlays/l01_dreadzone_station/L01_004B8F58.c match func_L01_004B8F58 level_01:.text:004B8F58:12 100.00 +func_L01_004B8F68 src/overlays/l01_dreadzone_station/L01_004B8F68.c match func_L01_004B8F68 level_01:.text:004B8F68:56 100.00 func_L01_004B8FB8 src/overlays/shared/L01_004B8FB8.c match func_L01_004B8FB8 level_01:.text:004B8FB8:28 100.00 func_L01_004B8FD8 src/overlays/shared/L01_004B8FD8.c match func_L01_004B8FD8 level_01:.text:004B8FD8:96 100.00 func_L01_004B9038 src/overlays/shared/L01_004B9038.c match func_L01_004B9038 level_01:.text:004B9038:16 100.00 @@ -7504,6 +7700,7 @@ func_L01_004BE590 src/overlays/l01_dreadzone_station/L01_004BE590.c match func_L func_L01_004BF378 src/pal/overlays/l01_dreadzone_station/L01_004BF378.c other - - 0.00 func_L01_004C1108 src/overlays/shared/L01_004C1108.c match func_L01_004C1108 level_01:.text:004C1108:156 100.00 func_L01_004C17F0 src/overlays/shared/L01_004C17F0.c match func_L01_004C17F0 level_01:.text:004C17F0:56 100.00 +func_L01_004C1D28 src/overlays/shared/L01_004C1D28.c match func_L01_004C1D28 level_01:.text:004C1D28:260 100.00 func_L01_004C22F0 src/overlays/shared/L01_004C22F0.c match func_L01_004C22F0 level_01:.text:004C22F0:180 100.00 func_L01_004C2310 src/pal/overlays/shared/L01_004C2310.c other - - 0.00 func_L01_004C26F0 src/overlays/shared/L01_004C26F0.c match func_L01_004C26F0 level_01:.text:004C26F0:12 100.00 @@ -7537,6 +7734,7 @@ func_L01_004C7970 src/overlays/shared/L01_004C7970.c match func_L01_004C7970 lev func_L01_004C7B68 src/overlays/shared/L01_004C7B68.c match func_L01_004C7B68 level_01:.text:004C7B68:148 100.00 func_L01_004C7C00 src/overlays/shared/L01_004C7C00.c match func_L01_004C7C00 level_01:.text:004C7C00:68 100.00 func_L01_004C7C48 src/overlays/shared/L01_004C7C48.c match func_L01_004C7C48 level_01:.text:004C7C48:12 100.00 +func_L01_004C7C58 src/overlays/shared/L01_004C7C58.c match func_L01_004C7C58 level_01:.text:004C7C58:56 100.00 func_L01_004C7CA0 src/overlays/shared/L01_004C7CA0.c match func_L01_004C7CA0 level_01:.text:004C7CA0:12 100.00 func_L01_004C7CB0 src/overlays/l01_dreadzone_station/L01_004C7CB0.c match func_L01_004C7CB0 level_01:.text:004C7CB0:28 100.00 func_L01_004C8070 src/overlays/shared/L01_004C8070.c match func_L01_004C8070 level_01:.text:004C8070:56 100.00 @@ -7548,6 +7746,7 @@ func_L01_004C8A38 src/overlays/shared/L01_004C8A38.c match func_L01_004C8A38 lev func_L01_004C8A80 src/overlays/shared/L01_004C8A80.c match func_L01_004C8A80 level_01:.text:004C8A80:32 100.00 func_L01_004C8AA8 src/overlays/shared/L01_004C8AA8.c match func_L01_004C8AA8 level_01:.text:004C8AA8:24 100.00 func_L01_004C8AC8 src/overlays/shared/L01_004C8AC8.c match func_L01_004C8AC8 level_01:.text:004C8AC8:28 100.00 +func_L01_004C9148 src/overlays/shared/L01_004C9148.c match func_L01_004C9148 level_01:.text:004C9148:256 100.00 func_L01_004C9B70 src/pal/overlays/l01_dreadzone_station/L01_004C9B70.c other - - 0.00 func_L01_004CA0F0 src/overlays/shared/L01_004CA0F0.c match func_L01_004CA0F0 level_01:.text:004CA0F0:64 100.00 func_L01_004CA138 src/overlays/shared/L01_004CA138.c match func_L01_004CA138 level_01:.text:004CA138:32 100.00 @@ -7591,6 +7790,7 @@ func_L01_004D2B68 src/overlays/shared/L01_004D2B68.c match func_L01_004D2B68 lev func_L01_004D3140 src/overlays/shared/L01_004D3140.c match func_L01_004D3140 level_01:.text:004D3140:56 100.00 func_L01_004D7000 src/pal/overlays/shared/L01_004D7000.c other - - 0.00 func_L01_004D71B0 src/overlays/shared/L01_004D71B0.c match func_L01_004D71B0 level_01:.text:004D71B0:228 100.00 +func_L01_004D8C60 src/overlays/shared/L01_004D8C60.c match func_L01_004D8C60 level_01:.text:004D8C60:184 100.00 func_L01_004D8D18 src/overlays/shared/L01_004D8D18.c match func_L01_004D8D18 level_01:.text:004D8D18:80 100.00 func_L01_004D8D68 src/overlays/shared/L01_004D8D68.c match func_L01_004D8D68 level_01:.text:004D8D68:80 100.00 func_L01_004D8DB8 src/overlays/shared/L01_004D8DB8.c match func_L01_004D8DB8 level_01:.text:004D8DB8:16 100.00 @@ -7604,6 +7804,7 @@ func_L01_004D90B0 src/overlays/shared/L01_004D90B0.c match func_L01_004D90B0 lev func_L01_004D94B0 src/overlays/shared/L01_004D94B0.c match func_L01_004D94B0 level_01:.text:004D94B0:32 100.00 func_L01_004D9838 src/overlays/shared/L01_004D9838.c match func_L01_004D9838 level_01:.text:004D9838:32 100.00 func_L01_004D9AA8 src/overlays/shared/L01_004D9AA8.c match func_L01_004D9AA8 level_01:.text:004D9AA8:44 100.00 +func_L01_004D9AD8 src/overlays/shared/L01_004D9AD8.c match func_L01_004D9AD8 level_01:.text:004D9AD8:216 100.00 func_L01_004D9BB0 src/overlays/shared/L01_004D9BB0.c match func_L01_004D9BB0 level_01:.text:004D9BB0:28 100.00 func_L01_004DA958 src/overlays/shared/L01_004DA958.c match func_L01_004DA958 level_01:.text:004DA958:112 100.00 func_L01_004DAAE0 src/overlays/shared/L01_004DAAE0.c match func_L01_004DAAE0 level_01:.text:004DAAE0:120 100.00 @@ -7643,7 +7844,9 @@ func_L01_004E39B0 src/overlays/shared/L01_004E39B0.c match func_L01_004E39B0 lev func_L01_004E3F40 src/overlays/shared/L01_004E3F40.c match func_L01_004E3F40 level_01:.text:004E3F40:32 100.00 func_L01_004E4960 src/overlays/l01_dreadzone_station/L01_004E4960.c match func_L01_004E4960 level_01:.text:004E4960:64 100.00 func_L01_004E49A0 src/overlays/l01_dreadzone_station/L01_004E49A0.c match func_L01_004E49A0 level_01:.text:004E49A0:56 100.00 +func_L01_004E49D8 src/overlays/shared/L01_004E49D8.c match func_L01_004E49D8 level_01:.text:004E49D8:224 100.00 func_L01_004E4AB8 src/overlays/shared/L01_004E4AB8.c match func_L01_004E4AB8 level_01:.text:004E4AB8:104 100.00 +func_L01_004E4B20 src/overlays/shared/L01_004E4B20.c match func_L01_004E4B20 level_01:.text:004E4B20:280 100.00 func_L01_004E4CE8 src/pal/overlays/l01_dreadzone_station/L01_004E4CE8.c other - - 0.00 func_L01_004E4D98 src/overlays/shared/L01_004E4D98.c match func_L01_004E4D98 level_01:.text:004E4D98:44 100.00 func_L01_004E4DC8 src/overlays/shared/L01_004E4DC8.c match func_L01_004E4DC8 level_01:.text:004E4DC8:40 100.00 @@ -7706,6 +7909,7 @@ func_L01_004EE5D8 src/overlays/shared/L01_004EE5D8.c match func_L01_004EE5D8 lev func_L01_004EFD50 src/overlays/shared/L01_004EFD50.c match func_L01_004EFD50 level_01:.text:004EFD50:92 100.00 func_L01_004EFFF0 src/pal/overlays/shared/L01_004EFFF0.c other - - 0.00 func_L01_004F1D18 src/pal/overlays/shared/L01_004F1D18.c other - - 0.00 +func_L01_004F2F20 src/overlays/shared/L01_004F2F20.c match func_L01_004F2F20 level_01:.text:004F2F20:260 100.00 func_L01_004F3100 src/overlays/shared/L01_004F3100.c match func_L01_004F3100 level_01:.text:004F3100:36 100.00 func_L01_004F31E0 src/overlays/shared/L01_004F31E0.c match func_L01_004F31E0 level_01:.text:004F31E0:48 100.00 func_L01_004F3210 src/overlays/shared/L01_004F3210.c match func_L01_004F3210 level_01:.text:004F3210:12 100.00 @@ -7736,13 +7940,18 @@ func_L01_004FEE98 src/overlays/l01_dreadzone_station/L01_004FEE98.c match func_L func_L01_004FF3D0 src/overlays/shared/L01_004FF3D0.c match func_L01_004FF3D0 level_01:.text:004FF3D0:28 100.00 func_L01_004FF3F0 src/overlays/shared/L01_004FF3F0.c match func_L01_004FF3F0 level_01:.text:004FF3F0:164 100.00 func_L01_005004B8 src/overlays/shared/L01_005004B8.c match func_L01_005004B8 level_01:.text:005004B8:144 100.00 +func_L01_00500548 src/overlays/shared/L01_00500548.c match func_L01_00500548 level_01:.text:00500548:468 100.00 func_L01_00500720 src/overlays/shared/L01_00500720.c match func_L01_00500720 level_01:.text:00500720:356 100.00 func_L01_00500888 src/overlays/shared/L01_00500888.c match func_L01_00500888 level_01:.text:00500888:76 100.00 +func_L01_005008D8 src/overlays/shared/L01_005008D8.c match func_L01_005008D8 level_01:.text:005008D8:460 100.00 func_L01_00500AA8 src/overlays/shared/L01_00500AA8.c match func_L01_00500AA8 level_01:.text:00500AA8:76 100.00 func_L01_00501170 src/overlays/shared/L01_00501170.c match func_L01_00501170 level_01:.text:00501170:56 100.00 func_L01_00501418 src/overlays/shared/L01_00501418.c match func_L01_00501418 level_01:.text:00501418:220 100.00 func_L01_00501440 src/pal/overlays/shared/L01_00501440.c other - - 0.00 +func_L01_00501688 src/overlays/shared/L01_00501688.c match func_L01_00501688 level_01:.text:00501688:268 100.00 func_L01_00501798 src/overlays/shared/L01_00501798.c match func_L01_00501798 level_01:.text:00501798:12 100.00 +func_L01_00501B38 src/overlays/shared/L01_00501B38.c match func_L01_00501B38 level_01:.text:00501B38:220 100.00 +func_L01_00501C18 src/overlays/shared/L01_00501C18.c match func_L01_00501C18 level_01:.text:00501C18:124 100.00 func_L01_00502598 src/pal/overlays/shared/L01_00502598.c other - - 0.00 func_L01_00502928 src/pal/overlays/shared/L01_00502928.c other - - 0.00 func_L01_005039E0 src/overlays/shared/L01_005039E0.c match func_L01_005039E0 level_01:.text:005039E0:132 100.00 @@ -7795,6 +8004,8 @@ func_L01_00518460 src/overlays/shared/L01_00518460.c match func_L01_00518460 lev func_L01_00518500 src/overlays/shared/L01_00518500.c match func_L01_00518500 level_01:.text:00518500:56 100.00 func_L01_00519218 src/pal/overlays/shared/L01_00519218.c other - - 0.00 func_L01_0051A698 src/pal/overlays/l01_dreadzone_station/L01_0051A698.c other - - 0.00 +func_L01_0051D538 src/overlays/shared/L01_0051D538.c match func_L01_0051D538 level_01:.text:0051D538:112 100.00 +func_L01_0051D7F0 src/overlays/shared/L01_0051D7F0.c match func_L01_0051D7F0 level_01:.text:0051D7F0:88 100.00 func_L01_0051F7E0 src/pal/overlays/shared/L01_0051F7E0.c other - - 0.00 func_L01_0051FA98 src/pal/overlays/shared/L01_0051FA98.c other - - 0.00 func_L01_00520938 src/overlays/shared/L01_00520938.c match func_L01_00520938 level_01:.text:00520938:104 100.00 @@ -7838,6 +8049,7 @@ func_L01_0055AC18 src/overlays/shared/L01_0055AC18.c match func_L01_0055AC18 lev func_L01_0055B180 src/overlays/shared/L01_0055B180.c match func_L01_0055B180 level_01:.text:0055B180:44 100.00 func_L01_0055B1C0 src/overlays/shared/L01_0055B1C0.c match func_L01_0055B1C0 level_01:.text:0055B1C0:164 100.00 func_L01_0055B6A8 src/pal/overlays/shared/L01_0055B6A8.c other - - 0.00 +func_L01_0055CBE0 src/overlays/shared/L01_0055CBE0.c match func_L01_0055CBE0 level_01:.text:0055CBE0:48 100.00 func_L01_0055D050 src/overlays/shared/L01_0055D050.c match func_L01_0055D050 level_01:.text:0055D050:80 100.00 func_L01_0055E7B0 src/overlays/shared/L01_0055E7B0.c match func_L01_0055E7B0 level_01:.text:0055E7B0:8 100.00 func_L01_0055F7C8 src/pal/overlays/shared/L01_0055F7C8.c other - - 0.00 @@ -7860,6 +8072,7 @@ func_L01_0056BC58 src/overlays/shared/L01_0056BC58.c match func_L01_0056BC58 lev func_L01_0056C6C0 src/overlays/shared/L01_0056C6C0.c match func_L01_0056C6C0 level_01:.text:0056C6C0:296 100.00 func_L01_0056C878 src/overlays/shared/L01_0056C878.c match func_L01_0056C878 level_01:.text:0056C878:1100 100.00 func_L01_0056CDB0 src/overlays/shared/L01_0056CDB0.c match func_L01_0056CDB0 level_01:.text:0056CDB0:172 100.00 +func_L01_0056D0C8 src/overlays/shared/L01_0056D0C8.c match func_L01_0056D0C8 level_01:.text:0056D0C8:440 100.00 func_L01_0056D480 src/overlays/shared/L01_0056D480.c match func_L01_0056D480 level_01:.text:0056D480:220 100.00 func_L01_0056D620 src/overlays/shared/L01_0056D620.c match func_L01_0056D620 level_01:.text:0056D620:120 100.00 func_L01_0056D6C8 src/overlays/shared/L01_0056D6C8.c match func_L01_0056D6C8 level_01:.text:0056D6C8:44 100.00 @@ -7875,6 +8088,7 @@ func_L01_0056E6F0 src/overlays/shared/L01_0056E6F0.c match func_L01_0056E6F0 lev func_L01_0056E7A8 src/overlays/shared/L01_0056E7A8.c match func_L01_0056E7A8 level_01:.text:0056E7A8:80 100.00 func_L01_0056E7F8 src/overlays/shared/L01_0056E7F8.c match func_L01_0056E7F8 level_01:.text:0056E7F8:92 100.00 func_L01_0056E9D0 src/overlays/shared/L01_0056E9D0.c match func_L01_0056E9D0 level_01:.text:0056E9D0:100 100.00 +func_L01_0056F250 src/overlays/shared/L01_0056F250.c match func_L01_0056F250 level_01:.text:0056F250:68 100.00 func_L01_0056F280 src/pal/overlays/shared/L01_0056F280.c other - - 0.00 func_L01_0056FCA0 src/pal/overlays/shared/L01_0056FCA0.c other - - 0.00 func_L01_00571E30 src/pal/overlays/shared/L01_00571E30.c other - - 0.00 @@ -7901,6 +8115,7 @@ func_L01_00584568 src/overlays/shared/L01_00584568.c match func_L01_00584568 lev func_L01_00585B78 src/overlays/shared/L01_00585B78.c match func_L01_00585B78 level_01:.text:00585B78:52 100.00 func_L01_00585C00 src/overlays/shared/L01_00585C00.c match func_L01_00585C00 level_01:.text:00585C00:160 100.00 func_L01_00585CA0 src/overlays/shared/L01_00585CA0.c match func_L01_00585CA0 level_01:.text:00585CA0:160 100.00 +func_L01_00585D40 src/overlays/shared/L01_00585D40.c match func_L01_00585D40 level_01:.text:00585D40:68 100.00 func_L01_00585DB0 src/overlays/shared/L01_00585DB0.c match func_L01_00585DB0 level_01:.text:00585DB0:48 100.00 func_L01_00586138 src/overlays/shared/L01_00586138.c match func_L01_00586138 level_01:.text:00586138:40 100.00 func_L01_00586160 src/overlays/shared/L01_00586160.c match func_L01_00586160 level_01:.text:00586160:128 100.00 @@ -7939,6 +8154,7 @@ func_L01_005A0228 src/overlays/shared/L01_005A0228.c match func_L01_005A0228 lev func_L01_005A14A8 src/overlays/shared/L01_005A14A8.c match func_L01_005A14A8 level_01:.text:005A14A8:168 100.00 func_L01_005A21A8 src/overlays/shared/L01_005A21A8.c match func_L01_005A21A8 level_01:.text:005A21A8:136 100.00 func_L01_005A24D0 src/overlays/shared/L01_005A24D0.c match func_L01_005A24D0 level_01:.text:005A24D0:40 100.00 +func_L01_005A37B8 src/overlays/shared/L01_005A37B8.c match func_L01_005A37B8 level_01:.text:005A37B8:124 100.00 func_L01_005A4648 src/overlays/shared/L01_005A4648.c match func_L01_005A4648 level_01:.text:005A4648:52 100.00 func_L01_005A4680 src/overlays/shared/L01_005A4680.c match func_L01_005A4680 level_01:.text:005A4680:228 100.00 func_L01_005A4CF0 src/overlays/shared/L01_005A4CF0.c match func_L01_005A4CF0 level_01:.text:005A4CF0:12 100.00 @@ -7957,6 +8173,7 @@ func_L01_005AB590 src/overlays/shared/L01_005AB590.c match func_L01_005AB590 lev func_L01_005AB5E0 src/overlays/shared/L01_005AB5E0.c match func_L01_005AB5E0 level_01:.text:005AB5E0:40 100.00 func_L01_005AC6C8 src/overlays/shared/L01_005AC6C8.c match func_L01_005AC6C8 level_01:.text:005AC6C8:128 100.00 func_L01_005B3880 src/pal/overlays/shared/L01_005B3880.c other - - 0.00 +func_L01_005B4EB0 src/overlays/shared/L01_005B4EB0.c match func_L01_005B4EB0 level_01:.text:005B4EB0:52 100.00 func_L01_005B4F70 src/overlays/shared/L01_005B4F70.c match func_L01_005B4F70 level_01:.text:005B4F70:76 100.00 func_L01_005B4FC0 src/overlays/shared/L01_005B4FC0.c match func_L01_005B4FC0 level_01:.text:005B4FC0:40 100.00 func_L01_005B4FE8 src/overlays/shared/L01_005B4FE8.c match func_L01_005B4FE8 level_01:.text:005B4FE8:580 100.00 @@ -7998,6 +8215,7 @@ func_L01_00633168 src/overlays/shared/L01_00633168.c match func_L01_00633168 lev func_L01_00636D50 src/overlays/shared/L01_00636D50.c match func_L01_00636D50 level_01:.text:00636D50:40 100.00 func_L01_00636E18 src/overlays/shared/L01_00636E18.c match func_L01_00636E18 level_01:.text:00636E18:72 100.00 func_L01_0063B140 src/overlays/shared/L01_0063B140.c match func_L01_0063B140 level_01:.text:0063B140:120 100.00 +func_L01_0063B1B8 src/overlays/shared/L01_0063B1B8.c match func_L01_0063B1B8 level_01:.text:0063B1B8:48 100.00 func_L01_0063B370 src/overlays/shared/L01_0063B370.c match func_L01_0063B370 level_01:.text:0063B370:88 100.00 func_L01_006402B0 src/pal/overlays/shared/L01_006402B0.c other - - 0.00 func_L01_00640588 src/pal/overlays/shared/L01_00640588.c other - - 0.00 @@ -8079,6 +8297,7 @@ func_L02_004CB278 src/overlays/shared/L02_004CB278.c match func_L02_004CB278 lev func_L02_004CB288 src/overlays/shared/L02_004CB288.c match func_L02_004CB288 level_02:.text:004CB288:40 100.00 func_L02_004CB2B0 src/overlays/shared/L02_004CB2B0.c match func_L02_004CB2B0 level_02:.text:004CB2B0:12 100.00 func_L02_004CB2C0 src/overlays/shared/L02_004CB2C0.c match func_L02_004CB2C0 level_02:.text:004CB2C0:40 100.00 +func_L02_004CB2E8 src/overlays/shared/L02_004CB2E8.c match func_L02_004CB2E8 level_02:.text:004CB2E8:140 100.00 func_L02_004CBE78 src/pal/overlays/shared/L02_004CBE78.c other - - 0.00 func_L02_004CC2F0 src/overlays/shared/L02_004CC2F0.c match func_L02_004CC2F0 level_02:.text:004CC2F0:16 100.00 func_L02_004CC300 src/overlays/shared/L02_004CC300.c match func_L02_004CC300 level_02:.text:004CC300:16 100.00 @@ -8090,6 +8309,7 @@ func_L02_004CF980 src/overlays/shared/L02_004CF980.c match func_L02_004CF980 lev func_L02_004E3248 src/overlays/shared/L02_004E3248.c match func_L02_004E3248 level_02:.text:004E3248:40 100.00 func_L02_004E3270 src/overlays/shared/L02_004E3270.c match func_L02_004E3270 level_02:.text:004E3270:68 100.00 func_L02_004E3CE8 src/overlays/shared/L02_004E3CE8.c match func_L02_004E3CE8 level_02:.text:004E3CE8:36 100.00 +func_L02_004E6370 src/overlays/shared/L02_004E6370.c match func_L02_004E6370 level_02:.text:004E6370:624 100.00 func_L02_004E82A8 src/pal/overlays/shared/L02_004E82A8.c other - - 0.00 func_L02_00503360 src/overlays/shared/L02_00503360.c match func_L02_00503360 level_02:.text:00503360:52 100.00 func_L02_0053B470 src/overlays/shared/L02_0053B470.c match func_L02_0053B470 level_02:.text:0053B470:104 100.00 @@ -8105,6 +8325,7 @@ func_L04_00486AC0 src/overlays/l04_sarathos_swamp/L04_00486AC0.c match func_L04_ func_L04_00486AD0 src/overlays/l04_sarathos_swamp/L04_00486AD0.c match func_L04_00486AD0 level_04:.text:00486AD0:16 100.00 func_L04_00486AE0 src/overlays/shared/L04_00486AE0.c match func_L04_00486AE0 level_04:.text:00486AE0:20 100.00 func_L04_00487B50 src/pal/overlays/l04_sarathos_swamp/L04_00487B50.c other - - 0.00 +func_L04_00497910 src/overlays/shared/L04_00497910.c match func_L04_00497910 level_04:.text:00497910:108 100.00 func_L04_00497980 src/overlays/shared/L04_00497980.c match func_L04_00497980 level_04:.text:00497980:12 100.00 func_L04_00497B08 src/overlays/shared/L04_00497B08.c match func_L04_00497B08 level_04:.text:00497B08:12 100.00 func_L04_00498038 src/overlays/shared/L04_00498038.c match func_L04_00498038 level_04:.text:00498038:80 100.00 @@ -8204,6 +8425,7 @@ func_L05_004E00A8 src/overlays/shared/L05_004E00A8.c match func_L05_004E00A8 lev func_L05_004E0108 src/overlays/shared/L05_004E0108.c match func_L05_004E0108 level_05:.text:004E0108:16 100.00 func_L05_004E1110 src/pal/overlays/shared/L05_004E1110.c other - - 0.00 func_L05_004EEE30 src/overlays/shared/L05_004EEE30.c match func_L05_004EEE30 level_05:.text:004EEE30:152 100.00 +func_L05_004EEEC8 src/overlays/shared/L05_004EEEC8.c match func_L05_004EEEC8 level_05:.text:004EEEC8:276 100.00 func_L05_004EF048 src/overlays/shared/L05_004EF048.c match func_L05_004EF048 level_05:.text:004EF048:16 100.00 func_L05_004F0B20 src/pal/overlays/shared/L05_004F0B20.c other - - 0.00 func_L05_004F2518 src/overlays/l05_dark_cathedral/L05_004F2518.c match func_L05_004F2518 level_05:.text:004F2518:72 100.00 @@ -8211,6 +8433,7 @@ func_L05_004F43D8 src/overlays/l05_dark_cathedral/L05_004F43D8.c match func_L05_ func_L05_004F43E8 src/overlays/l05_dark_cathedral/L05_004F43E8.c match func_L05_004F43E8 level_05:.text:004F43E8:16 100.00 func_L05_004F43F8 src/overlays/l05_dark_cathedral/L05_004F43F8.c match func_L05_004F43F8 level_05:.text:004F43F8:20 100.00 func_L05_004F59C8 src/pal/overlays/l05_dark_cathedral/L05_004F59C8.c other - - 0.00 +func_L05_0050A5F8 src/overlays/l05_dark_cathedral/L05_0050A5F8.c match func_L05_0050A5F8 level_05:.text:0050A5F8:624 100.00 func_L05_0050C5C0 src/pal/overlays/l05_dark_cathedral/L05_0050C5C0.c other - - 0.00 func_L06_00401610 src/pal/overlays/l06_temple_of_shaar/L06_00401610.c other - - 0.00 func_L06_004016F0 src/overlays/shared/L06_004016F0.c match func_L06_004016F0 level_06:.text:004016F0:40 100.00 @@ -8218,6 +8441,7 @@ func_L06_00401718 src/overlays/shared/L06_00401718.c match func_L06_00401718 lev func_L06_00416C20 src/overlays/shared/L06_00416C20.c match func_L06_00416C20 level_06:.text:00416C20:256 100.00 func_L06_004999C0 src/overlays/shared/L06_004999C0.c match func_L06_004999C0 level_06:.text:004999C0:96 100.00 func_L06_0049AFC8 src/overlays/shared/L06_0049AFC8.c match func_L06_0049AFC8 level_06:.text:0049AFC8:32 100.00 +func_L06_0049AFE8 src/overlays/shared/L06_0049AFE8.c match func_L06_0049AFE8 level_06:.text:0049AFE8:604 100.00 func_L06_0049B380 src/overlays/shared/L06_0049B380.c match func_L06_0049B380 level_06:.text:0049B380:52 100.00 func_L06_0049B938 src/overlays/shared/L06_0049B938.c match func_L06_0049B938 level_06:.text:0049B938:36 100.00 func_L06_0049C508 src/pal/overlays/shared/L06_0049C508.c other - - 0.00 @@ -8230,7 +8454,9 @@ func_L06_004C6F18 src/overlays/shared/L06_004C6F18.c match func_L06_004C6F18 lev func_L06_004C7210 src/overlays/shared/L06_004C7210.c match func_L06_004C7210 level_06:.text:004C7210:16 100.00 func_L06_004C7300 src/overlays/shared/L06_004C7300.c match func_L06_004C7300 level_06:.text:004C7300:32 100.00 func_L06_004C7320 src/overlays/shared/L06_004C7320.c match func_L06_004C7320 level_06:.text:004C7320:84 100.00 +func_L06_004C7378 src/overlays/shared/L06_004C7378.c match func_L06_004C7378 level_06:.text:004C7378:120 100.00 func_L06_004C8068 src/overlays/shared/L06_004C8068.c match func_L06_004C8068 level_06:.text:004C8068:68 100.00 +func_L06_004C8388 src/overlays/shared/L06_004C8388.c match func_L06_004C8388 level_06:.text:004C8388:84 100.00 func_L06_004C83E8 src/overlays/shared/L06_004C83E8.c match func_L06_004C83E8 level_06:.text:004C83E8:72 100.00 func_L06_004C8430 src/overlays/shared/L06_004C8430.c match func_L06_004C8430 level_06:.text:004C8430:20 100.00 func_L06_004C8768 src/overlays/shared/L06_004C8768.c match func_L06_004C8768 level_06:.text:004C8768:76 100.00 @@ -8275,6 +8501,7 @@ func_L10_004D44D0 src/overlays/shared/L10_004D44D0.c match func_L10_004D44D0 lev func_L10_004D5370 src/overlays/l10_torval_ruins/L10_004D5370.c match func_L10_004D5370 level_10:.text:004D5370:12 100.00 func_L10_004D53A8 src/overlays/l10_torval_ruins/L10_004D53A8.c match func_L10_004D53A8 level_10:.text:004D53A8:16 100.00 func_L10_004D53C0 src/overlays/shared/L10_004D53C0.c match func_L10_004D53C0 level_10:.text:004D53C0:60 100.00 +func_L10_004DCC58 src/overlays/shared/L10_004DCC58.c match func_L10_004DCC58 level_10:.text:004DCC58:140 100.00 func_L10_004DCCE8 src/overlays/l10_torval_ruins/L10_004DCCE8.c match func_L10_004DCCE8 level_10:.text:004DCCE8:16 100.00 func_L10_004DE870 src/pal/overlays/l10_torval_ruins/L10_004DE870.c other - - 0.00 func_L11_003FEB88 src/overlays/shared/L11_003FEB88.c match func_L11_003FEB88 level_11:.text:003FEB88:64 100.00 @@ -8282,6 +8509,7 @@ func_L11_003FF4B8 src/pal/overlays/l11_tempus_station/L11_003FF4B8.c other - - 0 func_L11_00408458 src/overlays/shared/L11_00408458.c match func_L11_00408458 level_11:.text:00408458:108 100.00 func_L11_00408DE8 src/pal/overlays/l11_tempus_station/L11_00408DE8.c other - - 0.00 func_L11_00492720 src/overlays/shared/L11_00492720.c match func_L11_00492720 level_11:.text:00492720:72 100.00 +func_L11_00492768 src/overlays/shared/L11_00492768.c match func_L11_00492768 level_11:.text:00492768:288 100.00 func_L11_004928A0 src/overlays/shared/L11_004928A0.c match func_L11_004928A0 level_11:.text:004928A0:32 100.00 func_L11_00493CF8 src/pal/overlays/l11_tempus_station/L11_00493CF8.c other - - 0.00 func_L13_003DEEF0 src/overlays/shared/L13_003DEEF0.c match func_L13_003DEEF0 level_13:.text:003DEEF0:16 100.00 @@ -8291,9 +8519,11 @@ func_L13_00459438 src/overlays/l13_maraxus_prison/L13_00459438.c match func_L13_ func_L13_00459448 src/overlays/l13_maraxus_prison/L13_00459448.c match func_L13_00459448 level_13:.text:00459448:12 100.00 func_L13_00459458 src/overlays/l13_maraxus_prison/L13_00459458.c match func_L13_00459458 level_13:.text:00459458:16 100.00 func_L13_00459968 src/pal/overlays/l13_maraxus_prison/L13_00459968.c other - - 0.00 +func_L13_0046D2E8 src/overlays/l13_maraxus_prison/L13_0046D2E8.c match func_L13_0046D2E8 level_13:.text:0046D2E8:252 100.00 func_L13_0046D408 src/overlays/shared/L13_0046D408.c match func_L13_0046D408 level_13:.text:0046D408:140 100.00 func_L13_0046D498 src/overlays/shared/L13_0046D498.c match func_L13_0046D498 level_13:.text:0046D498:140 100.00 func_L13_0046E630 src/pal/overlays/l13_maraxus_prison/L13_0046E630.c other - - 0.00 +func_L13_004BD628 src/overlays/shared/L13_004BD628.c match func_L13_004BD628 level_13:.text:004BD628:360 100.00 func_L13_004BE4B0 src/overlays/shared/L13_004BE4B0.c match func_L13_004BE4B0 level_13:.text:004BE4B0:24 100.00 func_L13_004BE4C8 src/overlays/shared/L13_004BE4C8.c match func_L13_004BE4C8 level_13:.text:004BE4C8:148 100.00 func_L13_004BEF98 src/pal/overlays/l13_maraxus_prison/L13_004BEF98.c other - - 0.00 @@ -8323,6 +8553,7 @@ func_L15_004ADB18 src/overlays/shared/L15_004ADB18.c match func_L15_004ADB18 lev func_L15_004AF138 src/pal/overlays/l15_control_level/L15_004AF138.c other - - 0.00 func_L15_004CDDA8 src/pal/overlays/l15_control_level/L15_004CDDA8.c other - - 0.00 func_L15_004D6800 src/overlays/shared/L15_004D6800.c match func_L15_004D6800 level_15:.text:004D6800:204 100.00 +func_L15_004D6FD0 src/overlays/l15_control_level/L15_004D6FD0.c match func_L15_004D6FD0 level_15:.text:004D6FD0:308 100.00 func_L15_004D72A0 src/overlays/shared/L15_004D72A0.c match func_L15_004D72A0 level_15:.text:004D72A0:52 100.00 func_L15_004D72D8 src/overlays/shared/L15_004D72D8.c match func_L15_004D72D8 level_15:.text:004D72D8:44 100.00 func_L15_004D8550 src/pal/overlays/l15_control_level/L15_004D8550.c other - - 0.00 @@ -8472,6 +8703,7 @@ func_L41_00446DC8 src/overlays/l41_battledome_tower/L41_00446DC8.c match func_L4 func_L41_00446DF0 src/overlays/l41_battledome_tower/L41_00446DF0.c match func_L41_00446DF0 level_41:.text:00446DF0:116 100.00 func_L41_00446E70 src/overlays/shared/L41_00446E70.c match func_L41_00446E70 level_41:.text:00446E70:272 100.00 func_L41_00446FE8 src/pal/overlays/l41_battledome_tower/L41_00446FE8.c other - - 0.00 +func_L41_004484C8 src/overlays/shared/L41_004484C8.c match func_L41_004484C8 level_41:.text:004484C8:260 100.00 func_L41_00448A40 src/overlays/shared/L41_00448A40.c match func_L41_00448A40 level_41:.text:00448A40:188 100.00 func_L41_00448B00 src/overlays/l41_battledome_tower/L41_00448B00.c match func_L41_00448B00 level_41:.text:00448B00:20 100.00 func_L41_00448B18 src/overlays/l41_battledome_tower/L41_00448B18.c match func_L41_00448B18 level_41:.text:00448B18:28 100.00 @@ -8534,9 +8766,7 @@ func_0015F018 nonmatching/core/func_0015F018.c near func_0015F018 main:core.text func_001614C0 nonmatching/core/func_001614C0.c near func_001614C0 main:core.text:001614C0:104 86.54 func_00406D60 nonmatching/game/func_00406D60.c none - - 0.00 func_0046A360 nonmatching/game/func_0046A360.c near func_0046A360 main:.text:0046A360:432 0.00 -func_0046CEA0 nonmatching/game/func_0046CEA0.c near func_0046CEA0 main:.text:0046CEA0:552 89.67 func_0046DB78 nonmatching/game/func_0046DB78.c none - - 0.00 -func_0046E9E8 nonmatching/game/func_0046E9E8.c near func_0046E9E8 main:.text:0046E9E8:224 92.41 func_0046EAC8 nonmatching/game/func_0046EAC8.c near func_0046EAC8 main:.text:0046EAC8:260 94.23 func_004766F0 nonmatching/game/func_004766F0.c none - - 0.00 func_004766F8 nonmatching/game/func_004766F8.c none - - 0.00 @@ -8548,11 +8778,8 @@ func_004979A8 nonmatching/game/func_004979A8.c near func_004979A8 main:.text:004 func_00498730 nonmatching/game/func_00498730.c near func_00498730 main:.text:00498730:352 0.00 func_0049A694 nonmatching/game/func_0049A694.c none - - 0.00 func_0049D9D8 nonmatching/game/func_0049D9D8.c near func_0049D9D8 main:.text:0049D9D8:316 99.37 -func_004A06F8 nonmatching/game/func_004A06F8.c near func_004A06F8 main:.text:004A06F8:376 96.81 func_004A68D8 nonmatching/game/func_004A68D8.c near func_004A68D8 main:.text:004A68D8:464 98.71 -func_004A8280 nonmatching/game/func_004A8280.c near func_004A8280 main:.text:004A8280:292 89.38 func_004A8CB0 nonmatching/game/func_004A8CB0.c none - - 0.00 -func_004A8E78 nonmatching/game/func_004A8E78.c near func_004A8E78 main:.text:004A8E78:236 92.80 func_004A90E8 nonmatching/game/func_004A90E8.c near func_004A90E8 main:.text:004A90E8:428 93.46 func_004AB220 nonmatching/game/func_004AB220.c near func_004AB220 main:.text:004AB220:484 97.73 func_004AEE80 nonmatching/game/func_004AEE80.c near func_004AEE80 main:.text:004AEE80:744 94.49 @@ -8565,7 +8792,6 @@ func_004B5138 nonmatching/game/func_004B5138.c near func_004B5138 main:.text:004 func_004B65D8 nonmatching/game/func_004B65D8.c near func_004B65D8 main:.text:004B65D8:356 93.54 func_004B8928 nonmatching/game/func_004B8928.c near func_004B8928 main:.text:004B8928:184 51.63 func_004B9330 nonmatching/game/func_004B9330.c near func_004B9330 main:.text:004B9330:124 95.16 -func_004B9440 nonmatching/game/func_004B9440.c near func_004B9440 main:.text:004B9440:284 97.89 func_004BD128 nonmatching/game/func_004BD128.c near func_004BD128 main:.text:004BD128:732 97.40 func_004BDDF8 nonmatching/game/func_004BDDF8.c near func_004BDDF8 main:.text:004BDDF8:620 95.16 func_004BF4F0 nonmatching/game/func_004BF4F0.c near func_004BF4F0 main:.text:004BF4F0:360 89.44 @@ -8576,14 +8802,11 @@ func_004C34D8 nonmatching/game/func_004C34D8.c near func_004C34D8 main:.text:004 func_004C6070 nonmatching/game/func_004C6070.c near func_004C6070 main:.text:004C6070:328 0.00 func_004C6DD0 nonmatching/game/func_004C6DD0.c near func_004C6DD0 main:.text:004C6DD0:752 97.74 func_004C8388 nonmatching/game/func_004C8388.c near func_004C8388 main:.text:004C8388:4 0.00 -func_004C9090 nonmatching/game/func_004C9090.c near func_004C9090 main:.text:004C9090:216 98.61 func_004CB0F0 nonmatching/game/func_004CB0F0.c near func_004CB0F0 main:.text:004CB0F0:88 88.64 -func_004CBB98 nonmatching/game/func_004CBB98.c near func_004CBB98 main:.text:004CBB98:628 98.73 func_004CCDC0 nonmatching/game/func_004CCDC0.c near func_004CCDC0 main:.text:004CCDC0:176 93.75 func_004D2D30 nonmatching/game/func_004D2D30.c near func_004D2D30 main:.text:004D2D30:712 94.38 func_004D4E80 nonmatching/game/func_004D4E80.c near func_004D4E80 main:.text:004D4E80:828 96.38 func_004D7BC0 nonmatching/game/func_004D7BC0.c near func_004D7BC0 main:.text:004D7BC0:384 92.19 -func_004D9408 nonmatching/game/func_004D9408.c near func_004D9408 main:.text:004D9408:236 97.46 func_004DC200 nonmatching/game/func_004DC200.c near func_004DC200 main:.text:004DC200:200 95.00 func_004DCCB8 nonmatching/game/func_004DCCB8.c near func_004DCCB8 main:.text:004DCCB8:472 86.23 func_004DF0F8 nonmatching/game/func_004DF0F8.c near func_004DF0F8 main:.text:004DF0F8:448 85.04 @@ -8595,7 +8818,6 @@ func_004F5700 nonmatching/game/func_004F5700.c near func_004F5700 main:.text:004 func_004F6750 nonmatching/game/func_004F6750.c near func_004F6750 main:.text:004F6750:496 92.94 func_004F6960 nonmatching/game/func_004F6960.c near func_004F6960 main:.text:004F6960:380 97.89 func_004F6AF0 nonmatching/game/func_004F6AF0.c near func_004F6AF0 main:.text:004F6AF0:536 97.76 -func_004F7FD8 nonmatching/game/func_004F7FD8.c near func_004F7FD8 main:.text:004F7FD8:508 87.01 func_004F8B60 nonmatching/game/func_004F8B60.c near func_004F8B60 main:.text:004F8B60:664 0.00 func_004F9680 nonmatching/game/func_004F9680.c near func_004F9680 main:.text:004F9680:228 98.25 func_005061D8 nonmatching/game/func_005061D8.c near func_005061D8 main:.text:005061D8:384 89.84 @@ -8667,7 +8889,6 @@ func_L00_00545F88 nonmatching/l00_multiplayer_menu/func_L00_00545F88.c near func func_L00_005466E8 nonmatching/l00_multiplayer_menu/func_L00_005466E8.c near func_L00_005466E8 level_00:.text:005466E8:1672 99.22 func_L00_005472D0 nonmatching/l00_multiplayer_menu/func_L00_005472D0.c near func_L00_005472D0 level_00:.text:005472D0:560 97.12 func_L00_00596268 nonmatching/shared/func_L00_00596268.c near func_L00_00596268 level_00:.text:00596268:140 95.71 -func_L00_00599710 nonmatching/shared/func_L00_00599710.c near func_L00_00599710 level_00:.text:00599710:516 84.88 func_L00_005C5428 nonmatching/shared/func_L00_005C5428.c near func_L00_005C5428 level_00:.text:005C5428:128 92.19 func_L00_005D5CE0 nonmatching/shared/func_L00_005D5CE0.c near func_L00_005D5CE0 level_00:.text:005D5CE0:400 0.00 func_L00_005E0ED0 nonmatching/shared/func_L00_005E0ED0.c near func_L00_005E0ED0 level_00:.text:005E0ED0:132 80.30 @@ -8718,7 +8939,6 @@ func_L01_005724C8 nonmatching/shared/func_L01_005724C8.c near func_L01_005724C8 func_L01_00591730 nonmatching/shared/func_L01_00591730.c none - - 0.00 func_L01_005AC9D0 nonmatching/shared/func_L01_005AC9D0.c near func_L01_005AC9D0 level_01:.text:005AC9D0:280 84.29 func_L01_005BAEC0 nonmatching/shared/func_L01_005BAEC0.c near func_L01_005BAEC0 level_01:.text:005BAEC0:164 81.71 -func_L01_0063B1B8 nonmatching/shared/func_L01_0063B1B8.c near func_L01_0063B1B8 level_01:.text:0063B1B8:48 27.27 func_L01_00666D98 nonmatching/shared/func_L01_00666D98.c near func_L01_00666D98 level_01:.text:00666D98:240 0.00 func_L01_006B3FE8 nonmatching/shared/func_L01_006B3FE8.c near func_L01_006B3FE8 level_01:.text:006B3FE8:136 82.86 func_L02_003C56E8 nonmatching/shared/func_L02_003C56E8.c near func_L02_003C56E8 level_02:.text:003C56E8:224 98.21 diff --git a/nonmatching/game/func_0046CEA0.c b/nonmatching/game/func_0046CEA0.c deleted file mode 100644 index 85b95357..00000000 --- a/nonmatching/game/func_0046CEA0.c +++ /dev/null @@ -1,87 +0,0 @@ -/* Not matching yet: BYTES 57/552 (tools/try_func.py func_0046CEA0 --diff). Not part of the build. */ -#include "common.h" - -typedef struct { - s32 f0; - s32 f4; - s32 f8; - s32 fC; -} Type1; - -typedef struct { - Type1 *f0; - u32 f4; -} Type2; - -extern void func_004537D0(s32 *, s32 *, s32); -extern s32 D_003D82F0[]; -extern s32 D_003DA6B0[]; -extern Type2 *D_0022144C; -extern Type1 *D_00221E20; -extern Type2 D_00265D60[]; - -void func_0046CEA0(void) { - Type1 *head; - Type2 *e; - Type1 *pkt; - u32 tag; - u8 *info; - u32 w; - u32 n; - u8 *base; - s16 *src; - u8 *dst; - u32 stride; - s32 tagv; - u32 lo; - s16 v; - - if (D_0022144C != D_00265D60) { - head = D_00221E20++; - e = D_00265D60; - if (e < D_0022144C) { - tagv = 0x20000000; - do { - pkt = e->f0; - tag = e->f4; - lo = tag & 0xF; - ((s32 *)pkt)[0] = tagv; - ((s32 *)pkt)[3] = 0x11000000; - ((s32 *)pkt)[1] = (s32)D_00221E20; - info = *(u8 **)((tag & ~0xF) + 0x24); - w = info[0xB] & 0xF; - n = info[0xB] >> 4; - base = *(u8 **)(info + 0x20) - ((w * n) << 10) - 0x10; - if (n != 0) { - src = (s16 *)base; - dst = base + ((lo << 10) + 0x10); - stride = w << 10; - do { - v = *src++; - func_004537D0((s32 *)D_00221E20, D_003D82F0, 0x70); - n--; - *(s16 *)((u8 *)D_00221E20 + 0x24) = v; - *(u8 **)((u8 *)D_00221E20 + 0x64) = dst; - dst += stride; - D_00221E20 += 7; - } while (n != 0); - } - ((s32 *)D_00221E20)[0] = 0x30000003; - ((s32 *)D_00221E20)[1] = (s32)D_003DA6B0; - ((s32 *)D_00221E20)[2] = 0; - ((s32 *)D_00221E20)[3] = 0x50000003; - D_00221E20++; - ((s32 *)D_00221E20)[0] = tagv; - ((s32 *)D_00221E20)[1] = (s32)(pkt + 1); - ((s32 *)D_00221E20)[2] = 0; - ((s32 *)D_00221E20)[3] = 0; - D_00221E20++; - e++; - } while (e < D_0022144C); - } - ((s32 *)head)[0] = 0x20000000; - ((s32 *)head)[1] = (s32)D_00221E20; - ((s32 *)head)[2] = 0; - ((s32 *)head)[3] = 0; - } -} diff --git a/nonmatching/game/func_0046E9E8.c b/nonmatching/game/func_0046E9E8.c deleted file mode 100644 index 9f25a862..00000000 --- a/nonmatching/game/func_0046E9E8.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Not matching yet: BYTES 17/224 (tools/try_func.py func_0046E9E8 --diff). Not part of the build. */ -extern void func_004697C0(void *a0, s32 a1, s32 a2); -extern void func_00469800(); -extern void func_0046DC80(f32); - -// Splits a frame time into whole/fraction, submits the header and the two neighbouring frame blocks, then calls func_0046DC80 with the fraction. -void func_0046E9E8(u8 *arg0, f32 t) { - s32 i = (s32)t; - s32 next = i + 1; - u8 *data; - s32 stride; - s32 hdr; - u8 *cur; - u8 *nxt; - f32 frac; - - frac = t - (f32)i; - data = *(u8 **)(arg0 + 0x1C); - if (next == arg0[0x10]) next = 0; - stride = data[2]; - hdr = data[1]; - cur = data + (hdr + i * stride) * 16; - nxt = data + (next * stride + hdr) * 16; - if (hdr != 0) { - func_004697C0(data, hdr, 0x2000); - func_00469800(); - } - if (stride != 0) { - func_004697C0(cur, stride, 0x3000); - func_00469800(); - func_004697C0(nxt, stride, 0x3800); - func_00469800(); - } - func_0046DC80(frac); -} diff --git a/nonmatching/game/func_004A06F8.c b/nonmatching/game/func_004A06F8.c deleted file mode 100644 index d1ea9369..00000000 --- a/nonmatching/game/func_004A06F8.c +++ /dev/null @@ -1,82 +0,0 @@ -/* Not matching yet: BYTES 12/376 (tools/try_func.py func_004A06F8 --diff). Not part of the build. */ -#include "common.h" - -typedef struct Type2 { - s32 f0; - s32 f4; - s32 (*f8)(void *, s32); - void (*fC)(void *, s32); -} Type2; - -typedef struct Type3 { - Type2 *f0; -} Type3; - -typedef struct Type4 { - s32 f0; - s32 f4; - Type2 *f8; -} Type4; - -typedef struct Type5 { - s32 f0[5]; - s32 f14; -} Type5; - -typedef struct Type1 { - s32 f0; - Type5 *f4; -} Type1; - -extern Type1 D_00222038[]; - -extern s32 func_0015DB80(s32, s32); -extern s32 func_004FF910(s32, s32); -extern s32 func_005005A8(s32, Type4 *, s32); -extern Type1 *func_005010E0(void); -extern Type3 *func_005011A8(Type1 *, s32); -extern void func_00504228(s32); -extern s32 func_00504230(void); -extern Type4 *func_0050D2E8(s32); - -static inline Type1 *func_004A06F8_get(void) { - if (D_00222038->f4 != 0) { - return D_00222038; - } - return func_005010E0(); -} - -s32 func_004A06F8(s32 arg0) { - Type5 *q; - s32 s1; - s32 s0; - s32 s2; - s32 s3; - Type3 *obj; - Type4 *o; - - s3 = 0; - q = func_004A06F8_get()->f4; - s1 = 0; - if (q != 0) { - s1 = q->f0[q->f14]; - } - func_00504228(0x48); - s0 = func_00504230(); - if (s1 != 0) { - if (func_004FF910(s1, arg0) == 0) { - obj = func_005011A8(func_004A06F8_get(), 1); - s2 = obj->f0->f8(obj, s0); - if (s2 != 0) { - o = func_0050D2E8(func_0015DB80(0x48, s2)); - s3 = func_005005A8(s1, o, arg0) != 0; - if (s3 == 0) { - o->f8->f8(o, 2); - obj = func_005011A8(func_004A06F8_get(), 1); - obj->f0->fC(obj, s2); - } - } - } - } - return s3; -} diff --git a/nonmatching/game/func_004A8280.c b/nonmatching/game/func_004A8280.c deleted file mode 100644 index b34f372a..00000000 --- a/nonmatching/game/func_004A8280.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Not matching yet: BYTES 31/292 (tools/try_func.py func_004A8280 --diff). Not part of the build. */ -/* cflags: -O2 -fno-gcse */ -/* Note: the cflags above were a diagnostic experiment; a landable version must build with the file's normal flags. */ -#include "common.h" - -extern s32 func_00498670(void *a, s32 b, s32 c, f32 x); -extern s32 func_00498918(s32, s32); -extern s32 func_004989C0(s32 a0, s32 a1); -extern s32 func_004A1A60(void *arg0, s32 arg1); -extern void func_00505328(s32, s32); -extern s32 func_00505B20(void); -extern char D_00221650[]; -extern char D_00308108[]; - -void func_004A8280(void) -{ - s32 color = 0x40000000; - s32 idx = func_00505B20(); - char *p = D_00308108 + idx * 0xB8; - s32 n = *(s32 *)(p + 0xC); - s32 c; - - if (n != 0) { - if (n > 0) { - c = func_00498918(0, 1); - } else { - c = func_00498918(1, 1); - } - color = func_00498670(p + 0x10, 0x40000000, (c & 0xFFFFFF) | 0x40000000, 0.01f); - } - func_00505328(func_004A1A60(D_00221650, 0x2C), color); - color = 0x80D0D0D0; - if (*(s32 *)(p + 0x74) <= 0 && *(s32 *)(p + 0x94) > 0) { - color = func_00498670(p + 0x14, func_004989C0(idx, 0), 0x80D0D0D0, 0.05f); - } - func_00505328(func_004A1A60(D_00221650, 0x30), color); -} diff --git a/nonmatching/game/func_004A8E78.c b/nonmatching/game/func_004A8E78.c deleted file mode 100644 index 2e885bc3..00000000 --- a/nonmatching/game/func_004A8E78.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Not matching yet: BYTES 17/236 (tools/try_func.py func_004A8E78 --diff). Not part of the build. */ -#include "common.h" - -typedef struct { - u8 pad00[0x70]; - s32 unk70; - s32 unk74; - s32 unk78; - u8 pad7C[0x3C]; -} Entry; - -extern s32 func_004A86E0(void); -extern void func_004A8778(s32 arg0, s32 arg1); -extern void func_004A89A0(s32 arg0, s32 arg1); -extern s32 func_00505B20(void); -extern void *func_00510BE8(s32 arg0); -extern s32 func_00547E00(s32, s32); -extern s32 func_00547E30(s32 arg0, s32 arg1); -extern s32 func_00548018(s32 arg0); -extern u8 *D_0021DFF0[]; -extern s32 D_0021EDD4[]; -extern Entry D_00308108[]; - -void func_004A8E78(void) { - s32 idx = func_00505B20(); - s32 b = func_004A86E0(); - Entry *e = &D_00308108[idx]; - u8 *obj = func_00510BE8(idx); - s32 v; - s32 w; - - if (func_00548018(b) != 0) { - v = 0; - } else { - v = func_00547E30(*(s32 *)(obj + 0x26E4), b); - } - if (D_0021EDD4[0] == 1) { - if (*(s8 *)(D_0021DFF0[0] + 0x20) != 0) { - v = 0; - } - } - if (e->unk70 != v) { - e->unk70 = v; - func_004A8778(idx, v); - } - w = func_00547E00(*(s32 *)(obj + 0x26E4), b); - e->unk74 = w; - if (e->unk78 != w) { - e->unk78 = w; - func_004A89A0(idx, w); - } -} diff --git a/nonmatching/game/func_004B9440.c b/nonmatching/game/func_004B9440.c deleted file mode 100644 index 8230fcc6..00000000 --- a/nonmatching/game/func_004B9440.c +++ /dev/null @@ -1,40 +0,0 @@ -/* Not matching yet: BYTES 6/284 (tools/try_func.py func_004B9440 --diff). Not part of the build. */ -/* cflags: -G16 */ -/* Note: the cflags above were a diagnostic experiment; a landable version must build with the file's normal flags. */ -#include "common.h" - -typedef struct { - s32 unk0; - s32 unk4; - s32 unk8; - s32 unkC; -} Type1; - -extern s32 func_0045E038(s32); -extern s32 func_004A1A60(s32 *arg0, s32 arg1); -extern s32 func_00505238(u32, s32); -extern s32 func_00505B20(void); -extern s32 D_003D9488[][13]; -extern s32 D_002217B0; -extern Type1 D_002217B8[]; - -s32 D_0021F8A0[4] = {0x2F1B, 0x2F19, 0x2F1A, 0}; -s32 D_0021F8B0[4] = {0x3163, 0x3164, 0x3165, 0}; - -void func_004B9440(void) { - Type1 *p; - s32 h; - s32 i; - - i = 0; - p = &D_002217B8[func_00505B20()]; - h = func_004A1A60(&D_002217B0, 0x64); - func_00505238(h, func_0045E038(D_0021F8A0[p->unk4])); - do { - h = func_004A1A60(&D_002217B0, i + 0xB4); - func_00505238(h, func_0045E038(D_003D9488[p->unk4][i])); - i++; - } while (i < 13); - h = func_004A1A60(&D_002217B0, 0xB6); - func_00505238(h, func_0045E038(D_0021F8B0[p->unk8])); -} diff --git a/nonmatching/game/func_004C9090.c b/nonmatching/game/func_004C9090.c deleted file mode 100644 index 87fd43f6..00000000 --- a/nonmatching/game/func_004C9090.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Not matching yet: BYTES 3/216 (tools/try_func.py func_004C9090 --diff). Not part of the build. */ -extern s32 func_0045E038(s32); -extern void func_00497980(s32 arg0); -extern void func_0049E790(s32, s32, void (*)(void *), s32, f32, s32, s32, s32); -extern void func_004C8FB0(void *); -extern s32 func_004E6FA0(s32 *arg0); -extern s32 func_00505B20(void); -extern s32 D_30E494[]; - -// checks the selected table entry and either finishes or queues a callback -void func_004C9090(void) { - u8 *base; - u8 *entry; - s32 *obj; - s32 idx; - s32 a; - - base = (u8 *)D_30E494; - if (*(s32 *)(base + 0x50) != 0) { - idx = *(s32 *)(base + 0x54); - entry = NULL; - if (idx >= 0) { - entry = *(u8 **)(base + 0x34) + idx * 0x18; - } - obj = *(s32 **)(entry + 8); - if (func_004E6FA0(obj) != 0) { - if (obj[2] <= 0 || obj[0] == 1) { - func_004C8FB0((void *)1); - } else { - a = func_00505B20(); - func_0049E790(a, func_0045E038(0x8D0), func_004C8FB0, 3, -1.0f, 0, 0, 0); - } - } else { - func_00497980(4); - } - } -} diff --git a/nonmatching/game/func_004CBB98.c b/nonmatching/game/func_004CBB98.c deleted file mode 100644 index 93821eeb..00000000 --- a/nonmatching/game/func_004CBB98.c +++ /dev/null @@ -1,53 +0,0 @@ -/* Not matching yet: BYTES 8/628 (tools/try_func.py func_004CBB98 --diff). Not part of the build. */ -#include "common.h" - -extern void func_00498C98(void *arg0); -extern s32 func_004A1A60(s32 *arg0, s32 arg1); -extern s32 func_004CC978(void); -extern void func_00504F68(s32, s32); -extern void func_00505328(s32, s32); -extern s32 func_005054F8(u32 id, s32 amount); -extern void *func_00510BE8(s32 arg0); -extern void *func_00548D28(s32 arg0, s32 arg1); -extern s32 func_00548DA0(); -extern s32 D_003D2738[]; -extern s32 D_00221920; -extern u8 D_0030EAA0[]; - -void func_004CBB98(s32 arg0) { - s32 buf[6]; - u8 *rec; - u8 *pl; - s32 h; - s32 h2; - s32 h3; - - rec = D_0030EAA0 + arg0 * 100; - buf[0] = 5; - buf[1] = *(s32 *)(rec + 0x38); - func_00498C98(buf); - func_00505328(func_004A1A60(&D_00221920, D_003D2738[8]), 0x80808080); - func_005054F8(func_004A1A60(&D_00221920, D_003D2738[8]), buf[2]); - func_00504F68(func_004A1A60(&D_00221920, D_003D2738[8]), 1); - func_00505328(func_004A1A60(&D_00221920, D_003D2738[9]), 0x80808080); - h = func_004A1A60(&D_00221920, D_003D2738[9]); - func_005054F8(h, func_004CC978()); - func_00504F68(func_004A1A60(&D_00221920, D_003D2738[9]), 1); - pl = func_00510BE8(arg0); - if (func_00548DA0(*(s32 *)(pl + 0x26E4), 0x11) != 0) { - func_00505328(func_004A1A60(&D_00221920, D_003D2738[10]), 0x80808080); - h2 = func_004A1A60(&D_00221920, D_003D2738[10]); - func_005054F8(h2, *(u16 *)((u8 *)func_00548D28(0x11, 0) + 0x36)); - func_00504F68(func_004A1A60(&D_00221920, D_003D2738[10]), 1); - } else { - func_00504F68(func_004A1A60(&D_00221920, D_003D2738[10]), 0); - } - if (func_00548DA0(*(s32 *)(pl + 0x26E4), 0x12) != 0) { - func_00505328(func_004A1A60(&D_00221920, 0x33), 0x80808080); - h3 = func_004A1A60(&D_00221920, 0x33); - func_005054F8(h3, *(u16 *)((u8 *)func_00548D28(0x12, 0) + 0x36)); - func_00504F68(func_004A1A60(&D_00221920, 0x33), 1); - } else { - func_00504F68(func_004A1A60(&D_00221920, D_003D2738[11]), 0); - } -} diff --git a/nonmatching/game/func_004D9408.c b/nonmatching/game/func_004D9408.c deleted file mode 100644 index cd7f00dd..00000000 --- a/nonmatching/game/func_004D9408.c +++ /dev/null @@ -1,61 +0,0 @@ -/* Not matching yet: BYTES 6/236 (tools/try_func.py func_004D9408 --diff). Not part of the build. */ -#include "common.h" - -typedef struct { - s32 f0; - s32 f4; -} Type4; -typedef struct { - char pad0[8]; - Type4 *f8; - char pad0C[0xC]; -} Type3; -typedef struct { - char pad0[0x34]; - Type3 *f34; - char pad38[0x18]; - s32 f50; - s32 f54; -} Type1; -typedef struct { - char pad0[8]; - s32 f8; - s32 fC; -} Type2; - -extern s32 func_00505B20(void); -extern s32 func_00499CA0(void *, s32); -extern void func_00499CE0(s32); -extern s32 func_004A1A60(s32 *, s32); -extern s32 func_00506120(s32, s32); -extern s32 func_00505238(s32, s32); -extern u8 D_00321140[]; -extern char D_001CE2F8[]; -extern s32 D_00221B48; - -void func_004D9408(void) { - Type2 *rec; - Type1 *blk; - Type3 *ent; - Type4 *s1; - s32 idx; - - rec = (Type2 *)(D_00321140 + func_00505B20() * 0x114); - blk = (Type1 *)((u8 *)rec + 0xA8); - if (blk->f50 > 0) { - idx = blk->f54; - ent = 0; - if (idx >= 0) { - ent = &blk->f34[idx]; - } - s1 = ent->f8; - if (rec->fC != 0) { - func_00499CE0(rec->fC); - rec->fC = 0; - } - rec->fC = func_00499CA0(D_001CE2F8 + s1->f4 * 8, -1); - func_00506120(func_004A1A60(&D_00221B48, 2), rec->fC); - func_00505238(func_004A1A60(&D_00221B48, 6), s1->f0); - } - rec->f8 &= ~2; -} diff --git a/nonmatching/game/func_004F7FD8.c b/nonmatching/game/func_004F7FD8.c deleted file mode 100644 index 42379877..00000000 --- a/nonmatching/game/func_004F7FD8.c +++ /dev/null @@ -1,77 +0,0 @@ -/* Not matching yet: BYTES 66/508 (tools/try_func.py func_004F7FD8 --diff). Not part of the build. */ -#include "common.h" - -typedef struct { - u8 pad0[0x50]; - s32 unk50; - u8 pad54[3]; - u8 unk57; - u8 pad58[0xA]; - s8 unk62; -} Type1; - -extern void func_004F7A48(u64 **arg0, s32 arg1, s32 arg2); -extern void func_004F7A98(u64 **arg0, s32 arg1, s32 arg2); -extern s32 D_0021DECC; -extern s32 D_0021DF0C; -extern s32 D_0021DF18; -extern u64 D_0020C6C0[]; -extern s32 D_00221F74; - -Type1 *D_002209F8 = 0; - -void func_004F7FD8(void) { - u64 *p; - u64 *base; - s32 n; - s32 i; - s32 v; - - base = D_0020C6C0; - p = base; - if (D_002209F8->unk57 == 0 && D_002209F8->unk62 == -1) { - D_0021DECC = 0; - D_00221F74 = D_0021DF0C; - return; - } - *p = 0x1000000000000005; - p++; - *p = 0xE; - p++; - *p = 0; - p++; - *p = 0x3F; - p++; - *p = 0xA0000000A0; - p++; - *p = 0x19; - p++; - *p = 0x100000000; - p++; - *p = 0x4F; - p++; - *p = 0x60; - p++; - *p = 0x15; - p++; - *p = 5; - p++; - *p = 9; - p++; - n = D_002209F8->unk50; - if (n >= 5) { - n = 4; - } - D_002209F8->unk50 = n; - if (D_002209F8->unk50 == 4) { - func_004F7A98(&p, D_0021DF0C, D_0021DF18); - v = D_0021DF18; - } else { - for (i = 0; i < D_002209F8->unk50; i++) { - func_004F7A48(&p, D_0021DF0C, D_0021DF18); - } - v = D_0021DF0C; - } - D_00221F74 = v; - D_0021DECC = (s32)p - (s32)base; -} diff --git a/nonmatching/shared/func_L00_00599710.c b/nonmatching/shared/func_L00_00599710.c deleted file mode 100644 index de870a21..00000000 --- a/nonmatching/shared/func_L00_00599710.c +++ /dev/null @@ -1,74 +0,0 @@ -/* Not matching yet: BYTES 78/516 (tools/try_func.py func_L00_00599710 --diff). Not part of the build. */ -typedef struct { - u8 pad0[0x74]; - u16 f74; - u8 pad76[0xBC - 0x76]; - s16 fBC; -} Type1; - -typedef struct { - u8 pad0[0x31]; - u8 f31; -} Type2; - -typedef struct { - u8 pad0[0x2EF0]; - Type2 *f2EF0; -} Type4; - -typedef struct { - u8 pad0[0x70]; - s32 f70; - u8 pad74[0x84 - 0x74]; - s16 f84; - u8 pad86[0x1F0 - 0x86]; - Type1 *f1F0[1]; -} Type3; - -extern void func_L00_00596A28(s32, s32, s32, s32); -extern void func_L00_00598118(s32); -extern Type3 D_0023BE00[]; -extern Type4 *D_00343E78[]; - -// Set per-entry effects by type, then clear a flag in ten slots -void func_L00_00599710(void) { - Type3 *base = D_0023BE00; - Type4 **q = D_00343E78; - s32 i; - Type1 *p; - - for (i = 0; i < base->f84; i++) { - p = base->f1F0[i]; - if (p == NULL) { - continue; - } - if (p->fBC == 0x216A || p->fBC == 0x2691 - || (p->fBC == 0x2429 && *(s32 *)0x21DE10 == 0x2574) - || p->fBC == 0x20FD || p->fBC == 0x2703 || p->fBC == 0x2505) { - func_L00_00596A28(i, 0x96, 0, 0); - } - if (p->fBC == 0x216A || p->fBC == 0x2691) { - base->f1F0[i]->f74 |= 0x1000; - } - if (p->fBC == 0xA) { - if (base->f70 == 2) { - base->f1F0[i]->f74 |= 0x1000; - } else { - base->f1F0[i]->f74 |= 0x1002; - } - func_L00_00596A28(i, 0x6E, 0x80306629, 0x8058B856); - } - if (p->fBC == 0x243D) { - func_L00_00596A28(i, 0x168, 0xC0808080, 0x80505050); - } - if (p->fBC == 0x247F || p->fBC == 0x24D9 || p->fBC == 0x24D5) { - func_L00_00596A28(i, 0x5A, 0xFFC0C0C0, 0xB0505050); - } - } - func_L00_00598118(0); - for (i = 0; i < 10; i++) { - if (q[i] != NULL) { - q[i]->f2EF0->f31 = 0; - } - } -} diff --git a/nonmatching/shared/func_L01_0063B1B8.c b/nonmatching/shared/func_L01_0063B1B8.c deleted file mode 100644 index 3b9f8ea2..00000000 --- a/nonmatching/shared/func_L01_0063B1B8.c +++ /dev/null @@ -1,13 +0,0 @@ -/* Not matching yet: BYTES 32/44 (tools/try_func.py func_L01_0063B1B8 --diff). Not part of the build. */ -#include "common.h" - -// Release index `i` from the table and drop the reference count. -void func_L01_0063B1B8(u8 *p, s32 i) { - u8 *e = p + i * 4; - - *(s32 *)(e + 0x0) = 0; - *(s32 *)(e + 0x100) = 0; - if (--*(s32 *)(p + 0x220) == 0) { - *(s32 *)(p + 0x224) = 0; - } -} diff --git a/progress/pal/report.json b/progress/pal/report.json index d606911c..dbc4c32b 100644 --- a/progress/pal/report.json +++ b/progress/pal/report.json @@ -1,34 +1,34 @@ { "version": 2, "measures": { - "fuzzy_match_percent": 15.549318, + "fuzzy_match_percent": 15.628962, "total_code": "5810856", - "matched_code": "860484", - "matched_code_percent": 14.808214, + "matched_code": "865112", + "matched_code_percent": 14.887858, "total_functions": 18134, - "matched_functions": 8086, - "matched_functions_percent": 44.590272, - "complete_code": "481196", - "complete_code_percent": 8.280983, - "total_units": 4458, - "complete_units": 4400 + "matched_functions": 8103, + "matched_functions_percent": 44.684019, + "complete_code": "482252", + "complete_code_percent": 8.299156, + "total_units": 4462, + "complete_units": 4404 }, "categories": [ { "id": "core", "name": "Main program", "measures": { - "fuzzy_match_percent": 22.879937, + "fuzzy_match_percent": 22.927889, "total_code": "2202184", - "matched_code": "481196", - "matched_code_percent": 21.850854, + "matched_code": "482252", + "matched_code_percent": 21.898806, "total_functions": 8952, - "matched_functions": 4429, - "matched_functions_percent": 49.474978, - "complete_code": "481196", - "complete_code_percent": 21.850854, - "total_units": 4443, - "complete_units": 4400 + "matched_functions": 4433, + "matched_functions_percent": 49.51966, + "complete_code": "482252", + "complete_code_percent": 21.898806, + "total_units": 4447, + "complete_units": 4404 } }, { @@ -86,17 +86,17 @@ "id": "menu_text", "name": "Resident menus (.text)", "measures": { - "fuzzy_match_percent": 24.494533, + "fuzzy_match_percent": 24.568792, "total_code": "1422048", - "matched_code": "328844", - "matched_code_percent": 23.124677, + "matched_code": "329900", + "matched_code_percent": 23.198936, "total_functions": 4797, - "matched_functions": 2560, - "matched_functions_percent": 53.366688, + "matched_functions": 2564, + "matched_functions_percent": 53.450073, "complete_code": "0", "complete_code_percent": 0.0, - "total_units": 2575, - "complete_units": 2553 + "total_units": 2579, + "complete_units": 2557 } }, { @@ -120,13 +120,13 @@ "id": "level_code", "name": "Level code", "measures": { - "fuzzy_match_percent": 11.075824, + "fuzzy_match_percent": 11.174807, "total_code": "3608672", - "matched_code": "379288", - "matched_code_percent": 10.510459, + "matched_code": "382860", + "matched_code_percent": 10.609443, "total_functions": 9182, - "matched_functions": 3657, - "matched_functions_percent": 39.827924, + "matched_functions": 3670, + "matched_functions_percent": 39.969506, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 15, @@ -137,13 +137,13 @@ "id": "common", "name": "Shared level code", "measures": { - "fuzzy_match_percent": 10.312622, + "fuzzy_match_percent": 10.401837, "total_code": "2008632", - "matched_code": "198876", - "matched_code_percent": 9.901067, + "matched_code": "200668", + "matched_code_percent": 9.990282, "total_functions": 5089, - "matched_functions": 2116, - "matched_functions_percent": 41.579878, + "matched_functions": 2123, + "matched_functions_percent": 41.71743, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -154,13 +154,13 @@ "id": "levels", "name": "Level-specific code", "measures": { - "fuzzy_match_percent": 12.033919, + "fuzzy_match_percent": 12.145166, "total_code": "1600040", - "matched_code": "180412", - "matched_code_percent": 11.275468, + "matched_code": "182192", + "matched_code_percent": 11.386715, "total_functions": 4093, - "matched_functions": 1541, - "matched_functions_percent": 37.649646, + "matched_functions": 1547, + "matched_functions_percent": 37.796237, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 14, @@ -171,13 +171,13 @@ "id": "level_00", "name": "Level 00: Multiplayer Menu", "measures": { - "fuzzy_match_percent": 15.484171, + "fuzzy_match_percent": 15.645206, "total_code": "943896", - "matched_code": "136512", - "matched_code_percent": 14.46261, + "matched_code": "138032", + "matched_code_percent": 14.623645, "total_functions": 2834, - "matched_functions": 1098, - "matched_functions_percent": 38.743825, + "matched_functions": 1103, + "matched_functions_percent": 38.920254, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -392,13 +392,13 @@ "id": "level_41", "name": "Level 41: Battledome Tower (all 22 multiplayer maps)", "measures": { - "fuzzy_match_percent": 13.702465, + "fuzzy_match_percent": 13.887729, "total_code": "140340", - "matched_code": "16832", - "matched_code_percent": 11.99373, + "matched_code": "17092", + "matched_code_percent": 12.178994, "total_functions": 374, - "matched_functions": 167, - "matched_functions_percent": 44.652406, + "matched_functions": 168, + "matched_functions_percent": 44.919786, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -8606,6 +8606,41 @@ ] } }, + { + "name": "core/00139DA0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "104", + "matched_code": "104", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "104", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00139DA0", + "size": "104", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1285536" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/00139DA0.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/0013A0F0", "measures": { @@ -23656,6 +23691,41 @@ ] } }, + { + "name": "core/00159258", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "112", + "matched_code": "112", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "112", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00159268", + "size": "112", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1413736" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/00159258.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/001592D8", "measures": { @@ -32590,6 +32660,41 @@ ] } }, + { + "name": "game/0041DA98", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "364", + "matched_code": "364", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "364", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0041DB98", + "size": "364", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4316056" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0041DA98.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0041FD80", "measures": { @@ -32835,6 +32940,41 @@ ] } }, + { + "name": "game/004230F8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "284", + "matched_code": "284", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "284", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004232A0", + "size": "284", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4338336" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004230F8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00424578", "measures": { @@ -33150,6 +33290,76 @@ ] } }, + { + "name": "game/00429BE8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "268", + "matched_code": "268", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "268", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00429E58", + "size": "268", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4365912" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00429BE8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0042B700", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "204", + "matched_code": "204", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "204", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0042BA60", + "size": "204", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4373088" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0042B700.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0042ED20", "measures": { @@ -33255,6 +33465,76 @@ ] } }, + { + "name": "game/00430D08", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "220", + "matched_code": "220", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "220", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00431190", + "size": "220", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4395408" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00430D08.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/00430E80", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "376", + "matched_code": "376", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "376", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00431308", + "size": "376", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4395784" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00430E80.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004312A8", "measures": { @@ -33360,6 +33640,76 @@ ] } }, + { + "name": "game/004331B0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "256", + "matched_code": "256", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "256", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00433688", + "size": "256", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4404872" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004331B0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004332B0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "100", + "matched_code": "100", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "100", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00433788", + "size": "100", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4405128" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004332B0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00433318", "measures": { @@ -33465,6 +33815,41 @@ ] } }, + { + "name": "game/004363D0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "448", + "matched_code": "448", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "448", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004368B8", + "size": "448", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4417720" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004363D0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00436970", "measures": { @@ -34585,6 +34970,76 @@ ] } }, + { + "name": "game/0043D160", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "232", + "matched_code": "232", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "232", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0043D788", + "size": "232", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4446088" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0043D160.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0043D250", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "272", + "matched_code": "272", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "272", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0043D878", + "size": "272", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4446328" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0043D250.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0043D918", "measures": { @@ -34865,6 +35320,41 @@ ] } }, + { + "name": "game/004473C0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "212", + "matched_code": "212", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "212", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00447A00", + "size": "212", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4487680" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004473C0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00447498", "measures": { @@ -35040,6 +35530,41 @@ ] } }, + { + "name": "game/00448B40", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "208", + "matched_code": "208", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "208", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00449180", + "size": "208", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4493696" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00448B40.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00448C10", "measures": { @@ -35075,6 +35600,41 @@ ] } }, + { + "name": "game/00448D98", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "264", + "matched_code": "264", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "264", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004493D8", + "size": "264", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4494296" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00448D98.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00449298", "measures": { @@ -35215,6 +35775,76 @@ ] } }, + { + "name": "game/0044A410", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "436", + "matched_code": "436", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "436", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0044AAB8", + "size": "436", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4500152" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0044A410.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0044AA58", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "200", + "matched_code": "200", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "200", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0044B100", + "size": "200", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4501760" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0044AA58.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0044AB20", "measures": { @@ -35250,6 +35880,41 @@ ] } }, + { + "name": "game/0044ABC0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "316", + "matched_code": "316", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "316", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0044B268", + "size": "316", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4502120" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0044ABC0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0044B110", "measures": { @@ -35705,6 +36370,41 @@ ] } }, + { + "name": "game/0044D6D0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "328", + "matched_code": "328", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "328", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0044DD78", + "size": "328", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4513144" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0044D6D0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0044D938", "measures": { @@ -35845,6 +36545,76 @@ ] } }, + { + "name": "game/0044DF08", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "324", + "matched_code": "324", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "324", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0044E5B0", + "size": "324", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4515248" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0044DF08.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/00452598", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "256", + "matched_code": "256", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "256", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00452DC0", + "size": "256", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4533696" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00452598.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00452698", "measures": { @@ -36020,6 +36790,41 @@ ] } }, + { + "name": "game/00454420", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "468", + "matched_code": "468", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "468", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00454C38", + "size": "468", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4541496" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00454420.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004545F8", "measures": { @@ -36055,6 +36860,41 @@ ] } }, + { + "name": "game/00454600", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "380", + "matched_code": "380", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "380", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00454E18", + "size": "380", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4541976" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00454600.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00454A60", "measures": { @@ -36895,6 +37735,41 @@ ] } }, + { + "name": "game/004597B8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "284", + "matched_code": "284", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "284", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00459FD0", + "size": "284", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4562896" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004597B8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004598E0", "measures": { @@ -38357,6 +39232,41 @@ ] } }, + { + "name": "game/0045E860", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "352", + "matched_code": "352", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "352", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0045F078", + "size": "352", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4583544" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0045E860.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0045F410", "measures": { @@ -39302,6 +40212,41 @@ ] } }, + { + "name": "game/00460B00", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "412", + "matched_code": "412", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "412", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00461340", + "size": "412", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4592448" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00460B00.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00460CA0", "measures": { @@ -39372,6 +40317,41 @@ ] } }, + { + "name": "game/00460D48", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "744", + "matched_code": "744", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "744", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00461588", + "size": "744", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4593032" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00460D48.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00461030", "measures": { @@ -39722,6 +40702,76 @@ ] } }, + { + "name": "game/00462D68", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "276", + "matched_code": "276", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "276", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004635A8", + "size": "276", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4601256" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00462D68.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/00463B78", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "236", + "matched_code": "236", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "236", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004643B8", + "size": "236", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4604856" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00463B78.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00463C68", "measures": { @@ -40431,6 +41481,41 @@ ] } }, + { + "name": "game/004653A8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "164", + "matched_code": "164", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "164", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00465BF0", + "size": "164", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4611056" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004653A8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00465530", "measures": { @@ -40466,6 +41551,41 @@ ] } }, + { + "name": "game/004655A0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "216", + "matched_code": "216", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "216", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00465DE8", + "size": "216", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4611560" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004655A0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00465678", "measures": { @@ -41061,6 +42181,111 @@ ] } }, + { + "name": "game/00465F38", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "420", + "matched_code": "420", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "420", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00466780", + "size": "420", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4614016" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00465F38.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004660F8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "220", + "matched_code": "220", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "220", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00466940", + "size": "220", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4614464" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004660F8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004661D8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "312", + "matched_code": "312", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "312", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00466A20", + "size": "312", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4614688" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004661D8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00468B20", "measures": { @@ -41236,6 +42461,41 @@ ] } }, + { + "name": "game/00468C78", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "276", + "matched_code": "276", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "276", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00469508", + "size": "276", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4625672" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00468C78.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004690E8", "measures": { @@ -41516,6 +42776,41 @@ ] } }, + { + "name": "game/0046A9E8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "216", + "matched_code": "216", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "216", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0046B2A8", + "size": "216", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4633256" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0046A9E8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0046B4C0", "measures": { @@ -41831,6 +43126,41 @@ ] } }, + { + "name": "game/0046CEA0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "552", + "matched_code": "552", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "552", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0046D780", + "size": "552", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4642688" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0046CEA0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0046D0C8", "measures": { @@ -42321,6 +43651,41 @@ ] } }, + { + "name": "game/0046D708", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "204", + "matched_code": "204", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "204", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0046DFE8", + "size": "204", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4644840" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0046D708.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0046D7D8", "measures": { @@ -42426,6 +43791,41 @@ ] } }, + { + "name": "game/0046E9E8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "224", + "matched_code": "224", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "224", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0046F2C8", + "size": "224", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4649672" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0046E9E8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0046EDD8", "measures": { @@ -45961,6 +47361,41 @@ ] } }, + { + "name": "game/0047ED10", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "256", + "matched_code": "256", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "256", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0047F640", + "size": "256", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4716096" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0047ED10.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0047EE10", "measures": { @@ -48201,6 +49636,41 @@ ] } }, + { + "name": "game/0048B840", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "292", + "matched_code": "292", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "292", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048C2F8", + "size": "292", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4768504" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048B840.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0048B968", "measures": { @@ -48271,6 +49741,111 @@ ] } }, + { + "name": "game/0048BB38", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048C5F0", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4769264" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048BB38.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0048BC20", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "232", + "matched_code": "232", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "232", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048C6D8", + "size": "232", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4769496" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048BC20.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0048BD08", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048C7C0", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4769728" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048BD08.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0048BDF0", "measures": { @@ -48341,6 +49916,216 @@ ] } }, + { + "name": "game/0048BF90", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048CA48", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4770376" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048BF90.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0048C078", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048CB30", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4770608" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048C078.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0048C160", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048CC18", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4770840" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048C160.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0048C248", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048CD00", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4771072" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048C248.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0048C330", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "268", + "matched_code": "268", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "268", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048CDE8", + "size": "268", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4771304" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048C330.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0048C440", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "384", + "matched_code": "384", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "384", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048CEF8", + "size": "384", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4771576" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048C440.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0048D038", "measures": { @@ -51736,6 +53521,41 @@ ] } }, + { + "name": "game/00498270", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "248", + "matched_code": "248", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "248", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00498FA8", + "size": "248", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4820904" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00498270.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00498368", "measures": { @@ -52191,6 +54011,41 @@ ] } }, + { + "name": "game/00498A98", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "284", + "matched_code": "284", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "284", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004997D0", + "size": "284", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4822992" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00498A98.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00498BF4", "measures": { @@ -52891,6 +54746,41 @@ ] } }, + { + "name": "game/004993D8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "264", + "matched_code": "264", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "264", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0049A110", + "size": "264", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4825360" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004993D8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004994E0", "measures": { @@ -55341,6 +57231,41 @@ ] } }, + { + "name": "game/0049E140", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "376", + "matched_code": "376", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "376", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0049EE78", + "size": "376", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4845176" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0049E140.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0049E2B8", "measures": { @@ -55691,6 +57616,146 @@ ] } }, + { + "name": "game/0049F4F8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "356", + "matched_code": "356", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "356", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A0230", + "size": "356", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4850224" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0049F4F8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0049F660", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "244", + "matched_code": "244", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "244", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A0398", + "size": "244", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4850584" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0049F660.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0049F758", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "204", + "matched_code": "204", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "204", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A0490", + "size": "204", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4850832" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0049F758.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0049F828", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "252", + "matched_code": "252", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "252", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A0560", + "size": "252", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4851040" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0049F828.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0049F928", "measures": { @@ -56111,6 +58176,111 @@ ] } }, + { + "name": "game/004A06F8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "376", + "matched_code": "376", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "376", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A1430", + "size": "376", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4854832" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A06F8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004A0870", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "376", + "matched_code": "376", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "376", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A15A8", + "size": "376", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4855208" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A0870.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004A09E8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "376", + "matched_code": "376", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "376", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A1720", + "size": "376", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4855584" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A09E8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004A0B68", "measures": { @@ -56426,6 +58596,41 @@ ] } }, + { + "name": "game/004A1240", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "204", + "matched_code": "204", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "204", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A1F78", + "size": "204", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4857720" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A1240.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004A1310", "measures": { @@ -58246,6 +60451,41 @@ ] } }, + { + "name": "game/004A2B18", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "236", + "matched_code": "236", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "236", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A3878", + "size": "236", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4864120" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A2B18.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004A2C08", "measures": { @@ -58281,6 +60521,41 @@ ] } }, + { + "name": "game/004A2C28", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A3988", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4864392" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A2C28.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004A2D10", "measures": { @@ -59051,6 +61326,41 @@ ] } }, + { + "name": "game/004A4880", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "348", + "matched_code": "348", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "348", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A55F8", + "size": "348", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4871672" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A4880.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004A49E0", "measures": { @@ -60276,6 +62586,41 @@ ] } }, + { + "name": "game/004A8280", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "292", + "matched_code": "292", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "292", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A8FF0", + "size": "292", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4886512" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A8280.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004A83A8", "measures": { @@ -60311,6 +62656,41 @@ ] } }, + { + "name": "game/004A8430", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A91A0", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4886944" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A8430.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004A8518", "measures": { @@ -60486,6 +62866,41 @@ ] } }, + { + "name": "game/004A89E8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "292", + "matched_code": "292", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "292", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A9760", + "size": "292", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4888416" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A89E8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004A8B10", "measures": { @@ -60626,6 +63041,41 @@ ] } }, + { + "name": "game/004A8E78", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "236", + "matched_code": "236", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "236", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A9BF0", + "size": "236", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4889584" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A8E78.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004A8F68", "measures": { @@ -61361,6 +63811,41 @@ ] } }, + { + "name": "game/004AD1D8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "220", + "matched_code": "220", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "220", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004AE058", + "size": "220", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4907096" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004AD1D8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004AD2B8", "measures": { @@ -64546,6 +67031,41 @@ ] } }, + { + "name": "game/004B4050", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "420", + "matched_code": "420", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "420", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004B4F18", + "size": "420", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4935448" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004B4050.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004B4A40", "measures": { @@ -65631,6 +68151,41 @@ ] } }, + { + "name": "game/004B6740", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "328", + "matched_code": "328", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "328", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004B7630", + "size": "328", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4945456" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004B6740.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004B6888", "measures": { @@ -67626,6 +70181,76 @@ ] } }, + { + "name": "game/004B83C8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "264", + "matched_code": "264", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "264", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004B92B8", + "size": "264", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4952760" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004B83C8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004B84D0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "264", + "matched_code": "264", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "264", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004B93C0", + "size": "264", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4953024" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004B84D0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004B85D8", "measures": { @@ -68046,6 +70671,76 @@ ] } }, + { + "name": "game/004B9240", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "236", + "matched_code": "236", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "236", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004BA130", + "size": "236", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4956464" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004B9240.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004B9440", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "284", + "matched_code": "284", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "284", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004BA330", + "size": "284", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4956976" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004B9440.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004B9560", "measures": { @@ -70925,6 +73620,41 @@ ] } }, + { + "name": "game/004C1FA8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "500", + "matched_code": "500", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "500", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004C2DD0", + "size": "500", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4992464" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004C1FA8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004C21A0", "measures": { @@ -71310,6 +74040,41 @@ ] } }, + { + "name": "game/004C33D0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "260", + "matched_code": "260", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "260", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004C41F8", + "size": "260", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4997624" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004C33D0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004C37A0", "measures": { @@ -71870,6 +74635,76 @@ ] } }, + { + "name": "game/004C44E8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "432", + "matched_code": "432", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "432", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004C5310", + "size": "432", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5002000" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004C44E8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004C4698", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "400", + "matched_code": "400", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "400", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004C54C0", + "size": "400", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5002432" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004C4698.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004C5570", "measures": { @@ -72360,6 +75195,41 @@ ] } }, + { + "name": "game/004C6BA0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "284", + "matched_code": "284", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "284", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004C79C8", + "size": "284", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5011912" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004C6BA0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004C70C0", "measures": { @@ -72500,6 +75370,41 @@ ] } }, + { + "name": "game/004C7168", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "212", + "matched_code": "212", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "212", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004C7F90", + "size": "212", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5013392" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004C7168.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004C7240", "measures": { @@ -73305,6 +76210,41 @@ ] } }, + { + "name": "game/004C9090", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "216", + "matched_code": "216", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "216", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004C9EB8", + "size": "216", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5021368" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004C9090.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004C9168", "measures": { @@ -74915,6 +77855,41 @@ ] } }, + { + "name": "game/004CBB98", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "628", + "matched_code": "628", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "628", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004CCA38", + "size": "628", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5032504" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004CBB98.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004CBE10", "measures": { @@ -76140,6 +79115,41 @@ ] } }, + { + "name": "game/004CDF08", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "212", + "matched_code": "212", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "212", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004CEDA8", + "size": "212", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5041576" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004CDF08.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004CDFE0", "measures": { @@ -77330,6 +80340,41 @@ ] } }, + { + "name": "game/004CF950", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "240", + "matched_code": "240", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "240", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004D07F0", + "size": "240", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5048304" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004CF950.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004CFA40", "measures": { @@ -80655,6 +83700,41 @@ ] } }, + { + "name": "game/004D4C58", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "548", + "matched_code": "548", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "548", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004D5B70", + "size": "548", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5069680" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004D4C58.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004D5550", "measures": { @@ -81495,6 +84575,41 @@ ] } }, + { + "name": "game/004D6378", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "296", + "matched_code": "296", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "296", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004D7290", + "size": "296", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5075600" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004D6378.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004D64A0", "measures": { @@ -82685,6 +85800,41 @@ ] } }, + { + "name": "game/004D8A18", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "212", + "matched_code": "212", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "212", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004D9930", + "size": "212", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5085488" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004D8A18.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004D8AF0", "measures": { @@ -83035,6 +86185,41 @@ ] } }, + { + "name": "game/004D9048", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "544", + "matched_code": "544", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "544", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004D9F60", + "size": "544", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5087072" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004D9048.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004D9268", "measures": { @@ -83140,6 +86325,41 @@ ] } }, + { + "name": "game/004D9408", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "236", + "matched_code": "236", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "236", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004DA320", + "size": "236", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5088032" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004D9408.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004D95C8", "measures": { @@ -83770,6 +86990,111 @@ ] } }, + { + "name": "game/004DA2D8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "780", + "matched_code": "780", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "780", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004DB1F8", + "size": "780", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5091832" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004DA2D8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004DA960", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "212", + "matched_code": "212", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "212", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004DA960", + "size": "212", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5089632" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004DA960.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004DAA78", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "276", + "matched_code": "276", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "276", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004DB998", + "size": "276", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5093784" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004DAA78.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004DAB90", "measures": { @@ -84890,6 +88215,41 @@ ] } }, + { + "name": "game/004DEF78", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "280", + "matched_code": "280", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "280", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004DFED8", + "size": "280", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5111512" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004DEF78.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004DF098", "measures": { @@ -87410,6 +90770,41 @@ ] } }, + { + "name": "game/004EE150", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "216", + "matched_code": "216", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "216", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004EF188", + "size": "216", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5173640" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004EE150.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004EE368", "measures": { @@ -88530,6 +91925,41 @@ ] } }, + { + "name": "game/004F0660", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "276", + "matched_code": "276", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "276", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004F16C8", + "size": "276", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5183176" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004F0660.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004F0778", "measures": { @@ -89790,6 +93220,41 @@ ] } }, + { + "name": "game/004F1D20", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "204", + "matched_code": "204", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "204", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004F2D88", + "size": "204", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5189000" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004F1D20.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004F1DF0", "measures": { @@ -89825,6 +93290,41 @@ ] } }, + { + "name": "game/004F1EA0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "424", + "matched_code": "424", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "424", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004F2F08", + "size": "424", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5189384" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004F1EA0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004F2048", "measures": { @@ -91190,6 +94690,41 @@ ] } }, + { + "name": "game/004F5350", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "112", + "matched_code": "112", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "112", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004F63D0", + "size": "112", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5202896" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004F5350.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004F53C0", "measures": { @@ -92100,6 +95635,41 @@ ] } }, + { + "name": "game/004F7FD8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "508", + "matched_code": "508", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "508", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004F9058", + "size": "508", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5214296" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004F7FD8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004F86EC", "measures": { @@ -92485,6 +96055,41 @@ ] } }, + { + "name": "game/004FAAA8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "212", + "matched_code": "212", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "212", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004FBB28", + "size": "212", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5225256" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004FAAA8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004FAB80", "measures": { @@ -92765,6 +96370,41 @@ ] } }, + { + "name": "game/004FC310", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "248", + "matched_code": "248", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "248", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004FD380", + "size": "248", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5231488" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004FC310.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004FC408", "measures": { @@ -93395,6 +97035,41 @@ ] } }, + { + "name": "game/004FEF80", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "268", + "matched_code": "268", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "268", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004FFFF0", + "size": "268", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5242864" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004FEF80.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004FF4C0", "measures": { @@ -96694,6 +100369,41 @@ ] } }, + { + "name": "game/00502510", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "548", + "matched_code": "548", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "548", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00503580", + "size": "548", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5256576" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00502510.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00502738", "measures": { @@ -97394,6 +101104,41 @@ ] } }, + { + "name": "game/005040B0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "376", + "matched_code": "376", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "376", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00505148", + "size": "376", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5263688" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/005040B0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00504228", "measures": { @@ -97604,6 +101349,76 @@ ] } }, + { + "name": "game/00504550", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "244", + "matched_code": "244", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "244", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_005055E8", + "size": "244", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5264872" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00504550.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/00504648", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "244", + "matched_code": "244", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "244", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_005056E0", + "size": "244", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5265120" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00504648.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00504740", "measures": { @@ -97744,6 +101559,41 @@ ] } }, + { + "name": "game/00504AA8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00505B40", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5266240" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00504AA8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00504B90", "measures": { @@ -97884,6 +101734,41 @@ ] } }, + { + "name": "game/00504F68", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "212", + "matched_code": "212", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "212", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00506000", + "size": "212", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5267456" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00504F68.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00505040", "measures": { @@ -97954,6 +101839,76 @@ ] } }, + { + "name": "game/00505238", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_005062D0", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5268176" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00505238.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/00505328", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_005063C0", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5268416" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00505328.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00505410", "measures": { @@ -99669,6 +103624,41 @@ ] } }, + { + "name": "game/005081B0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "376", + "matched_code": "376", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "376", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00509248", + "size": "376", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5280328" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/005081B0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00508328", "measures": { @@ -103974,6 +107964,41 @@ ] } }, + { + "name": "game/0050BE90", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "276", + "matched_code": "276", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "276", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0050CF28", + "size": "276", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5295912" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0050BE90.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0050BFA8", "measures": { @@ -104079,6 +108104,41 @@ ] } }, + { + "name": "game/0050C100", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "428", + "matched_code": "428", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "428", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0050D198", + "size": "428", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5296536" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0050C100.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0050C2B0", "measures": { @@ -104464,6 +108524,41 @@ ] } }, + { + "name": "game/0050C7D8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "240", + "matched_code": "240", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "240", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0050D870", + "size": "240", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5298288" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0050C7D8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0050CC98", "measures": { @@ -106984,6 +111079,41 @@ ] } }, + { + "name": "game/00511060", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "240", + "matched_code": "240", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "240", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00512138", + "size": "240", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5316920" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00511060.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00511150", "measures": { @@ -107859,6 +111989,41 @@ ] } }, + { + "name": "game/0051A638", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "340", + "matched_code": "340", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "340", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0051B7B8", + "size": "340", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5355448" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0051A638.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0051A790", "measures": { @@ -109959,6 +114124,41 @@ ] } }, + { + "name": "game/0053D6E0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "260", + "matched_code": "260", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "260", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0053EA90", + "size": "260", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5499536" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0053D6E0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0053E0D8", "measures": { @@ -111464,6 +115664,41 @@ ] } }, + { + "name": "game/005480A8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "256", + "matched_code": "256", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "256", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00549610", + "size": "256", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5543440" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/005480A8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00548478", "measures": { @@ -112269,6 +116504,41 @@ ] } }, + { + "name": "game/0054A0C0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "204", + "matched_code": "204", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "204", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0054B628", + "size": "204", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5551656" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0054A0C0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0054A190", "measures": { @@ -113354,6 +117624,41 @@ ] } }, + { + "name": "game/0054CC60", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "544", + "matched_code": "544", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "544", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0054E1C8", + "size": "544", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5562824" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0054CC60.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0054CE80", "measures": { @@ -146994,41 +151299,6 @@ ] } }, - { - "name": "pal/core/00139DA0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "104", - "matched_code": "104", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "104", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00139DA0", - "size": "104", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "1285536" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/core/00139DA0.c", - "progress_categories": [ - "core", - "core_text" - ] - } - }, { "name": "pal/core/0013A2C0", "measures": { @@ -147449,41 +151719,6 @@ ] } }, - { - "name": "pal/core/00159268", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "112", - "matched_code": "112", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "112", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00159268", - "size": "112", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "1413736" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/core/00159268.c", - "progress_categories": [ - "core", - "core_text" - ] - } - }, { "name": "pal/core/00159718", "measures": { @@ -147869,41 +152104,6 @@ ] } }, - { - "name": "pal/game/0041DB98", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "364", - "matched_code": "364", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "364", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0041DB98", - "size": "364", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4316056" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/0041DB98.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, { "name": "pal/game/0041E390", "measures": { @@ -147939,41 +152139,6 @@ ] } }, - { - "name": "pal/game/004232A0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "284", - "matched_code": "284", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "284", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004232A0", - "size": "284", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4338336" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004232A0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, { "name": "pal/game/004244C0", "measures": { @@ -148009,251 +152174,6 @@ ] } }, - { - "name": "pal/game/00429E58", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "268", - "matched_code": "268", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "268", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00429E58", - "size": "268", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4365912" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00429E58.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/0042BA60", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "204", - "matched_code": "204", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "204", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0042BA60", - "size": "204", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4373088" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/0042BA60.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/00431190", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "220", - "matched_code": "220", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "220", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00431190", - "size": "220", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4395408" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00431190.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/00431308", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "376", - "matched_code": "376", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "376", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00431308", - "size": "376", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4395784" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00431308.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/00433688", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "256", - "matched_code": "256", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "256", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00433688", - "size": "256", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4404872" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00433688.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/00433788", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "100", - "matched_code": "100", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "100", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00433788", - "size": "100", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4405128" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00433788.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004368B8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "448", - "matched_code": "448", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "448", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004368B8", - "size": "448", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4417720" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004368B8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, { "name": "pal/game/00437148", "measures": { @@ -148429,76 +152349,6 @@ ] } }, - { - "name": "pal/game/0043D788", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "232", - "matched_code": "232", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "232", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0043D788", - "size": "232", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4446088" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/0043D788.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/0043D878", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "272", - "matched_code": "272", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "272", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0043D878", - "size": "272", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4446328" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/0043D878.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, { "name": "pal/game/00445BE0", "measures": { @@ -148544,104 +152394,34 @@ } }, { - "name": "pal/game/00447A00", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "212", - "matched_code": "212", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "212", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00447A00", - "size": "212", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4487680" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00447A00.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/00449180", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "208", - "matched_code": "208", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "208", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00449180", - "size": "208", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4493696" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00449180.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004493D8", + "name": "pal/game/0045D908", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "264", - "matched_code": "264", + "total_code": "92", + "matched_code": "92", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "264", + "complete_code": "92", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_004493D8", - "size": "264", + "name": "func_0045D908", + "size": "92", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4494296" + "virtual_address": "4577544" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/004493D8.c", + "source_path": "src/pal/game/0045D908.c", "progress_categories": [ "core", "menu_text" @@ -148649,34 +152429,34 @@ } }, { - "name": "pal/game/0044AAB8", + "name": "pal/game/00464E28", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "436", - "matched_code": "436", + "total_code": "400", + "matched_code": "400", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "436", + "complete_code": "400", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0044AAB8", - "size": "436", + "name": "func_00464E28", + "size": "400", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4500152" + "virtual_address": "4607528" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0044AAB8.c", + "source_path": "src/pal/game/00464E28.c", "progress_categories": [ "core", "menu_text" @@ -148684,34 +152464,34 @@ } }, { - "name": "pal/game/0044B100", + "name": "pal/game/004654B0", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "200", - "matched_code": "200", + "total_code": "228", + "matched_code": "228", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "200", + "complete_code": "228", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0044B100", - "size": "200", + "name": "func_004654B0", + "size": "228", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4501760" + "virtual_address": "4609200" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0044B100.c", + "source_path": "src/pal/game/004654B0.c", "progress_categories": [ "core", "menu_text" @@ -148719,34 +152499,34 @@ } }, { - "name": "pal/game/0044B268", + "name": "pal/game/00469B10", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "316", - "matched_code": "316", + "total_code": "96", + "matched_code": "96", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "316", + "complete_code": "96", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0044B268", - "size": "316", + "name": "func_00469B10", + "size": "96", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4502120" + "virtual_address": "4627216" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0044B268.c", + "source_path": "src/pal/game/00469B10.c", "progress_categories": [ "core", "menu_text" @@ -148754,34 +152534,34 @@ } }, { - "name": "pal/game/0044DD78", + "name": "pal/game/0046BC78", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "328", - "matched_code": "328", + "total_code": "240", + "matched_code": "240", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "328", + "complete_code": "240", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0044DD78", - "size": "328", + "name": "func_0046BC78", + "size": "240", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4513144" + "virtual_address": "4635768" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0044DD78.c", + "source_path": "src/pal/game/0046BC78.c", "progress_categories": [ "core", "menu_text" @@ -148789,34 +152569,34 @@ } }, { - "name": "pal/game/0044E5B0", + "name": "pal/game/0046DD78", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "324", - "matched_code": "324", + "total_code": "240", + "matched_code": "240", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "324", + "complete_code": "240", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0044E5B0", - "size": "324", + "name": "func_0046DD78", + "size": "240", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4515248" + "virtual_address": "4644216" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0044E5B0.c", + "source_path": "src/pal/game/0046DD78.c", "progress_categories": [ "core", "menu_text" @@ -148824,34 +152604,34 @@ } }, { - "name": "pal/game/00452DC0", + "name": "pal/game/004778A8", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "256", - "matched_code": "256", + "total_code": "408", + "matched_code": "408", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "256", + "complete_code": "408", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_00452DC0", - "size": "256", + "name": "func_004778A8", + "size": "408", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4533696" + "virtual_address": "4683944" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/00452DC0.c", + "source_path": "src/pal/game/004778A8.c", "progress_categories": [ "core", "menu_text" @@ -148859,34 +152639,34 @@ } }, { - "name": "pal/game/00454C38", + "name": "pal/game/0047FE68", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "468", - "matched_code": "468", + "total_code": "32", + "matched_code": "32", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "468", + "complete_code": "32", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_00454C38", - "size": "468", + "name": "func_0047FE68", + "size": "32", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4541496" + "virtual_address": "4718184" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/00454C38.c", + "source_path": "src/pal/game/0047FE68.c", "progress_categories": [ "core", "menu_text" @@ -148894,34 +152674,34 @@ } }, { - "name": "pal/game/00454E18", + "name": "pal/game/00484F88", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "380", - "matched_code": "380", + "total_code": "200", + "matched_code": "200", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "380", + "complete_code": "200", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_00454E18", - "size": "380", + "name": "func_00484F88", + "size": "200", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4541976" + "virtual_address": "4738952" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/00454E18.c", + "source_path": "src/pal/game/00484F88.c", "progress_categories": [ "core", "menu_text" @@ -148929,34 +152709,34 @@ } }, { - "name": "pal/game/00459FD0", + "name": "pal/game/004936E0", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "284", - "matched_code": "284", + "total_code": "488", + "matched_code": "488", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "284", + "complete_code": "488", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_00459FD0", - "size": "284", + "name": "func_004936E0", + "size": "488", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4562896" + "virtual_address": "4798176" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/00459FD0.c", + "source_path": "src/pal/game/004936E0.c", "progress_categories": [ "core", "menu_text" @@ -148964,34 +152744,34 @@ } }, { - "name": "pal/game/0045D908", + "name": "pal/game/004938D0", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "92", - "matched_code": "92", + "total_code": "260", + "matched_code": "260", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "92", + "complete_code": "260", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0045D908", - "size": "92", + "name": "func_004938D0", + "size": "260", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4577544" + "virtual_address": "4798672" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0045D908.c", + "source_path": "src/pal/game/004938D0.c", "progress_categories": [ "core", "menu_text" @@ -148999,34 +152779,34 @@ } }, { - "name": "pal/game/0045F078", + "name": "pal/game/0049BA80", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "352", - "matched_code": "352", + "total_code": "540", + "matched_code": "540", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "352", + "complete_code": "540", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0045F078", - "size": "352", + "name": "func_0049BA80", + "size": "540", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4583544" + "virtual_address": "4831872" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0045F078.c", + "source_path": "src/pal/game/0049BA80.c", "progress_categories": [ "core", "menu_text" @@ -149034,34 +152814,34 @@ } }, { - "name": "pal/game/00461340", + "name": "pal/game/004A2A90", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "412", - "matched_code": "412", + "total_code": "516", + "matched_code": "516", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "412", + "complete_code": "516", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_00461340", - "size": "412", + "name": "func_004A2880", + "size": "516", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4592448" + "virtual_address": "4860032" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/00461340.c", + "source_path": "src/pal/game/004A2A90.c", "progress_categories": [ "core", "menu_text" @@ -149069,34 +152849,34 @@ } }, { - "name": "pal/game/00461588", + "name": "pal/game/004A3180", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "744", - "matched_code": "744", + "total_code": "496", + "matched_code": "496", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "744", + "complete_code": "496", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_00461588", - "size": "744", + "name": "func_004A3180", + "size": "496", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4593032" + "virtual_address": "4862336" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/00461588.c", + "source_path": "src/pal/game/004A3180.c", "progress_categories": [ "core", "menu_text" @@ -149104,34 +152884,34 @@ } }, { - "name": "pal/game/004635A8", + "name": "pal/game/004A3388", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "276", - "matched_code": "276", + "total_code": "120", + "matched_code": "120", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "276", + "complete_code": "120", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_004635A8", - "size": "276", + "name": "func_004A3388", + "size": "120", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4601256" + "virtual_address": "4862856" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/004635A8.c", + "source_path": "src/pal/game/004A3388.c", "progress_categories": [ "core", "menu_text" @@ -149139,34 +152919,34 @@ } }, { - "name": "pal/game/004643B8", + "name": "pal/game/004A3408", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "236", - "matched_code": "236", + "total_code": "296", + "matched_code": "296", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "236", + "complete_code": "296", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_004643B8", - "size": "236", + "name": "func_004A3408", + "size": "296", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4604856" + "virtual_address": "4862984" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/004643B8.c", + "source_path": "src/pal/game/004A3408.c", "progress_categories": [ "core", "menu_text" @@ -149174,34 +152954,34 @@ } }, { - "name": "pal/game/00464E28", + "name": "pal/game/004A35B8", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "400", - "matched_code": "400", + "total_code": "36", + "matched_code": "36", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "400", + "complete_code": "36", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_00464E28", - "size": "400", + "name": "func_004A35B8", + "size": "36", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4607528" + "virtual_address": "4863416" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/00464E28.c", + "source_path": "src/pal/game/004A35B8.c", "progress_categories": [ "core", "menu_text" @@ -149209,34 +152989,34 @@ } }, { - "name": "pal/game/004654B0", + "name": "pal/game/004A35E0", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "228", - "matched_code": "228", + "total_code": "36", + "matched_code": "36", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "228", + "complete_code": "36", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_004654B0", - "size": "228", + "name": "func_004A35E0", + "size": "36", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4609200" + "virtual_address": "4863456" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/004654B0.c", + "source_path": "src/pal/game/004A35E0.c", "progress_categories": [ "core", "menu_text" @@ -149244,7 +153024,7 @@ } }, { - "name": "pal/game/00465BF0", + "name": "pal/game/004AA180", "measures": { "fuzzy_match_percent": 100.0, "total_code": "164", @@ -149260,158 +153040,18 @@ }, "functions": [ { - "name": "func_00465BF0", + "name": "func_004AA180", "size": "164", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4611056" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00465BF0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/00465DE8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "216", - "matched_code": "216", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "216", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00465DE8", - "size": "216", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4611560" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00465DE8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/00466780", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "420", - "matched_code": "420", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "420", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00466780", - "size": "420", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4614016" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00466780.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/00466940", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "220", - "matched_code": "220", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "220", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00466940", - "size": "220", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4614464" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00466940.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/00466A20", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "312", - "matched_code": "312", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "312", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00466A20", - "size": "312", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4614688" + "virtual_address": "4891008" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/00466A20.c", + "source_path": "src/pal/game/004AA180.c", "progress_categories": [ "core", "menu_text" @@ -149419,7 +153059,7 @@ } }, { - "name": "pal/game/00469508", + "name": "pal/game/004AAA48", "measures": { "fuzzy_match_percent": 100.0, "total_code": "276", @@ -149435,18 +153075,18 @@ }, "functions": [ { - "name": "func_00469508", + "name": "func_004AAA48", "size": "276", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4625672" + "virtual_address": "4893256" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/00469508.c", + "source_path": "src/pal/game/004AAA48.c", "progress_categories": [ "core", "menu_text" @@ -149454,34 +153094,34 @@ } }, { - "name": "pal/game/00469B10", + "name": "pal/game/004ABCE8", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "96", - "matched_code": "96", + "total_code": "268", + "matched_code": "268", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "96", + "complete_code": "268", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_00469B10", - "size": "96", + "name": "func_004ABCE8", + "size": "268", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4627216" + "virtual_address": "4898024" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/00469B10.c", + "source_path": "src/pal/game/004ABCE8.c", "progress_categories": [ "core", "menu_text" @@ -149489,7 +153129,7 @@ } }, { - "name": "pal/game/0046B2A8", + "name": "pal/game/004ABEA0", "measures": { "fuzzy_match_percent": 100.0, "total_code": "216", @@ -149505,88 +153145,18 @@ }, "functions": [ { - "name": "func_0046B2A8", + "name": "func_004ABEA0", "size": "216", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4633256" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/0046B2A8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/0046BC78", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "240", - "matched_code": "240", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "240", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0046BC78", - "size": "240", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4635768" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/0046BC78.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/0046D780", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "552", - "matched_code": "552", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "552", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0046D780", - "size": "552", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4642688" + "virtual_address": "4898464" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0046D780.c", + "source_path": "src/pal/game/004ABEA0.c", "progress_categories": [ "core", "menu_text" @@ -149594,34 +153164,34 @@ } }, { - "name": "pal/game/0046DD78", + "name": "pal/game/004AE260", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "240", - "matched_code": "240", + "total_code": "116", + "matched_code": "116", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "240", + "complete_code": "116", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0046DD78", - "size": "240", + "name": "func_004AE260", + "size": "116", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4644216" + "virtual_address": "4907616" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0046DD78.c", + "source_path": "src/pal/game/004AE260.c", "progress_categories": [ "core", "menu_text" @@ -149629,34 +153199,34 @@ } }, { - "name": "pal/game/0046DFE8", + "name": "pal/game/004AF7A0", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "204", - "matched_code": "204", + "total_code": "744", + "matched_code": "744", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "204", + "complete_code": "744", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0046DFE8", - "size": "204", + "name": "func_004AF7A0", + "size": "744", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4644840" + "virtual_address": "4913056" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0046DFE8.c", + "source_path": "src/pal/game/004AF7A0.c", "progress_categories": [ "core", "menu_text" @@ -149664,34 +153234,34 @@ } }, { - "name": "pal/game/0046F2C8", + "name": "pal/game/004B0398", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "224", - "matched_code": "224", + "total_code": "520", + "matched_code": "520", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "224", + "complete_code": "520", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0046F2C8", - "size": "224", + "name": "func_004B0398", + "size": "520", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4649672" + "virtual_address": "4916120" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0046F2C8.c", + "source_path": "src/pal/game/004B0398.c", "progress_categories": [ "core", "menu_text" @@ -149699,34 +153269,34 @@ } }, { - "name": "pal/game/004778A8", + "name": "pal/game/004B31D8", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "408", - "matched_code": "408", + "total_code": "524", + "matched_code": "524", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "408", + "complete_code": "524", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_004778A8", - "size": "408", + "name": "func_004B31D8", + "size": "524", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4683944" + "virtual_address": "4927960" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/004778A8.c", + "source_path": "src/pal/game/004B31D8.c", "progress_categories": [ "core", "menu_text" @@ -149734,34 +153304,34 @@ } }, { - "name": "pal/game/0047F640", + "name": "pal/game/004B6B90", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "256", - "matched_code": "256", + "total_code": "200", + "matched_code": "200", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "256", + "complete_code": "200", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0047F640", - "size": "256", + "name": "func_004B6B90", + "size": "200", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4716096" + "virtual_address": "4942736" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0047F640.c", + "source_path": "src/pal/game/004B6B90.c", "progress_categories": [ "core", "menu_text" @@ -149769,34 +153339,34 @@ } }, { - "name": "pal/game/0047FE68", + "name": "pal/game/004BAAD8", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "32", - "matched_code": "32", + "total_code": "524", + "matched_code": "524", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "32", + "complete_code": "524", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0047FE68", - "size": "32", + "name": "func_004BAAD8", + "size": "524", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4718184" + "virtual_address": "4958936" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0047FE68.c", + "source_path": "src/pal/game/004BAAD8.c", "progress_categories": [ "core", "menu_text" @@ -149804,34 +153374,34 @@ } }, { - "name": "pal/game/00484F88", + "name": "pal/game/004BB5B8", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "200", - "matched_code": "200", + "total_code": "124", + "matched_code": "124", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "200", + "complete_code": "124", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_00484F88", - "size": "200", + "name": "func_004BB5B8", + "size": "124", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4738952" + "virtual_address": "4961720" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/00484F88.c", + "source_path": "src/pal/game/004BB5B8.c", "progress_categories": [ "core", "menu_text" @@ -149839,34 +153409,34 @@ } }, { - "name": "pal/game/0048C2F8", + "name": "pal/game/004BEE68", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "292", - "matched_code": "292", + "total_code": "820", + "matched_code": "820", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "292", + "complete_code": "820", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0048C2F8", - "size": "292", + "name": "func_004BEE68", + "size": "820", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4768504" + "virtual_address": "4976232" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0048C2F8.c", + "source_path": "src/pal/game/004BEE68.c", "progress_categories": [ "core", "menu_text" @@ -149874,34 +153444,34 @@ } }, { - "name": "pal/game/0048C5F0", + "name": "pal/game/004CFA08", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "228", - "matched_code": "228", + "total_code": "232", + "matched_code": "232", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "228", + "complete_code": "232", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0048C5F0", - "size": "228", + "name": "func_004CFA08", + "size": "232", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4769264" + "virtual_address": "5044744" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0048C5F0.c", + "source_path": "src/pal/game/004CFA08.c", "progress_categories": [ "core", "menu_text" @@ -149909,34 +153479,34 @@ } }, { - "name": "pal/game/0048C6D8", + "name": "pal/game/004D1340", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "232", - "matched_code": "232", + "total_code": "252", + "matched_code": "252", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "232", + "complete_code": "252", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0048C6D8", - "size": "232", + "name": "func_004D1340", + "size": "252", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4769496" + "virtual_address": "5051200" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0048C6D8.c", + "source_path": "src/pal/game/004D1340.c", "progress_categories": [ "core", "menu_text" @@ -149944,34 +153514,34 @@ } }, { - "name": "pal/game/0048C7C0", + "name": "pal/game/004DADC8", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "228", - "matched_code": "228", + "total_code": "660", + "matched_code": "660", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "228", + "complete_code": "660", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0048C7C0", - "size": "228", + "name": "func_004DADC8", + "size": "660", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4769728" + "virtual_address": "5090760" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0048C7C0.c", + "source_path": "src/pal/game/004DADC8.c", "progress_categories": [ "core", "menu_text" @@ -149979,34 +153549,34 @@ } }, { - "name": "pal/game/0048CA48", + "name": "pal/game/004DB660", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "228", - "matched_code": "228", + "total_code": "540", + "matched_code": "540", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "228", + "complete_code": "540", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0048CA48", - "size": "228", + "name": "func_004DB660", + "size": "540", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4770376" + "virtual_address": "5092960" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0048CA48.c", + "source_path": "src/pal/game/004DB660.c", "progress_categories": [ "core", "menu_text" @@ -150014,34 +153584,34 @@ } }, { - "name": "pal/game/0048CB30", + "name": "pal/game/004DB880", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "228", - "matched_code": "228", + "total_code": "188", + "matched_code": "188", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "228", + "complete_code": "188", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0048CB30", - "size": "228", + "name": "func_004DB880", + "size": "188", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4770608" + "virtual_address": "5093504" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0048CB30.c", + "source_path": "src/pal/game/004DB880.c", "progress_categories": [ "core", "menu_text" @@ -150049,34 +153619,34 @@ } }, { - "name": "pal/game/0048CC18", + "name": "pal/game/004DC628", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "228", - "matched_code": "228", + "total_code": "144", + "matched_code": "144", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "228", + "complete_code": "144", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0048CC18", - "size": "228", + "name": "func_004DC628", + "size": "144", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4770840" + "virtual_address": "5097000" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0048CC18.c", + "source_path": "src/pal/game/004DC628.c", "progress_categories": [ "core", "menu_text" @@ -150084,34 +153654,34 @@ } }, { - "name": "pal/game/0048CD00", + "name": "pal/game/004DCDC0", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "228", - "matched_code": "228", + "total_code": "792", + "matched_code": "792", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "228", + "complete_code": "792", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0048CD00", - "size": "228", + "name": "func_004DCDC0", + "size": "792", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4771072" + "virtual_address": "5098944" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0048CD00.c", + "source_path": "src/pal/game/004DCDC0.c", "progress_categories": [ "core", "menu_text" @@ -150119,34 +153689,34 @@ } }, { - "name": "pal/game/0048CDE8", + "name": "pal/game/004F08E0", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "268", - "matched_code": "268", + "total_code": "208", + "matched_code": "208", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "268", + "complete_code": "208", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0048CDE8", - "size": "268", + "name": "func_004F08E0", + "size": "208", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4771304" + "virtual_address": "5179616" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0048CDE8.c", + "source_path": "src/pal/game/004F08E0.c", "progress_categories": [ "core", "menu_text" @@ -150154,34 +153724,34 @@ } }, { - "name": "pal/game/0048CEF8", + "name": "pal/game/004F0B38", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "384", - "matched_code": "384", + "total_code": "192", + "matched_code": "192", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "384", + "complete_code": "192", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0048CEF8", - "size": "384", + "name": "func_004F0B38", + "size": "192", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4771576" + "virtual_address": "5180216" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0048CEF8.c", + "source_path": "src/pal/game/004F0B38.c", "progress_categories": [ "core", "menu_text" @@ -150189,34 +153759,34 @@ } }, { - "name": "pal/game/004936E0", + "name": "pal/game/004F16B8", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "488", - "matched_code": "488", + "total_code": "16", + "matched_code": "16", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "488", + "complete_code": "16", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_004936E0", - "size": "488", + "name": "func_004F16B8", + "size": "16", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4798176" + "virtual_address": "5183160" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/004936E0.c", + "source_path": "src/pal/game/004F16B8.c", "progress_categories": [ "core", "menu_text" @@ -150224,34 +153794,34 @@ } }, { - "name": "pal/game/004938D0", + "name": "pal/game/004F4670", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "260", - "matched_code": "260", + "total_code": "500", + "matched_code": "500", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "260", + "complete_code": "500", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_004938D0", - "size": "260", + "name": "func_004F4670", + "size": "500", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4798672" + "virtual_address": "5195376" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/004938D0.c", + "source_path": "src/pal/game/004F4670.c", "progress_categories": [ "core", "menu_text" @@ -150259,34 +153829,34 @@ } }, { - "name": "pal/game/00498FA8", + "name": "pal/game/004F4BE0", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "248", - "matched_code": "248", + "total_code": "556", + "matched_code": "556", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "248", + "complete_code": "556", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_00498FA8", - "size": "248", + "name": "func_004F4BE0", + "size": "556", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4820904" + "virtual_address": "5196768" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/00498FA8.c", + "source_path": "src/pal/game/004F4BE0.c", "progress_categories": [ "core", "menu_text" @@ -150294,34 +153864,34 @@ } }, { - "name": "pal/game/004997D0", + "name": "pal/game/004F5DA8", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "284", - "matched_code": "284", + "total_code": "216", + "matched_code": "216", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "284", + "complete_code": "216", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_004997D0", - "size": "284", + "name": "func_004F5DA8", + "size": "216", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4822992" + "virtual_address": "5201320" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/004997D0.c", + "source_path": "src/pal/game/004F5DA8.c", "progress_categories": [ "core", "menu_text" @@ -150329,34 +153899,34 @@ } }, { - "name": "pal/game/0049A110", + "name": "pal/game/004F6660", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "264", - "matched_code": "264", + "total_code": "60", + "matched_code": "60", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "264", + "complete_code": "60", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0049A110", - "size": "264", + "name": "func_004F6660", + "size": "60", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4825360" + "virtual_address": "5203552" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0049A110.c", + "source_path": "src/pal/game/004F6660.c", "progress_categories": [ "core", "menu_text" @@ -150364,34 +153934,34 @@ } }, { - "name": "pal/game/0049BA80", + "name": "pal/game/004F66A0", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "540", - "matched_code": "540", + "total_code": "76", + "matched_code": "76", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "540", + "complete_code": "76", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0049BA80", - "size": "540", + "name": "func_004F66A0", + "size": "76", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4831872" + "virtual_address": "5203616" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0049BA80.c", + "source_path": "src/pal/game/004F66A0.c", "progress_categories": [ "core", "menu_text" @@ -150399,34 +153969,34 @@ } }, { - "name": "pal/game/0049EE78", + "name": "pal/game/004F6D00", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "376", - "matched_code": "376", + "total_code": "408", + "matched_code": "408", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "376", + "complete_code": "408", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_0049EE78", - "size": "376", + "name": "func_004F6D00", + "size": "408", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4845176" + "virtual_address": "5205248" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/0049EE78.c", + "source_path": "src/pal/game/004F6D00.c", "progress_categories": [ "core", "menu_text" @@ -150434,34 +154004,34 @@ } }, { - "name": "pal/game/004A0230", + "name": "pal/game/004FD1D0", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "356", - "matched_code": "356", + "total_code": "296", + "matched_code": "296", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "356", + "complete_code": "296", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_004A0230", - "size": "356", + "name": "func_004FD1D0", + "size": "296", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4850224" + "virtual_address": "5231056" } } ], "metadata": { "complete": true, - "source_path": "src/pal/game/004A0230.c", + "source_path": "src/pal/game/004FD1D0.c", "progress_categories": [ "core", "menu_text" @@ -150469,2828 +154039,28 @@ } }, { - "name": "pal/game/004A0398", + "name": "pal/game/00502BB8", "measures": { "fuzzy_match_percent": 100.0, - "total_code": "244", - "matched_code": "244", + "total_code": "312", + "matched_code": "312", "matched_code_percent": 100.0, "total_functions": 1, "matched_functions": 1, "matched_functions_percent": 100.0, - "complete_code": "244", + "complete_code": "312", "complete_code_percent": 100.0, "total_units": 1, "complete_units": 1 }, "functions": [ { - "name": "func_004A0398", - "size": "244", + "name": "func_00502E90", + "size": "312", "fuzzy_match_percent": 100.0, "address": "0", "metadata": { - "virtual_address": "4850584" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A0398.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004A0490", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "204", - "matched_code": "204", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "204", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004A0490", - "size": "204", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4850832" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A0490.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004A0560", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "252", - "matched_code": "252", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "252", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004A0560", - "size": "252", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4851040" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A0560.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004A1430", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "376", - "matched_code": "376", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "376", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004A1430", - "size": "376", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4854832" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A1430.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004A15A8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "376", - "matched_code": "376", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "376", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004A15A8", - "size": "376", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4855208" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A15A8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004A1720", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "376", - "matched_code": "376", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "376", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004A1720", - "size": "376", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4855584" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A1720.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004A1F78", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "204", - "matched_code": "204", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "204", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004A1F78", - "size": "204", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4857720" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A1F78.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004A2A90", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "516", - "matched_code": "516", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "516", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004A2880", - "size": "516", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4860032" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A2A90.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004A3180", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "496", - "matched_code": "496", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "496", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004A3180", - "size": "496", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4862336" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A3180.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004A3388", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "120", - "matched_code": "120", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "120", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004A3388", - "size": "120", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4862856" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A3388.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004A3408", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "296", - "matched_code": "296", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "296", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004A3408", - "size": "296", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4862984" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A3408.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004A35B8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "36", - "matched_code": "36", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "36", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004A35B8", - "size": "36", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4863416" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A35B8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004A35E0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "36", - "matched_code": "36", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "36", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004A35E0", - "size": "36", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4863456" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A35E0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004A3878", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "236", - "matched_code": "236", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "236", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004A3878", - "size": "236", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4864120" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A3878.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004A3988", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "228", - "matched_code": "228", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "228", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004A3988", - "size": "228", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4864392" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A3988.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004A55F8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "348", - "matched_code": "348", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "348", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004A55F8", - "size": "348", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4871672" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A55F8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004A8FF0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "292", - "matched_code": "292", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "292", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004A8FF0", - "size": "292", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4886512" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A8FF0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004A91A0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "228", - "matched_code": "228", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "228", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004A91A0", - "size": "228", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4886944" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A91A0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004A9760", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "292", - "matched_code": "292", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "292", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004A9760", - "size": "292", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4888416" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A9760.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004A9BF0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "236", - "matched_code": "236", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "236", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004A9BF0", - "size": "236", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4889584" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004A9BF0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004AA180", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "164", - "matched_code": "164", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "164", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004AA180", - "size": "164", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4891008" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004AA180.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004AAA48", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "276", - "matched_code": "276", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "276", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004AAA48", - "size": "276", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4893256" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004AAA48.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004ABCE8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "268", - "matched_code": "268", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "268", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004ABCE8", - "size": "268", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4898024" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004ABCE8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004ABEA0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "216", - "matched_code": "216", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "216", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004ABEA0", - "size": "216", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4898464" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004ABEA0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004AE058", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "220", - "matched_code": "220", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "220", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004AE058", - "size": "220", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4907096" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004AE058.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004AE260", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "116", - "matched_code": "116", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "116", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004AE260", - "size": "116", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4907616" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004AE260.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004AF7A0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "744", - "matched_code": "744", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "744", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004AF7A0", - "size": "744", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4913056" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004AF7A0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004B0398", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "520", - "matched_code": "520", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "520", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004B0398", - "size": "520", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4916120" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004B0398.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004B31D8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "524", - "matched_code": "524", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "524", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004B31D8", - "size": "524", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4927960" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004B31D8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004B4F18", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "420", - "matched_code": "420", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "420", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004B4F18", - "size": "420", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4935448" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004B4F18.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004B6B90", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "200", - "matched_code": "200", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "200", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004B6B90", - "size": "200", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4942736" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004B6B90.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004B7630", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "328", - "matched_code": "328", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "328", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004B7630", - "size": "328", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4945456" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004B7630.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004BA130", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "236", - "matched_code": "236", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "236", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004BA130", - "size": "236", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4956464" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004BA130.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004BA330", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "284", - "matched_code": "284", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "284", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004BA330", - "size": "284", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4956976" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004BA330.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004BAAD8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "524", - "matched_code": "524", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "524", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004BAAD8", - "size": "524", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4958936" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004BAAD8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004BB5B8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "124", - "matched_code": "124", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "124", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004BB5B8", - "size": "124", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4961720" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004BB5B8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004BEE68", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "820", - "matched_code": "820", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "820", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004BEE68", - "size": "820", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4976232" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004BEE68.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004C2DD0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "500", - "matched_code": "500", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "500", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004C2DD0", - "size": "500", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "4992464" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004C2DD0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004C5310", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "432", - "matched_code": "432", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "432", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004C5310", - "size": "432", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5002000" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004C5310.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004C54C0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "400", - "matched_code": "400", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "400", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004C54C0", - "size": "400", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5002432" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004C54C0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004C79C8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "284", - "matched_code": "284", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "284", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004C79C8", - "size": "284", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5011912" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004C79C8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004C7F90", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "212", - "matched_code": "212", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "212", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004C7F90", - "size": "212", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5013392" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004C7F90.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004C9EB8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "216", - "matched_code": "216", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "216", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004C9EB8", - "size": "216", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5021368" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004C9EB8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004CCA38", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "628", - "matched_code": "628", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "628", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004CCA38", - "size": "628", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5032504" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004CCA38.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004CEDA8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "212", - "matched_code": "212", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "212", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004CEDA8", - "size": "212", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5041576" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004CEDA8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004CFA08", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "232", - "matched_code": "232", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "232", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004CFA08", - "size": "232", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5044744" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004CFA08.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004D07F0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "240", - "matched_code": "240", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "240", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004D07F0", - "size": "240", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5048304" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004D07F0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004D1340", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "252", - "matched_code": "252", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "252", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004D1340", - "size": "252", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5051200" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004D1340.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004D5B70", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "548", - "matched_code": "548", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "548", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004D5B70", - "size": "548", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5069680" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004D5B70.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004D7290", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "296", - "matched_code": "296", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "296", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004D7290", - "size": "296", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5075600" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004D7290.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004D9930", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "212", - "matched_code": "212", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "212", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004D9930", - "size": "212", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5085488" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004D9930.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004D9F60", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "544", - "matched_code": "544", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "544", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004D9F60", - "size": "544", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5087072" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004D9F60.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004DA320", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "236", - "matched_code": "236", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "236", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004DA320", - "size": "236", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5088032" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004DA320.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004DA960", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "212", - "matched_code": "212", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "212", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004DA960", - "size": "212", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5089632" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004DA960.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004DADC8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "660", - "matched_code": "660", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "660", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004DADC8", - "size": "660", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5090760" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004DADC8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004DB1F8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "780", - "matched_code": "780", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "780", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004DB1F8", - "size": "780", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5091832" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004DB1F8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004DB660", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "540", - "matched_code": "540", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "540", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004DB660", - "size": "540", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5092960" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004DB660.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004DB880", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "188", - "matched_code": "188", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "188", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004DB880", - "size": "188", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5093504" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004DB880.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004DB998", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "276", - "matched_code": "276", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "276", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004DB998", - "size": "276", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5093784" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004DB998.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004DC628", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "144", - "matched_code": "144", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "144", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004DC628", - "size": "144", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5097000" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004DC628.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004DCDC0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "792", - "matched_code": "792", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "792", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004DCDC0", - "size": "792", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5098944" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004DCDC0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004DFED8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "280", - "matched_code": "280", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "280", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004DFED8", - "size": "280", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5111512" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004DFED8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004EF188", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "216", - "matched_code": "216", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "216", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004EF188", - "size": "216", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5173640" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004EF188.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004F08E0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "208", - "matched_code": "208", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "208", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004F08E0", - "size": "208", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5179616" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004F08E0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004F0B38", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "192", - "matched_code": "192", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "192", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004F0B38", - "size": "192", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5180216" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004F0B38.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004F16B8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "16", - "matched_code": "16", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "16", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004F16B8", - "size": "16", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5183160" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004F16B8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004F16C8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "276", - "matched_code": "276", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "276", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004F16C8", - "size": "276", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5183176" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004F16C8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004F2D88", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "204", - "matched_code": "204", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "204", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004F2D88", - "size": "204", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5189000" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004F2D88.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004F2F08", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "424", - "matched_code": "424", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "424", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004F2F08", - "size": "424", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5189384" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004F2F08.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004F4670", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "500", - "matched_code": "500", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "500", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004F4670", - "size": "500", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5195376" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004F4670.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004F4BE0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "556", - "matched_code": "556", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "556", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004F4BE0", - "size": "556", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5196768" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004F4BE0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004F5DA8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "216", - "matched_code": "216", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "216", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004F5DA8", - "size": "216", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5201320" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004F5DA8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004F63D0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "112", - "matched_code": "112", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "112", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004F63D0", - "size": "112", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5202896" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004F63D0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004F6660", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "60", - "matched_code": "60", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "60", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004F6660", - "size": "60", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5203552" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004F6660.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004F66A0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "76", - "matched_code": "76", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "76", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004F66A0", - "size": "76", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5203616" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004F66A0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004F6D00", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "408", - "matched_code": "408", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "408", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004F6D00", - "size": "408", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5205248" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004F6D00.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004F9058", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "508", - "matched_code": "508", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "508", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004F9058", - "size": "508", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5214296" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004F9058.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004FBB28", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "212", - "matched_code": "212", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "212", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004FBB28", - "size": "212", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5225256" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004FBB28.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004FD1D0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "296", - "matched_code": "296", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "296", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004FD1D0", - "size": "296", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5231056" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004FD1D0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/004FD380", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "248", - "matched_code": "248", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "248", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_004FD380", - "size": "248", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5231488" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/004FD380.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/00502BB8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "312", - "matched_code": "312", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "312", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00502E90", - "size": "312", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5254800" + "virtual_address": "5254800" } } ], @@ -153303,426 +154073,6 @@ ] } }, - { - "name": "pal/game/00503580", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "548", - "matched_code": "548", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "548", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00503580", - "size": "548", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5256576" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00503580.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/00505148", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "376", - "matched_code": "376", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "376", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00505148", - "size": "376", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5263688" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00505148.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/005055E8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "244", - "matched_code": "244", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "244", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_005055E8", - "size": "244", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5264872" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/005055E8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/005056E0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "244", - "matched_code": "244", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "244", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_005056E0", - "size": "244", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5265120" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/005056E0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/00505B40", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "228", - "matched_code": "228", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "228", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00505B40", - "size": "228", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5266240" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00505B40.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/00506000", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "212", - "matched_code": "212", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "212", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00506000", - "size": "212", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5267456" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00506000.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/005062D0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "228", - "matched_code": "228", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "228", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_005062D0", - "size": "228", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5268176" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/005062D0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/005063C0", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "228", - "matched_code": "228", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "228", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_005063C0", - "size": "228", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5268416" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/005063C0.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/00509248", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "376", - "matched_code": "376", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "376", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00509248", - "size": "376", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5280328" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00509248.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/0050CF28", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "276", - "matched_code": "276", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "276", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0050CF28", - "size": "276", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5295912" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/0050CF28.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/0050D198", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "428", - "matched_code": "428", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "428", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0050D198", - "size": "428", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5296536" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/0050D198.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, - { - "name": "pal/game/0050D870", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "240", - "matched_code": "240", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "240", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0050D870", - "size": "240", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5298288" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/0050D870.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, { "name": "pal/game/0050FF90", "measures": { @@ -153828,41 +154178,6 @@ ] } }, - { - "name": "pal/game/00512138", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "240", - "matched_code": "240", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "240", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00512138", - "size": "240", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5316920" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00512138.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, { "name": "pal/game/00513DE0", "measures": { @@ -154003,41 +154318,6 @@ ] } }, - { - "name": "pal/game/0051B7B8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "340", - "matched_code": "340", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "340", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0051B7B8", - "size": "340", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5355448" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/0051B7B8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, { "name": "pal/game/00522238", "measures": { @@ -154248,41 +154528,6 @@ ] } }, - { - "name": "pal/game/0053EA90", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "260", - "matched_code": "260", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "260", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0053EA90", - "size": "260", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5499536" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/0053EA90.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, { "name": "pal/game/00540FA8", "measures": { @@ -154318,41 +154563,6 @@ ] } }, - { - "name": "pal/game/00549610", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "256", - "matched_code": "256", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "256", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_00549610", - "size": "256", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5543440" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/00549610.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, { "name": "pal/game/00549AB8", "measures": { @@ -154388,41 +154598,6 @@ ] } }, - { - "name": "pal/game/0054B628", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "204", - "matched_code": "204", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "204", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0054B628", - "size": "204", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5551656" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/0054B628.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, { "name": "pal/game/0054BCF0", "measures": { @@ -154563,41 +154738,6 @@ ] } }, - { - "name": "pal/game/0054E1C8", - "measures": { - "fuzzy_match_percent": 100.0, - "total_code": "544", - "matched_code": "544", - "matched_code_percent": 100.0, - "total_functions": 1, - "matched_functions": 1, - "matched_functions_percent": 100.0, - "complete_code": "544", - "complete_code_percent": 100.0, - "total_units": 1, - "complete_units": 1 - }, - "functions": [ - { - "name": "func_0054E1C8", - "size": "544", - "fuzzy_match_percent": 100.0, - "address": "0", - "metadata": { - "virtual_address": "5562824" - } - } - ], - "metadata": { - "complete": true, - "source_path": "src/pal/game/0054E1C8.c", - "progress_categories": [ - "core", - "menu_text" - ] - } - }, { "name": "pal/game/01F0A2FC", "measures": { @@ -167711,11 +167851,11 @@ { "name": "main/.text/004Bxxxx", "measures": { - "fuzzy_match_percent": 12.51548, - "total_code": "28940", + "fuzzy_match_percent": 12.748064, + "total_code": "28412", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 69, + "total_functions": 67, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -168039,24 +168179,6 @@ "virtual_address": "4950104" } }, - { - "name": "func_004B92B8", - "size": "264", - "fuzzy_match_percent": 0.0, - "address": "37288", - "metadata": { - "virtual_address": "4952760" - } - }, - { - "name": "func_004B93C0", - "size": "264", - "fuzzy_match_percent": 0.0, - "address": "37552", - "metadata": { - "virtual_address": "4953024" - } - }, { "name": "func_004B9818", "size": "184", @@ -168358,11 +168480,11 @@ { "name": "main/.text/004Cxxxx", "measures": { - "fuzzy_match_percent": 7.183902, - "total_code": "33436", + "fuzzy_match_percent": 7.240203, + "total_code": "33176", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 69, + "total_functions": 68, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -168560,15 +168682,6 @@ "virtual_address": "4997432" } }, - { - "name": "func_004C41F8", - "size": "260", - "fuzzy_match_percent": 0.0, - "address": "16424", - "metadata": { - "virtual_address": "4997624" - } - }, { "name": "func_004C4300", "size": "712", @@ -170920,11 +171033,11 @@ { "name": "main/.text/004Fxxxx", "measures": { - "fuzzy_match_percent": 4.646176, - "total_code": "42852", + "fuzzy_match_percent": 4.675416, + "total_code": "42584", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 121, + "total_functions": 120, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -172012,15 +172125,6 @@ "metadata": { "virtual_address": "5242528" } - }, - { - "name": "func_004FFFF0", - "size": "268", - "fuzzy_match_percent": 0.0, - "address": "65296", - "metadata": { - "virtual_address": "5242864" - } } ], "metadata": { @@ -196498,13 +196602,13 @@ { "name": "Shared level code", "measures": { - "fuzzy_match_percent": 10.312622, + "fuzzy_match_percent": 10.401837, "total_code": "2008632", - "matched_code": "198876", - "matched_code_percent": 9.901067, + "matched_code": "200668", + "matched_code_percent": 9.990282, "total_functions": 5089, - "matched_functions": 2116, - "matched_functions_percent": 41.579878, + "matched_functions": 2123, + "matched_functions_percent": 41.71743, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -203093,7 +203197,7 @@ { "name": "func_L01_00454AF8", "size": "268", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "587672", "metadata": { "virtual_address": "4541176" @@ -216359,7 +216463,7 @@ { "name": "func_L01_004F4F00", "size": "260", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1244064", "metadata": { "virtual_address": "5197568" @@ -217277,7 +217381,7 @@ { "name": "func_L01_005036D8", "size": "268", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1303416", "metadata": { "virtual_address": "5256920" @@ -226988,7 +227092,7 @@ { "name": "func_L00_00605A70", "size": "228", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2361104", "metadata": { "virtual_address": "6314608" @@ -226997,7 +227101,7 @@ { "name": "func_L00_00605B58", "size": "228", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2361336", "metadata": { "virtual_address": "6314840" @@ -233108,7 +233212,7 @@ { "name": "func_L00_0066A110", "size": "264", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2772400", "metadata": { "virtual_address": "6725904" @@ -235421,7 +235525,7 @@ { "name": "func_L00_006A0F88", "size": "276", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2997288", "metadata": { "virtual_address": "6950792" @@ -242325,13 +242429,13 @@ { "name": "Level 00: Multiplayer Menu", "measures": { - "fuzzy_match_percent": 15.484171, + "fuzzy_match_percent": 15.645206, "total_code": "943896", - "matched_code": "136512", - "matched_code_percent": 14.46261, + "matched_code": "138032", + "matched_code_percent": 14.623645, "total_functions": 2834, - "matched_functions": 1098, - "matched_functions_percent": 38.743825, + "matched_functions": 1103, + "matched_functions_percent": 38.920254, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -243385,7 +243489,7 @@ { "name": "func_L00_004F9478", "size": "260", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "41080", "metadata": { "virtual_address": "5215352" @@ -243664,7 +243768,7 @@ { "name": "func_L00_004FDBB8", "size": "256", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "59320", "metadata": { "virtual_address": "5233592" @@ -244348,7 +244452,7 @@ { "name": "func_L00_00501E80", "size": "260", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "76416", "metadata": { "virtual_address": "5250688" @@ -244546,7 +244650,7 @@ { "name": "func_L00_00505868", "size": "268", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "91240", "metadata": { "virtual_address": "5265512" @@ -248290,7 +248394,7 @@ { "name": "func_L00_005272A8", "size": "260", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "229032", "metadata": { "virtual_address": "5403304" @@ -261988,7 +262092,7 @@ { "name": "func_L00_007568B8", "size": "44", - "fuzzy_match_percent": 100.0, + "fuzzy_match_percent": 0.0, "address": "2520248", "metadata": { "virtual_address": "7694520" @@ -262699,7 +262803,7 @@ { "name": "func_L00_00760898", "size": "260", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2561176", "metadata": { "virtual_address": "7735448" @@ -276147,13 +276251,13 @@ { "name": "Level 41: Battledome Tower (all 22 multiplayer maps)", "measures": { - "fuzzy_match_percent": 13.702465, + "fuzzy_match_percent": 13.887729, "total_code": "140340", - "matched_code": "16832", - "matched_code_percent": 11.99373, + "matched_code": "17092", + "matched_code_percent": 12.178994, "total_functions": 374, - "matched_functions": 167, - "matched_functions_percent": 44.652406, + "matched_functions": 168, + "matched_functions_percent": 44.919786, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -278548,7 +278652,7 @@ { "name": "func_L41_004495D0", "size": "260", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "579360", "metadata": { "virtual_address": "4494800" diff --git a/progress/report.json b/progress/report.json index 9cc9b6e3..b84ce497 100644 --- a/progress/report.json +++ b/progress/report.json @@ -1,51 +1,51 @@ { "version": 2, "measures": { - "fuzzy_match_percent": 13.979783, + "fuzzy_match_percent": 14.975452, "total_code": "5781432", - "matched_code": "758644", - "matched_code_percent": 13.122078, + "matched_code": "819988", + "matched_code_percent": 14.18313, "total_functions": 18170, - "matched_functions": 7733, - "matched_functions_percent": 42.559163, - "complete_code": "432432", - "complete_code_percent": 7.479669, - "total_units": 4321, - "complete_units": 4262 + "matched_functions": 7967, + "matched_functions_percent": 43.847001, + "complete_code": "470024", + "complete_code_percent": 8.129889, + "total_units": 4447, + "complete_units": 4388 }, "categories": [ { "id": "core", "name": "Main program", "measures": { - "fuzzy_match_percent": 20.947951, + "fuzzy_match_percent": 22.510133, "total_code": "2193276", - "matched_code": "432432", - "matched_code_percent": 19.71626, + "matched_code": "470024", + "matched_code_percent": 21.430226, "total_functions": 8989, - "matched_functions": 4291, - "matched_functions_percent": 47.736122, - "complete_code": "432432", - "complete_code_percent": 19.71626, - "total_units": 4306, - "complete_units": 4262 + "matched_functions": 4417, + "matched_functions_percent": 49.137835, + "complete_code": "470024", + "complete_code_percent": 21.430226, + "total_units": 4432, + "complete_units": 4388 } }, { "id": "core_text", "name": "Engine core (core.text)", "measures": { - "fuzzy_match_percent": 30.433561, + "fuzzy_match_percent": 30.50854, "total_code": "288080", - "matched_code": "86556", - "matched_code_percent": 30.045821, + "matched_code": "86772", + "matched_code_percent": 30.1208, "total_functions": 1663, - "matched_functions": 878, - "matched_functions_percent": 52.796152, + "matched_functions": 880, + "matched_functions_percent": 52.916416, "complete_code": "0", "complete_code_percent": 0.0, - "total_units": 882, - "complete_units": 876 + "total_units": 884, + "complete_units": 878 } }, { @@ -86,17 +86,17 @@ "id": "menu_text", "name": "Resident menus (.text)", "measures": { - "fuzzy_match_percent": 21.659054, + "fuzzy_match_percent": 24.06253, "total_code": "1416572", - "matched_code": "282984", - "matched_code_percent": 19.976676, + "matched_code": "320360", + "matched_code_percent": 22.615158, "total_functions": 4827, - "matched_functions": 2434, - "matched_functions_percent": 50.424694, + "matched_functions": 2558, + "matched_functions_percent": 52.993578, "complete_code": "0", "complete_code_percent": 0.0, - "total_units": 2450, - "complete_units": 2428 + "total_units": 2574, + "complete_units": 2552 } }, { @@ -120,13 +120,13 @@ "id": "level_code", "name": "Level code", "measures": { - "fuzzy_match_percent": 9.720461, + "fuzzy_match_percent": 10.369845, "total_code": "3588156", - "matched_code": "326212", - "matched_code_percent": 9.091355, + "matched_code": "349964", + "matched_code_percent": 9.753311, "total_functions": 9181, - "matched_functions": 3442, - "matched_functions_percent": 37.490469, + "matched_functions": 3550, + "matched_functions_percent": 38.666812, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 15, @@ -137,13 +137,13 @@ "id": "common", "name": "Shared level code", "measures": { - "fuzzy_match_percent": 8.745209, + "fuzzy_match_percent": 9.459374, "total_code": "1980624", - "matched_code": "164492", - "matched_code_percent": 8.305059, + "matched_code": "179088", + "matched_code_percent": 9.041999, "total_functions": 5096, - "matched_functions": 1993, - "matched_functions_percent": 39.109105, + "matched_functions": 2053, + "matched_functions_percent": 40.286499, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -154,13 +154,13 @@ "id": "levels", "name": "Level-specific code", "measures": { - "fuzzy_match_percent": 10.922059, + "fuzzy_match_percent": 11.491627, "total_code": "1607532", - "matched_code": "161720", - "matched_code_percent": 10.060142, + "matched_code": "170876", + "matched_code_percent": 10.629711, "total_functions": 4085, - "matched_functions": 1449, - "matched_functions_percent": 35.471236, + "matched_functions": 1497, + "matched_functions_percent": 36.646267, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 14, @@ -171,13 +171,13 @@ "id": "level_00", "name": "Level 00: Multiplayer Menu", "measures": { - "fuzzy_match_percent": 14.844584, + "fuzzy_match_percent": 15.496778, "total_code": "942664", - "matched_code": "128572", - "matched_code_percent": 13.639218, + "matched_code": "134720", + "matched_code_percent": 14.291412, "total_functions": 2810, - "matched_functions": 1045, - "matched_functions_percent": 37.188612, + "matched_functions": 1082, + "matched_functions_percent": 38.505338, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -188,13 +188,13 @@ "id": "level_01", "name": "Level 01: Dreadzone Station (and 21)", "measures": { - "fuzzy_match_percent": 4.447354, + "fuzzy_match_percent": 4.857034, "total_code": "189416", - "matched_code": "8424", - "matched_code_percent": 4.447354, + "matched_code": "9200", + "matched_code_percent": 4.857034, "total_functions": 373, - "matched_functions": 123, - "matched_functions_percent": 32.975871, + "matched_functions": 127, + "matched_functions_percent": 34.048257, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -239,13 +239,13 @@ "id": "level_05", "name": "Level 05: Dark Cathedral (and 25)", "measures": { - "fuzzy_match_percent": 1.957415, + "fuzzy_match_percent": 3.000475, "total_code": "59824", - "matched_code": "1076", - "matched_code_percent": 1.798609, + "matched_code": "1700", + "matched_code_percent": 2.841669, "total_functions": 102, - "matched_functions": 24, - "matched_functions_percent": 23.529412, + "matched_functions": 25, + "matched_functions_percent": 24.509804, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -307,13 +307,13 @@ "id": "level_10", "name": "Level 10: Torval Ruins (and 30)", "measures": { - "fuzzy_match_percent": 1.549156, + "fuzzy_match_percent": 2.24429, "total_code": "20140", - "matched_code": "312", - "matched_code_percent": 1.549156, + "matched_code": "452", + "matched_code_percent": 2.24429, "total_functions": 37, - "matched_functions": 7, - "matched_functions_percent": 18.918919, + "matched_functions": 8, + "matched_functions_percent": 21.621622, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -324,13 +324,13 @@ "id": "level_11", "name": "Level 11: Tempus Station (and 31)", "measures": { - "fuzzy_match_percent": 2.415679, + "fuzzy_match_percent": 5.697356, "total_code": "8776", - "matched_code": "212", - "matched_code_percent": 2.415679, + "matched_code": "500", + "matched_code_percent": 5.697356, "total_functions": 15, - "matched_functions": 3, - "matched_functions_percent": 20.0, + "matched_functions": 4, + "matched_functions_percent": 26.666667, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -341,13 +341,13 @@ "id": "level_13", "name": "Level 13: Maraxus Prison (and 33)", "measures": { - "fuzzy_match_percent": 4.502187, + "fuzzy_match_percent": 8.438384, "total_code": "15548", - "matched_code": "700", - "matched_code_percent": 4.502187, + "matched_code": "1312", + "matched_code_percent": 8.438384, "total_functions": 33, - "matched_functions": 12, - "matched_functions_percent": 36.363636, + "matched_functions": 14, + "matched_functions_percent": 42.424242, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -375,13 +375,13 @@ "id": "level_15", "name": "Level 15: Control Level (and 35)", "measures": { - "fuzzy_match_percent": 1.461285, + "fuzzy_match_percent": 1.726035, "total_code": "116336", - "matched_code": "1700", - "matched_code_percent": 1.461285, + "matched_code": "2008", + "matched_code_percent": 1.726035, "total_functions": 134, - "matched_functions": 26, - "matched_functions_percent": 19.402985, + "matched_functions": 27, + "matched_functions_percent": 20.149254, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -392,13 +392,13 @@ "id": "level_41", "name": "Level 41: Battledome Tower (all 22 multiplayer maps)", "measures": { - "fuzzy_match_percent": 13.311549, + "fuzzy_match_percent": 13.497285, "total_code": "139984", - "matched_code": "16236", - "matched_code_percent": 11.598468, + "matched_code": "16496", + "matched_code_percent": 11.784204, "total_functions": 375, - "matched_functions": 164, - "matched_functions_percent": 43.733333, + "matched_functions": 165, + "matched_functions_percent": 44.0, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -8606,6 +8606,41 @@ ] } }, + { + "name": "core/00139DA0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "104", + "matched_code": "104", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "104", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00139DA0", + "size": "104", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1285536" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/00139DA0.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/0013A0F0", "measures": { @@ -23726,6 +23761,41 @@ ] } }, + { + "name": "core/00159258", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "112", + "matched_code": "112", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "112", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00159258", + "size": "112", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "1413720" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/core/00159258.c", + "progress_categories": [ + "core", + "core_text" + ] + } + }, { "name": "core/001592D8", "measures": { @@ -32765,6 +32835,76 @@ ] } }, + { + "name": "game/0041DA98", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "364", + "matched_code": "364", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "364", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0041DA98", + "size": "364", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4315800" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0041DA98.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0041E280", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "300", + "matched_code": "300", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "300", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0041E280", + "size": "300", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4317824" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0041E280.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0041FD80", "measures": { @@ -33010,6 +33150,41 @@ ] } }, + { + "name": "game/004230F8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "284", + "matched_code": "284", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "284", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004230F8", + "size": "284", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4337912" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004230F8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00424578", "measures": { @@ -33325,6 +33500,76 @@ ] } }, + { + "name": "game/00429BE8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "268", + "matched_code": "268", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "268", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00429BE8", + "size": "268", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4365288" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00429BE8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0042B700", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "204", + "matched_code": "204", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "204", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0042B700", + "size": "204", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4372224" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0042B700.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0042ED20", "measures": { @@ -33430,6 +33675,76 @@ ] } }, + { + "name": "game/00430D08", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "220", + "matched_code": "220", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "220", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00430D08", + "size": "220", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4394248" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00430D08.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/00430E80", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "376", + "matched_code": "376", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "376", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00430E80", + "size": "376", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4394624" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00430E80.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004312A8", "measures": { @@ -33535,6 +33850,76 @@ ] } }, + { + "name": "game/004331B0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "256", + "matched_code": "256", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "256", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004331B0", + "size": "256", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4403632" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004331B0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004332B0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "100", + "matched_code": "100", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "100", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004332B0", + "size": "100", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4403888" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004332B0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00433318", "measures": { @@ -33640,6 +34025,41 @@ ] } }, + { + "name": "game/004363D0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "448", + "matched_code": "448", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "448", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004363D0", + "size": "448", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4416464" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004363D0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00436970", "measures": { @@ -34970,6 +35390,76 @@ ] } }, + { + "name": "game/0043D160", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "232", + "matched_code": "232", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "232", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0043D160", + "size": "232", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4444512" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0043D160.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0043D250", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "272", + "matched_code": "272", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "272", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0043D250", + "size": "272", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4444752" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0043D250.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0043D918", "measures": { @@ -35320,6 +35810,41 @@ ] } }, + { + "name": "game/004473C0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "212", + "matched_code": "212", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "212", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004473C0", + "size": "212", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4486080" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004473C0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00447498", "measures": { @@ -35495,6 +36020,41 @@ ] } }, + { + "name": "game/00448B40", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "208", + "matched_code": "208", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "208", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00448B40", + "size": "208", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4492096" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00448B40.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00448C10", "measures": { @@ -35530,6 +36090,41 @@ ] } }, + { + "name": "game/00448D98", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "264", + "matched_code": "264", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "264", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00448D98", + "size": "264", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4492696" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00448D98.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00449298", "measures": { @@ -35670,6 +36265,76 @@ ] } }, + { + "name": "game/0044A410", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "436", + "matched_code": "436", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "436", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0044A410", + "size": "436", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4498448" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0044A410.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0044AA58", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "200", + "matched_code": "200", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "200", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0044AA58", + "size": "200", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4500056" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0044AA58.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0044AB20", "measures": { @@ -35705,6 +36370,41 @@ ] } }, + { + "name": "game/0044ABC0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "316", + "matched_code": "316", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "316", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0044ABC0", + "size": "316", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4500416" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0044ABC0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0044B110", "measures": { @@ -36160,6 +36860,41 @@ ] } }, + { + "name": "game/0044D6D0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "328", + "matched_code": "328", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "328", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0044D6D0", + "size": "328", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4511440" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0044D6D0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0044D938", "measures": { @@ -36300,6 +37035,76 @@ ] } }, + { + "name": "game/0044DF08", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "324", + "matched_code": "324", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "324", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0044DF08", + "size": "324", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4513544" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0044DF08.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/00452598", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "256", + "matched_code": "256", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "256", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00452598", + "size": "256", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4531608" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00452598.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00452698", "measures": { @@ -36475,6 +37280,41 @@ ] } }, + { + "name": "game/00454420", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "468", + "matched_code": "468", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "468", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00454420", + "size": "468", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4539424" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00454420.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004545F8", "measures": { @@ -36510,6 +37350,41 @@ ] } }, + { + "name": "game/00454600", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "380", + "matched_code": "380", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "380", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00454600", + "size": "380", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4539904" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00454600.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00454A60", "measures": { @@ -37350,6 +38225,41 @@ ] } }, + { + "name": "game/004597B8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "284", + "matched_code": "284", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "284", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004597B8", + "size": "284", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4560824" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004597B8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004598E0", "measures": { @@ -38252,6 +39162,41 @@ ] } }, + { + "name": "game/0045D108", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "92", + "matched_code": "92", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "92", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0045D108", + "size": "92", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4575496" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0045D108.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0045D7B0", "measures": { @@ -38812,6 +39757,41 @@ ] } }, + { + "name": "game/0045E860", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "352", + "matched_code": "352", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "352", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0045E860", + "size": "352", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4581472" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0045E860.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0045F410", "measures": { @@ -39757,6 +40737,41 @@ ] } }, + { + "name": "game/00460B00", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "412", + "matched_code": "412", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "412", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00460B00", + "size": "412", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4590336" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00460B00.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00460CA0", "measures": { @@ -39827,6 +40842,41 @@ ] } }, + { + "name": "game/00460D48", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "744", + "matched_code": "744", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "744", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00460D48", + "size": "744", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4590920" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00460D48.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00461030", "measures": { @@ -40177,6 +41227,76 @@ ] } }, + { + "name": "game/00462D68", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "276", + "matched_code": "276", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "276", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00462D68", + "size": "276", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4599144" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00462D68.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/00463B78", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "236", + "matched_code": "236", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "236", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00463B78", + "size": "236", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4602744" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00463B78.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00463C68", "measures": { @@ -40886,6 +42006,41 @@ ] } }, + { + "name": "game/004653A8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "164", + "matched_code": "164", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "164", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004653A8", + "size": "164", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4608936" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004653A8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00465530", "measures": { @@ -40921,6 +42076,41 @@ ] } }, + { + "name": "game/004655A0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "216", + "matched_code": "216", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "216", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004655A0", + "size": "216", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4609440" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004655A0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00465678", "measures": { @@ -41516,6 +42706,111 @@ ] } }, + { + "name": "game/00465F38", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "420", + "matched_code": "420", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "420", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00465F38", + "size": "420", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4611896" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00465F38.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004660F8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "220", + "matched_code": "220", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "220", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004660F8", + "size": "220", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4612344" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004660F8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004661D8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "312", + "matched_code": "312", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "312", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004661D8", + "size": "312", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4612568" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004661D8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00468B20", "measures": { @@ -41691,6 +42986,41 @@ ] } }, + { + "name": "game/00468C78", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "276", + "matched_code": "276", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "276", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00468C78", + "size": "276", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4623480" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00468C78.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004690E8", "measures": { @@ -42006,6 +43336,41 @@ ] } }, + { + "name": "game/0046A9E8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "216", + "matched_code": "216", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "216", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0046A9E8", + "size": "216", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4631016" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0046A9E8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0046B4C0", "measures": { @@ -42321,6 +43686,41 @@ ] } }, + { + "name": "game/0046CEA0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "552", + "matched_code": "552", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "552", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0046CEA0", + "size": "552", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4640416" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0046CEA0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0046D0C8", "measures": { @@ -42811,6 +44211,41 @@ ] } }, + { + "name": "game/0046D708", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "204", + "matched_code": "204", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "204", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0046D708", + "size": "204", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4642568" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0046D708.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0046D7D8", "measures": { @@ -42916,6 +44351,41 @@ ] } }, + { + "name": "game/0046E9E8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "224", + "matched_code": "224", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "224", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0046E9E8", + "size": "224", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4647400" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0046E9E8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0046EDD8", "measures": { @@ -46521,6 +47991,41 @@ ] } }, + { + "name": "game/0047ED10", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "256", + "matched_code": "256", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "256", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0047ED10", + "size": "256", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4713744" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0047ED10.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0047EE10", "measures": { @@ -48901,6 +50406,41 @@ ] } }, + { + "name": "game/0048B840", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "292", + "matched_code": "292", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "292", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048B840", + "size": "292", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4765760" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048B840.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0048B968", "measures": { @@ -48971,6 +50511,111 @@ ] } }, + { + "name": "game/0048BB38", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048BB38", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4766520" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048BB38.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0048BC20", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "232", + "matched_code": "232", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "232", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048BC20", + "size": "232", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4766752" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048BC20.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0048BD08", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048BD08", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4766984" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048BD08.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0048BDF0", "measures": { @@ -49041,6 +50686,216 @@ ] } }, + { + "name": "game/0048BF90", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048BF90", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4767632" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048BF90.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0048C078", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048C078", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4767864" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048C078.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0048C160", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048C160", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4768096" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048C160.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0048C248", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048C248", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4768328" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048C248.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0048C330", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "268", + "matched_code": "268", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "268", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048C330", + "size": "268", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4768560" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048C330.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0048C440", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "384", + "matched_code": "384", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "384", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0048C440", + "size": "384", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4768832" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0048C440.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0048D038", "measures": { @@ -52506,6 +54361,41 @@ ] } }, + { + "name": "game/00498270", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "248", + "matched_code": "248", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "248", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00498270", + "size": "248", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4817520" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00498270.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00498368", "measures": { @@ -52961,6 +54851,41 @@ ] } }, + { + "name": "game/00498A98", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "284", + "matched_code": "284", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "284", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00498A98", + "size": "284", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4819608" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00498A98.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00498BF4", "measures": { @@ -53836,6 +55761,41 @@ ] } }, + { + "name": "game/004993D8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "264", + "matched_code": "264", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "264", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004993D8", + "size": "264", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4821976" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004993D8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004994E0", "measures": { @@ -56286,6 +58246,41 @@ ] } }, + { + "name": "game/0049E140", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "376", + "matched_code": "376", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "376", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0049E140", + "size": "376", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4841792" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0049E140.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0049E2B8", "measures": { @@ -56636,6 +58631,146 @@ ] } }, + { + "name": "game/0049F4F8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "356", + "matched_code": "356", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "356", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0049F4F8", + "size": "356", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4846840" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0049F4F8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0049F660", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "244", + "matched_code": "244", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "244", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0049F660", + "size": "244", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4847200" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0049F660.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0049F758", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "204", + "matched_code": "204", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "204", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0049F758", + "size": "204", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4847448" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0049F758.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/0049F828", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "252", + "matched_code": "252", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "252", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0049F828", + "size": "252", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4847656" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0049F828.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0049F928", "measures": { @@ -57056,6 +59191,111 @@ ] } }, + { + "name": "game/004A06F8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "376", + "matched_code": "376", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "376", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A06F8", + "size": "376", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4851448" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A06F8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004A0870", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "376", + "matched_code": "376", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "376", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A0870", + "size": "376", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4851824" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A0870.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004A09E8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "376", + "matched_code": "376", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "376", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A09E8", + "size": "376", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4852200" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A09E8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004A0B68", "measures": { @@ -57371,6 +59611,41 @@ ] } }, + { + "name": "game/004A1240", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "204", + "matched_code": "204", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "204", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A1240", + "size": "204", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4854336" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A1240.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004A1310", "measures": { @@ -57686,6 +59961,41 @@ ] } }, + { + "name": "game/004A1B48", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "516", + "matched_code": "516", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "516", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A1B48", + "size": "516", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4856648" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A1B48.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004A1D50", "measures": { @@ -59261,6 +61571,41 @@ ] } }, + { + "name": "game/004A2B18", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "236", + "matched_code": "236", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "236", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A2B18", + "size": "236", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4860696" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A2B18.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004A2C08", "measures": { @@ -59331,6 +61676,41 @@ ] } }, + { + "name": "game/004A2C28", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A2C28", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4860968" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A2C28.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004A2D10", "measures": { @@ -60171,6 +62551,41 @@ ] } }, + { + "name": "game/004A4880", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "348", + "matched_code": "348", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "348", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A4880", + "size": "348", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4868224" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A4880.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004A49E0", "measures": { @@ -61396,6 +63811,41 @@ ] } }, + { + "name": "game/004A8280", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "292", + "matched_code": "292", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "292", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A8280", + "size": "292", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4883072" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A8280.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004A83A8", "measures": { @@ -61431,6 +63881,41 @@ ] } }, + { + "name": "game/004A8430", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A8430", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4883504" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A8430.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004A8518", "measures": { @@ -61641,6 +64126,41 @@ ] } }, + { + "name": "game/004A89E8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "292", + "matched_code": "292", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "292", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A89E8", + "size": "292", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4884968" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A89E8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004A8B10", "measures": { @@ -61781,6 +64301,41 @@ ] } }, + { + "name": "game/004A8E78", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "236", + "matched_code": "236", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "236", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004A8E78", + "size": "236", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4886136" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004A8E78.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004A8F68", "measures": { @@ -62551,6 +65106,41 @@ ] } }, + { + "name": "game/004AD1D8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "220", + "matched_code": "220", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "220", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004AD1D8", + "size": "220", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4903384" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004AD1D8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004AD2B8", "measures": { @@ -65841,6 +68431,41 @@ ] } }, + { + "name": "game/004B4050", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "420", + "matched_code": "420", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "420", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004B4050", + "size": "420", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4931664" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004B4050.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004B4A40", "measures": { @@ -66926,6 +69551,41 @@ ] } }, + { + "name": "game/004B6740", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "328", + "matched_code": "328", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "328", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004B6740", + "size": "328", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4941632" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004B6740.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004B6888", "measures": { @@ -68921,6 +71581,76 @@ ] } }, + { + "name": "game/004B83C8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "264", + "matched_code": "264", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "264", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004B83C8", + "size": "264", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4948936" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004B83C8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004B84D0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "264", + "matched_code": "264", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "264", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004B84D0", + "size": "264", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4949200" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004B84D0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004B85D8", "measures": { @@ -69341,6 +72071,76 @@ ] } }, + { + "name": "game/004B9240", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "236", + "matched_code": "236", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "236", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004B9240", + "size": "236", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4952640" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004B9240.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004B9440", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "284", + "matched_code": "284", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "284", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004B9440", + "size": "284", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4953152" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004B9440.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004B9560", "measures": { @@ -72360,6 +75160,41 @@ ] } }, + { + "name": "game/004C1FA8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "500", + "matched_code": "500", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "500", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004C1FA8", + "size": "500", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4988840" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004C1FA8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004C21A0", "measures": { @@ -72745,6 +75580,41 @@ ] } }, + { + "name": "game/004C33D0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "260", + "matched_code": "260", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "260", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004C33D0", + "size": "260", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4994000" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004C33D0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004C37A0", "measures": { @@ -73305,6 +76175,76 @@ ] } }, + { + "name": "game/004C44E8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "432", + "matched_code": "432", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "432", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004C44E8", + "size": "432", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4998376" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004C44E8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004C4698", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "400", + "matched_code": "400", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "400", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004C4698", + "size": "400", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "4998808" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004C4698.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004C5570", "measures": { @@ -73795,6 +76735,41 @@ ] } }, + { + "name": "game/004C6BA0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "284", + "matched_code": "284", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "284", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004C6BA0", + "size": "284", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5008288" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004C6BA0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004C70C0", "measures": { @@ -73935,6 +76910,41 @@ ] } }, + { + "name": "game/004C7168", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "212", + "matched_code": "212", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "212", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004C7168", + "size": "212", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5009768" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004C7168.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004C7240", "measures": { @@ -74740,6 +77750,41 @@ ] } }, + { + "name": "game/004C9090", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "216", + "matched_code": "216", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "216", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004C9090", + "size": "216", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5017744" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004C9090.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004C9168", "measures": { @@ -76350,6 +79395,41 @@ ] } }, + { + "name": "game/004CBB98", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "628", + "matched_code": "628", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "628", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004CBB98", + "size": "628", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5028760" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004CBB98.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004CBE10", "measures": { @@ -77645,6 +80725,41 @@ ] } }, + { + "name": "game/004CDF08", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "212", + "matched_code": "212", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "212", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004CDF08", + "size": "212", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5037832" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004CDF08.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004CDFE0", "measures": { @@ -78835,6 +81950,41 @@ ] } }, + { + "name": "game/004CF950", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "240", + "matched_code": "240", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "240", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004CF950", + "size": "240", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5044560" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004CF950.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004CFA40", "measures": { @@ -82195,6 +85345,41 @@ ] } }, + { + "name": "game/004D4C58", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "548", + "matched_code": "548", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "548", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004D4C58", + "size": "548", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5065816" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004D4C58.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004D5550", "measures": { @@ -83070,6 +86255,41 @@ ] } }, + { + "name": "game/004D6378", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "296", + "matched_code": "296", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "296", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004D6378", + "size": "296", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5071736" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004D6378.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004D64A0", "measures": { @@ -84260,6 +87480,41 @@ ] } }, + { + "name": "game/004D8A18", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "212", + "matched_code": "212", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "212", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004D8A18", + "size": "212", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5081624" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004D8A18.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004D8AF0", "measures": { @@ -84610,6 +87865,41 @@ ] } }, + { + "name": "game/004D9048", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "544", + "matched_code": "544", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "544", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004D9048", + "size": "544", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5083208" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004D9048.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004D9268", "measures": { @@ -84715,6 +88005,41 @@ ] } }, + { + "name": "game/004D9408", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "236", + "matched_code": "236", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "236", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004D9408", + "size": "236", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5084168" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004D9408.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004D95C8", "measures": { @@ -85380,6 +88705,111 @@ ] } }, + { + "name": "game/004DA2D8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "780", + "matched_code": "780", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "780", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004DA2D8", + "size": "780", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5087960" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004DA2D8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004DA960", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "212", + "matched_code": "212", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "212", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004D9A48", + "size": "212", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5085768" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004DA960.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/004DAA78", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "276", + "matched_code": "276", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "276", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004DAA78", + "size": "276", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5089912" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004DAA78.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004DAB90", "measures": { @@ -86570,6 +90000,41 @@ ] } }, + { + "name": "game/004DEF78", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "280", + "matched_code": "280", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "280", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004DEF78", + "size": "280", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5107576" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004DEF78.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004DF098", "measures": { @@ -89125,6 +92590,41 @@ ] } }, + { + "name": "game/004EE150", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "216", + "matched_code": "216", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "216", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004EE150", + "size": "216", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5169488" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004EE150.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004EE368", "measures": { @@ -90315,6 +93815,41 @@ ] } }, + { + "name": "game/004F0660", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "276", + "matched_code": "276", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "276", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004F0660", + "size": "276", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5178976" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004F0660.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004F0778", "measures": { @@ -91575,6 +95110,41 @@ ] } }, + { + "name": "game/004F1D20", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "204", + "matched_code": "204", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "204", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004F1D20", + "size": "204", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5184800" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004F1D20.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004F1DF0", "measures": { @@ -91610,6 +95180,41 @@ ] } }, + { + "name": "game/004F1EA0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "424", + "matched_code": "424", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "424", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004F1EA0", + "size": "424", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5185184" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004F1EA0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004F2048", "measures": { @@ -93010,6 +96615,41 @@ ] } }, + { + "name": "game/004F5350", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "112", + "matched_code": "112", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "112", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004F5350", + "size": "112", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5198672" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004F5350.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004F53C0", "measures": { @@ -94025,6 +97665,41 @@ ] } }, + { + "name": "game/004F7FD8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "508", + "matched_code": "508", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "508", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004F7FD8", + "size": "508", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5210072" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004F7FD8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004F86EC", "measures": { @@ -94410,6 +98085,41 @@ ] } }, + { + "name": "game/004FAAA8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "212", + "matched_code": "212", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "212", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004FAAA8", + "size": "212", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5221032" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004FAAA8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004FAB80", "measures": { @@ -94760,6 +98470,41 @@ ] } }, + { + "name": "game/004FC310", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "248", + "matched_code": "248", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "248", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004FC310", + "size": "248", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5227280" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004FC310.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004FC408", "measures": { @@ -95390,6 +99135,41 @@ ] } }, + { + "name": "game/004FEF80", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "268", + "matched_code": "268", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "268", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_004FEF80", + "size": "268", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5238656" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/004FEF80.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/004FF4C0", "measures": { @@ -98759,6 +102539,41 @@ ] } }, + { + "name": "game/00502510", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "548", + "matched_code": "548", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "548", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00502510", + "size": "548", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5252368" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00502510.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00502738", "measures": { @@ -99529,6 +103344,41 @@ ] } }, + { + "name": "game/005040B0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "376", + "matched_code": "376", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "376", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_005040B0", + "size": "376", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5259440" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/005040B0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00504228", "measures": { @@ -99739,6 +103589,76 @@ ] } }, + { + "name": "game/00504550", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "244", + "matched_code": "244", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "244", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00504550", + "size": "244", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5260624" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00504550.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/00504648", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "244", + "matched_code": "244", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "244", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00504648", + "size": "244", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5260872" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00504648.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00504740", "measures": { @@ -99879,6 +103799,41 @@ ] } }, + { + "name": "game/00504AA8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00504AA8", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5261992" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00504AA8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00504B90", "measures": { @@ -100019,6 +103974,41 @@ ] } }, + { + "name": "game/00504F68", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "212", + "matched_code": "212", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "212", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00504F68", + "size": "212", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5263208" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00504F68.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00505040", "measures": { @@ -100089,6 +104079,76 @@ ] } }, + { + "name": "game/00505238", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00505238", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5263928" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00505238.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, + { + "name": "game/00505328", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "228", + "matched_code": "228", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "228", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00505328", + "size": "228", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5264168" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00505328.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00505410", "measures": { @@ -101804,6 +105864,41 @@ ] } }, + { + "name": "game/005081B0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "376", + "matched_code": "376", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "376", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_005081B0", + "size": "376", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5276080" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/005081B0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00508328", "measures": { @@ -106109,6 +110204,41 @@ ] } }, + { + "name": "game/0050BE90", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "276", + "matched_code": "276", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "276", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0050BE90", + "size": "276", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5291664" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0050BE90.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0050BFA8", "measures": { @@ -106214,6 +110344,41 @@ ] } }, + { + "name": "game/0050C100", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "428", + "matched_code": "428", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "428", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0050C100", + "size": "428", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5292288" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0050C100.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0050C2B0", "measures": { @@ -106599,6 +110764,41 @@ ] } }, + { + "name": "game/0050C7D8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "240", + "matched_code": "240", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "240", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0050C7D8", + "size": "240", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5294040" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0050C7D8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0050CC98", "measures": { @@ -109259,6 +113459,41 @@ ] } }, + { + "name": "game/00511060", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "240", + "matched_code": "240", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "240", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_00511060", + "size": "240", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5312608" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/00511060.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00511150", "measures": { @@ -110239,6 +114474,41 @@ ] } }, + { + "name": "game/0051A638", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "340", + "matched_code": "340", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "340", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0051A638", + "size": "340", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5350968" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0051A638.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0051A790", "measures": { @@ -112479,6 +116749,41 @@ ] } }, + { + "name": "game/0053D6E0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "260", + "matched_code": "260", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "260", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0053D6E0", + "size": "260", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5494496" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0053D6E0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0053E0D8", "measures": { @@ -114099,6 +118404,41 @@ ] } }, + { + "name": "game/005480A8", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "256", + "matched_code": "256", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "256", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_005480A8", + "size": "256", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5537960" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/005480A8.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/00548478", "measures": { @@ -115044,6 +119384,41 @@ ] } }, + { + "name": "game/0054A0C0", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "204", + "matched_code": "204", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "204", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0054A0C0", + "size": "204", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5546176" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0054A0C0.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0054A190", "measures": { @@ -116164,6 +120539,41 @@ ] } }, + { + "name": "game/0054CC60", + "measures": { + "fuzzy_match_percent": 100.0, + "total_code": "544", + "matched_code": "544", + "matched_code_percent": 100.0, + "total_functions": 1, + "matched_functions": 1, + "matched_functions_percent": 100.0, + "complete_code": "544", + "complete_code_percent": 100.0, + "total_units": 1, + "complete_units": 1 + }, + "functions": [ + { + "name": "func_0054CC60", + "size": "544", + "fuzzy_match_percent": 100.0, + "address": "0", + "metadata": { + "virtual_address": "5557344" + } + } + ], + "metadata": { + "complete": true, + "source_path": "src/game/0054CC60.c", + "progress_categories": [ + "core", + "menu_text" + ] + } + }, { "name": "game/0054CE80", "measures": { @@ -152191,10 +156601,10 @@ "name": "main/.text/0041xxxx", "measures": { "fuzzy_match_percent": 0.0, - "total_code": "64696", + "total_code": "64032", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 103, + "total_functions": 101, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -153004,15 +157414,6 @@ "virtual_address": "4315464" } }, - { - "name": "func_0041DA98", - "size": "364", - "fuzzy_match_percent": 0.0, - "address": "55952", - "metadata": { - "virtual_address": "4315800" - } - }, { "name": "func_0041DC08", "size": "892", @@ -153031,15 +157432,6 @@ "virtual_address": "4317064" } }, - { - "name": "func_0041E280", - "size": "300", - "fuzzy_match_percent": 0.0, - "address": "57976", - "metadata": { - "virtual_address": "4317824" - } - }, { "name": "func_0041E3B0", "size": "1636", @@ -153144,10 +157536,10 @@ "name": "main/.text/0042xxxx", "measures": { "fuzzy_match_percent": 0.0, - "total_code": "64444", + "total_code": "63688", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 104, + "total_functions": 101, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -153399,15 +157791,6 @@ "virtual_address": "4336816" } }, - { - "name": "func_004230F8", - "size": "284", - "fuzzy_match_percent": 0.0, - "address": "12424", - "metadata": { - "virtual_address": "4337912" - } - }, { "name": "func_00423218", "size": "732", @@ -153831,15 +158214,6 @@ "virtual_address": "4363744" } }, - { - "name": "func_00429BE8", - "size": "268", - "fuzzy_match_percent": 0.0, - "address": "39800", - "metadata": { - "virtual_address": "4365288" - } - }, { "name": "func_00429CF8", "size": "28", @@ -153939,15 +158313,6 @@ "virtual_address": "4371696" } }, - { - "name": "func_0042B700", - "size": "204", - "fuzzy_match_percent": 0.0, - "address": "46736", - "metadata": { - "virtual_address": "4372224" - } - }, { "name": "func_0042B7D0", "size": "4", @@ -154106,10 +158471,10 @@ "name": "main/.text/0043xxxx", "measures": { "fuzzy_match_percent": 0.0, - "total_code": "65224", + "total_code": "63320", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 123, + "total_functions": 116, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -154181,15 +158546,6 @@ "virtual_address": "4394224" } }, - { - "name": "func_00430D08", - "size": "220", - "fuzzy_match_percent": 0.0, - "address": "3128", - "metadata": { - "virtual_address": "4394248" - } - }, { "name": "func_00430DE8", "size": "4", @@ -154208,15 +158564,6 @@ "virtual_address": "4394480" } }, - { - "name": "func_00430E80", - "size": "376", - "fuzzy_match_percent": 0.0, - "address": "3504", - "metadata": { - "virtual_address": "4394624" - } - }, { "name": "func_00430FF8", "size": "668", @@ -154415,24 +158762,6 @@ "virtual_address": "4403528" } }, - { - "name": "func_004331B0", - "size": "256", - "fuzzy_match_percent": 0.0, - "address": "12512", - "metadata": { - "virtual_address": "4403632" - } - }, - { - "name": "func_004332B0", - "size": "100", - "fuzzy_match_percent": 0.0, - "address": "12768", - "metadata": { - "virtual_address": "4403888" - } - }, { "name": "func_004333C0", "size": "368", @@ -154568,15 +158897,6 @@ "virtual_address": "4414896" } }, - { - "name": "func_004363D0", - "size": "448", - "fuzzy_match_percent": 0.0, - "address": "25344", - "metadata": { - "virtual_address": "4416464" - } - }, { "name": "func_00436590", "size": "988", @@ -154991,24 +159311,6 @@ "virtual_address": "4443976" } }, - { - "name": "func_0043D160", - "size": "232", - "fuzzy_match_percent": 0.0, - "address": "53392", - "metadata": { - "virtual_address": "4444512" - } - }, - { - "name": "func_0043D250", - "size": "272", - "fuzzy_match_percent": 0.0, - "address": "53632", - "metadata": { - "virtual_address": "4444752" - } - }, { "name": "func_0043D360", "size": "348", @@ -155239,10 +159541,10 @@ "name": "main/.text/0044xxxx", "measures": { "fuzzy_match_percent": 0.0, - "total_code": "58052", + "total_code": "55764", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 104, + "total_functions": 96, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -155467,15 +159769,6 @@ "virtual_address": "4485856" } }, - { - "name": "func_004473C0", - "size": "212", - "fuzzy_match_percent": 0.0, - "address": "25560", - "metadata": { - "virtual_address": "4486080" - } - }, { "name": "func_00447550", "size": "1000", @@ -155557,15 +159850,6 @@ "virtual_address": "4491880" } }, - { - "name": "func_00448B40", - "size": "208", - "fuzzy_match_percent": 0.0, - "address": "31576", - "metadata": { - "virtual_address": "4492096" - } - }, { "name": "func_00448C50", "size": "20", @@ -155584,15 +159868,6 @@ "virtual_address": "4492392" } }, - { - "name": "func_00448D98", - "size": "264", - "fuzzy_match_percent": 0.0, - "address": "32176", - "metadata": { - "virtual_address": "4492696" - } - }, { "name": "func_00448EA0", "size": "4", @@ -155737,15 +160012,6 @@ "virtual_address": "4498440" } }, - { - "name": "func_0044A410", - "size": "436", - "fuzzy_match_percent": 0.0, - "address": "37928", - "metadata": { - "virtual_address": "4498448" - } - }, { "name": "func_0044A5C8", "size": "516", @@ -155773,24 +160039,6 @@ "virtual_address": "4500048" } }, - { - "name": "func_0044AA58", - "size": "200", - "fuzzy_match_percent": 0.0, - "address": "39536", - "metadata": { - "virtual_address": "4500056" - } - }, - { - "name": "func_0044ABC0", - "size": "316", - "fuzzy_match_percent": 0.0, - "address": "39896", - "metadata": { - "virtual_address": "4500416" - } - }, { "name": "func_0044AD00", "size": "28", @@ -155989,15 +160237,6 @@ "virtual_address": "4510392" } }, - { - "name": "func_0044D6D0", - "size": "328", - "fuzzy_match_percent": 0.0, - "address": "50920", - "metadata": { - "virtual_address": "4511440" - } - }, { "name": "func_0044D818", "size": "280", @@ -156061,15 +160300,6 @@ "virtual_address": "4513392" } }, - { - "name": "func_0044DF08", - "size": "324", - "fuzzy_match_percent": 0.0, - "address": "53024", - "metadata": { - "virtual_address": "4513544" - } - }, { "name": "func_0044E050", "size": "12", @@ -156201,10 +160431,10 @@ "name": "main/.text/0045xxxx", "measures": { "fuzzy_match_percent": 0.0, - "total_code": "58832", + "total_code": "57000", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 145, + "total_functions": 139, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -156312,15 +160542,6 @@ "virtual_address": "4528440" } }, - { - "name": "func_00452598", - "size": "256", - "fuzzy_match_percent": 0.0, - "address": "9096", - "metadata": { - "virtual_address": "4531608" - } - }, { "name": "func_00452790", "size": "456", @@ -156771,24 +160992,6 @@ "virtual_address": "4539216" } }, - { - "name": "func_00454420", - "size": "468", - "fuzzy_match_percent": 0.0, - "address": "16912", - "metadata": { - "virtual_address": "4539424" - } - }, - { - "name": "func_00454600", - "size": "380", - "fuzzy_match_percent": 0.0, - "address": "17392", - "metadata": { - "virtual_address": "4539904" - } - }, { "name": "func_00454780", "size": "736", @@ -157005,15 +161208,6 @@ "virtual_address": "4560720" } }, - { - "name": "func_004597B8", - "size": "284", - "fuzzy_match_percent": 0.0, - "address": "38312", - "metadata": { - "virtual_address": "4560824" - } - }, { "name": "func_004598D8", "size": "4", @@ -157176,15 +161370,6 @@ "virtual_address": "4575432" } }, - { - "name": "func_0045D108", - "size": "92", - "fuzzy_match_percent": 0.0, - "address": "52984", - "metadata": { - "virtual_address": "4575496" - } - }, { "name": "func_0045D168", "size": "1596", @@ -157374,15 +161559,6 @@ "virtual_address": "4581192" } }, - { - "name": "func_0045E860", - "size": "352", - "fuzzy_match_percent": 0.0, - "address": "58960", - "metadata": { - "virtual_address": "4581472" - } - }, { "name": "func_0045E9C0", "size": "4", @@ -157531,11 +161707,11 @@ { "name": "main/.text/0046xxxx", "measures": { - "fuzzy_match_percent": 1.732102, - "total_code": "54672", + "fuzzy_match_percent": 0.488044, + "total_code": "50200", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 177, + "total_functions": 163, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -157634,24 +161810,6 @@ "virtual_address": "4589800" } }, - { - "name": "func_00460B00", - "size": "412", - "fuzzy_match_percent": 0.0, - "address": "2672", - "metadata": { - "virtual_address": "4590336" - } - }, - { - "name": "func_00460D48", - "size": "744", - "fuzzy_match_percent": 0.0, - "address": "3256", - "metadata": { - "virtual_address": "4590920" - } - }, { "name": "func_00461130", "size": "268", @@ -157823,15 +161981,6 @@ "virtual_address": "4598392" } }, - { - "name": "func_00462D68", - "size": "276", - "fuzzy_match_percent": 0.0, - "address": "11480", - "metadata": { - "virtual_address": "4599144" - } - }, { "name": "func_00462E80", "size": "824", @@ -157895,15 +162044,6 @@ "virtual_address": "4602560" } }, - { - "name": "func_00463B78", - "size": "236", - "fuzzy_match_percent": 0.0, - "address": "15080", - "metadata": { - "virtual_address": "4602744" - } - }, { "name": "func_00463CB8", "size": "184", @@ -158003,15 +162143,6 @@ "virtual_address": "4608376" } }, - { - "name": "func_004653A8", - "size": "164", - "fuzzy_match_percent": 0.0, - "address": "21272", - "metadata": { - "virtual_address": "4608936" - } - }, { "name": "func_00465450", "size": "220", @@ -158021,15 +162152,6 @@ "virtual_address": "4609104" } }, - { - "name": "func_004655A0", - "size": "216", - "fuzzy_match_percent": 0.0, - "address": "21776", - "metadata": { - "virtual_address": "4609440" - } - }, { "name": "func_00465AA0", "size": "12", @@ -158084,15 +162206,6 @@ "virtual_address": "4611872" } }, - { - "name": "func_00465F38", - "size": "420", - "fuzzy_match_percent": 0.0, - "address": "24232", - "metadata": { - "virtual_address": "4611896" - } - }, { "name": "func_004660E0", "size": "20", @@ -158102,24 +162215,6 @@ "virtual_address": "4612320" } }, - { - "name": "func_004660F8", - "size": "220", - "fuzzy_match_percent": 0.0, - "address": "24680", - "metadata": { - "virtual_address": "4612344" - } - }, - { - "name": "func_004661D8", - "size": "312", - "fuzzy_match_percent": 0.0, - "address": "24904", - "metadata": { - "virtual_address": "4612568" - } - }, { "name": "func_00466310", "size": "10088", @@ -158138,15 +162233,6 @@ "virtual_address": "4622968" } }, - { - "name": "func_00468C78", - "size": "276", - "fuzzy_match_percent": 0.0, - "address": "35816", - "metadata": { - "virtual_address": "4623480" - } - }, { "name": "func_00468D90", "size": "196", @@ -158444,15 +162530,6 @@ "virtual_address": "4629776" } }, - { - "name": "func_0046A9E8", - "size": "216", - "fuzzy_match_percent": 0.0, - "address": "43352", - "metadata": { - "virtual_address": "4631016" - } - }, { "name": "func_0046AAC0", "size": "444", @@ -158759,15 +162836,6 @@ "virtual_address": "4639928" } }, - { - "name": "func_0046CEA0", - "size": "552", - "fuzzy_match_percent": 89.67, - "address": "52752", - "metadata": { - "virtual_address": "4640416" - } - }, { "name": "func_0046D198", "size": "260", @@ -158831,15 +162899,6 @@ "virtual_address": "4642304" } }, - { - "name": "func_0046D708", - "size": "204", - "fuzzy_match_percent": 0.0, - "address": "54904", - "metadata": { - "virtual_address": "4642568" - } - }, { "name": "func_0046D860", "size": "572", @@ -159011,15 +163070,6 @@ "virtual_address": "4647080" } }, - { - "name": "func_0046E9E8", - "size": "224", - "fuzzy_match_percent": 92.41, - "address": "59736", - "metadata": { - "virtual_address": "4647400" - } - }, { "name": "func_0046EAC8", "size": "260", @@ -159150,11 +163200,11 @@ { "name": "main/.text/0047xxxx", "measures": { - "fuzzy_match_percent": 0.486725, - "total_code": "59996", + "fuzzy_match_percent": 0.488811, + "total_code": "59740", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 162, + "total_functions": 161, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -160558,15 +164608,6 @@ "virtual_address": "4713480" } }, - { - "name": "func_0047ED10", - "size": "256", - "fuzzy_match_percent": 0.0, - "address": "60544", - "metadata": { - "virtual_address": "4713744" - } - }, { "name": "func_0047EEA8", "size": "140", @@ -160634,11 +164675,11 @@ { "name": "main/.text/0048xxxx", "measures": { - "fuzzy_match_percent": 0.563034, - "total_code": "52216", + "fuzzy_match_percent": 0.591871, + "total_code": "49672", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 101, + "total_functions": 91, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -161205,96 +165246,6 @@ "virtual_address": "4765696" } }, - { - "name": "func_0048B840", - "size": "292", - "fuzzy_match_percent": 0.0, - "address": "43400", - "metadata": { - "virtual_address": "4765760" - } - }, - { - "name": "func_0048BB38", - "size": "228", - "fuzzy_match_percent": 0.0, - "address": "44160", - "metadata": { - "virtual_address": "4766520" - } - }, - { - "name": "func_0048BC20", - "size": "232", - "fuzzy_match_percent": 0.0, - "address": "44392", - "metadata": { - "virtual_address": "4766752" - } - }, - { - "name": "func_0048BD08", - "size": "228", - "fuzzy_match_percent": 0.0, - "address": "44624", - "metadata": { - "virtual_address": "4766984" - } - }, - { - "name": "func_0048BF90", - "size": "228", - "fuzzy_match_percent": 0.0, - "address": "45272", - "metadata": { - "virtual_address": "4767632" - } - }, - { - "name": "func_0048C078", - "size": "228", - "fuzzy_match_percent": 0.0, - "address": "45504", - "metadata": { - "virtual_address": "4767864" - } - }, - { - "name": "func_0048C160", - "size": "228", - "fuzzy_match_percent": 0.0, - "address": "45736", - "metadata": { - "virtual_address": "4768096" - } - }, - { - "name": "func_0048C248", - "size": "228", - "fuzzy_match_percent": 0.0, - "address": "45968", - "metadata": { - "virtual_address": "4768328" - } - }, - { - "name": "func_0048C330", - "size": "268", - "fuzzy_match_percent": 0.0, - "address": "46200", - "metadata": { - "virtual_address": "4768560" - } - }, - { - "name": "func_0048C440", - "size": "384", - "fuzzy_match_percent": 0.0, - "address": "46472", - "metadata": { - "virtual_address": "4768832" - } - }, { "name": "func_0048C5C0", "size": "2664", @@ -161569,11 +165520,11 @@ { "name": "main/.text/0049xxxx", "measures": { - "fuzzy_match_percent": 2.053435, - "total_code": "43976", + "fuzzy_match_percent": 2.163022, + "total_code": "41748", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 157, + "total_functions": 149, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -162509,15 +166460,6 @@ "virtual_address": "4817240" } }, - { - "name": "func_00498270", - "size": "248", - "fuzzy_match_percent": 0.0, - "address": "32376", - "metadata": { - "virtual_address": "4817520" - } - }, { "name": "func_00498540", "size": "48", @@ -162554,15 +166496,6 @@ "virtual_address": "4819224" } }, - { - "name": "func_00498A98", - "size": "284", - "fuzzy_match_percent": 0.0, - "address": "34464", - "metadata": { - "virtual_address": "4819608" - } - }, { "name": "func_00498BB8", "size": "60", @@ -162617,15 +166550,6 @@ "virtual_address": "4821792" } }, - { - "name": "func_004993D8", - "size": "264", - "fuzzy_match_percent": 0.0, - "address": "36832", - "metadata": { - "virtual_address": "4821976" - } - }, { "name": "func_00499538", "size": "184", @@ -162905,15 +166829,6 @@ "virtual_address": "4841544" } }, - { - "name": "func_0049E140", - "size": "376", - "fuzzy_match_percent": 0.0, - "address": "56648", - "metadata": { - "virtual_address": "4841792" - } - }, { "name": "func_0049E478", "size": "252", @@ -162950,42 +166865,6 @@ "virtual_address": "4845632" } }, - { - "name": "func_0049F4F8", - "size": "356", - "fuzzy_match_percent": 0.0, - "address": "61696", - "metadata": { - "virtual_address": "4846840" - } - }, - { - "name": "func_0049F660", - "size": "244", - "fuzzy_match_percent": 0.0, - "address": "62056", - "metadata": { - "virtual_address": "4847200" - } - }, - { - "name": "func_0049F758", - "size": "204", - "fuzzy_match_percent": 0.0, - "address": "62304", - "metadata": { - "virtual_address": "4847448" - } - }, - { - "name": "func_0049F828", - "size": "252", - "fuzzy_match_percent": 0.0, - "address": "62512", - "metadata": { - "virtual_address": "4847656" - } - }, { "name": "func_0049FBF0", "size": "1104", @@ -163008,11 +166887,11 @@ { "name": "main/.text/004Axxxx", "measures": { - "fuzzy_match_percent": 7.602613, - "total_code": "37856", + "fuzzy_match_percent": 5.995172, + "total_code": "33928", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 88, + "total_functions": 75, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -163030,33 +166909,6 @@ "virtual_address": "4850208" } }, - { - "name": "func_004A06F8", - "size": "376", - "fuzzy_match_percent": 96.81, - "address": "1240", - "metadata": { - "virtual_address": "4851448" - } - }, - { - "name": "func_004A0870", - "size": "376", - "fuzzy_match_percent": 0.0, - "address": "1616", - "metadata": { - "virtual_address": "4851824" - } - }, - { - "name": "func_004A09E8", - "size": "376", - "fuzzy_match_percent": 0.0, - "address": "1992", - "metadata": { - "virtual_address": "4852200" - } - }, { "name": "func_004A0B60", "size": "4", @@ -163093,15 +166945,6 @@ "virtual_address": "4853616" } }, - { - "name": "func_004A1240", - "size": "204", - "fuzzy_match_percent": 0.0, - "address": "4128", - "metadata": { - "virtual_address": "4854336" - } - }, { "name": "func_004A1440", "size": "396", @@ -163147,15 +166990,6 @@ "virtual_address": "4856432" } }, - { - "name": "func_004A1B48", - "size": "516", - "fuzzy_match_percent": 0.0, - "address": "6440", - "metadata": { - "virtual_address": "4856648" - } - }, { "name": "func_004A1DE0", "size": "60", @@ -163192,24 +167026,6 @@ "virtual_address": "4860056" } }, - { - "name": "func_004A2B18", - "size": "236", - "fuzzy_match_percent": 0.0, - "address": "10488", - "metadata": { - "virtual_address": "4860696" - } - }, - { - "name": "func_004A2C28", - "size": "228", - "fuzzy_match_percent": 0.0, - "address": "10760", - "metadata": { - "virtual_address": "4860968" - } - }, { "name": "func_004A2EA8", "size": "1044", @@ -163264,15 +167080,6 @@ "virtual_address": "4867448" } }, - { - "name": "func_004A4880", - "size": "348", - "fuzzy_match_percent": 0.0, - "address": "18016", - "metadata": { - "virtual_address": "4868224" - } - }, { "name": "func_004A4BC0", "size": "324", @@ -163426,33 +167233,6 @@ "virtual_address": "4883064" } }, - { - "name": "func_004A8280", - "size": "292", - "fuzzy_match_percent": 89.38, - "address": "32864", - "metadata": { - "virtual_address": "4883072" - } - }, - { - "name": "func_004A8430", - "size": "228", - "fuzzy_match_percent": 0.0, - "address": "33296", - "metadata": { - "virtual_address": "4883504" - } - }, - { - "name": "func_004A89E8", - "size": "292", - "fuzzy_match_percent": 0.0, - "address": "34760", - "metadata": { - "virtual_address": "4884968" - } - }, { "name": "func_004A8BC8", "size": "4", @@ -163480,15 +167260,6 @@ "virtual_address": "4885960" } }, - { - "name": "func_004A8E78", - "size": "236", - "fuzzy_match_percent": 92.8, - "address": "35928", - "metadata": { - "virtual_address": "4886136" - } - }, { "name": "func_004A90E8", "size": "428", @@ -163705,15 +167476,6 @@ "virtual_address": "4901480" } }, - { - "name": "func_004AD1D8", - "size": "220", - "fuzzy_match_percent": 0.0, - "address": "53176", - "metadata": { - "virtual_address": "4903384" - } - }, { "name": "func_004AD448", "size": "572", @@ -163826,11 +167588,11 @@ { "name": "main/.text/004Bxxxx", "measures": { - "fuzzy_match_percent": 13.455097, - "total_code": "34128", + "fuzzy_match_percent": 13.342657, + "total_code": "32332", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 77, + "total_functions": 71, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -164001,15 +167763,6 @@ "virtual_address": "4930472" } }, - { - "name": "func_004B4050", - "size": "420", - "fuzzy_match_percent": 0.0, - "address": "16256", - "metadata": { - "virtual_address": "4931664" - } - }, { "name": "func_004B41F8", "size": "332", @@ -164118,15 +167871,6 @@ "virtual_address": "4941272" } }, - { - "name": "func_004B6740", - "size": "328", - "fuzzy_match_percent": 0.0, - "address": "26224", - "metadata": { - "virtual_address": "4941632" - } - }, { "name": "func_004B6BA0", "size": "4", @@ -164154,24 +167898,6 @@ "virtual_address": "4946280" } }, - { - "name": "func_004B83C8", - "size": "264", - "fuzzy_match_percent": 0.0, - "address": "33528", - "metadata": { - "virtual_address": "4948936" - } - }, - { - "name": "func_004B84D0", - "size": "264", - "fuzzy_match_percent": 0.0, - "address": "33792", - "metadata": { - "virtual_address": "4949200" - } - }, { "name": "func_004B8928", "size": "184", @@ -164217,15 +167943,6 @@ "virtual_address": "4952040" } }, - { - "name": "func_004B9240", - "size": "236", - "fuzzy_match_percent": 0.0, - "address": "37232", - "metadata": { - "virtual_address": "4952640" - } - }, { "name": "func_004B9330", "size": "124", @@ -164244,15 +167961,6 @@ "virtual_address": "4953008" } }, - { - "name": "func_004B9440", - "size": "284", - "fuzzy_match_percent": 97.89, - "address": "37744", - "metadata": { - "virtual_address": "4953152" - } - }, { "name": "func_004B96A8", "size": "764", @@ -164545,11 +168253,11 @@ { "name": "main/.text/004Cxxxx", "measures": { - "fuzzy_match_percent": 7.691337, - "total_code": "33064", + "fuzzy_match_percent": 5.761596, + "total_code": "29680", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 75, + "total_functions": 65, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -164621,15 +168329,6 @@ "virtual_address": "4988832" } }, - { - "name": "func_004C1FA8", - "size": "500", - "fuzzy_match_percent": 0.0, - "address": "6832", - "metadata": { - "virtual_address": "4988840" - } - }, { "name": "func_004C2610", "size": "320", @@ -164693,15 +168392,6 @@ "virtual_address": "4993808" } }, - { - "name": "func_004C33D0", - "size": "260", - "fuzzy_match_percent": 0.0, - "address": "11992", - "metadata": { - "virtual_address": "4994000" - } - }, { "name": "func_004C34D8", "size": "712", @@ -164738,24 +168428,6 @@ "virtual_address": "4997640" } }, - { - "name": "func_004C44E8", - "size": "432", - "fuzzy_match_percent": 0.0, - "address": "16368", - "metadata": { - "virtual_address": "4998376" - } - }, - { - "name": "func_004C4698", - "size": "400", - "fuzzy_match_percent": 0.0, - "address": "16800", - "metadata": { - "virtual_address": "4998808" - } - }, { "name": "func_004C4828", "size": "3400", @@ -164855,15 +168527,6 @@ "virtual_address": "5008096" } }, - { - "name": "func_004C6BA0", - "size": "284", - "fuzzy_match_percent": 0.0, - "address": "26280", - "metadata": { - "virtual_address": "5008288" - } - }, { "name": "func_004C6CC0", "size": "272", @@ -164900,15 +168563,6 @@ "virtual_address": "5009704" } }, - { - "name": "func_004C7168", - "size": "212", - "fuzzy_match_percent": 0.0, - "address": "27760", - "metadata": { - "virtual_address": "5009768" - } - }, { "name": "func_004C7538", "size": "312", @@ -164981,15 +168635,6 @@ "virtual_address": "5017520" } }, - { - "name": "func_004C9090", - "size": "216", - "fuzzy_match_percent": 98.61, - "address": "35736", - "metadata": { - "virtual_address": "5017744" - } - }, { "name": "func_004C94E8", "size": "12", @@ -165071,15 +168716,6 @@ "virtual_address": "5027352" } }, - { - "name": "func_004CBB98", - "size": "628", - "fuzzy_match_percent": 98.73, - "address": "46752", - "metadata": { - "virtual_address": "5028760" - } - }, { "name": "func_004CC450", "size": "812", @@ -165143,15 +168779,6 @@ "virtual_address": "5037568" } }, - { - "name": "func_004CDF08", - "size": "212", - "fuzzy_match_percent": 0.0, - "address": "55824", - "metadata": { - "virtual_address": "5037832" - } - }, { "name": "func_004CE1D0", "size": "248", @@ -165206,15 +168833,6 @@ "virtual_address": "5042688" } }, - { - "name": "func_004CF950", - "size": "240", - "fuzzy_match_percent": 0.0, - "address": "62552", - "metadata": { - "virtual_address": "5044560" - } - }, { "name": "func_004CFAD8", "size": "336", @@ -165246,11 +168864,11 @@ { "name": "main/.text/004Dxxxx", "measures": { - "fuzzy_match_percent": 8.873835, - "total_code": "34168", + "fuzzy_match_percent": 9.102152, + "total_code": "30784", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 105, + "total_functions": 96, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -165493,15 +169111,6 @@ "virtual_address": "5064600" } }, - { - "name": "func_004D4C58", - "size": "548", - "fuzzy_match_percent": 0.0, - "address": "19488", - "metadata": { - "virtual_address": "5065816" - } - }, { "name": "func_004D4E80", "size": "828", @@ -165547,15 +169156,6 @@ "virtual_address": "5069856" } }, - { - "name": "func_004D6378", - "size": "296", - "fuzzy_match_percent": 0.0, - "address": "25408", - "metadata": { - "virtual_address": "5071736" - } - }, { "name": "func_004D64F0", "size": "2272", @@ -165637,15 +169237,6 @@ "virtual_address": "5079928" } }, - { - "name": "func_004D8A18", - "size": "212", - "fuzzy_match_percent": 0.0, - "address": "35296", - "metadata": { - "virtual_address": "5081624" - } - }, { "name": "func_004D8B78", "size": "4", @@ -165655,24 +169246,6 @@ "virtual_address": "5081976" } }, - { - "name": "func_004D9048", - "size": "544", - "fuzzy_match_percent": 0.0, - "address": "36880", - "metadata": { - "virtual_address": "5083208" - } - }, - { - "name": "func_004D9408", - "size": "236", - "fuzzy_match_percent": 97.46, - "address": "37840", - "metadata": { - "virtual_address": "5084168" - } - }, { "name": "func_004D94F8", "size": "196", @@ -165691,15 +169264,6 @@ "virtual_address": "5084608" } }, - { - "name": "func_004D9A48", - "size": "212", - "fuzzy_match_percent": 0.0, - "address": "39440", - "metadata": { - "virtual_address": "5085768" - } - }, { "name": "func_004D9DB8", "size": "4", @@ -165709,15 +169273,6 @@ "virtual_address": "5086648" } }, - { - "name": "func_004DA2D8", - "size": "780", - "fuzzy_match_percent": 0.0, - "address": "41632", - "metadata": { - "virtual_address": "5087960" - } - }, { "name": "func_004DA5E8", "size": "340", @@ -165754,15 +169309,6 @@ "virtual_address": "5089824" } }, - { - "name": "func_004DAA78", - "size": "276", - "fuzzy_match_percent": 0.0, - "address": "43584", - "metadata": { - "virtual_address": "5089912" - } - }, { "name": "func_004DB1D8", "size": "376", @@ -166087,15 +169633,6 @@ "virtual_address": "5107448" } }, - { - "name": "func_004DEF78", - "size": "280", - "fuzzy_match_percent": 0.0, - "address": "61248", - "metadata": { - "virtual_address": "5107576" - } - }, { "name": "func_004DF090", "size": "4", @@ -166217,11 +169754,11 @@ { "name": "main/.text/004Exxxx", "measures": { - "fuzzy_match_percent": 0.524335, - "total_code": "53592", + "fuzzy_match_percent": 0.526457, + "total_code": "53376", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 120, + "total_functions": 119, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -167076,15 +170613,6 @@ "virtual_address": "5168800" } }, - { - "name": "func_004EE150", - "size": "216", - "fuzzy_match_percent": 0.0, - "address": "57592", - "metadata": { - "virtual_address": "5169488" - } - }, { "name": "func_004EE230", "size": "4", @@ -167323,11 +170851,11 @@ { "name": "main/.text/004Fxxxx", "measures": { - "fuzzy_match_percent": 5.211614, - "total_code": "46684", + "fuzzy_match_percent": 4.480958, + "total_code": "44432", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 136, + "total_functions": 128, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -167363,15 +170891,6 @@ "virtual_address": "5178880" } }, - { - "name": "func_004F0660", - "size": "276", - "fuzzy_match_percent": 0.0, - "address": "656", - "metadata": { - "virtual_address": "5178976" - } - }, { "name": "func_004F1010", "size": "488", @@ -167426,15 +170945,6 @@ "virtual_address": "5184792" } }, - { - "name": "func_004F1D20", - "size": "204", - "fuzzy_match_percent": 0.0, - "address": "6480", - "metadata": { - "virtual_address": "5184800" - } - }, { "name": "func_004F1E38", "size": "100", @@ -167444,15 +170954,6 @@ "virtual_address": "5185080" } }, - { - "name": "func_004F1EA0", - "size": "424", - "fuzzy_match_percent": 0.0, - "address": "6864", - "metadata": { - "virtual_address": "5185184" - } - }, { "name": "func_004F2268", "size": "88", @@ -167624,15 +171125,6 @@ "virtual_address": "5198040" } }, - { - "name": "func_004F5350", - "size": "112", - "fuzzy_match_percent": 0.0, - "address": "20352", - "metadata": { - "virtual_address": "5198672" - } - }, { "name": "func_004F5700", "size": "360", @@ -167840,15 +171332,6 @@ "virtual_address": "5210064" } }, - { - "name": "func_004F7FD8", - "size": "508", - "fuzzy_match_percent": 87.01, - "address": "31752", - "metadata": { - "virtual_address": "5210072" - } - }, { "name": "func_004F81D8", "size": "4", @@ -168020,15 +171503,6 @@ "virtual_address": "5219224" } }, - { - "name": "func_004FAAA8", - "size": "212", - "fuzzy_match_percent": 0.0, - "address": "42712", - "metadata": { - "virtual_address": "5221032" - } - }, { "name": "func_004FAC38", "size": "716", @@ -168137,15 +171611,6 @@ "virtual_address": "5227144" } }, - { - "name": "func_004FC310", - "size": "248", - "fuzzy_match_percent": 0.0, - "address": "48960", - "metadata": { - "virtual_address": "5227280" - } - }, { "name": "func_004FC518", "size": "308", @@ -168434,15 +171899,6 @@ "virtual_address": "5238320" } }, - { - "name": "func_004FEF80", - "size": "268", - "fuzzy_match_percent": 0.0, - "address": "60336", - "metadata": { - "virtual_address": "5238656" - } - }, { "name": "func_004FF090", "size": "192", @@ -168573,11 +172029,11 @@ { "name": "main/.text/0050xxxx", "measures": { - "fuzzy_match_percent": 4.697311, - "total_code": "24056", + "fuzzy_match_percent": 5.531551, + "total_code": "20428", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 92, + "total_functions": 80, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -168784,15 +172240,6 @@ "virtual_address": "5250920" } }, - { - "name": "func_00502510", - "size": "548", - "fuzzy_match_percent": 0.0, - "address": "8808", - "metadata": { - "virtual_address": "5252368" - } - }, { "name": "func_005027D0", "size": "12", @@ -168865,15 +172312,6 @@ "virtual_address": "5258968" } }, - { - "name": "func_005040B0", - "size": "376", - "fuzzy_match_percent": 0.0, - "address": "15880", - "metadata": { - "virtual_address": "5259440" - } - }, { "name": "func_00504330", "size": "4", @@ -168883,24 +172321,6 @@ "virtual_address": "5260080" } }, - { - "name": "func_00504550", - "size": "244", - "fuzzy_match_percent": 0.0, - "address": "17064", - "metadata": { - "virtual_address": "5260624" - } - }, - { - "name": "func_00504648", - "size": "244", - "fuzzy_match_percent": 0.0, - "address": "17312", - "metadata": { - "virtual_address": "5260872" - } - }, { "name": "func_00504838", "size": "4", @@ -168937,15 +172357,6 @@ "virtual_address": "5261984" } }, - { - "name": "func_00504AA8", - "size": "228", - "fuzzy_match_percent": 0.0, - "address": "18432", - "metadata": { - "virtual_address": "5261992" - } - }, { "name": "func_00504C78", "size": "4", @@ -168973,15 +172384,6 @@ "virtual_address": "5263200" } }, - { - "name": "func_00504F68", - "size": "212", - "fuzzy_match_percent": 0.0, - "address": "19648", - "metadata": { - "virtual_address": "5263208" - } - }, { "name": "func_00505230", "size": "4", @@ -168991,15 +172393,6 @@ "virtual_address": "5263920" } }, - { - "name": "func_00505238", - "size": "228", - "fuzzy_match_percent": 0.0, - "address": "20368", - "metadata": { - "virtual_address": "5263928" - } - }, { "name": "func_00505320", "size": "4", @@ -169009,15 +172402,6 @@ "virtual_address": "5264160" } }, - { - "name": "func_00505328", - "size": "228", - "fuzzy_match_percent": 0.0, - "address": "20608", - "metadata": { - "virtual_address": "5264168" - } - }, { "name": "func_005058D8", "size": "4", @@ -169153,15 +172537,6 @@ "virtual_address": "5273928" } }, - { - "name": "func_005081B0", - "size": "376", - "fuzzy_match_percent": 0.0, - "address": "32520", - "metadata": { - "virtual_address": "5276080" - } - }, { "name": "func_0050BE00", "size": "140", @@ -169171,24 +172546,6 @@ "virtual_address": "5291520" } }, - { - "name": "func_0050BE90", - "size": "276", - "fuzzy_match_percent": 0.0, - "address": "48104", - "metadata": { - "virtual_address": "5291664" - } - }, - { - "name": "func_0050C100", - "size": "428", - "fuzzy_match_percent": 0.0, - "address": "48728", - "metadata": { - "virtual_address": "5292288" - } - }, { "name": "func_0050C370", "size": "320", @@ -169225,15 +172582,6 @@ "virtual_address": "5293920" } }, - { - "name": "func_0050C7D8", - "size": "240", - "fuzzy_match_percent": 0.0, - "address": "50480", - "metadata": { - "virtual_address": "5294040" - } - }, { "name": "func_0050C8C8", "size": "220", @@ -169427,11 +172775,11 @@ { "name": "main/.text/0051xxxx", "measures": { - "fuzzy_match_percent": 2.467748, - "total_code": "58516", + "fuzzy_match_percent": 2.492453, + "total_code": "57936", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 112, + "total_functions": 110, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -169611,15 +172959,6 @@ "virtual_address": "5312584" } }, - { - "name": "func_00511060", - "size": "240", - "fuzzy_match_percent": 0.0, - "address": "2800", - "metadata": { - "virtual_address": "5312608" - } - }, { "name": "func_005111D0", "size": "200", @@ -170142,15 +173481,6 @@ "virtual_address": "5349648" } }, - { - "name": "func_0051A638", - "size": "340", - "fuzzy_match_percent": 0.0, - "address": "41160", - "metadata": { - "virtual_address": "5350968" - } - }, { "name": "func_0051A820", "size": "372", @@ -171126,11 +174456,11 @@ { "name": "main/.text/0053xxxx", "measures": { - "fuzzy_match_percent": 0.997905, - "total_code": "63332", + "fuzzy_match_percent": 1.002019, + "total_code": "63072", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 41, + "total_functions": 40, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -171310,15 +174640,6 @@ "virtual_address": "5493840" } }, - { - "name": "func_0053D6E0", - "size": "260", - "fuzzy_match_percent": 0.0, - "address": "54504", - "metadata": { - "virtual_address": "5494496" - } - }, { "name": "func_0053D7E8", "size": "4", @@ -171521,11 +174842,11 @@ { "name": "main/.text/0054xxxx", "measures": { - "fuzzy_match_percent": 2.450505, - "total_code": "42972", + "fuzzy_match_percent": 2.509128, + "total_code": "41968", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 88, + "total_functions": 85, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -171858,15 +175179,6 @@ "virtual_address": "5537912" } }, - { - "name": "func_005480A8", - "size": "256", - "fuzzy_match_percent": 0.0, - "address": "32728", - "metadata": { - "virtual_address": "5537960" - } - }, { "name": "func_005481A8", "size": "216", @@ -172038,15 +175350,6 @@ "virtual_address": "5546032" } }, - { - "name": "func_0054A0C0", - "size": "204", - "fuzzy_match_percent": 0.0, - "address": "40944", - "metadata": { - "virtual_address": "5546176" - } - }, { "name": "func_0054A260", "size": "4", @@ -172299,15 +175602,6 @@ "virtual_address": "5556416" } }, - { - "name": "func_0054CC60", - "size": "544", - "fuzzy_match_percent": 0.0, - "address": "52112", - "metadata": { - "virtual_address": "5557344" - } - }, { "name": "func_0054CEE8", "size": "1016", @@ -174976,10 +178270,10 @@ "name": "main/core.text/0013xxxx", "measures": { "fuzzy_match_percent": 0.0, - "total_code": "43816", + "total_code": "43712", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 124, + "total_functions": 123, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -175573,15 +178867,6 @@ "virtual_address": "1285528" } }, - { - "name": "func_00139DA0", - "size": "104", - "fuzzy_match_percent": 0.0, - "address": "39200", - "metadata": { - "virtual_address": "1285536" - } - }, { "name": "func_00139E08", "size": "28", @@ -177422,11 +180707,11 @@ { "name": "main/core.text/0015xxxx", "measures": { - "fuzzy_match_percent": 0.327174, - "total_code": "49516", + "fuzzy_match_percent": 0.327916, + "total_code": "49404", "matched_code": "0", "matched_code_percent": 0.0, - "total_functions": 201, + "total_functions": 200, "matched_functions": 0, "matched_functions_percent": 0.0, "complete_code": "0", @@ -178524,15 +181809,6 @@ "virtual_address": "1413712" } }, - { - "name": "func_00159258", - "size": "112", - "fuzzy_match_percent": 0.0, - "address": "36880", - "metadata": { - "virtual_address": "1413720" - } - }, { "name": "func_001592C8", "size": "12", @@ -193270,13 +196546,13 @@ { "name": "Shared level code", "measures": { - "fuzzy_match_percent": 8.745209, + "fuzzy_match_percent": 9.459374, "total_code": "1980624", - "matched_code": "164492", - "matched_code_percent": 8.305059, + "matched_code": "179088", + "matched_code_percent": 9.041999, "total_functions": 5096, - "matched_functions": 1993, - "matched_functions_percent": 39.109105, + "matched_functions": 2053, + "matched_functions_percent": 40.286499, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -193466,7 +196742,7 @@ { "name": "func_L01_003C9A68", "size": "428", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "18944", "metadata": { "virtual_address": "3971688" @@ -194456,7 +197732,7 @@ { "name": "func_L01_003DAF28", "size": "460", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "89792", "metadata": { "virtual_address": "4042536" @@ -195239,7 +198515,7 @@ { "name": "func_L01_003EE950", "size": "172", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "170216", "metadata": { "virtual_address": "4122960" @@ -196580,7 +199856,7 @@ { "name": "func_L01_00412848", "size": "340", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "317408", "metadata": { "virtual_address": "4270152" @@ -197948,7 +201224,7 @@ { "name": "func_L01_00431B38", "size": "400", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "445136", "metadata": { "virtual_address": "4397880" @@ -199586,7 +202862,7 @@ { "name": "func_L01_00450348", "size": "336", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "570080", "metadata": { "virtual_address": "4522824" @@ -199730,7 +203006,7 @@ { "name": "func_L01_00452D40", "size": "208", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "580824", "metadata": { "virtual_address": "4533568" @@ -199829,7 +203105,7 @@ { "name": "func_L01_00453820", "size": "268", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "583608", "metadata": { "virtual_address": "4536352" @@ -201620,7 +204896,7 @@ { "name": "func_L01_00469C88", "size": "56", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "674848", "metadata": { "virtual_address": "4627592" @@ -203843,7 +207119,7 @@ { "name": "func_L01_0048DF40", "size": "388", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "823000", "metadata": { "virtual_address": "4775744" @@ -205040,7 +208316,7 @@ { "name": "func_L01_00495A60", "size": "56", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "854520", "metadata": { "virtual_address": "4807264" @@ -205166,7 +208442,7 @@ { "name": "func_L04_00497910", "size": "108", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "862376", "metadata": { "virtual_address": "4815120" @@ -205553,7 +208829,7 @@ { "name": "func_L01_0049A7E8", "size": "260", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "874368", "metadata": { "virtual_address": "4827112" @@ -205598,7 +208874,7 @@ { "name": "func_L06_0049AFE8", "size": "604", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "876416", "metadata": { "virtual_address": "4829160" @@ -206696,7 +209972,7 @@ { "name": "func_L01_004AC628", "size": "220", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "947648", "metadata": { "virtual_address": "4900392" @@ -206777,7 +210053,7 @@ { "name": "func_L01_004ADC38", "size": "56", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "953296", "metadata": { "virtual_address": "4906040" @@ -207488,7 +210764,7 @@ { "name": "func_L01_004B3FE8", "size": "56", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "978816", "metadata": { "virtual_address": "4931560" @@ -208361,7 +211637,7 @@ { "name": "func_L01_004C1D28", "size": "260", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1035456", "metadata": { "virtual_address": "4988200" @@ -209180,7 +212456,7 @@ { "name": "func_L06_004C7378", "size": "120", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1057552", "metadata": { "virtual_address": "5010296" @@ -209342,7 +212618,7 @@ { "name": "func_L01_004C7C58", "size": "56", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1059824", "metadata": { "virtual_address": "5012568" @@ -209540,7 +212816,7 @@ { "name": "func_L06_004C8388", "size": "84", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1061664", "metadata": { "virtual_address": "5014408" @@ -209738,7 +213014,7 @@ { "name": "func_L01_004C9148", "size": "256", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1065184", "metadata": { "virtual_address": "5017928" @@ -210134,7 +213410,7 @@ { "name": "func_L02_004CB2E8", "size": "140", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1073792", "metadata": { "virtual_address": "5026536" @@ -211025,7 +214301,7 @@ { "name": "func_L01_004D8C60", "size": "184", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1129464", "metadata": { "virtual_address": "5082208" @@ -212087,7 +215363,7 @@ { "name": "func_L02_004E6370", "size": "624", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1184520", "metadata": { "virtual_address": "5137264" @@ -212870,7 +216146,7 @@ { "name": "func_L05_004EEEC8", "size": "276", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1220192", "metadata": { "virtual_address": "5172936" @@ -213104,7 +216380,7 @@ { "name": "func_L01_004F2F20", "size": "260", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1236664", "metadata": { "virtual_address": "5189408" @@ -213887,7 +217163,7 @@ { "name": "func_L01_00500548", "size": "468", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1291488", "metadata": { "virtual_address": "5244232" @@ -213914,7 +217190,7 @@ { "name": "func_L01_005008D8", "size": "460", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1292400", "metadata": { "virtual_address": "5245144" @@ -214013,7 +217289,7 @@ { "name": "func_L01_00501688", "size": "268", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1295904", "metadata": { "virtual_address": "5248648" @@ -214049,7 +217325,7 @@ { "name": "func_L01_00501B38", "size": "220", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1297104", "metadata": { "virtual_address": "5249848" @@ -214058,7 +217334,7 @@ { "name": "func_L01_00501C18", "size": "124", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1297328", "metadata": { "virtual_address": "5250072" @@ -214427,7 +217703,7 @@ { "name": "func_L01_0051D538", "size": "112", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1410256", "metadata": { "virtual_address": "5363000" @@ -214436,7 +217712,7 @@ { "name": "func_L01_0051D7F0", "size": "88", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1410952", "metadata": { "virtual_address": "5363696" @@ -215534,7 +218810,7 @@ { "name": "func_L01_0055CBE0", "size": "48", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1670008", "metadata": { "virtual_address": "5622752" @@ -216128,7 +219404,7 @@ { "name": "func_L01_0056D0C8", "size": "440", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1736800", "metadata": { "virtual_address": "5689544" @@ -216452,7 +219728,7 @@ { "name": "func_L01_0056F250", "size": "68", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1745384", "metadata": { "virtual_address": "5698128" @@ -217208,7 +220484,7 @@ { "name": "func_L01_00585D40", "size": "68", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1838296", "metadata": { "virtual_address": "5791040" @@ -218684,7 +221960,7 @@ { "name": "func_L00_00599710", "size": "516", - "fuzzy_match_percent": 84.88, + "fuzzy_match_percent": 100.0, "address": "1918632", "metadata": { "virtual_address": "5871376" @@ -219503,7 +222779,7 @@ { "name": "func_L01_005A37B8", "size": "124", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1959760", "metadata": { "virtual_address": "5912504" @@ -220493,7 +223769,7 @@ { "name": "func_L01_005B4EB0", "size": "52", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2031176", "metadata": { "virtual_address": "5983920" @@ -223589,7 +226865,7 @@ { "name": "func_L00_006027E8", "size": "228", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2348928", "metadata": { "virtual_address": "6301672" @@ -223598,7 +226874,7 @@ { "name": "func_L00_006028D0", "size": "228", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2349160", "metadata": { "virtual_address": "6301904" @@ -223616,7 +226892,7 @@ { "name": "func_L00_00602AA0", "size": "228", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2349624", "metadata": { "virtual_address": "6302368" @@ -223625,7 +226901,7 @@ { "name": "func_L00_00602B88", "size": "204", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2349856", "metadata": { "virtual_address": "6302600" @@ -223634,7 +226910,7 @@ { "name": "func_L00_00602C58", "size": "204", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2350064", "metadata": { "virtual_address": "6302808" @@ -223643,7 +226919,7 @@ { "name": "func_L00_00602D28", "size": "228", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2350272", "metadata": { "virtual_address": "6303016" @@ -223652,7 +226928,7 @@ { "name": "func_L00_00602E10", "size": "228", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2350504", "metadata": { "virtual_address": "6303248" @@ -223661,7 +226937,7 @@ { "name": "func_L00_00602EF8", "size": "228", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2350736", "metadata": { "virtual_address": "6303480" @@ -223670,7 +226946,7 @@ { "name": "func_L00_00602FE0", "size": "228", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2350968", "metadata": { "virtual_address": "6303712" @@ -226514,7 +229790,7 @@ { "name": "func_L00_006282F0", "size": "376", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2503304", "metadata": { "virtual_address": "6456048" @@ -227513,7 +230789,7 @@ { "name": "func_L01_0063B1B8", "size": "48", - "fuzzy_match_percent": 27.27, + "fuzzy_match_percent": 100.0, "address": "2580816", "metadata": { "virtual_address": "6533560" @@ -227954,7 +231230,7 @@ { "name": "func_L00_00644D18", "size": "476", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2620592", "metadata": { "virtual_address": "6573336" @@ -228152,7 +231428,7 @@ { "name": "func_L00_0064DC68", "size": "476", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2657280", "metadata": { "virtual_address": "6610024" @@ -229907,7 +233183,7 @@ { "name": "func_L00_00666CE8", "size": "264", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2759808", "metadata": { "virtual_address": "6712552" @@ -232049,7 +235325,7 @@ { "name": "func_L00_0069C6A8", "size": "244", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2979392", "metadata": { "virtual_address": "6932136" @@ -232076,7 +235352,7 @@ { "name": "func_L00_0069C890", "size": "244", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2979880", "metadata": { "virtual_address": "6932624" @@ -232211,7 +235487,7 @@ { "name": "func_L00_0069D7A8", "size": "276", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2983744", "metadata": { "virtual_address": "6936488" @@ -232517,7 +235793,7 @@ { "name": "func_L00_006A06A0", "size": "376", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2995768", "metadata": { "virtual_address": "6948512" @@ -235487,7 +238763,7 @@ { "name": "func_L00_006E8D78", "size": "80", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "3292432", "metadata": { "virtual_address": "7245176" @@ -239160,13 +242436,13 @@ { "name": "Level 00: Multiplayer Menu", "measures": { - "fuzzy_match_percent": 14.844584, + "fuzzy_match_percent": 15.496778, "total_code": "942664", - "matched_code": "128572", - "matched_code_percent": 13.639218, + "matched_code": "134720", + "matched_code_percent": 14.291412, "total_functions": 2810, - "matched_functions": 1045, - "matched_functions_percent": 37.188612, + "matched_functions": 1082, + "matched_functions_percent": 38.505338, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -240229,7 +243505,7 @@ { "name": "func_L00_004F8F78", "size": "260", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "41080", "metadata": { "virtual_address": "5214072" @@ -240517,7 +243793,7 @@ { "name": "func_L00_004FD6B8", "size": "256", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "59320", "metadata": { "virtual_address": "5232312" @@ -241201,7 +244477,7 @@ { "name": "func_L00_00501980", "size": "260", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "76416", "metadata": { "virtual_address": "5249408" @@ -241399,7 +244675,7 @@ { "name": "func_L00_00505368", "size": "268", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "91240", "metadata": { "virtual_address": "5264232" @@ -244297,7 +247573,7 @@ { "name": "func_L00_0051E1D8", "size": "104", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "193240", "metadata": { "virtual_address": "5366232" @@ -245062,7 +248338,7 @@ { "name": "func_L00_00526DA8", "size": "260", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "229032", "metadata": { "virtual_address": "5402024" @@ -248356,7 +251632,7 @@ { "name": "func_L00_00545C48", "size": "104", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "355656", "metadata": { "virtual_address": "5528648" @@ -248644,7 +251920,7 @@ { "name": "func_L00_00551DA0", "size": "48", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "405152", "metadata": { "virtual_address": "5578144" @@ -249517,7 +252793,7 @@ { "name": "func_L00_00565150", "size": "104", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "483920", "metadata": { "virtual_address": "5656912" @@ -249544,7 +252820,7 @@ { "name": "func_L00_005661C8", "size": "104", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "488136", "metadata": { "virtual_address": "5661128" @@ -250921,7 +254197,7 @@ { "name": "func_L00_0069DA50", "size": "244", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1764176", "metadata": { "virtual_address": "6937168" @@ -252946,7 +256222,7 @@ { "name": "func_L00_00711478", "size": "132", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2237816", "metadata": { "virtual_address": "7410808" @@ -253279,7 +256555,7 @@ { "name": "func_L00_007121A0", "size": "128", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2241184", "metadata": { "virtual_address": "7414176" @@ -253288,7 +256564,7 @@ { "name": "func_L00_00712220", "size": "128", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2241312", "metadata": { "virtual_address": "7414304" @@ -253585,7 +256861,7 @@ { "name": "func_L00_00713360", "size": "48", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2245728", "metadata": { "virtual_address": "7418720" @@ -253828,7 +257104,7 @@ { "name": "func_L00_007141C8", "size": "56", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2249416", "metadata": { "virtual_address": "7422408" @@ -254215,7 +257491,7 @@ { "name": "func_L00_00714F10", "size": "380", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2252816", "metadata": { "virtual_address": "7425808" @@ -254647,7 +257923,7 @@ { "name": "func_L00_00717580", "size": "248", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2262656", "metadata": { "virtual_address": "7435648" @@ -254656,7 +257932,7 @@ { "name": "func_L00_00717678", "size": "248", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2262904", "metadata": { "virtual_address": "7435896" @@ -254674,7 +257950,7 @@ { "name": "func_L00_007177B0", "size": "248", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2263216", "metadata": { "virtual_address": "7436208" @@ -254683,7 +257959,7 @@ { "name": "func_L00_007178A8", "size": "56", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2263464", "metadata": { "virtual_address": "7436456" @@ -255943,7 +259219,7 @@ { "name": "func_L00_00721A28", "size": "456", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2304808", "metadata": { "virtual_address": "7477800" @@ -256186,7 +259462,7 @@ { "name": "func_L00_00725150", "size": "52", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2318928", "metadata": { "virtual_address": "7491920" @@ -256195,7 +259471,7 @@ { "name": "func_L00_00725188", "size": "456", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2318984", "metadata": { "virtual_address": "7491976" @@ -256555,7 +259831,7 @@ { "name": "func_L00_0072BD20", "size": "80", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2346528", "metadata": { "virtual_address": "7519520" @@ -256681,7 +259957,7 @@ { "name": "func_L00_0072FDF0", "size": "80", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2363120", "metadata": { "virtual_address": "7536112" @@ -256960,7 +260236,7 @@ { "name": "func_L00_00734928", "size": "80", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2382376", "metadata": { "virtual_address": "7555368" @@ -257482,7 +260758,7 @@ { "name": "func_L00_0073F590", "size": "88", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2426512", "metadata": { "virtual_address": "7599504" @@ -258319,7 +261595,7 @@ { "name": "func_L00_0074AC98", "size": "80", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2473368", "metadata": { "virtual_address": "7646360" @@ -258706,7 +261982,7 @@ { "name": "func_L00_007527A8", "size": "56", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2504872", "metadata": { "virtual_address": "7677864" @@ -259327,7 +262603,7 @@ { "name": "func_L00_0075B8F8", "size": "260", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2542072", "metadata": { "virtual_address": "7715064" @@ -260506,7 +263782,7 @@ { "name": "func_L00_00766EB8", "size": "380", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2588600", "metadata": { "virtual_address": "7761592" @@ -261766,7 +265042,7 @@ { "name": "func_L00_00770340", "size": "76", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2626624", "metadata": { "virtual_address": "7799616" @@ -261901,7 +265177,7 @@ { "name": "func_L00_00770DB0", "size": "64", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2629296", "metadata": { "virtual_address": "7802288" @@ -262027,7 +265303,7 @@ { "name": "func_L00_00771A48", "size": "60", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2632520", "metadata": { "virtual_address": "7805512" @@ -262162,7 +265438,7 @@ { "name": "func_L00_00772B88", "size": "60", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2636936", "metadata": { "virtual_address": "7809928" @@ -263161,7 +266437,7 @@ { "name": "func_L00_00777150", "size": "136", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "2654800", "metadata": { "virtual_address": "7827792" @@ -264477,13 +267753,13 @@ { "name": "Level 01: Dreadzone Station (and 21)", "measures": { - "fuzzy_match_percent": 4.447354, + "fuzzy_match_percent": 4.857034, "total_code": "189416", - "matched_code": "8424", - "matched_code_percent": 4.447354, + "matched_code": "9200", + "matched_code_percent": 4.857034, "total_functions": 373, - "matched_functions": 123, - "matched_functions_percent": 32.975871, + "matched_functions": 127, + "matched_functions_percent": 34.048257, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -265330,7 +268606,7 @@ { "name": "func_L01_004B8F68", "size": "56", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "966520", "metadata": { "virtual_address": "4951912" @@ -265564,7 +268840,7 @@ { "name": "func_L01_004D9AD8", "size": "216", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1100520", "metadata": { "virtual_address": "5085912" @@ -265888,7 +269164,7 @@ { "name": "func_L01_004E49D8", "size": "224", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1145320", "metadata": { "virtual_address": "5130712" @@ -265906,7 +269182,7 @@ { "name": "func_L01_004E4B20", "size": "280", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1145648", "metadata": { "virtual_address": "5131040" @@ -268392,13 +271668,13 @@ { "name": "Level 05: Dark Cathedral (and 25)", "measures": { - "fuzzy_match_percent": 1.957415, + "fuzzy_match_percent": 3.000475, "total_code": "59824", - "matched_code": "1076", - "matched_code_percent": 1.798609, + "matched_code": "1700", + "matched_code_percent": 2.841669, "total_functions": 102, - "matched_functions": 24, - "matched_functions_percent": 23.529412, + "matched_functions": 25, + "matched_functions_percent": 24.509804, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -269263,7 +272539,7 @@ { "name": "func_L05_0050A5F8", "size": "624", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "1311080", "metadata": { "virtual_address": "5285368" @@ -270534,13 +273810,13 @@ { "name": "Level 10: Torval Ruins (and 30)", "measures": { - "fuzzy_match_percent": 1.549156, + "fuzzy_match_percent": 2.24429, "total_code": "20140", - "matched_code": "312", - "matched_code_percent": 1.549156, + "matched_code": "452", + "matched_code_percent": 2.24429, "total_functions": 37, - "matched_functions": 7, - "matched_functions_percent": 18.918919, + "matched_functions": 8, + "matched_functions_percent": 21.621622, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -270865,7 +274141,7 @@ { "name": "func_L10_004DCC58", "size": "140", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "981528", "metadata": { "virtual_address": "5098584" @@ -270894,13 +274170,13 @@ { "name": "Level 11: Tempus Station (and 31)", "measures": { - "fuzzy_match_percent": 2.415679, + "fuzzy_match_percent": 5.697356, "total_code": "8776", - "matched_code": "212", - "matched_code_percent": 2.415679, + "matched_code": "500", + "matched_code_percent": 5.697356, "total_functions": 15, - "matched_functions": 3, - "matched_functions_percent": 20.0, + "matched_functions": 4, + "matched_functions_percent": 26.666667, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -270973,7 +274249,7 @@ { "name": "func_L11_00492768", "size": "288", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "629384", "metadata": { "virtual_address": "4794216" @@ -271056,13 +274332,13 @@ { "name": "Level 13: Maraxus Prison (and 33)", "measures": { - "fuzzy_match_percent": 4.502187, + "fuzzy_match_percent": 8.438384, "total_code": "15548", - "matched_code": "700", - "matched_code_percent": 4.502187, + "matched_code": "1312", + "matched_code_percent": 8.438384, "total_functions": 33, - "matched_functions": 12, - "matched_functions_percent": 36.363636, + "matched_functions": 14, + "matched_functions_percent": 42.424242, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -271198,7 +274474,7 @@ { "name": "func_L13_0046D2E8", "size": "252", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "583672", "metadata": { "virtual_address": "4641512" @@ -271225,7 +274501,7 @@ { "name": "func_L13_004BD628", "size": "360", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "912184", "metadata": { "virtual_address": "4970024" @@ -271668,13 +274944,13 @@ { "name": "Level 15: Control Level (and 35)", "measures": { - "fuzzy_match_percent": 1.461285, + "fuzzy_match_percent": 1.726035, "total_code": "116336", - "matched_code": "1700", - "matched_code_percent": 1.461285, + "matched_code": "2008", + "matched_code_percent": 1.726035, "total_functions": 134, - "matched_functions": 26, - "matched_functions_percent": 19.402985, + "matched_functions": 27, + "matched_functions_percent": 20.149254, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -272107,7 +275383,7 @@ { "name": "func_L15_004D6FD0", "size": "308", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "913808", "metadata": { "virtual_address": "5074896" @@ -272901,13 +276177,13 @@ { "name": "Level 41: Battledome Tower (all 22 multiplayer maps)", "measures": { - "fuzzy_match_percent": 13.311549, + "fuzzy_match_percent": 13.497285, "total_code": "139984", - "matched_code": "16236", - "matched_code_percent": 11.598468, + "matched_code": "16496", + "matched_code_percent": 11.784204, "total_functions": 375, - "matched_functions": 164, - "matched_functions_percent": 43.733333, + "matched_functions": 165, + "matched_functions_percent": 44.0, "complete_code": "0", "complete_code_percent": 0.0, "total_units": 1, @@ -275311,7 +278587,7 @@ { "name": "func_L41_004484C8", "size": "260", - "fuzzy_match_percent": 0.0, + "fuzzy_match_percent": 100.0, "address": "576632", "metadata": { "virtual_address": "4490440" diff --git a/src/pal/core/00139DA0.c b/src/core/00139DA0.c similarity index 86% rename from src/pal/core/00139DA0.c rename to src/core/00139DA0.c index 04f52146..7794314a 100644 --- a/src/pal/core/00139DA0.c +++ b/src/core/00139DA0.c @@ -2,7 +2,7 @@ #include "common.h" extern u32 func_00139A58(u32); extern void func_001399E0(void *); -/* Programs channel registers after waiting for the prior transfer. */ + void func_00139DA0(u8 *object, u32 address) { u32 value = func_00139A58(address); diff --git a/src/core/00159258.c b/src/core/00159258.c new file mode 100644 index 00000000..a9f8f573 --- /dev/null +++ b/src/core/00159258.c @@ -0,0 +1,20 @@ +#include "common.h" + +extern void func_00158C70(s32 a0, s32 a1, void *a2, s32 a3, s64 t0); + +void func_00159258(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 arg10, s64 arg11) { + s32 buf[8]; + s32 p02; + s32 p13; + p13 = ((u32)arg5 << 16) | (arg3 & 0xFFFF); + p02 = ((u32)arg4 << 16) | (arg2 & 0xFFFF); + buf[0] = arg0; + buf[1] = arg1; + buf[2] = p02; + buf[3] = p13; + buf[4] = arg6; + buf[5] = arg7; + buf[6] = arg8; + buf[7] = arg9; + func_00158C70(0x2C, 0x20, buf, arg10, arg11); +} diff --git a/src/game/0041DA98.c b/src/game/0041DA98.c new file mode 100644 index 00000000..868a1868 --- /dev/null +++ b/src/game/0041DA98.c @@ -0,0 +1,78 @@ +#include "common.h" + +typedef struct Hero Hero; +typedef struct Entity Entity; +typedef struct Vars Vars; +typedef struct HeroVtable { + u8 unknown0[0x4C]; + s32 (*identifier)(Hero *hero); +} HeroVtable; +struct Hero { + u8 unknown0[0x14]; + HeroVtable *vtable; + u8 unknown18[0x25B4]; + s32 state; + u8 unknown25D0[0x9D]; + u8 active; +}; +struct Entity { + u8 unknown0[0x20]; + u8 state; + u8 unknown21[2]; + u8 mode; + u8 unknown24[0x88]; + void *vars; + u8 unknownB0[0xC]; + s16 classId; +}; +struct Vars { + Entity *target; + u8 unknown4[8]; + Hero *hero; + u8 unknown10[0x10]; + Entity *effect; + u8 unknown24[0xA]; + u8 active; +}; + +extern s32 D_0021DD9C; +extern void func_0041D860(Entity *entity); +extern void func_0041D948(Entity *entity); +extern Hero *func_00510C30(Hero *hero); +extern void func_004E8DD0(void *first, void *second, s32 flags, s32 reserved, Hero *hero, f32 scale); + +void func_0041DA98(Entity *entity) +{ + Vars *vars; + Hero *hero; + + if (!entity || entity->state == 0xFE || entity->state == 0xFD) { + return; + } + vars = entity->vars; + hero = vars->hero; + if (entity->mode >= 0x40) { + func_0041D860(entity); + } + if (!vars->target || vars->target->state == 0xFE || + vars->target->state == 0xFD || vars->target->classId != 0x1099) { + return; + } + if (entity->mode >= 0x40) { + func_0041D948(entity); + } + if (!hero || !hero->active) { + return; + } + if (hero->vtable->identifier(hero) != D_0021DD9C || entity->state != 4 || + vars->hero->state == 0xE || !vars->effect || !hero->active || !vars->active) { + return; + } + { + u32 effect = (u32)vars->effect->vars; + void *first = (void *)(effect + 0xF0); + void *second = (void *)(effect + 0x100); + Hero *activeHero = func_00510C30(hero); + func_004E8DD0(first, second, 0, 1, activeHero, 1.0f); + } +} diff --git a/src/game/0041E280.c b/src/game/0041E280.c new file mode 100644 index 00000000..b426e4b9 --- /dev/null +++ b/src/game/0041E280.c @@ -0,0 +1,32 @@ +#include "common.h" + +extern void func_00549560(s32, s32, s32); +extern void func_00415F40(s32, u8 *, s32); +extern u8 *func_0054A290(s32, s32); +extern s32 func_0054BCF0(s32, s32, s32); +extern void func_00474368(u8 *, s32, s32); + +void func_0041E280(u8 *moby) { + u8 *vars = *(u8 **)(moby + 0xAC); + u8 *v; + f32 speed; + s32 n; + s32 id; + + if (*(u8 **)(vars + 0xC) != NULL) { + id = *(s32 *)(vars + 0); + func_00549560(*(s32 *)(*(u8 **)(vars + 0xC) + 0x26E4), 6, 1); + func_00415F40(id, *(u8 **)(vars + 0xC), 1); + v = *(u8 **)(moby + 0xAC); + speed = *(f32 *)(func_0054A290(6, 0) + 0x4C); + n = func_0054BCF0(*(s32 *)(*(u8 **)(v + 0xC) + 0x26E4), 6, 1); + if (n != 0) { + speed *= 1.0f - n * 0.05f; + } + speed *= 2.0f; + *(s16 *)(v + 6) = (*(s16 *)(v + 4) = speed * 60.0f) * 0.85f; + *(f32 *)(*(u8 **)(v + 0xC) + 0x3EC) = speed; + *(s32 *)(vars + 0) = 0; + func_00474368(moby, 6, -1); + } +} diff --git a/src/game/004230F8.c b/src/game/004230F8.c new file mode 100644 index 00000000..9fa85755 --- /dev/null +++ b/src/game/004230F8.c @@ -0,0 +1,43 @@ +#include "common.h" + +extern s32 D_0021DE10; + +void func_004230F8(const u32 *kind, u32 *first, u32 *second, s32 *flag) +{ + switch (*kind) { + case 0: + *first = 0x00325C66; + *second = 0x004C6C74; + break; + case 1: + *first = 0x00325C66; + *second = 0x004C6C74; + *flag = 0; + break; + case 2: + *first = 0x00325C66; + *second = 0x004C6C74; + *flag = 1; + break; + case 3: + if (D_0021DE10 == 0x29 || D_0021DE10 == 0x33 || D_0021DE10 == 0x30) { + *first = 0x00F0EBEE; + *second = 0x00F0EBEE; + } else { + *first = 0x005786AE; + *second = 0x002E475C; + } + *flag = 0; + break; + case 4: + if (D_0021DE10 == 0x29 || D_0021DE10 == 0x33 || D_0021DE10 == 0x30) { + *first = 0x00312B2A; + *second = 0x00312B2A; + } else { + *first = 0x0015212B; + *second = 0x00192834; + } + *flag = 0; + break; + } +} diff --git a/src/game/00429BE8.c b/src/game/00429BE8.c new file mode 100644 index 00000000..42e4eac9 --- /dev/null +++ b/src/game/00429BE8.c @@ -0,0 +1,40 @@ +#include "common.h" + +typedef struct Row48 { + u8 unknown0[0x1C]; + s32 active; + u8 unknown20[0x10]; +} Row48; + +typedef struct Row80 { + u8 unknown0[0x44]; + s32 active; + u8 unknown48[8]; +} Row80; + +extern Row48 D_00224FD0[]; +extern Row80 D_00225210[]; +extern u8 *func_0046C1F0(s32 classId, s32 flags); +extern void func_00474368(void *object, s32 state, s32 animation); +extern s32 func_00461970(const void *position, f32 x, f32 y, f32 z, f32 w, f32 size); + +void func_00429BE8(u8 *entity, void *data) +{ + u8 *object = func_0046C1F0(0x24EE, 0x80); + if (object && entity && data) { + u8 *state; + s32 i; + object[0x30] = 0xFF; + *(u16 *)(object + 0x32) = 0xFF; + state = *(u8 **)(object + 0xAC); + func_00474368(object, 0, -1); + for (i = 11; i >= 0; i--) + D_00224FD0[i].active = 0; + for (i = 127; i >= 0; i--) + D_00225210[i].active = 0; + *(s32 *)(state + 0x10) = func_00461970(object + 0x10, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); + *(u8 **)(state + 0x18) = entity; + *(s32 *)(state + 0x14) = *(s16 *)(entity + 0xBC); + *(void **)(state + 0x1C) = data; + } +} diff --git a/src/game/0042B700.c b/src/game/0042B700.c new file mode 100644 index 00000000..31a5521c --- /dev/null +++ b/src/game/0042B700.c @@ -0,0 +1,29 @@ +#include "common.h" + +typedef struct { + u8 *object; + u32 color; + s32 reserved; + f32 fraction; + u8 tail[16]; +} Entry; +extern Entry D_00227920[]; +extern u8 **func_004765B0(void *); +extern u32 func_00453C68(u32, u32, f32); +extern void func_004700B0(void *, u32, u32, u32); +void func_0042B700(s32 index, u32 color) +{ + s32 alpha; + u8 **child; + s32 mixed, red, green, blue; + alpha = (s32)(D_00227920[index].fraction * 96.0f); + D_00227920[index].object[35] = alpha; + child = func_004765B0(D_00227920[index].object); + if (child != 0 && *child != 0) + (*child)[35] = alpha; + mixed = func_00453C68(color, D_00227920[index].color, D_00227920[index].fraction); + blue = (mixed >> 16) & 0xFF; + green = (mixed >> 8) & 0xFF; + red = mixed & 0xFF; + func_004700B0(D_00227920[index].object, red, green, blue); +} diff --git a/src/game/00430D08.c b/src/game/00430D08.c new file mode 100644 index 00000000..6ad8fd2c --- /dev/null +++ b/src/game/00430D08.c @@ -0,0 +1,32 @@ +#include "common.h" + +extern s32 D_0021DE3C; + +s32 func_00506BB8(void); +s32 func_00506B70(s32 arg0); +s32 func_00507C40(s32 arg0); +s32 func_005064A8(s32 arg0, f32 arg1); + +void func_00430D08(s32 arg0, f32 arg1) +{ + s32 index; + s32 i; + + index = func_00506BB8(); + func_00506B70(arg0); + if (func_00507C40(0x1D0000) == 0) { + func_00506B70(index); + return; + } + if (D_0021DE3C == 0) { + for (i = 0; i < 0x14; i++) { + if (arg1 <= 0.0f) { + continue; + } + if (arg1 < 1.0f) { + func_005064A8(0x1D0001 + i, arg1); + } + } + } + func_00506B70(index); +} diff --git a/src/game/00430E80.c b/src/game/00430E80.c new file mode 100644 index 00000000..0b296fa5 --- /dev/null +++ b/src/game/00430E80.c @@ -0,0 +1,79 @@ +#include "common.h" + +typedef struct Allocator Allocator; +typedef struct Object Object; +typedef struct { + u32 unknown0[2]; + void *(*allocate)(Allocator *, s32); + void (*release)(Allocator *, void *); +} AllocatorVtable; +struct Allocator { + AllocatorVtable *vtable; +}; +typedef struct Manager { + void *unknown0; + u8 *table; +} Manager; +typedef struct { + u32 unknown0[2]; + void (*destroy)(Object *, s32); +} ObjectVtable; +struct Object { + u32 unknown0[2]; + ObjectVtable *vtable; + + u8 unknownC[0x50]; +}; + +extern Manager D_00222138[]; +extern Manager *func_00502150(void); +extern Allocator *func_00502218(Manager *, s32); +extern void func_005052C0(s32); +extern s32 func_005052C8(void); +extern s32 func_00500980(void *, u32); +extern void *func_0015DB90(u32, void *); +extern Object *func_0050EB78(void *); +extern s32 func_00501618(void *, Object *, u32); + +static inline Manager *get_manager(void) +{ + Manager *manager = D_00222138; + if (manager->table) { + return manager; + } + return func_00502150(); +} + +s32 func_00430E80(u32 key) +{ + s32 result = 0; + Manager *manager; + Allocator *allocator; + u8 *state; + void *entry; + s32 size; + void *block; + Object *object; + + manager = get_manager(); + state = (u8 *)manager->table; + entry = state != NULL + ? *(void **)((u32)state + ((u32) * (s32 *)(state + 0x14) << 2)) + : NULL; + func_005052C0(0x5C); + size = func_005052C8(); + if (entry != NULL && func_00500980(entry, key) == 0) { + allocator = func_00502218(get_manager(), 1); + block = allocator->vtable->allocate(allocator, size); + if (block != NULL) { + object = func_0050EB78(func_0015DB90(0x5C, block)); + result = func_00501618(entry, object, key) != 0; + if (!result) { + object->vtable->destroy(object, 2); + allocator = func_00502218(get_manager(), 1); + allocator->vtable->release(allocator, block); + } + } + } + return result; +} diff --git a/src/game/004331B0.c b/src/game/004331B0.c new file mode 100644 index 00000000..7f6d15e7 --- /dev/null +++ b/src/game/004331B0.c @@ -0,0 +1,39 @@ +#include "common.h" + +typedef struct HeroVtable { + u8 unknown0[0x4C]; + s32 (*identifier)(void *); +} HeroVtable; + +extern s32 D_0021EE54; +extern u8 *func_00511CC0(s32 context); +extern u8 *func_00511CF0(s32 context); +extern s32 func_0054BCF0(void *inventory, s32 slot, s32 kind); +extern f32 func_00472EB8(f32 first, f32 last); +extern s32 func_00549710(void *inventory, s32 slot, s32 amount); +extern void func_0054A668(void *inventory, s32 slot, void *object, + void *data, s32 identifier, s32 notify); + +void func_004331B0(void *object, s32 amount) +{ + f32 value = (f32)amount; + u8 *data = *(u8 **)((u8 *)object + 0xAC); + u8 *hero = func_00511CC0(0); + s32 result; + if (hero) { + result = func_0054BCF0(*(void **)(hero + 0x26E4), 8, 6); + value += (f32)result * 0.5f * value; + } + value += func_00472EB8(0.0f, 1.0f); + hero = func_00511CF0(data[0x16]); + if (D_0021EE54 != 1) { + result = func_00549710(*(void **)(hero + 0x26E4), 8, (s32)value); + if (result) { + void *entity = *(void **)(hero + 0x22F0); + HeroVtable *vtable = *(HeroVtable **)(hero + 0x14); + s32 id = vtable->identifier(hero); + func_0054A668(*(void **)(hero + 0x26E4), 8, entity, + hero + 0x2ED2, id, 1); + } + } +} diff --git a/src/game/004332B0.c b/src/game/004332B0.c new file mode 100644 index 00000000..96e41279 --- /dev/null +++ b/src/game/004332B0.c @@ -0,0 +1,14 @@ +#include "common.h" + +s32 func_004332B0(s32 arg0) { + f32 var_f2; + + var_f2 = 10.0f; + if (arg0 < 0xA) { + var_f2 = (f32) ((s32)((u32)arg0 * 2U)) + var_f2; + } else { + var_f2 = 28.0f; + var_f2 = (f32) ((s32)((u32)arg0 - 9U)) * 0.3f + var_f2; + } + return (s32) var_f2; +} diff --git a/src/game/004363D0.c b/src/game/004363D0.c new file mode 100644 index 00000000..52cae265 --- /dev/null +++ b/src/game/004363D0.c @@ -0,0 +1,22 @@ +#include "common.h" + +void func_004536B8(const f32 *position,s32 texture,u32 color,s32 style,f32 size,f32 depth,f32 rotation); +f32 func_00454328(f32 angle,f32 change); +f32 func_00472F70(void); + +void func_004363D0(void *arg0) { + f32 *temp_s0; + f32 temp_f0; + void *temp_s1; + + temp_s1 = (*(void **)((s8 *)(arg0) + (0xAC))); + temp_s0 = arg0; + temp_f0 = func_00454328((*(f32 *)((s8 *)(temp_s1) + (0x10))), 0.017453292f); + (*(f32 *)((s8 *)(temp_s1) + (0x10))) = temp_f0; + func_004536B8(temp_s0 + 4, 0x39, 0x40505050U, 1, 0.5f, 0.08f, func_00454328(temp_f0 * 2.5f, 0.0f)); + func_004536B8(temp_s0 + 4, 0x2A, 0x207F2040U, 1, 0.5f, 0.08f, func_00454328(-(*(f32 *)((s8 *)(temp_s1) + (0x10))) * 1.5f, 0.0f)); + func_004536B8(temp_s0 + 4, 0x2C, 0x207F2040U, 1, 0.5f, 0.08f, func_00454328((*(f32 *)((s8 *)(temp_s1) + (0x10))), 0.0f)); + func_004536B8(temp_s0 + 4, 0x31, 0x20FF7F00U, 1, 0.36f, 0.08f, (*(f32 *)((s8 *)(temp_s1) + (0x10))) * 0.5f); + func_004536B8(temp_s0 + 4, 0x31, 0x20FF7FU, 1, 0.36f, 0.08f, (*(f32 *)((s8 *)(temp_s1) + (0x10))) * -0.5f); + func_004536B8(temp_s0 + 4, 0x2F, 0x507F7F7FU, 1, 0.11f, 0.08f, func_00472F70()); +} diff --git a/src/game/0043D160.c b/src/game/0043D160.c new file mode 100644 index 00000000..5998eabd --- /dev/null +++ b/src/game/0043D160.c @@ -0,0 +1,26 @@ +#include "common.h" + +typedef struct { + u8 prefix[0xC8]; + f32 fC8, fCC; + s32 fD0; + u8 tail[0x39C]; +} State; +extern State D_00229CE0[]; +extern f32 D_002211D0; +extern f32 func_004757A0(f32 *, f32, f32); +extern s32 func_004534D0(s32 *); +void func_0043D160(s32 index) +{ + State *state = (State *)((u32)D_00229CE0 + (u32)index * 0x470); + if (state->fC8 != 0.0f) { + f32 *value = (f32 *)((u32)index * 4 + (u32)&D_002211D0); + func_004757A0(value, state->fCC, state->fC8); + if (*value == state->fCC) { + if (func_004534D0(&state->fD0) == 1) + state->fCC = 0.0f; + } + if (state->fCC <= 0.0f && *(f32 *)((u32)index * 4 + (u32)&D_002211D0) <= 0.0f) + state->fC8 = 0.0f; + } +} diff --git a/src/game/0043D250.c b/src/game/0043D250.c new file mode 100644 index 00000000..a9683c9d --- /dev/null +++ b/src/game/0043D250.c @@ -0,0 +1,32 @@ +#include "common.h" + +typedef struct { + u8 p0[0xD4]; + f32 fD4, fD8; + union { + f32 value; + s32 bits; + } fDC; + s32 fE0; + u8 tail[0x38C]; +} State; +extern State D_00229CE0[]; +extern f32 D_002211E0; +extern f32 func_004757A0(f32 *, f32, f32); +extern s32 func_004534D0(s32 *); +void func_0043D250(s32 index) +{ + State *state = (State *)((u32)D_00229CE0 + (u32)index * 0x470); + if (state->fD4 != 0.0f) { + if (state->fDC.value != 0.0f) + func_004757A0((f32 *)((u32)index * 4 + (u32)&D_002211E0), state->fDC.value, state->fD4); + else + func_004757A0((f32 *)((u32)index * 4 + (u32)&D_002211E0), state->fDC.value, state->fD8); + if (*(f32 *)((u32)index * 4 + (u32)&D_002211E0) == state->fDC.value) { + if (func_004534D0(&state->fE0) == 1) + state->fDC.bits = 0; + } + if (state->fDC.value <= 0.0f && *(f32 *)((u32)index * 4 + (u32)&D_002211E0) <= 0.0f) + state->fD4 = 0.0f; + } +} diff --git a/src/game/004473C0.c b/src/game/004473C0.c new file mode 100644 index 00000000..b2e751c7 --- /dev/null +++ b/src/game/004473C0.c @@ -0,0 +1,44 @@ +#include "common.h" + +extern u8 *D_0022141C; + +u8 *func_004473C0(s32 x, s32 y, s32 z) +{ + u8 *base = D_0022141C; + u8 *data = base + *(s32 *)base; + u16 *node = (u16 *)(base + 4); + s32 iz; + s32 iy; + s32 ix; + + iz = z - node[0]; + if (iz < 0) { + return 0; + } + if (!(iz < node[1])) { + return 0; + } + if (!node[iz + 2]) { + return 0; + } + node = (u16 *)(base + node[iz + 2] * 4); + iy = y - node[0]; + if (iy < 0) { + return 0; + } + if (!(iy < node[1])) { + return 0; + } + if (!node[iy + 2]) { + return 0; + } + node = (u16 *)(base + node[iy + 2] * 4); + ix = x - node[0]; + if (ix < 0 || !(ix < node[1])) { + return 0; + } + if (node[ix + 2] == 0xFFFF) { + return 0; + } + return data + node[ix + 2] * 128; +} diff --git a/src/game/00448B40.c b/src/game/00448B40.c new file mode 100644 index 00000000..40f4b70d --- /dev/null +++ b/src/game/00448B40.c @@ -0,0 +1,20 @@ +#include "common.h" + +typedef struct Display { + u8 fields[0x150]; + s16 width; + s16 height; +} Display; + +extern Display D_00206A40; +extern char *func_00448A20(s32 index); + +void func_00448B40(s32 index, s32 *left, s32 *top, s32 *right, s32 *bottom) +{ + f32 *rectangle = (f32 *)func_00448A20(index); + + *left = (s32)((f32)D_00206A40.width * rectangle[0]); + *top = (s32)((f32)D_00206A40.height * rectangle[2]); + *right = (s32)((f32)D_00206A40.width * rectangle[1]); + *bottom = (s32)((f32)D_00206A40.height * rectangle[3]); +} diff --git a/src/game/00448D98.c b/src/game/00448D98.c new file mode 100644 index 00000000..2e76a4ac --- /dev/null +++ b/src/game/00448D98.c @@ -0,0 +1,34 @@ +/* cflags: -fno-schedule-insns */ +#include "common.h" + +extern u8 *D_00221F20; +extern u8 *D_00221300; +extern u8 *D_002212FC; +extern void func_0046A228(void); +extern u8 *func_004E8AB0(void); + +void func_00448D98(void) +{ + s32 tag; + u8 *packet; + + D_00221300 = D_00221F20; + tag = 0x20000000; + D_00221F20 += 16; + *(s32 *)D_002212FC = tag; + packet = D_002212FC; + *(u8 **)(packet + 4) = D_00221F20; + *(s32 *)(D_002212FC + 8) = 0; + *(s32 *)(D_002212FC + 12) = 0; + func_0046A228(); + func_004E8AB0(); + *(s32 *)D_00221F20 = tag; + *(u8 **)(D_00221F20 + 4) = D_002212FC + 16; + *(s32 *)(D_00221F20 + 8) = 0; + *(s32 *)(D_00221F20 + 12) = 0; + D_00221F20 += 16; + *(s32 *)D_00221300 = tag; + *(u8 **)(D_00221300 + 4) = D_00221F20; + *(s32 *)(D_00221300 + 8) = 0; + *(s32 *)(D_00221300 + 12) = 0; +} diff --git a/src/game/0044A410.c b/src/game/0044A410.c new file mode 100644 index 00000000..9f8fcd57 --- /dev/null +++ b/src/game/0044A410.c @@ -0,0 +1,60 @@ +#include "common.h" + +extern s32 D_001D3FC0[]; +extern s32 D_00221F20; +extern s32 D_00221370; +extern s32 func_0044E5B0(s32, u32, s64); + +s32 func_0044A410(s32 arg0, s32 arg1, s32 arg2, s32 arg3, u64 arg4, u64 arg5, s32 arg6, f32 f12, f32 f13, f32 f14, f32 f15) { + s32 x0; + s32 x1; + s32 y0; + s32 y1; + s32 end1; + s32 buffer; + u64 first; + u64 packet0; + u64 packet1; + u64 packet2; + u64 packet3; + u64 packet4; + f32 scale = 16.0f; + + f14 = (f12 + f14) * scale; + f15 = (f13 + f15) * scale; + f12 *= scale; + f13 *= scale; + x0 = (s32)f14 + D_001D3FC0[4] - 8; + x1 = (s32)f12 + D_001D3FC0[4] - 8; + y0 = (s32)f13 + D_001D3FC0[5] - 8; + y1 = (s32)f15 + D_001D3FC0[5] - 8; + if (x1 > 0x9000 || x0 < 0x7000 || y0 > 0x9000 || y1 < 0x7000) { + return 0; + } + if (arg6 != 0) { + x1 = (x1 & 0xFFF0) + 8; + x0 = (x0 & 0xFFF0) + 8; + y0 = (y0 & 0xFFF0) + 8; + y1 = (y1 & 0xFFF0) + 8; + } + end1 = arg1 + arg3; + first = ((u64)(arg0 + arg2 - 1) << 14) | 0xA; + packet0 = ((u64)arg0 << 4) | first | + ((u64)arg1 << 24) | ((u64)(end1 - 1) << 34); + packet2 = (u64)(arg1 << 20) | (u64)(arg0 << 4); + packet3 = (u64)x1 | ((u64)y0 << 16); + packet4 = (u64)(end1 << 20) | (u64)((arg0 + arg2) << 4); + packet1 = (u64)x0 | ((u64)y1 << 16); + buffer = D_00221F20; + *(u64 *)(buffer + 0x38) = packet1; + *(u64 *)(buffer + 0x10) = packet0; + *(u64 *)(buffer + 8) = 0x156; + *(u64 *)(buffer + 0x18) = (u64)arg4; + *(u64 *)(buffer + 0x20) = packet2; + *(u64 *)(buffer + 0x28) = packet3; + *(u64 *)(buffer + 0x30) = packet4; + *(u64 *)buffer = (u64)arg5; + D_00221F20 += 0x40; + func_0044E5B0((s32)&D_00221370, 6, arg5); + return 1; +} diff --git a/src/game/0044AA58.c b/src/game/0044AA58.c new file mode 100644 index 00000000..2b72f590 --- /dev/null +++ b/src/game/0044AA58.c @@ -0,0 +1,28 @@ +#include "common.h" + +typedef int Quad __attribute__((mode(TI))); +extern u8 *D_00221F20; +extern Quad D_00220000; +void func_0044AA58(const u64 *coordinates, const s32 *values) +{ + u8 *first, *next, *cursor; + *(u32 *)(D_00221F20 + 0) = 0x10000005; + *(u32 *)(D_00221F20 + 4) = 0; + *(u32 *)(D_00221F20 + 8) = 0; + *(u32 *)(D_00221F20 + 12) = 0x50000005; + cursor = (u8 *)D_00221F20; + D_00221F20 = cursor + 16; + *(Quad *)(cursor + 16) = D_00220000; + first = (u8 *)D_00221F20; + next = first + 16; + D_00221F20 = next; + *(u64 *)(first + 16) = 0x4C; + *(u64 *)(next + 8) = (s64)values[0]; + *(u64 *)(next + 16) = coordinates[0]; + *(u64 *)(next + 24) = coordinates[2]; + *(u64 *)(next + 32) = (s64)values[1]; + *(u64 *)(next + 40) = coordinates[1]; + *(u64 *)(next + 48) = coordinates[3]; + *(u64 *)(next + 56) = 0; + D_00221F20 += 64; +} diff --git a/src/game/0044ABC0.c b/src/game/0044ABC0.c new file mode 100644 index 00000000..1eb32d89 --- /dev/null +++ b/src/game/0044ABC0.c @@ -0,0 +1,14 @@ +#include "common.h" + +extern void func_00449E98(s32, s32, s32, s32, u64); +void func_0044ABC0(s32 x, s32 y, s32 width, s32 extent, s32 alpha, s32 rgb) +{ + s32 color = (s32)(((u32)alpha << 24) | (u32)rgb); + func_00449E98(x, y, width, extent, color); + func_00449E98(x + 1, y - 1, width - 2, width, color); + func_00449E98(x + 2, y - 2, width - 3, width - 2, color); + func_00449E98(x + 4, y - 4, width - 4, width - 3, color); + func_00449E98(x + 1, y - 1, extent, extent + 2, color); + func_00449E98(x + 2, y - 2, extent + 2, extent + 3, color); + func_00449E98(x + 4, y - 4, extent + 3, extent + 4, color); +} diff --git a/src/game/0044D6D0.c b/src/game/0044D6D0.c new file mode 100644 index 00000000..feafa82f --- /dev/null +++ b/src/game/0044D6D0.c @@ -0,0 +1,53 @@ +#include "common.h" + +typedef struct State { + u8 enabled; + u8 unknown1[3]; + s32 index; + s32 selected; + s32 selector; + u8 unknown10[8]; + u64 primary_key; + u64 current; + u64 current_secondary; + u64 key30; + u64 key38; + u8 unknown40[8]; + u64 key48; +} State; +typedef struct Entry { + u8 prefix[0x10]; + u64 value; + u8 tail[8]; +} Entry; +extern State D_00239640; +extern Entry D_003D7B40[]; +extern u32 *D_00221F20; +void func_0044D6D0(void *unused, s32 id) +{ + if (D_00239640.enabled == 0) { + if (id == 0) + return; + D_00221F20[0] = 0x30000002; + D_00221F20[1] = (u32)&D_003D7B40[id]; + D_00221F20[2] = 0; + D_00221F20[3] = 0x50000002; + D_00221F20 += 4; + return; + } + if (id == 0) + return; + if (D_00239640.selected != id && D_00239640.current == D_003D7B40[id].value) { + D_00239640.selected = id; + return; + } + if (D_00239640.current == D_003D7B40[id].value) + return; + D_00221F20[0] = 0x30000002; + D_00221F20[1] = (u32)&D_003D7B40[id]; + D_00221F20[2] = 0; + D_00221F20[3] = 0x50000002; + D_00239640.selected = id; + D_00239640.current = D_003D7B40[id].value; + D_00221F20 += 4; +} diff --git a/src/game/0044DF08.c b/src/game/0044DF08.c new file mode 100644 index 00000000..ab6e06c7 --- /dev/null +++ b/src/game/0044DF08.c @@ -0,0 +1,109 @@ +#include "common.h" + +extern u8 D_00239640[]; + +s32 func_0044DF08(s32 arg0, u32 arg1, s64 arg2) { + s32 base = (s32)D_00239640; + s32 result; + s64 value; + + if (D_00239640[0] != 0) { + goto dispatch; + } + return 1; +dispatch: + if (arg1 == 0x3D) { + goto case28; + } + if (arg1 < 0x3E) { + if (arg1 == 8) { + goto case20; + } + if (arg1 < 9) { + if (arg1 == 6) { + goto case40; + } + result = 1; + goto done; + } + if (arg1 == 0x14) { + goto case38; + } + result = 1; + goto done; + } + if (arg1 == 0x47) { + goto case30; + } + if (arg1 < 0x48) { + if (arg1 == 0x42) { + goto case18; + } + result = 1; + goto done; + } + if (arg1 == 0x4E) { + goto case48; + } + result = 1; + goto done; +case18: + value = *(s64 *)(base + 0x18); + if (value == arg2) { + goto equal; + } + *(s64 *)(base + 0x18) = arg2; + *(s32 *)(base + 0x4) = -1; + goto success; +case30: + value = *(s64 *)(base + 0x30); + if (value == arg2) { + goto equal; + } + *(s64 *)(base + 0x30) = arg2; + *(s32 *)(base + 0x4) = -1; + goto success; +case20: + value = *(s64 *)(base + 0x20); + if (value == arg2) { + goto equal; + } + *(s64 *)(base + 0x20) = arg2; + *(s32 *)(base + 0x8) = -1; + goto success; +case40: + value = *(s64 *)(base + 0x40); + if (value != arg2) { + goto update40; + } + goto equal; +equal: + return 0; +update40: + *(s64 *)(base + 0x40) = arg2; + *(s32 *)(base + 0x10) = 0x7C; + goto success; +case38: + if (*(s64 *)(base + 0x38) == arg2) { + goto equal; + } + *(s64 *)(base + 0x38) = arg2; + goto success; +case48: + value = *(s64 *)(base + 0x48); + if (value == arg2) { + goto equal; + } + *(s64 *)(base + 0x48) = arg2; + goto success; +case28: + value = *(s64 *)(base + 0x28); + if (value == arg2) { + goto equal; + } + *(s64 *)(base + 0x28) = arg2; +success: + result = 1; +done: + return result; +} diff --git a/src/game/00452598.c b/src/game/00452598.c new file mode 100644 index 00000000..418e5231 --- /dev/null +++ b/src/game/00452598.c @@ -0,0 +1,25 @@ +#include "common.h" + +extern s32 D_0021DDB8; +extern void func_004512D0(s32, s32 *, s32, s32, s32); + +void func_00452598(s32 arg0, s32 *state, s32 arg2, s32 arg3, s32 arg4, s32 arg5) +{ + s32 i; + s32 *entry; + state[0xA8 / 4] = D_0021DDB8; + state[0xAC / 4] = 0; + for (i = 0; i < 32 && state[i + 4] != 0; i++) { + entry = (s32 *)state[i + 4]; + func_004512D0(arg0, entry, arg2, arg3, arg4); + *(u8 *)((u8 *)entry + 0xB) = 1; + } + state[0xA4 / 4] = i; + if (arg5 != 0) { + *(f32 *)((u8 *)state + 0x90) = 1.0f; + *(f32 *)((u8 *)state + 0x94) = 1.0f; + state[0x98 / 4] = 0; + state[0x9C / 4] = 0; + *(f32 *)((u8 *)state + 0xA0) = 1.0f; + } +} diff --git a/src/game/00454420.c b/src/game/00454420.c new file mode 100644 index 00000000..c30f8515 --- /dev/null +++ b/src/game/00454420.c @@ -0,0 +1,38 @@ +#include "common.h" + +typedef struct { + u32 first; + u32 metrics; +} Glyph; +extern Glyph *D_0021DE8C; +extern s32 func_00454400(void); +s32 func_00454420(f32 *width, f32 *height, s32 mode) +{ + s32 result; + *width = 0.0f; + *height = 0.0f; + result = 0; + if (D_0021DE8C != 0) { + if (mode != 0) { + *width = (f32)((D_0021DE8C[0x41].metrics >> 17) & 0x3F); + *height = (f32)((D_0021DE8C[0x41].metrics >> 9) & 0xFF) * 0.25f; + result = 1; + } else { + s32 count = func_00454400(); + if (count > 0) { + s32 i; + u32 maximum = 0; + for (i = 0; i < count; i++) { + u32 current = (D_0021DE8C[i].metrics >> 17) & 0x3F; + if (maximum < current) { + maximum = current; + *height = (f32)((D_0021DE8C[i].metrics >> 9) & 0xFF) * 0.25f; + } + } + *width = (f32)maximum; + result = 1; + } + } + } + return result; +} diff --git a/src/game/00454600.c b/src/game/00454600.c new file mode 100644 index 00000000..b4104582 --- /dev/null +++ b/src/game/00454600.c @@ -0,0 +1,30 @@ +/* cflags: -mno-split-addresses */ +#include "common.h" + +typedef struct { + u32 first; + u32 metrics; +} Glyph; +extern Glyph *D_0021DF14[]; +extern s32 func_00454A70(const u8 *, s32, s32 *); +s32 func_00454600(const u8 *text, s32 length, f32 scale) +{ + s32 offset = 0; + s32 running = 1; + f32 maximum = 0.0f; + s32 glyph = 0; + for (; running && offset != length; offset++) { + if (text[offset] == 0) { + running = 0; + } else { + f32 width, height, value; + offset += func_00454A70(text, offset, &glyph); + width = (f32)((D_0021DF14[0][glyph].metrics >> 17) & 0x3F) * scale; + height = (f32)((D_0021DF14[0][glyph].metrics >> 9) & 0xFF) * scale; + value = width + height * 0.25f; + if (maximum < value) + maximum = value; + } + } + return (s32)maximum; +} diff --git a/src/game/004597B8.c b/src/game/004597B8.c new file mode 100644 index 00000000..e254cacd --- /dev/null +++ b/src/game/004597B8.c @@ -0,0 +1,25 @@ +#include "common.h" + +extern u32 *D_00221F20; +extern u8 D_003D9FF0[], D_003DA010[], D_0020BF90[], D_003D9F80[]; +void func_004597B8(s32 alternate) +{ + D_00221F20[0] = 0x30000002; + if (alternate) + D_00221F20[1] = (u32)D_003D9FF0; + else + D_00221F20[1] = (u32)D_003DA010; + D_00221F20[2] = 0; + D_00221F20[3] = 0x50000002; + D_00221F20 += 4; + D_00221F20[0] = 0x30000029; + D_00221F20[1] = (u32)D_0020BF90; + D_00221F20[2] = 0; + D_00221F20[3] = 0x50000029; + D_00221F20 += 4; + D_00221F20[0] = 0x30000003; + D_00221F20[1] = (u32)D_003D9F80; + D_00221F20[2] = 0; + D_00221F20[3] = 0x50000003; + D_00221F20 += 4; +} diff --git a/src/game/0045D108.c b/src/game/0045D108.c new file mode 100644 index 00000000..07a6ef4b --- /dev/null +++ b/src/game/0045D108.c @@ -0,0 +1,26 @@ +#include "common.h" +typedef struct { + int f0, f4, f8, fC, f10, f14, f18; + unsigned int f1C; + short f20, f22, f24; + unsigned char f26, f27; +} State; +extern State D_0023F380[]; +extern short D_0023F3A8[]; +void func_0045D108(void) +{ + D_0023F380[0].f0 = 0; + D_0023F380[0].f4 = 0; + D_0023F380[0].f8 = -1; + D_0023F380[0].fC = -1; + D_0023F380[0].f14 = -1; + D_0023F380[0].f1C = 0xFFFFFFFFu; + D_0023F380[0].f20 = 0x78; + D_0023F380[0].f26 = 0; + D_0023F380[0].f27 = 0; + D_0023F380[0].f24 = 0; + D_0023F380[0].f22 = 0; + D_0023F3A8[0] = 0; + D_0023F3A8[1] = 0; + D_0023F3A8[2] = 0; +} diff --git a/src/game/0045E860.c b/src/game/0045E860.c new file mode 100644 index 00000000..6bb17f30 --- /dev/null +++ b/src/game/0045E860.c @@ -0,0 +1,63 @@ +#include "common.h" + +typedef struct { + u32 address; + u32 unknown4; +} HudEntry; + +typedef struct { + u8 unknown0[12]; + u8 *header; + u8 unknown10[8]; + HudEntry *table2; + HudEntry *table1; +} HudState; + +typedef struct { + u8 unknown0[0x14]; + s32 limits[0]; +} HudLimits1; + +typedef struct { + u8 unknown0[0x34]; + s32 limits[0]; +} HudLimits2; + +extern HudState D_0023F530; + +void func_0045E860(s32 bank, u32 address) +{ + u32 *banks; + u32 *slot; + s32 first; + s32 limit; + s32 i; + + banks = (u32 *)(D_0023F530.header + 0x74); + slot = &banks[bank]; + if (*slot != 0) { + return; + } + address = (address + 15) & 0xFFFFFFF0; + *slot = address; + if (bank != 0) { + first = ((HudLimits1 *)D_0023F530.header)->limits[bank - 1]; + } else { + first = 0; + } + limit = ((HudLimits1 *)D_0023F530.header)->limits[bank]; + for (i = first; i < limit; i++) { + D_0023F530.table1[i].address &= 0x7FFFFFFF; + D_0023F530.table1[i].address += address; + } + if (bank != 0) { + first = ((HudLimits2 *)D_0023F530.header)->limits[bank - 1]; + } else { + first = 0; + } + limit = ((HudLimits2 *)D_0023F530.header)->limits[bank]; + for (i = first; i < limit; i++) { + D_0023F530.table2[i].address &= 0x7FFFFFFF; + D_0023F530.table2[i].address += address; + } +} diff --git a/src/game/00460B00.c b/src/game/00460B00.c new file mode 100644 index 00000000..526a2307 --- /dev/null +++ b/src/game/00460B00.c @@ -0,0 +1,45 @@ +#include "common.h" + +typedef struct Descriptor { + u32 unknown0; + s32 limit; +} Descriptor; +extern u32 D_00206DD8[]; +extern const char D_0021EF38[]; +extern const char D_003D0738[]; +extern const char D_0021EF40[]; +extern const char D_0021EF48[]; +extern const char D_0021EF50[]; +extern const char D_003D0750[]; +extern const char D_0021EF58[]; +extern const char D_0021EF68[]; +extern const char D_003D0768[]; +extern void func_00460558(u32 *registry, s32 count); +extern void func_004605A8(u32 *registry, const char *name, void *owner, + Descriptor *descriptor, u32 cost, u32 bytes, + const void *data, s32 id); +extern void func_004608E8(u32 *registry, s32 count, const char *label); + +void func_00460B00(u8 *owner) +{ + u32 *registry = D_00206DD8; + + func_00460558(registry, 1); + func_004605A8(registry, D_0021EF38, owner, (Descriptor *)(owner + 8), + 0x1A00, 0, 0, 1); + func_004605A8(registry, D_003D0738, owner, (Descriptor *)(owner + 0x28), + 0x3100, 0, 0, 2); + func_004605A8(registry, D_0021EF40, owner, (Descriptor *)(owner + 0x10), + 0x27500, 0, 0, 3); + func_004605A8(registry, D_0021EF48, owner, (Descriptor *)(owner + 0x18), + 0x4800, 0, 0, 4); + func_004605A8(registry, D_0021EF50, owner, (Descriptor *)(owner + 0x20), + 0x1C200, 0, 0, 5); + func_004605A8(registry, D_003D0750, owner, (Descriptor *)(owner + 0x30), + 0x5E00, 0, 0, 6); + func_004605A8(registry, D_0021EF58, owner, (Descriptor *)(owner + 0x38), + 0x2B200, 0, 0, 7); + func_004605A8(registry, D_0021EF68, owner, (Descriptor *)(owner + 0xC0), + 0x1400, 0, 0, 9); + func_004608E8(registry, 1, D_003D0768); +} diff --git a/src/game/00460D48.c b/src/game/00460D48.c new file mode 100644 index 00000000..004397b3 --- /dev/null +++ b/src/game/00460D48.c @@ -0,0 +1,76 @@ +#include "common.h" + +extern u8 D_0021DD52; +extern u8 D_0021DD53; +extern u8 D_0021DD54; +extern u8 D_00209148[]; +extern char D_0021EF70[]; +extern char D_003D0780[]; +extern u8 D_003D0798[]; +extern char D_0021EF80[]; +extern u8 D_003D07D8[]; +extern char D_0021EF20[]; +extern char D_003D07F0[]; +extern char D_0021EF90[]; +extern char D_003D0808[]; +extern char D_003D0820[]; +extern char D_0021EFA0[]; +extern u8 D_0021EFA8[]; +extern char D_0021EFB8[]; +extern u8 D_003D0838[]; +extern char D_0021EFC8[]; +extern char D_0021EFD8[]; +extern u8 D_003D0868[]; +extern char D_0021EFE0[]; +extern u8 D_0021EFE8[]; +extern char D_0021EFF8[]; +extern char D_003D0888[]; + +extern void func_00460558(void *menu, s32 count); +extern void func_004605A8(void *menu, const char *label, void *owner, + void *stats, s32 bytes, s32 dataSize, + const void *data, s32 kind); +extern void func_004608E8(void *menu, s32 count, const char *title); +extern s32 func_004600C0(u32 mask, s32 mode); + +void func_00460D48(u8 *stats) +{ + u8 *menu; + + if (D_0021DD52 || D_0021DD54 || D_0021DD53) { + return; + } + menu = D_00209148; + func_00460558(menu, 1); + func_004605A8(menu, D_0021EF70, stats, stats + 0x48, + 0x40E00, 0, 0, 14); + func_004605A8(menu, D_003D0780, stats, stats + 0x50, + 0xCD00, 62, D_003D0798, 12); + func_004605A8(menu, D_0021EF80, stats, stats + 0x58, + 0x9100, 18, D_003D07D8, 15); + func_004605A8(menu, D_0021EF20, stats, stats + 0x68, + 0x2900, 0, 0, 10); + func_004605A8(menu, D_003D07F0, stats, stats + 0x70, + 0x8600, 0, 0, 19); + func_004605A8(menu, D_0021EF90, stats, stats + 0x80, + 0x18B00, 0, 0, 16); + func_004605A8(menu, D_003D0808, stats, stats + 0x88, + 0x7500, 0, 0, 17); + func_004605A8(menu, D_003D0820, stats, stats + 0x60, + 0x2600, 0, 0, 11); + func_004605A8(menu, D_0021EFA0, stats, stats + 0x78, + 0x6100, 14, D_0021EFA8, 18); + func_004605A8(menu, D_0021EFB8, stats, stats + 0x90, + 0x15F00, 43, D_003D0838, 20); + func_004605A8(menu, D_0021EFC8, stats, stats + 0xA0, + 0x3000, 0, 0, 13); + func_004605A8(menu, D_0021EFD8, stats, stats + 0xB0, + 0x2A00, 28, D_003D0868, 21); + func_004605A8(menu, D_0021EFE0, stats, stats + 0x98, + 0xCC00, 15, D_0021EFE8, 22); + func_004605A8(menu, D_0021EFF8, stats, stats + 0xA8, + 0x3500, 0, 0, 23); + func_004608E8(menu, 1, D_003D0888); + func_004600C0(0x8000, 3); + D_0021DD54 = 1; +} diff --git a/src/game/00462D68.c b/src/game/00462D68.c new file mode 100644 index 00000000..69f0b279 --- /dev/null +++ b/src/game/00462D68.c @@ -0,0 +1,36 @@ +#include "common.h" + +typedef struct { + s32 *data; + s32 packed_count; + s32 reserved[2]; +} Group; +extern void func_00462E48(void *, const void *, s32, s32, s32, s32, s32); +extern void func_00463150(void *, s32, s32, s32, s32, s32); +void func_00462D68(Group *groups, const u8 *palette, const u8 *mapping, s32 count) +{ + s32 i, j, group_count, offset, index; + s32 *entry; + Group *group = groups; + Group *next; + for (i = 0; i < count; i++) { + next = group + 1; + group_count = group->packed_count >> 16; + offset = group->packed_count & 0xFFFF; + group->packed_count = offset; + entry = (s32 *)((u32)group->data + (u32)((offset - group_count) * 16)); + for (j = 0; j < group_count; j += 4) { + index = entry[8]; + if (index >= 0) + index = mapping[index]; + if (palette) { + func_00462E48(entry, (const void *)((u32)palette + (u32)(index * 16)), + entry[0], entry[1], entry[4], entry[5], index); + } else { + func_00463150(entry, entry[0], entry[1], entry[4], entry[5], index); + } + entry += 16; + } + group = next; + } +} diff --git a/src/game/00463B78.c b/src/game/00463B78.c new file mode 100644 index 00000000..9dbf317c --- /dev/null +++ b/src/game/00463B78.c @@ -0,0 +1,43 @@ +#include "common.h" + +typedef struct { + u8 p0[0x8C]; + u16 count; + u8 p8E[0x12]; + u8 *source, *end; + u8 pA8[0x14]; + u8 *buffer; +} State; +extern State D_00237000[]; +typedef union { + s32 word; + u16 half; +} Counter; +extern Counter D_00266760[]; +extern u32 func_00469C40(const void *, void *); +extern void func_00453808(void *, const void *, u32); +extern void func_004640A0(s32, void *, void *, s32, s32); +void func_00463B78(void) +{ + u32 size = func_00469C40(D_00237000[0].buffer, D_00237000[0].source); + u8 *base = (u8 *)((u32)D_00237000[0].end - size); + s32 *record; + s32 first, before; + func_00453808(base, D_00237000[0].source, size); + D_00237000[0].buffer = base; + D_00237000[0].end = base; + record = (s32 *)base; + first = *record++; + before = D_00266760[0].word; + while (first >= 0) { + s32 offset = *record++; + s32 other = record[0]; + void *optional = 0; + record += 2; + if (offset) + optional = (void *)((u32)D_00237000[0].buffer + (u32)offset); + func_004640A0(first, (void *)((u32)D_00237000[0].buffer + (u32)other), optional, 0, 1); + first = *record++; + } + D_00237000[0].count = D_00266760[0].half - before; +} diff --git a/src/game/004653A8.c b/src/game/004653A8.c new file mode 100644 index 00000000..08a73423 --- /dev/null +++ b/src/game/004653A8.c @@ -0,0 +1,34 @@ +#include "common.h" + +extern s32 func_00465338(s32); +extern s32 D_001719C8[]; +extern s32 D_0021DB64; + +s32 D_0021F1D0 = -1; +void (*D_0021F1E8)(void) = 0; + +void func_004653A8(void) +{ + if (D_001719C8[113] != 2) { + return; + } + if (D_001719C8[115] >= 0) { + return; + } + if (D_001719C8[117] != 0) { + func_00465338(20); + } else { + D_001719C8[108] = 0; + ((u16 *)D_001719C8)[12] = 0; + if (D_0021DB64 & 0x1000) { + ((u16 *)D_001719C8)[12] = D_0021F1D0; + D_0021DB64 &= -0x1001; + D_0021F1D0 = -1; + } + func_00465338(18); + } + if (D_0021F1E8 != 0) { + D_0021F1E8(); + D_0021F1E8 = 0; + } +} diff --git a/src/game/004655A0.c b/src/game/004655A0.c new file mode 100644 index 00000000..0cce9c40 --- /dev/null +++ b/src/game/004655A0.c @@ -0,0 +1,32 @@ +#include "common.h" + +typedef struct State { + u8 unknown0[8]; + s32 mode; + u32 unknownC; + s32 active; + u8 unknown14[0x1D0]; + s32 pending; +} State; + +extern State D_001719C8[]; +extern s32 D_0021EE54; +extern u32 D_0021DB64; +extern void func_00465338(s32 state); + +void func_004655A0(void) +{ + if (D_001719C8[0].mode != 2) { + func_00465338(4); + } else if (!D_0021EE54 && D_001719C8[0].pending) { + func_00465338(1); + } else if (D_0021DB64 & 4) { + func_00465338(30); + } else if (D_0021DB64 & 2) { + func_00465338(29); + } else if (D_0021DB64 & 0x800) { + func_00465338(12); + } else if (D_001719C8[0].mode == 2 && D_001719C8[0].active) { + func_00465338(5); + } +} diff --git a/src/game/00465F38.c b/src/game/00465F38.c new file mode 100644 index 00000000..33738734 --- /dev/null +++ b/src/game/00465F38.c @@ -0,0 +1,31 @@ +#include "common.h" +extern char D_001718B0[], D_001718C8[], D_001718E0[], D_001718F8[], D_00171918[]; +extern char D_00171938[], D_00171968[], D_00171988[], D_001719A8[]; +extern char *func_0011AFC8(char *, const char *, u32); +void func_00465F38(const u8 *header) +{ + s32 i; + u8 region; + func_0011AFC8(D_001718B0, (const char *)header + 8, 21); + region = header[0x12]; + if (region == 'E') + D_001718C8[2] = region; + else if (region == 'P') + D_001718C8[2] = 'I'; + else if (region == 'K') + D_001718C8[2] = region; + for (i = 3; i < 7; ++i) + D_001718C8[i] = header[i + 0xD]; + for (i = 8; i < 11; ++i) + D_001718C8[i] = header[i + 0xD]; + for (i = 11; i < 13; ++i) + D_001718C8[i] = header[i + 0xE]; + func_0011AFC8(D_001718E0, D_001718C8, 13); + func_0011AFC8(D_001718F8, D_001718C8, 13); + func_0011AFC8(D_00171918, D_001718C8, 13); + func_0011AFC8(D_00171938, D_001718C8, 13); + func_0011AFC8(D_00171938 + 20, D_001718C8, 13); + func_0011AFC8(D_00171968, D_001718C8, 13); + func_0011AFC8(D_001719A8, D_001718C8, 13); + func_0011AFC8(D_00171988, D_001718C8, 13); +} diff --git a/src/game/004660F8.c b/src/game/004660F8.c new file mode 100644 index 00000000..c4368361 --- /dev/null +++ b/src/game/004660F8.c @@ -0,0 +1,31 @@ +#include "common.h" + +typedef struct { + s32 type, size, offset, state; +} Descriptor; +extern Descriptor D_003D8130[], D_003D8310[]; +extern s32 func_004693D0(const Descriptor *); +extern s32 func_004696E8(const u8 *, const u8 *, s32, Descriptor *); +extern void func_00469D68(void); +void func_004660F8(const u8 *packet) +{ + s32 first = func_004693D0(D_003D8130); + s32 second = func_004693D0(D_003D8310); + s32 index; + const u8 *next; + s32 storedFirst = *(const s32 *)packet; + if (storedFirst == first && *(const s32 *)(packet + 4) == second) { + packet += 8; + next = packet + storedFirst; + func_004696E8(packet, next, 0, D_003D8130); + packet = next; + index = 0; + do { + const u8 *end = packet + second; + func_004696E8(packet, end, index, D_003D8310); + index++; + packet = end; + } while (index < 15); + func_00469D68(); + } +} diff --git a/src/game/004661D8.c b/src/game/004661D8.c new file mode 100644 index 00000000..5aaddefc --- /dev/null +++ b/src/game/004661D8.c @@ -0,0 +1,48 @@ +#include "common.h" + +extern s32 D_0021EDD4; +extern s32 D_001C2040[]; +extern u8 D_001711D0[]; +extern u8 D_00171D38[]; +extern s32 D_0021DE10; +extern s32 D_00171948[]; +extern void func_0045C670(s32, void *); +extern void func_00489C28(s32); +extern void func_001634A8(s32); +extern s32 func_00163808(s32, s32, s32, s32, s32, s32, s32); +extern void func_00453718(void *, const void *, u32); +extern void func_004660F8(s32); +extern void func_00465DF8(s32); + +void func_004661D8(void) { + u8 workspace[0x110]; + u8 *output; + s32 arg; + s32 value; + s32 *state; + if (D_0021EDD4 == 1) { + return; + } + output = workspace + 0x100; + state = D_001C2040; + func_0045C670(state[0x664 / 4] << 11, output); + func_00489C28(1); + func_001634A8(1); + arg = state[0x660 / 4] + state[0x64C / 4]; + func_00163808(0, *(s32 *)output, arg, state[0x664 / 4], 0, 0, 0); + value = *(s32 *)output; + value += *(s32 *)(value + 0x10); + func_00453718(workspace, D_001711D0, 0x28); + func_00453718(workspace + 0x30, D_00171D38, 0xC4); + func_004660F8(value); + func_00453718(D_001711D0, workspace, 0x28); + func_00453718(D_00171D38, workspace + 0x30, 0xC4); + D_0021DE10 = 1; + if (D_00171948[0x1E4 / 4] != 0) { + D_00171948[0x1E4 / 4] = 0; + } + if (*(s16 *)((u8 *)D_00171948 + 0x18) >= 0) { + *(s16 *)((u8 *)D_00171948 + 0x18) = -1; + } + func_00465DF8(7); +} diff --git a/src/game/00468C78.c b/src/game/00468C78.c new file mode 100644 index 00000000..577c719e --- /dev/null +++ b/src/game/00468C78.c @@ -0,0 +1,46 @@ +#include "common.h" + +typedef struct { + u8 *data; + s32 size; + s32 type; + s32 reserved; +} Block; +extern void func_00453608(void *, s32, s32); +extern void func_00453718(void *, const void *, s32); +extern u16 func_00468BE0(const void *, s32); +s32 func_00468C78(u8 *destination, s32 index, const Block *blocks) +{ + s32 size = 0; + u8 *out = destination + 8; + const Block *block; + s32 offset; + const u8 *data; + if (blocks->data != 0) { + block = blocks; + do { + size += 8; + offset = index * block->size; + data = block->data + offset; + *(s32 *)out = block->type; + *(s32 *)(out + 4) = block->size; + out += 8; + if (block->type == 0x1770) { + func_00453608(out, 0, block->size); + } else { + func_00453718(out, data, block->size); + } + out += block->size; + size += block->size; + block++; + out = (u8 *)(((s32)out + 3) & ~3); + size = (size + 3) & ~3; + } while (block->data != 0); + } + size += 8; + *(s32 *)(out + 4) = 0; + *(s32 *)out = -1; + *(u32 *)(destination + 4) = func_00468BE0(destination + 8, size); + *(s32 *)destination = size; + return size + 8; +} diff --git a/src/game/0046A9E8.c b/src/game/0046A9E8.c new file mode 100644 index 00000000..5a4227f6 --- /dev/null +++ b/src/game/0046A9E8.c @@ -0,0 +1,23 @@ +#include "common.h" + +typedef struct { + s32 field_0; + s32 field_4; + u8 field_8; +} B2Entry; + +extern u8 D_001F87F0[]; + +s32 func_0054AB08(s32 arg0, s32 arg1); +void *func_0054A998(s32 arg0); +s32 func_0054AC58(s32 arg0); + +void func_0046A9E8(s32 arg0, s32 arg1) +{ + if (*(s32 *)((u8 *)func_0054A998(func_0054AB08(arg0, arg1)) + 0x18) != 1) { + ((B2Entry *)((arg0 - 1) % 0x14 * 0x304 + arg1 * 0xC + (s32)D_001F87F0))->field_8 |= 1; + } + if ((u8)func_0054AC58(func_0054AB08(arg0, arg1)) != 0) { + ((B2Entry *)((arg0 - 1) % 0x14 * 0x304 + arg1 * 0xC + (s32)D_001F87F0))->field_8 |= 2; + } +} diff --git a/src/game/0046CEA0.c b/src/game/0046CEA0.c new file mode 100644 index 00000000..248f8b8d --- /dev/null +++ b/src/game/0046CEA0.c @@ -0,0 +1,69 @@ +#include "common.h" + +typedef struct { + u8 pad[0xB]; + u8 dimensions; + u8 padC[0x14]; + u8 *data; +} Data; +typedef struct { + u8 pad[0x24]; + Data *data; +} Object; +typedef struct { + u32 *packet; + u32 taggedObject; +} Entry; +extern Entry *D_0022144C; +extern Entry D_00265D60[]; +extern u8 *D_00221E20; +extern u8 D_003D82F0[], D_003DA6B0[]; +extern void func_004537D0(void *, const void *, s32); +void func_0046CEA0(void) +{ + u32 *header; + Entry *entry; + if (D_0022144C == D_00265D60) + return; + header = (u32 *)D_00221E20; + D_00221E20 = (u8 *)(header + 4); + for (entry = D_00265D60; entry < D_0022144C; entry++) { + u32 *packet = entry->packet; + u32 value = entry->taggedObject; + Object *object; + Data *data; + s32 width, height, index; + u8 *base; + s32 i; + packet[0] = 0x20000000; + index = value & 15; + object = (Object *)(value & ~15); + packet[1] = (u32)D_00221E20; + packet[3] = 0x11000000; + data = object->data; + height = data->dimensions >> 4; + width = data->dimensions & 15; + base = data->data - ((width * height) << 10) - 16; + for (i = 0; i < height; i++) { + s16 value = ((s16 *)base)[i]; + func_004537D0(D_00221E20, D_003D82F0, 0x70); + *(s16 *)(D_00221E20 + 0x24) = value; + *(u8 **)(D_00221E20 + 0x64) = base + (index << 10) + 16 + ((i * width) << 10); + D_00221E20 = D_00221E20 + 0x70; + } + ((u32 *)D_00221E20)[0] = 0x30000003; + ((u32 *)D_00221E20)[1] = (u32)D_003DA6B0; + ((u32 *)D_00221E20)[2] = 0; + ((u32 *)D_00221E20)[3] = 0x50000003; + D_00221E20 += 0x10; + ((u32 *)D_00221E20)[0] = 0x20000000; + ((u32 *)D_00221E20)[1] = (u32)(packet + 4); + ((u32 *)D_00221E20)[2] = 0; + ((u32 *)D_00221E20)[3] = 0; + D_00221E20 = D_00221E20 + 0x10; + } + header[0] = 0x20000000; + header[1] = (u32)D_00221E20; + header[2] = 0; + header[3] = 0; +} diff --git a/src/game/0046D708.c b/src/game/0046D708.c new file mode 100644 index 00000000..ab25f212 --- /dev/null +++ b/src/game/0046D708.c @@ -0,0 +1,40 @@ +#include "common.h" + +typedef unsigned int Quadword __attribute__((mode(TI))); +typedef struct Cache { + u8 entries[0x20]; + s32 initialized; +} Cache; +extern Cache D_00266A88; +extern s32 D_001170D0[]; +extern void func_004E7450(const void *packet); +extern char *func_0046B930(s32 classId, s32 privateBytes); +extern void func_00470090(void *object, u32 color, u64 first, u64 second, u64 third); +extern void func_004706F0(void *object); + +char *func_0046D708(s32 index, s32 classId, const Quadword *position) +{ + char **slot; + char *object; + func_004E7450(D_001170D0); + D_00266A88.initialized = 1; + slot = (char **)((u32)&D_00266A88 + (u32)index * 4U); + if (*slot != 0) + return *slot; + { + object = func_0046B930(classId, 0); + if (object != 0) { + *slot = object; + func_00470090(object, 0x202020, 14, 14, 0); + *(s16 *)(object + 0x32) = 0x40; + *(s16 *)(object + 0x34) = 0x10; + { + Quadword newPosition = *position; + *(u32 *)(object + 0x98) = 0; + *(Quadword *)(object + 0x10) = newPosition; + } + func_004706F0(object); + } + } + return object; +} diff --git a/src/game/0046E9E8.c b/src/game/0046E9E8.c new file mode 100644 index 00000000..1379308a --- /dev/null +++ b/src/game/0046E9E8.c @@ -0,0 +1,33 @@ +#include "common.h" +typedef struct { + char pad[0x10]; + u8 frames; + char gap[11]; + u8 *data; +} Object; +extern void func_004697C0(const void *, s32, u32), func_00469800(void), func_0046DC80(f32); +void func_0046E9E8(Object *p, f32 frame) +{ + s32 i = (s32)frame, j = i + 1; + f32 frac = frame - i; + u8 *d = p->data; + s32 size = d[2], head = d[1]; + u8 *first, *second; + if (j == p->frames) + j = 0; + i *= size; + j *= size; + first = d + (head + i) * 16; + second = d + (j + head) * 16; + if (head) { + func_004697C0(d, head, 0x2000); + func_00469800(); + } + if (size) { + func_004697C0(first, size, 0x3000); + func_00469800(); + func_004697C0(second, size, 0x3800); + func_00469800(); + } + func_0046DC80(frac); +} diff --git a/src/game/0047ED10.c b/src/game/0047ED10.c new file mode 100644 index 00000000..24a8126f --- /dev/null +++ b/src/game/0047ED10.c @@ -0,0 +1,19 @@ +#include "common.h" + +extern s32 D_0021DDB8; +extern s32 func_00453C68(s32, s32, f32); + +s32 func_0047ED10(s32 alpha) +{ + f32 value = (f32)(D_0021DDB8 % 150) / 150.0f; + s32 color; + if (value < 0.333f) { + color = func_00453C68(0x00804020, 0x00208040, value * 3.0f); + } else if (value < 0.667f) { + color = func_00453C68(0x00208040, 0x00402080, (value - 0.333f) * 3.0f); + } else { + color = func_00453C68(0x00402080, 0x00804020, (value - 0.667f) * 3.0f); + } + color &= 0x00FFFFFF; + return color | (alpha << 24); +} diff --git a/src/game/0048B840.c b/src/game/0048B840.c new file mode 100644 index 00000000..1acb30a1 --- /dev/null +++ b/src/game/0048B840.c @@ -0,0 +1,36 @@ +#include "common.h" + +extern s32 D_002214D8; + +extern void func_00453718(void *, const void *, u32); +extern void *func_0048B818(u32, u8 **, const u8 *); + +s32 func_0048B840(const u8 *arg0, u8 **arg1, const u8 *arg2) { + s32 i; + s32 offset; + + func_00453718((void *)(D_002214D8 + 0x300C), arg0, 4); + arg0 += 4; + *(void **)(D_002214D8 + 0x3010) = func_0048B818(*(s32 *)(D_002214D8 + 0x300C) * 0xC, arg1, arg2); + if (*(s32 *)(D_002214D8 + 0x3010) == 0) { + return 1; + } + if (*(s32 *)(D_002214D8 + 0x300C) <= 0) { + return 0; + } + i = 0; + offset = 0; + do { + if (*(s32 *)(D_002214D8 + 0x3000) >= 2) { + func_00453718((void *)(*(u32 *)(D_002214D8 + 0x3010) + offset), arg0, 0xC); + arg0 += 0xC; + } else { + func_00453718((void *)(*(u32 *)(D_002214D8 + 0x3010) + offset), arg0, 8); + arg0 += 8; + *(s16 *)(offset + *(s32 *)(D_002214D8 + 0x3010) + 8) = 0; + } + i++; + offset += 0xC; + } while (i < *(s32 *)(D_002214D8 + 0x300C)); + return 0; +} diff --git a/src/game/0048BB38.c b/src/game/0048BB38.c new file mode 100644 index 00000000..d3fab565 --- /dev/null +++ b/src/game/0048BB38.c @@ -0,0 +1,26 @@ +#include "common.h" +extern u8 *D_002214D8; +extern void func_00453718(void *, const void *, u32); +extern void *func_0048B818(u32, u8 **, const u8 *); +static inline s32 count(void) +{ + return *(s32 *)(D_002214D8 + 0x3024); +} +static inline u8 *values(void) +{ + return (u8 *)*(u32 *)(D_002214D8 + 0x3028); +} +s32 func_0048BB38(const u8 *input, u8 **cursor, const u8 *end) +{ + s32 i; + func_00453718(D_002214D8 + 0x3024, input, 4); + input += 4; + *(u32 *)(D_002214D8 + 0x3028) = (u32)func_0048B818((u32)count() << 3, cursor, end); + if (!values()) + return 1; + for (i = 0; i < count(); i++) { + func_00453718(values() + ((u32)i << 3), input, 8); + input += 8; + } + return 0; +} diff --git a/src/game/0048BC20.c b/src/game/0048BC20.c new file mode 100644 index 00000000..6435d23c --- /dev/null +++ b/src/game/0048BC20.c @@ -0,0 +1,26 @@ +#include "common.h" +extern u8 *D_002214D8; +extern void func_00453718(void *, const void *, u32); +extern void *func_0048B818(u32, u8 **, const u8 *); +static inline s32 count(void) +{ + return *(s32 *)(D_002214D8 + 0x303C); +} +static inline u8 *values(void) +{ + return (u8 *)*(u32 *)(D_002214D8 + 0x3040); +} +s32 func_0048BC20(const u8 *input, u8 **cursor, const u8 *end) +{ + s32 i; + func_00453718(D_002214D8 + 0x303C, input, 4); + input += 4; + *(u32 *)(D_002214D8 + 0x3040) = (u32)func_0048B818((u32)count() * 12u, cursor, end); + if (!values()) + return 1; + for (i = 0; i < count(); i++) { + func_00453718(values() + ((u32)i * 12u), input, 12); + input += 12; + } + return 0; +} diff --git a/src/game/0048BD08.c b/src/game/0048BD08.c new file mode 100644 index 00000000..47217dc2 --- /dev/null +++ b/src/game/0048BD08.c @@ -0,0 +1,26 @@ +#include "common.h" +extern u8 *D_002214D8; +extern void func_00453718(void *, const void *, u32); +extern void *func_0048B818(u32, u8 **, const u8 *); +static inline s32 count(void) +{ + return *(s32 *)(D_002214D8 + 0x3044); +} +static inline u8 *values(void) +{ + return (u8 *)*(u32 *)(D_002214D8 + 0x3048); +} +s32 func_0048BD08(const u8 *input, u8 **cursor, const u8 *end) +{ + s32 i; + func_00453718(D_002214D8 + 0x3044, input, 4); + input += 4; + *(u32 *)(D_002214D8 + 0x3048) = (u32)func_0048B818((u32)count() << 3, cursor, end); + if (!values()) + return 1; + for (i = 0; i < count(); i++) { + func_00453718(values() + ((u32)i << 3), input, 8); + input += 8; + } + return 0; +} diff --git a/src/game/0048BF90.c b/src/game/0048BF90.c new file mode 100644 index 00000000..18f625c5 --- /dev/null +++ b/src/game/0048BF90.c @@ -0,0 +1,26 @@ +#include "common.h" +extern u8 *D_002214D8; +extern void func_00453718(void *, const void *, u32); +extern void *func_0048B818(u32, u8 **, const u8 *); +static inline s32 count(void) +{ + return *(s32 *)(D_002214D8 + 0x305C); +} +static inline u8 *values(void) +{ + return (u8 *)*(u32 *)(D_002214D8 + 0x3060); +} +s32 func_0048BF90(const u8 *input, u8 **cursor, const u8 *end) +{ + s32 i; + func_00453718(D_002214D8 + 0x305C, input, 4); + input += 4; + *(u32 *)(D_002214D8 + 0x3060) = (u32)func_0048B818((u32)count() * 4u, cursor, end); + if (!values()) + return 1; + for (i = 0; i < count(); i++) { + func_00453718(values() + ((u32)i * 4u), input, 4); + input += 4; + } + return 0; +} diff --git a/src/game/0048C078.c b/src/game/0048C078.c new file mode 100644 index 00000000..5d7c8dc0 --- /dev/null +++ b/src/game/0048C078.c @@ -0,0 +1,26 @@ +#include "common.h" +extern u8 *D_002214D8; +extern void func_00453718(void *, const void *, u32); +extern void *func_0048B818(u32, u8 **, const u8 *); +static inline s32 count(void) +{ + return *(s32 *)(D_002214D8 + 0x3064); +} +static inline u8 *values(void) +{ + return (u8 *)*(u32 *)(D_002214D8 + 0x3068); +} +s32 func_0048C078(const u8 *input, u8 **cursor, const u8 *end) +{ + s32 i; + func_00453718(D_002214D8 + 0x3064, input, 4); + input += 4; + *(u32 *)(D_002214D8 + 0x3068) = (u32)func_0048B818((u32)count() * 4u, cursor, end); + if (!values()) + return 1; + for (i = 0; i < count(); i++) { + func_00453718(values() + ((u32)i * 4u), input, 4); + input += 4; + } + return 0; +} diff --git a/src/game/0048C160.c b/src/game/0048C160.c new file mode 100644 index 00000000..9ef9eacb --- /dev/null +++ b/src/game/0048C160.c @@ -0,0 +1,26 @@ +#include "common.h" +extern u8 *D_002214D8; +extern void func_00453718(void *, const void *, u32); +extern void *func_0048B818(u32, u8 **, const u8 *); +static inline s32 count(void) +{ + return *(s32 *)(D_002214D8 + 0x306C); +} +static inline u8 *values(void) +{ + return (u8 *)*(u32 *)(D_002214D8 + 0x3070); +} +s32 func_0048C160(const u8 *input, u8 **cursor, const u8 *end) +{ + s32 i; + func_00453718(D_002214D8 + 0x306C, input, 4); + input += 4; + *(u32 *)(D_002214D8 + 0x3070) = (u32)func_0048B818((u32)count() * 4u, cursor, end); + if (!values()) + return 1; + for (i = 0; i < count(); i++) { + func_00453718(values() + ((u32)i * 4u), input, 4); + input += 4; + } + return 0; +} diff --git a/src/game/0048C248.c b/src/game/0048C248.c new file mode 100644 index 00000000..74f503b3 --- /dev/null +++ b/src/game/0048C248.c @@ -0,0 +1,26 @@ +#include "common.h" +extern u8 *D_002214D8; +extern void func_00453718(void *, const void *, u32); +extern void *func_0048B818(u32, u8 **, const u8 *); +static inline s32 count(void) +{ + return *(s32 *)(D_002214D8 + 0x3074); +} +static inline u8 *values(void) +{ + return (u8 *)*(u32 *)(D_002214D8 + 0x3078); +} +s32 func_0048C248(const u8 *input, u8 **cursor, const u8 *end) +{ + s32 i; + func_00453718(D_002214D8 + 0x3074, input, 4); + input += 4; + *(u32 *)(D_002214D8 + 0x3078) = (u32)func_0048B818((u32)count() * 4u, cursor, end); + if (!values()) + return 1; + for (i = 0; i < count(); i++) { + func_00453718(values() + ((u32)i * 4u), input, 4); + input += 4; + } + return 0; +} diff --git a/src/game/0048C330.c b/src/game/0048C330.c new file mode 100644 index 00000000..a25d41bc --- /dev/null +++ b/src/game/0048C330.c @@ -0,0 +1,24 @@ +#include "common.h" + +extern u8 *D_002214D8; +extern void func_00453718(void *, const void *, u32); +extern void *func_0048B818(u32, u8 **, const u8 *); +s32 func_0048C330(const u8 *source, u8 **cursor, const u8 *limit) +{ + s32 i; + if (*(s32 *)(D_002214D8 + 0x3000) < 2) { + *(u8 **)(D_002214D8 + 0x3038) = 0; + *(s32 *)(D_002214D8 + 0x3034) = 0; + return 0; + } + func_00453718(D_002214D8 + 0x3034, source, 4); + source += 4; + *(u8 **)(D_002214D8 + 0x3038) = func_0048B818((u32) * (s32 *)(D_002214D8 + 0x3034) << 2, cursor, limit); + if (!*(u8 **)(D_002214D8 + 0x3038)) + return 1; + for (i = 0; i < *(s32 *)(D_002214D8 + 0x3034); i++) { + func_00453718(*(u8 **)(D_002214D8 + 0x3038) + i * 4, source, 4); + source += 4; + } + return 0; +} diff --git a/src/game/0048C440.c b/src/game/0048C440.c new file mode 100644 index 00000000..b296edf0 --- /dev/null +++ b/src/game/0048C440.c @@ -0,0 +1,41 @@ +#include "common.h" +extern u32 *D_002214D8; +extern void *func_0048B818(u32, u8 **, const u8 *); +extern void func_00453718(void *, const void *, u32); +s32 func_0048C440(const u8 *input, u8 **cursor, const u8 *limit) +{ + u32 *state = D_002214D8; + void *result; + s32 count; + u32 offset; + if ((s32)state[0xC00] < 2) { + result = func_0048B818(12, cursor, limit); + D_002214D8[0xC0C] = (u32)result; + if (!D_002214D8[0xC0C]) + return 1; + D_002214D8[0xC0B] = 1; + *(u16 *)D_002214D8[0xC0C] = 0; + *(u16 *)(D_002214D8[0xC0C] + 2) = *(u16 *)((u8 *)D_002214D8 + 0x300C); + *(u16 *)(D_002214D8[0xC0C] + 4) = 0; + *(u16 *)(D_002214D8[0xC0C] + 6) = 0; + *(u16 *)(D_002214D8[0xC0C] + 8) = 0; + return 0; + } + func_00453718(&state[0xC0B], input, 4); + input += 4; + result = func_0048B818(D_002214D8[0xC0B] * 12, cursor, limit); + D_002214D8[0xC0C] = (u32)result; + if (!D_002214D8[0xC0C]) + return 1; + count = 0; + if (count >= (s32)D_002214D8[0xC0B]) + return 0; + offset = 0; + do { + func_00453718((void *)(D_002214D8[0xC0C] + offset), input, 12); + input += 12; + offset += 12; + ++count; + } while (count < (s32)D_002214D8[0xC0B]); + return 0; +} diff --git a/src/game/00498270.c b/src/game/00498270.c new file mode 100644 index 00000000..a66d7e0e --- /dev/null +++ b/src/game/00498270.c @@ -0,0 +1,41 @@ +#include "common.h" +typedef struct { + u8 gap[6]; + s16 primary, secondary; +} Descriptor; +typedef struct { + u8 gap[0x26E4]; + void *inventory; +} Hero; +typedef struct { + char text[64]; +} Buffer; +extern Buffer D_002F31B8[]; +extern const char D_0021F590[]; +extern Descriptor *func_00548D28(s32, s32); +extern const char *func_0045E038(s32); +extern Hero *func_00510BE8(s32); +extern s32 func_00547D58(void *, s32), func_0011D920(char *, const char *, ...); +const char *func_00498270(s32 index, s32 item, s32 numbered, s32 primary, s32 minimum) +{ + const char *result = (D_002F31B8 + index)->text; + const char *text; + Hero *hero; + s32 level; + if (primary) + text = func_0045E038(func_00548D28(item, 0)->primary); + else + text = func_0045E038(func_00548D28(item, 0)->secondary); + hero = func_00510BE8(index); + level = 0; + if (hero && hero->inventory) + level = func_00547D58(hero->inventory, item); + if (level >= minimum) { + if (numbered) + func_0011D920((char *)result, D_0021F590, text, level + 1); + else + result = text; + } else + result = text; + return result; +} diff --git a/src/game/00498A98.c b/src/game/00498A98.c new file mode 100644 index 00000000..bfe62946 --- /dev/null +++ b/src/game/00498A98.c @@ -0,0 +1,37 @@ +#include "common.h" + +extern s32 D_0021EDD4; +extern void *func_00510BE8(s32); +extern void *func_00548D28(s32, s32); +extern s32 func_00547D58(void *, s32); +extern s32 func_00498918(s32, s32); +extern f32 func_00475710(f32, f32, f32); +extern s32 func_00453C68(s32, s32, f32); + +s32 func_00498A98(s32 a0, s32 a1) +{ + void *object; + s32 value; + s32 color; + + if (D_0021EDD4 != 1) { + a0 = 0; + } + object = func_00510BE8(a0); + if (*(u8 *)((u8 *)func_00548D28(a1, 0) + 0x28) != 0) { + value = func_00547D58(*(void **)((u8 *)object + 0x26E4), a1); + if (D_0021EDD4 == 1 ? value > 0 : value >= 10) { + s32 second; + f32 blend; + color = func_00498918(0, 0); + if (D_0021EDD4 != 1) { + second = func_00498918(5, 0); + blend = func_00475710((f32)value, 10.0f, 98.0f); + color = func_00453C68(color, second, blend); + } + } else + color = 0x80D0D0D0; + } else + color = func_00498918(4, 3); + return color; +} diff --git a/src/game/004993D8.c b/src/game/004993D8.c new file mode 100644 index 00000000..2071149f --- /dev/null +++ b/src/game/004993D8.c @@ -0,0 +1,43 @@ +#include "common.h" +typedef struct Block Block; +typedef struct Object Object; +typedef struct Spec { + s32 id; + u32 sectors; +} Spec; +typedef struct Entry { + Block *block; + Object *object; + s32 references, unknown; + Spec *spec; +} Entry; +extern Entry D_002F3950[]; +extern Block *func_00499320(u32, s32); +extern s32 func_004A2D90(Object *, void *, s32); +extern void func_00499538(Entry *); +Entry *func_004993D8(Spec *spec, s32 value) +{ + Entry *empty = 0; + s32 i; + for (i = 0; i < 32; i++) { + if (D_002F3950[i].spec == spec) { + D_002F3950[i].references++; + return &D_002F3950[i]; + } + if (!D_002F3950[i].references && !empty) + empty = &D_002F3950[i]; + } + if (empty) { + Block *b = func_00499320(spec->sectors << 11, 1); + if (b) { + empty->references++; + empty->unknown = value; + empty->spec = spec; + func_004A2D90(empty->object, 0, 0); + empty->block = b; + func_00499538(empty); + } else + empty = 0; + } + return empty; +} diff --git a/src/game/0049E140.c b/src/game/0049E140.c new file mode 100644 index 00000000..2e3fceab --- /dev/null +++ b/src/game/0049E140.c @@ -0,0 +1,47 @@ +#include "common.h" + +extern s32 D_00307074[]; +extern s32 D_00307220[]; +extern s32 *D_0021DDA4; +extern s32 D_0021EDD4; +extern s32 D_0021EDD8; +extern s32 func_00505B20(void); +extern s32 *func_00510BE8(s32); +extern f32 func_0049B528(void *, s32); +extern void func_0049E2B8(s32); +extern void func_0049E478(s32); +extern void func_00497438(s32, s32, s32); + +void func_0049E140(void) { + s32 index = func_00505B20(); + s32 *record; + s32 *state; + + if (index == 4) { + record = D_00307074; + } else { + record = D_00307220 + index * 0x80; + } + state = func_00510BE8(index); + if (func_0049B528(record + 1, ((u8 *)record)[0]) == 0.0f) { + if (((u8 *)record)[0] != 0 && ((u8 *)record)[0x1C] == 0) { + func_0049E2B8(index); + } + } else { + func_0049E478(index); + } + if (*(f32 *)(record + 1) == 0.0f) { + return; + } + if (index == 4) { + for (index = 0; index < *D_0021DDA4; index++) { + func_00497438(index, 3, 4); + } + return; + } + *(s16 *)((u8 *)state + 0x3BA) = 3; + func_00497438(index, 3, 4); + if (D_0021EDD4 == 0 && D_0021EDD8 == 1) { + func_00497438((u32)index < 1, 3, 4); + } +} diff --git a/src/game/0049F4F8.c b/src/game/0049F4F8.c new file mode 100644 index 00000000..124811f3 --- /dev/null +++ b/src/game/0049F4F8.c @@ -0,0 +1,50 @@ +#include "common.h" + +extern s32 D_00307254[]; +extern s32 func_00505B20(void); +extern s32 func_004A0208(s32); +extern s32 func_0049F9F0(s32); +extern void func_0049FB78(s32); +extern void func_0049F928(s32); +extern f32 func_004973E0(void *, s32); +extern void func_0049FBF0(s32); +extern void func_00499CE0(s32); +extern void func_005054F8(s32, s32); + +void func_0049F4F8(void) { + s32 index = func_00505B20(); + s32 *record = D_00307254 + index * 0x80; + f32 value; + f32 zero; + s32 first; + s32 second; + + if (((u8 *)record)[0x24] != 0) { + if (*(f32 *)(record + 0xA) == 1.0f && record[0xC] == record[0xD]) { + if (func_0049F9F0(func_004A0208(index)) == 0) { + func_0049FB78(1); + } + func_0049F928(index); + return; + } + } + value = *(f32 *)(record + 0xA); + +fallback: + zero = 0.0f; + if (value != zero || ((u8 *)record)[0x24] != 0) { + first = func_004973E0(record + 0xA, ((u8 *)record)[0x24]) != zero; + second = func_004973E0(record + 0xE, 0) != zero; + if ((second | first) != 0) { + func_0049FBF0(index); + } + return; + } + + if (record[0x14] == 0) { + return; + } + func_00499CE0(record[0x14]); + record[0x14] = 0; + func_005054F8(index * 0x40 + 0x140004, 0); +} diff --git a/src/game/0049F660.c b/src/game/0049F660.c new file mode 100644 index 00000000..99377c92 --- /dev/null +++ b/src/game/0049F660.c @@ -0,0 +1,27 @@ +#include "common.h" +typedef struct { + char pad[0x14]; + f32 x, y, w, h; + u8 active; + char gap[7]; + s32 choice; + char rest[0x1D0]; +} State; +extern State D_00307254[]; +extern void func_0049FBF0(s32), func_0049F758(s32, f32 *, f32 *, f32 *, f32 *), func_0049F828(s32, s32, f32 *, f32 *, f32 *, f32 *), func_0049CFE8(s32, s32, f32, f32, f32, f32), func_0049BFC0(s32, s32, s32, f32, f32, f32, f32); +void func_0049F660(s32 index, f32 x, f32 y, f32 w, f32 h) +{ + f32 c, d; + State *p = D_00307254 + index; + p->x = x; + p->y = y; + p->w = w; + p->h = h; + if (p->active) { + func_0049FBF0(index); + func_0049F758(index, &x, &y, &c, &d); + func_0049CFE8(index, 0, x, y, c, d); + func_0049F828(index, p->choice, &x, &y, &c, &d); + func_0049BFC0(index, 0, 0, x, y, c, d); + } +} diff --git a/src/game/0049F758.c b/src/game/0049F758.c new file mode 100644 index 00000000..c2861c83 --- /dev/null +++ b/src/game/0049F758.c @@ -0,0 +1,28 @@ +#include "common.h" + +typedef struct { + u8 prefix[0x14]; + f32 x, y, width, factor; + u8 gap[0xC]; + s32 frame; + u8 gap34[0x10]; + u8 active; + u8 tail[0x1BB]; +} State; +extern State D_00307254[]; +void func_0049F758(s32 index, f32 *x, f32 *y, f32 *width, f32 *height) +{ + f32 intermediate, spacing; + State *state = &D_00307254[index]; + if (state->active) + spacing = state->width * 0.48582998f; + else + spacing = 0.024038462f; + intermediate = state->factor * (f32)state->frame; + *height = intermediate; + *height = intermediate + (f32)(state->frame + 1) * 0.0072115385f + + (spacing + 0.024038462f) + 0.009615385f; + *x = state->x; + *y = state->y; + *width = state->width + 0.0078125f; +} diff --git a/src/game/0049F828.c b/src/game/0049F828.c new file mode 100644 index 00000000..c68e8456 --- /dev/null +++ b/src/game/0049F828.c @@ -0,0 +1,37 @@ +#include "common.h" + +typedef struct { + u8 prefix[0x14]; + f32 x, y, width, factor; + u8 gap[0xC]; + s32 frame; + u8 gap34[0x10]; + u8 active; + u8 tail[0x1BB]; +} State; +extern State D_00307254[]; +void func_0049F828(s32 index, s32 row, f32 *x, f32 *y, f32 *width, f32 *height) +{ + State *state = &D_00307254[index]; + f32 spacing; + f32 value; + + f32 a, b, c; + s32 frame; + if (state->active) + spacing = state->width * 0.48582998f; + else + spacing = 0.024038462f; + frame = state->frame; + a = state->factor * (f32)frame; + b = (f32)(frame + 1) * 0.0072115385f; + c = spacing + 0.024038462f; + *width = state->width; + *height = state->factor; + *x = state->x; + value = (state->y - ((a + b + c) * 0.5f)) + (spacing + 0.0072115385f); + *y = value; + value = value + *height * 0.5f; + *y = value; + *y = value + (*height + 0.0072115385f) * (f32)row; +} diff --git a/src/game/004A06F8.c b/src/game/004A06F8.c new file mode 100644 index 00000000..0653b27e --- /dev/null +++ b/src/game/004A06F8.c @@ -0,0 +1,79 @@ +#include "common.h" + +typedef struct Allocator Allocator; +typedef struct Object Object; +typedef struct { + u32 unknown0[2]; + void *(*allocate)(Allocator *, s32); + void (*release)(Allocator *, void *); +} AllocatorVtable; +struct Allocator { + AllocatorVtable *vtable; +}; +typedef struct Manager { + void *unknown0; + u8 *table; +} Manager; +typedef struct { + u32 unknown0[2]; + void (*destroy)(Object *, s32); +} ObjectVtable; +struct Object { + u32 unknown0[2]; + ObjectVtable *vtable; + + u8 unknownC[0x50]; +}; + +extern Manager D_00222038[]; +extern Manager *func_005010E0(void); +extern Allocator *func_005011A8(Manager *, s32); +extern void func_00504228(s32); +extern s32 func_00504230(void); +extern s32 func_004FF910(void *, u32); +extern void *func_0015DB80(u32, void *); +extern Object *func_0050D2E8(void *); +extern s32 func_005005A8(void *, Object *, u32); + +static inline Manager *get_manager(void) +{ + Manager *manager = D_00222038; + if (manager->table) { + return manager; + } + return func_005010E0(); +} + +s32 func_004A06F8(u32 key) +{ + s32 result = 0; + Manager *manager; + Allocator *allocator; + u8 *state; + void *entry; + s32 size; + void *block; + Object *object; + + manager = get_manager(); + state = (u8 *)manager->table; + entry = state != NULL + ? *(void **)((u32)state + ((u32) * (s32 *)(state + 0x14) << 2)) + : NULL; + func_00504228(0x48); + size = func_00504230(); + if (entry != NULL && func_004FF910(entry, key) == 0) { + allocator = func_005011A8(get_manager(), 1); + block = allocator->vtable->allocate(allocator, size); + if (block != NULL) { + object = func_0050D2E8(func_0015DB80(0x48, block)); + result = func_005005A8(entry, object, key) != 0; + if (!result) { + object->vtable->destroy(object, 2); + allocator = func_005011A8(get_manager(), 1); + allocator->vtable->release(allocator, block); + } + } + } + return result; +} diff --git a/src/game/004A0870.c b/src/game/004A0870.c new file mode 100644 index 00000000..a53a5c85 --- /dev/null +++ b/src/game/004A0870.c @@ -0,0 +1,79 @@ +#include "common.h" + +typedef struct Allocator Allocator; +typedef struct Object Object; +typedef struct { + u32 unknown0[2]; + void *(*allocate)(Allocator *, s32); + void (*release)(Allocator *, void *); +} AllocatorVtable; +struct Allocator { + AllocatorVtable *vtable; +}; +typedef struct Manager { + void *unknown0; + u8 *table; +} Manager; +typedef struct { + u32 unknown0[2]; + void (*destroy)(Object *, s32); +} ObjectVtable; +struct Object { + u32 unknown0[2]; + ObjectVtable *vtable; + + u8 unknownC[0x50]; +}; + +extern Manager D_00222038[]; +extern Manager *func_005010E0(void); +extern Allocator *func_005011A8(Manager *, s32); +extern void func_00504228(s32); +extern s32 func_00504230(void); +extern s32 func_004FF910(void *, u32); +extern void *func_0015DB80(u32, void *); +extern Object *func_0050EB00(void *); +extern s32 func_005005A8(void *, Object *, u32); + +static inline Manager *get_manager(void) +{ + Manager *manager = D_00222038; + if (manager->table) { + return manager; + } + return func_005010E0(); +} + +s32 func_004A0870(u32 key) +{ + s32 result = 0; + Manager *manager; + Allocator *allocator; + u8 *state; + void *entry; + s32 size; + void *block; + Object *object; + + manager = get_manager(); + state = (u8 *)manager->table; + entry = state != NULL + ? *(void **)((u32)state + ((u32) * (s32 *)(state + 0x14) << 2)) + : NULL; + func_00504228(0x50); + size = func_00504230(); + if (entry != NULL && func_004FF910(entry, key) == 0) { + allocator = func_005011A8(get_manager(), 1); + block = allocator->vtable->allocate(allocator, size); + if (block != NULL) { + object = func_0050EB00(func_0015DB80(0x50, block)); + result = func_005005A8(entry, object, key) != 0; + if (!result) { + object->vtable->destroy(object, 2); + allocator = func_005011A8(get_manager(), 1); + allocator->vtable->release(allocator, block); + } + } + } + return result; +} diff --git a/src/game/004A09E8.c b/src/game/004A09E8.c new file mode 100644 index 00000000..8b416085 --- /dev/null +++ b/src/game/004A09E8.c @@ -0,0 +1,79 @@ +#include "common.h" + +typedef struct Allocator Allocator; +typedef struct Object Object; +typedef struct { + u32 unknown0[2]; + void *(*allocate)(Allocator *, s32); + void (*release)(Allocator *, void *); +} AllocatorVtable; +struct Allocator { + AllocatorVtable *vtable; +}; +typedef struct Manager { + void *unknown0; + u8 *table; +} Manager; +typedef struct { + u32 unknown0[2]; + void (*destroy)(Object *, s32); +} ObjectVtable; +struct Object { + u32 unknown0[2]; + ObjectVtable *vtable; + + u8 unknownC[0x50]; +}; + +extern Manager D_00222038[]; +extern Manager *func_005010E0(void); +extern Allocator *func_005011A8(Manager *, s32); +extern void func_00504228(s32); +extern s32 func_00504230(void); +extern s32 func_004FF910(void *, u32); +extern void *func_0015DB80(u32, void *); +extern Object *func_0050E360(void *); +extern s32 func_005005A8(void *, Object *, u32); + +static inline Manager *get_manager(void) +{ + Manager *manager = D_00222038; + if (manager->table) { + return manager; + } + return func_005010E0(); +} + +s32 func_004A09E8(u32 key) +{ + s32 result = 0; + Manager *manager; + Allocator *allocator; + u8 *state; + void *entry; + s32 size; + void *block; + Object *object; + + manager = get_manager(); + state = (u8 *)manager->table; + entry = state != NULL + ? *(void **)((u32)state + ((u32) * (s32 *)(state + 0x14) << 2)) + : NULL; + func_00504228(0x70); + size = func_00504230(); + if (entry != NULL && func_004FF910(entry, key) == 0) { + allocator = func_005011A8(get_manager(), 1); + block = allocator->vtable->allocate(allocator, size); + if (block != NULL) { + object = func_0050E360(func_0015DB80(0x70, block)); + result = func_005005A8(entry, object, key) != 0; + if (!result) { + object->vtable->destroy(object, 2); + allocator = func_005011A8(get_manager(), 1); + allocator->vtable->release(allocator, block); + } + } + } + return result; +} diff --git a/src/game/004A1240.c b/src/game/004A1240.c new file mode 100644 index 00000000..01336c81 --- /dev/null +++ b/src/game/004A1240.c @@ -0,0 +1,47 @@ +#include "common.h" + +typedef struct { + u8 unknown0[12]; + u8 dirty; + u8 unknownD[11]; +} Row; + +typedef s32 (*Validator)(s32); + +typedef struct { + u8 unknown0[0x34]; + Row *rows; + u8 unknown38[12]; + Validator validate; + u8 unknown48[8]; + s32 count; + s32 selected; + u32 flags; +} List; + +extern void func_004A1310(List *); + +void func_004A1240(List *list, s32 index) +{ + s32 maximum; + + if (list->count != 0) { + maximum = list->count - 1; + index = index > maximum ? maximum : index; + index = index < 0 ? 0 : index; + if (index != list->selected) { + if (list->selected >= 0) { + list->rows[list->selected].dirty = 1; + } + list->selected = index; + if (index >= 0) { + list->rows[index].dirty = 1; + } + list->flags |= 2; + } + if (list->selected >= 0 && list->validate != 0 && + list->validate(list->selected) == 0) { + func_004A1310(list); + } + } +} diff --git a/src/game/004A1B48.c b/src/game/004A1B48.c new file mode 100644 index 00000000..d532d26e --- /dev/null +++ b/src/game/004A1B48.c @@ -0,0 +1,70 @@ +#include "common.h" + +extern void func_0049EF30(s32); +s32 D_0021F658 = 1; + +extern void func_004A1D58(s32 active); + +typedef struct GameInfo { + u8 pad00[8]; + s32 mode; + s32 value; + s32 unknown10; + s32 ready; + s16 code; + u8 pad1A[0x1AA]; + s32 connection; + s32 unknown1C8; + s32 error; +} GameInfo; +extern u8 D_00171948[]; +extern const char *func_0045E080(s32 label); +extern void func_0049E790(s32 mode, const char *text, void (*callback)(s32), + s32 buttons, s32 f4, s32 f5, s32 f6, f32 timeout); +extern void func_0049B148(s32 context, s32 mask); +extern void func_005014B0(s32 *group); + +void func_004A1B48(s32 *group) +{ + switch (D_0021F658) { + case 1: { + GameInfo *game = (GameInfo *)D_00171948; + if (game->connection == 2 && game->error < 0) { + if (game->mode != 2) { + func_0049E790(0, func_0045E080(0x19B), func_004A1D58, + 3, 0, 0, 0, -1.0f); + D_0021F658 = 2; + } else if (game->ready != 0 && game->code < -1 && game->value < 400) { + func_0049E790(0, func_0045E080(0x198), func_004A1D58, + 3, 0, 0, 0, -1.0f); + D_0021F658 = 3; + } else { + D_0021F658 = 4; + } + } + break; + } + case 2: { + GameInfo *game = (GameInfo *)D_00171948; + if (game->connection == 2 && game->error < 0 && game->mode == 2) { + func_0049EF30(0); + D_0021F658 = 1; + } + break; + } + case 3: { + GameInfo *game = (GameInfo *)D_00171948; + if (game->connection == 2 && game->error < 0 && game->mode != game->connection) { + func_0049EF30(0); + func_0049E790(0, func_0045E080(0x19B), func_004A1D58, + 3, 0, 0, 0, -1.0f); + D_0021F658 = 1; + } + break; + } + case 4: + func_0049B148(0, 0x20); + func_005014B0(group); + break; + } +} diff --git a/src/game/004A2B18.c b/src/game/004A2B18.c new file mode 100644 index 00000000..b7723b58 --- /dev/null +++ b/src/game/004A2B18.c @@ -0,0 +1,40 @@ +#include "common.h" + +typedef struct { + s32 offset, size; +} Entry; +typedef struct { + s32 state; + u8 p4[8]; + void *buffer; + u8 p10[4]; + Entry *table; + s32 base, selected; +} Transfer; +extern s32 func_00163928(void); +extern void func_001634A8(s32); +typedef void (*Completion)(s32, s32); +extern s32 func_00163840(s32, void *, s32, s32, const void *, Completion, s32); +s32 func_004A2B18(Transfer *transfer, s32 selected) +{ + s32 result = 0; + if (transfer->table && transfer->buffer && (transfer->state ^ 4) != 0 && (transfer->state ^ 8) != 0) { + if (func_00163928() == 0) { + s32 size = *(s32 *)((u32)selected * 8 + (u32)transfer->table + 4); + if (size > 0) { + Entry *entry; + transfer->selected = selected; + result = 1; + func_001634A8(1); + entry = (Entry *)((u32)transfer->selected * 8 + (u32)transfer->table); + func_00163840(0, transfer->buffer, entry->offset + transfer->base, entry->size, 0, 0, 0); + transfer->state = 4; + } + } else { + transfer->selected = selected; + transfer->state = 16; + result = 1; + } + } + return result; +} diff --git a/src/game/004A2C28.c b/src/game/004A2C28.c new file mode 100644 index 00000000..276486c0 --- /dev/null +++ b/src/game/004A2C28.c @@ -0,0 +1,56 @@ +#include "common.h" + +extern s32 func_00163928(void); +extern void func_001634A8(s32); +extern void func_00163840(s32, s32, s32, s32, s32, s32, s32); +extern void func_00469C40(s32, s32); + +s32 func_004A2C28(s32 arg0, s32 arg1) +{ + s32 result; + s32 value; + s32 flags = *(s32 *)arg0; + + if ((flags ^ 0x10) == 0) { + result = func_00163928(); + if (result != 0) { + goto end; + } + func_001634A8(1); + value = *(s32 *)(arg0 + 0x1C); + value = (value << 3) + *(s32 *)(arg0 + 0x14); + func_00163840(0, *(s32 *)(arg0 + 0xC), + *(s32 *)value + *(s32 *)(arg0 + 0x18), + *(s32 *)(value + 4), 0, 0, 0); + flags = 4; + *(s32 *)arg0 = flags; + goto done; + } + if ((flags ^ 8) == 0) { + result = func_00163928(); + if (result != 0) { + goto end; + } + value = 1; + goto store; + } + if ((flags ^ 4) != 0) { + goto end; + } + result = func_00163928(); + if (result != 0) { + goto end; + } + arg1 = *(s32 *)(arg0 + 0x10); + if (arg1 == 0) { + value = 2; + goto store; + } + func_00469C40(*(s32 *)(arg0 + 0xC), arg1); + value = 2; +store: + *(s32 *)arg0 = value; +done: +end: + return 1; +} diff --git a/src/game/004A4880.c b/src/game/004A4880.c new file mode 100644 index 00000000..25ec1974 --- /dev/null +++ b/src/game/004A4880.c @@ -0,0 +1,29 @@ +#include "common.h" +typedef struct { + s32 flags; + char pad[0xD4]; + f32 timer; + char rest[0x10]; +} State; +extern u8 D_00307B58[]; +extern s32 func_00505B20(void), func_00504F68(s32, s32), func_00505328(s32, u32), func_005049B8(s32, u32); +void func_004A4880(void) +{ + s32 offset = func_00505B20() * 0xEC; + u8 *base = D_00307B58; + f32 *first = &((State *)base)->timer; + f32 *timer = (f32 *)((char *)first + offset); + *timer -= 0.05f; + if (*timer <= 0) { + func_00504F68(0xE0007, 0); + func_00504F68(0xE0008, 0); + ((State *)(offset + base))->flags &= ~4; + } else if (*timer < 1) { + u32 color = (u32)(s32)(*timer * 128.0f) << 24; + u32 shadow = (u32)(s32)(*timer * 64.0f) << 24; + func_00505328(0xE0007, color | 0xD0D0D0); + func_005049B8(0xE0007, shadow); + func_00505328(0xE0008, ((u32)(s32)(*timer * 128.0f) << 24) | 0x20F0F0); + func_005049B8(0xE0008, shadow); + } +} diff --git a/src/game/004A8280.c b/src/game/004A8280.c new file mode 100644 index 00000000..f99d589e --- /dev/null +++ b/src/game/004A8280.c @@ -0,0 +1,42 @@ +#include "common.h" + +typedef struct State { + u8 pad0[12]; + s32 direction; + f32 phase0, phase1; + u8 pad18[0x5C]; + s32 first; + u8 pad78[0x1C]; + s32 second; +} State; +extern u8 D_00308108[]; +extern s32 D_00221650; +extern s32 func_00505B20(void); +extern s32 func_00498918(s32 selector, s32 mode); +extern u32 func_00498670(f32 *phase, u32 first, f32 step, u32 second); +extern s32 func_004A1A60(s32 *base, s32 offset); +extern s32 func_00505328(s32 handle, u32 color); +extern s32 func_004989C0(s32 context, s32 mode); +void func_004A8280(void) +{ + s32 index = func_00505B20(); + State *state = (State *)((u32)D_00308108 + (u32)index * 0xB8); + u32 color = 0x40000000; + s32 value = state->direction; + if (value != 0) { + u32 target; + if (value > 0) + target = func_00498918(0, 1); + else + target = func_00498918(1, 1); + target = (target & 0x00FFFFFF) | 0x40000000; + color = func_00498670(&state->phase0, 0x40000000, 0.01f, target); + } + func_00505328(func_004A1A60(&D_00221650, 0x2C), color); + color = 0x80D0D0D0; + if (state->first <= 0 && state->second > 0) { + u32 target = func_004989C0(index, 0); + color = func_00498670(&state->phase1, target, 0.05f, 0x80D0D0D0); + } + func_00505328(func_004A1A60(&D_00221650, 0x30), color); +} diff --git a/src/game/004A8430.c b/src/game/004A8430.c new file mode 100644 index 00000000..c22eb40f --- /dev/null +++ b/src/game/004A8430.c @@ -0,0 +1,34 @@ +#include "common.h" + +extern s32 D_0021DDB4; +extern f32 func_004539F0(f32, f32); + +f32 func_004A8430(const void *arg0) +{ + const u8 *arg1; + const u8 *object; + f32 result; + f32 distance; + f32 x; + f32 y; + + result = 360.0f; + arg1 = *(const u8 **)((const u8 *)arg0 + 0x2F00); + distance = *(f32 *)(arg1 + 0x140) * *(f32 *)(arg1 + 0x140) + + *(f32 *)(arg1 + 0x144) * *(f32 *)(arg1 + 0x144); + if (D_0021DDB4 == 4 || (*(s32 *)(arg1 + 0x1A0) & 0x10) != 0) { + distance += *(f32 *)(arg1 + 0x148) * *(f32 *)(arg1 + 0x148) + + *(f32 *)(arg1 + 0x14C) * *(f32 *)(arg1 + 0x14C); + } + if (0.95f < distance) { + object = *(const u8 **)((const u8 *)arg0 + 0x2F00); + x = *(f32 *)(object + 0x140); + y = *(f32 *)(object + 0x144); + if (D_0021DDB4 == 4 || (*(s32 *)(object + 0x1A0) & 0x10) != 0) { + x += *(f32 *)(object + 0x148); + y += *(f32 *)(object + 0x14C); + } + result = func_004539F0(x, y) * 180.0f / 3.1415927f; + } + return result; +} diff --git a/src/game/004A89E8.c b/src/game/004A89E8.c new file mode 100644 index 00000000..c36af247 --- /dev/null +++ b/src/game/004A89E8.c @@ -0,0 +1,28 @@ +#include "common.h" +extern s32 D_0021EDD4; +extern s32 D_0021EDD8; +extern u8 D_00308108[]; +extern s32 func_00505B20(void); +extern s32 func_00498A98(s32, s32); +extern s32 func_00498120(s32); + +u32 func_004A89E8(s32 selection) +{ + s32 context = func_00505B20(); + u32 color = func_00498A98(context, selection); + u32 current, other; + u32 alpha; + if (D_0021EDD4 == 0 && D_0021EDD8 == 1) { + current = (u32)D_00308108 + (u32)context * 0xB8; + other = (u32)D_00308108 + 0xB8; + if (context) + other = (u32)D_00308108; + if (*(s32 *)(current + 0x24) == 0 && + (!*(s32 *)(other + 0x24) || selection != 2) && + selection != 14 && selection == func_00498120((u32)context < 1)) { + alpha = color >> 24; + color = ((u32)(s32)((f32)alpha * 0.2f) << 24) | (color & 0xFFFFFF); + } + } + return color; +} diff --git a/src/game/004A8E78.c b/src/game/004A8E78.c new file mode 100644 index 00000000..0ce97340 --- /dev/null +++ b/src/game/004A8E78.c @@ -0,0 +1,58 @@ +#include "common.h" + +typedef struct { + u8 unknown0[0x70]; + s32 cost; + s32 amount; + s32 displayedAmount; + u8 tail[0x3C]; +} State; +typedef struct { + u8 unknown0[0x26E4]; + void *inventory; +} Hero; +typedef struct { + u8 unknown0[0x20]; + s8 suppressCost; +} Mode; + +extern State D_00308108[]; +extern s32 D_0021EDD4; +extern Mode *D_0021DFF0; +extern s32 func_00505B20(void); +extern s32 func_004A86E0(void); +extern Hero *func_00510BE8(s32); +extern s32 func_00548018(s32); +extern s32 func_00547E30(void *, s32); +extern s32 func_00547E00(void *, s32); +extern void func_004A8778(s32, s32); +extern void func_004A89A0(s32, s32); + +void func_004A8E78(void) +{ + s32 index = func_00505B20(); + s32 item = func_004A86E0(); + State *state = &D_00308108[index]; + Hero *hero = func_00510BE8(index); + s32 cost; + s32 amount; + + if (func_00548018(item)) { + cost = 0; + } else { + cost = func_00547E30(hero->inventory, item); + } + if (D_0021EDD4 == 1 && D_0021DFF0->suppressCost) { + cost = 0; + } + if (state->cost != cost) { + state->cost = cost; + func_004A8778(index, cost); + } + amount = func_00547E00(hero->inventory, item); + state->amount = amount; + if (state->displayedAmount != amount) { + state->displayedAmount = amount; + func_004A89A0(index, amount); + } +} diff --git a/src/game/004AD1D8.c b/src/game/004AD1D8.c new file mode 100644 index 00000000..e5c5d3a5 --- /dev/null +++ b/src/game/004AD1D8.c @@ -0,0 +1,47 @@ +#include "common.h" + +typedef struct { + s16 id; + u8 unknown2[0x12]; + u32 value; + u8 tail[4]; +} Record; + +typedef struct { + u8 unknown0[0x158]; + s32 selected; + u8 tail[0x14]; +} State; + +typedef struct { + s32 count; +} Count; + +extern u8 D_00308B60[]; +extern State D_00308B80[]; +extern Record D_00308460[64]; +extern Count *D_0021DDA4; +extern void func_00453608(void *, s32, u32); +extern void *func_004A2A48(s32); +extern s32 func_004A2D90(void *, s32, s32); +extern void *func_004964C8(void); + +void func_004AD1D8(void) +{ + Record *record; + s32 i; + + func_00453608(D_00308B60, 0, 0x20); + func_00453608(D_00308B80, 0, 0x5C0); + record = D_00308460; + do { + record->id = -1; + record->value = 0; + record++; + } while ((s32)record < (s32)(D_00308460 + 64)); + for (i = 0; i < D_0021DDA4->count; i++) { + D_00308B80[i].selected = -1; + } + func_004A2D90(func_004A2A48(0), 0, 0); + func_00453608(func_004964C8(), 0, 0x20); +} diff --git a/src/game/004B4050.c b/src/game/004B4050.c new file mode 100644 index 00000000..62995635 --- /dev/null +++ b/src/game/004B4050.c @@ -0,0 +1,59 @@ +#include "common.h" + +typedef struct { + s32 caption, icon, image; +} Row; +typedef struct { + u8 unknown0[8]; + u32 icon; + u32 color; + s32 image; + s32 label; +} Item; +typedef struct { + u32 unknown0, sectorCount; +} Resource; +extern Row D_003D1C78[]; +extern s32 D_00221748; +extern u8 D_003096A8[]; +extern Resource D_001CE0D8[]; +extern s32 func_004A1A60(s32 *, s32); +extern s32 func_00504F68(u32, s32); +extern const char *func_0045E038(s32); +extern s32 func_00505238(u32, const char *); +extern s32 func_00505328(s32, u32); +extern s32 func_005054F8(s32, u32); +extern void func_00499CE0(s32); +extern s32 func_00499CA0(Resource *, s32); +extern s32 func_00506120(u32, u32); + +static inline u32 address(u32 base, u32 offset) +{ + return base + offset; +} + +void func_004B4050(s32 index, Item *item) +{ + u32 offset = (u32)index * 12; + s32 *caption = (s32 *)address(offset, (u32)D_003D1C78); + s32 *icon; + s32 *image; + s32 *cache; + u32 handle; + + func_00504F68(func_004A1A60(&D_00221748, *caption), 1); + icon = (s32 *)address(offset, address((u32)D_003D1C78, 4)); + func_00504F68(func_004A1A60(&D_00221748, *icon), 1); + handle = func_004A1A60(&D_00221748, *caption); + func_00505238(handle, func_0045E038(item->label)); + func_00505328(func_004A1A60(&D_00221748, *icon), item->color); + func_005054F8(func_004A1A60(&D_00221748, *icon), item->icon); + image = (s32 *)address(offset, address((u32)D_003D1C78, 8)); + func_00504F68(func_004A1A60(&D_00221748, *image), 1); + cache = (s32 *)address((u32)index << 2, address((u32)D_003096A8, 0x168)); + if (*cache) + func_00499CE0(*cache); + *cache = func_00499CA0((Resource *)((u32)D_001CE0D8 + ((u32)item->image << 3)), -1); + func_005054F8(func_004A1A60(&D_00221748, *image), 1); + func_00506120(func_004A1A60(&D_00221748, *image), *cache); +} diff --git a/src/game/004B6740.c b/src/game/004B6740.c new file mode 100644 index 00000000..316ceb1b --- /dev/null +++ b/src/game/004B6740.c @@ -0,0 +1,38 @@ +/* cflags: -G0 -Wuninitialized -G8 */ +#include "pal/decomp.h" +typedef long long s128; typedef unsigned long long u128; + +s32 func_0045E038(M2C_UNK); +void func_004A01F0(s32, s32); +void func_004B5DF8(s32); +void func_004B5E18(s32, s32, s32, s32); +typedef int (*Callback)(); +M2C_UNK func_004B5E70(s32, Callback, s32); +extern u8 D_00171B66[]; +u8 D_0021F7E9 = 0; +typedef struct { u8 pad[12]; s32 value; u8 tail[488]; } Record; +extern Record D_003098F0[]; +extern int D_004B6C58(); +extern int D_004B72E8(); +extern int D_004B7558(); +extern int D_004B75B8(); +extern int D_004B7610(); +extern int D_004B7668(); + +void func_004B6740(s32 arg0) { + M2C_UNK var_16; + + var_16 = 0; + func_004A01F0(arg0, D_003098F0[arg0].value); + func_004B5DF8(arg0); + func_004B5E18(arg0, func_0045E038(0x235F), (s32)&D_004B72E8, 1); + func_004B5E18(arg0, func_0045E038(0x31D5), (s32)&D_004B7668, 1); + func_004B5E18(arg0, func_0045E038(0x31D4), (s32)&D_004B75B8, 1); + if ((D_00171B66[0] != 0) || (D_0021F7E9 != 0)) { + var_16 = 1; + } + func_004B5E18(arg0, func_0045E038(0x3264), (s32)&D_004B7610, var_16); + func_004B5E18(arg0, func_0045E038(0x31D3), (s32)&D_004B7558, var_16); + func_004B5E18(arg0, func_0045E038(0x362D), (s32)&D_004B6C58, 1); + func_004B5E70(arg0, &D_004B6C58, func_0045E038(0x31CF)); +} diff --git a/src/game/004B83C8.c b/src/game/004B83C8.c new file mode 100644 index 00000000..6192e21e --- /dev/null +++ b/src/game/004B83C8.c @@ -0,0 +1,46 @@ +#include "common.h" + +typedef struct P_004B83C8 { + u8 pad0[0x2F10]; + s32 unk2F10; +} P_004B83C8; + +s32 D_0021F840 = 0; +s32 D_0021F868[2] = { 0 }; +extern s32 D_0021EDD4; +extern s32 D_0021EDD8; +extern s32 D_001711D0[]; +extern s32 D_00171D50[][4]; +extern s32 D_00171E00[][10]; +extern s32 D_00221790; +extern s32 D_003D9390[]; +extern s32 func_0045E038(s32); +extern void func_00497980(s32); +extern s32 func_004A1A60(s32 *, s32); +extern void func_00505238(s32, s32); +extern s32 func_00505B20(void); +extern P_004B83C8 *func_00510BE8(s32); + +void func_004B83C8(s32 arg0) { + s32 v; + s32 idx; + s32 j; + s32 *p; + s32 *q; + s32 t; + s32 s; + + v = func_00505B20(); + idx = func_00510BE8((D_0021EDD4 == 0 && D_0021EDD8 == 1) ? D_0021F840 != 1 : v)->unk2F10; + j = D_001711D0[idx]; + p = &D_00171E00[j][idx]; + q = &D_00171D50[j][idx]; + if (arg0 != 0) { + t = (*p & 1) ^ 1; + *q = t; + *p = t; + func_00497980(0x10); + } + s = func_004A1A60(&D_00221790, D_003D9390[0]); + func_00505238(s, func_0045E038(D_0021F868[*p])); +} diff --git a/src/game/004B84D0.c b/src/game/004B84D0.c new file mode 100644 index 00000000..413ccba3 --- /dev/null +++ b/src/game/004B84D0.c @@ -0,0 +1,47 @@ +#include "common.h" + +// D_0021F840 and D_0021F870 must be defined in this translation unit (retail reaches them through +// $gp outside a delay slot); D_0021F840 is also defined in src/game/004B85D8.c, so landing this +// means putting both functions in one file. + +typedef struct { + u8 prefix[0x2F10]; + s32 slot; +} Player; +extern s32 func_00505B20(void); +extern Player *func_00510BE8(s32 arg0); +extern void func_00497980(s32 arg0); +extern s32 func_004A1A60(s32 *arg0, s32 arg1); +extern s32 func_0045E038(s32); +extern s32 func_00505238(s32, s32); +extern s32 D_0021EDD4; +extern s32 D_0021EDD8; +s32 D_0021F840 = 0; +s32 D_0021F870[2] = { 0x192, 0x193 }; +extern s32 D_001711D0[]; +extern s32 D_00171D80[][4]; +extern s32 D_00171E78[][10]; +extern s32 D_00221790; +extern s32 D_003D93A4[]; + +void func_004B84D0(s32 arg0) { + s32 slot; + s32 n; + s32 v; + s32 t; + s32 *on; + s32 *shown; + + n = func_00505B20(); + slot = func_00510BE8((D_0021EDD4 == 0 && D_0021EDD8 == 1) ? (D_0021F840 != 1) : n)->slot; + on = &D_00171E78[D_001711D0[slot]][slot]; + shown = &D_00171D80[D_001711D0[slot]][slot]; + if (arg0) { + v = (*on & 1) ^ 1; + *shown = v; + *on = v; + func_00497980(0x10); + } + t = func_004A1A60(&D_00221790, D_003D93A4[0]); + func_00505238(t, func_0045E038(D_0021F870[*on])); +} diff --git a/src/game/004B9240.c b/src/game/004B9240.c new file mode 100644 index 00000000..fa0a1450 --- /dev/null +++ b/src/game/004B9240.c @@ -0,0 +1,31 @@ +#include "common.h" + +extern s32 D_002217B8; +extern s32 D_002217B0; +extern s32 D_001CDAA0; +extern s32 func_00505B20(void); +extern void func_004B96A8(void); +extern void func_004B9440(void); +extern s32 func_00499CA0(s32, s32); +extern s32 func_004A1A60(const s32 *, s32); +extern void func_005054F8(s32, s32); +extern void func_00506120(s32, s32); +extern void func_0049D308(s32, s32, s32); +extern void func_0049D170(s32, s32, s32); +extern void func_0049D280(s32, s32); +extern void func_0049C290(s32, s32); + +void func_004B9240(void) { + s32 index = func_00505B20(); + s32 *record = (s32 *)((index << 4) + (s32)&D_002217B8); + func_004B96A8(); + func_004B9440(); + record[0] = 1; + record[3] = func_00499CA0((s32)&D_001CDAA0, -1); + func_005054F8(func_004A1A60(&D_002217B0, 1), 1); + func_00506120(func_004A1A60(&D_002217B0, 1), record[3]); + func_0049D308(index, 0, D_002217B0); + func_0049D170(index, 0, func_004A1A60(&D_002217B0, 1)); + func_0049D280(index, 1); + func_0049C290(index, 0); +} diff --git a/src/game/004B9440.c b/src/game/004B9440.c new file mode 100644 index 00000000..378356db --- /dev/null +++ b/src/game/004B9440.c @@ -0,0 +1,24 @@ +#include "common.h" +extern s32 D_002217B8; +extern s32 D_002217B0; +s32 D_0021F8A0 = 12059; +s32 D_0021F8B0 = 12643; +extern s32 D_003D9488[][13]; +extern s32 func_00505B20(void); +extern u32 func_004A1A60(const s32 *, s32); +extern const char *func_0045E038(s32); +extern s32 func_00505238(u32, const char *); +s32 func_004B9440(void) +{ + s32 index = func_00505B20(); + s32 *record = (s32 *)((u32)&D_002217B8 + ((u32)index << 4)); + u32 handle = func_004A1A60(&D_002217B0, 100); + s32 i; + func_00505238(handle, func_0045E038(*(s32 *)((u32)&D_0021F8A0 + (u32)record[1] * 4))); + for (i = 0; i < 13; i++) { + handle = func_004A1A60(&D_002217B0, i + 180); + func_00505238(handle, func_0045E038(D_003D9488[record[1]][i])); + } + handle = func_004A1A60(&D_002217B0, 182); + return func_00505238(handle, func_0045E038(*(s32 *)((u32)&D_0021F8B0 + (u32)record[2] * 4))); +} diff --git a/src/game/004C1FA8.c b/src/game/004C1FA8.c new file mode 100644 index 00000000..52718362 --- /dev/null +++ b/src/game/004C1FA8.c @@ -0,0 +1,78 @@ +#include "common.h" + +typedef struct State { + s32 phase, unknown04; + u32 flags; + s32 choice, mode; +} State; +extern u8 D_0030B7F8[]; +extern s32 func_00505B20(void); +extern void func_005014B0(void *descriptor); +extern void func_004C4208(void); +extern void func_004C44E8(void); +extern void func_004C4698(void); +extern void func_0049C248(s32 context, s32 channel); +extern void func_0049C390(s32 context, s32 channel); +extern void func_0049C328(s32 context, s32 channel, s32 enabled); +extern void func_004C21A0(void); +extern void func_004C21E8(void); +extern void func_004C29A0(void); +extern void func_004C2BE0(void); +extern void func_004C2750(void); +extern void func_004C2490(void); +extern void func_004C2558(void); +extern void func_004C2DE8(void); + +void func_004C1FA8(void *descriptor) +{ + s32 context = func_00505B20(); + State *state = (State *)((u32)D_0030B7F8 + (u32)context * 0x74u); + + switch (state->phase) { + case 0: + state->phase = 1; + break; + case 1: + func_004C4208(); + break; + case 2: + func_004C44E8(); + break; + case 3: + func_004C4698(); + break; + case 4: + func_005014B0(descriptor); + break; + } + if (state->phase == 1) { + if (state->mode == 0) { + func_0049C248(context, 2); + func_0049C390(context, 1); + func_0049C328(context, 0, 1); + } else { + func_0049C248(context, 2); + func_0049C390(context, 0); + func_0049C328(context, 1, 1); + } + } else { + func_0049C390(context, 0); + func_0049C390(context, 1); + } + if (state->flags & 1) + func_004C21A0(); + if (state->flags & 2) + func_004C21E8(); + if (state->flags & 0x10) + func_004C29A0(); + if (state->flags & 0x40) + func_004C2BE0(); + if (state->flags & 0x20) + func_004C2750(); + if (state->flags & 4) + func_004C2490(); + if (state->flags & 8) + func_004C2558(); + if (state->flags & 0x80) + func_004C2DE8(); +} diff --git a/src/game/004C33D0.c b/src/game/004C33D0.c new file mode 100644 index 00000000..c9f84dc7 --- /dev/null +++ b/src/game/004C33D0.c @@ -0,0 +1,37 @@ +#include "common.h" + +typedef struct E_004C33D0 { + u8 pad0[0x18]; + s32 unk18; + u8 pad1C[0x58 - 0x1C]; + s8 unk58[10]; + u8 pad62[0x74 - 0x62]; +} E_004C33D0; + +typedef struct T_004C33D0 { + s32 unk0; + s32 unk4; +} T_004C33D0; + +extern E_004C33D0 D_0030B7F8[]; +extern s32 D_00221888; +extern T_004C33D0 D_003D22E0[]; +extern s32 D_003D2320[]; +extern T_004C33D0 D_003D2248[]; +extern s32 func_004A1A60(s32 *, s32); +extern s32 func_00505328(s32, u32); +extern s32 func_00505B20(void); + +void func_004C33D0(void) { + E_004C33D0 *e; + s32 i; + + e = &D_0030B7F8[func_00505B20()]; + func_00505328(func_004A1A60(&D_00221888, D_003D22E0[e->unk18].unk0), 0x80808080); + func_00505328(func_004A1A60(&D_00221888, D_003D2320[e->unk18]), 0x80808080); + for (i = 0; i < 10; i++) { + if (e->unk58[i] == e->unk18 + 1) { + func_00505328(func_004A1A60(&D_00221888, D_003D2248[i].unk0), 0x80808080); + } + } +} diff --git a/src/game/004C44E8.c b/src/game/004C44E8.c new file mode 100644 index 00000000..fa870846 --- /dev/null +++ b/src/game/004C44E8.c @@ -0,0 +1,82 @@ +#include "common.h" + +typedef struct State { + u8 prefix[0x18]; + s32 level; +} State; +extern u16 D_001F620C[]; +extern u8 D_0030B7F8[]; +extern s32 func_0045DC60(s16 message, s16 id); +extern s32 func_00505B20(void); +extern s32 func_004983E8(s32 mode); +extern void func_004C44B8(void); +extern void func_004C4018(void); +extern void func_004C40C8(void); +extern void func_004C41F8(void); +extern s32 func_004C3310(s32 level); +extern void func_004C37A0(s32 next); +extern void func_004C3EF8(void); +extern void func_00497980(s32 id); +extern void func_004C30B8(s32 next); +extern void func_004C3CE0(void); + +void func_004C44E8(void) +{ + s32 first; + s32 last; + State *state; + + if (D_001F620C[0] != 0) { + func_0045DC60(0x2FAF, 0x684); + func_0045DC60(0x2FB0, 0x685); + func_0045DC60(0x2FB1, 0x686); + } + first = 0; + state = (State *)((u32)D_0030B7F8 + (u32)func_00505B20() * 0x74u); + last = 7; + switch (func_004983E8(6)) { + case 13: + func_004C44B8(); + break; + case 1: + func_004C4018(); + break; + case 3: + func_004C40C8(); + break; + case 4: + func_004C41F8(); + break; + case 7: + while (first < 8 && !func_004C3310(first)) { + first++; + } + if (first < state->level) { + func_004C37A0(1); + break; + } + case 2: + func_004C3EF8(); + break; + case 8: + while (last >= 0 && !func_004C3310(last)) { + last--; + } + if (state->level < last) { + func_004C37A0(0); + } else { + func_00497980(4); + } + break; + case 9: + case 10: + func_004C30B8(1); + func_004C3CE0(); + break; + case 11: + case 12: + func_004C30B8(0); + func_004C3CE0(); + break; + } +} diff --git a/src/game/004C4698.c b/src/game/004C4698.c new file mode 100644 index 00000000..86de1823 --- /dev/null +++ b/src/game/004C4698.c @@ -0,0 +1,77 @@ +#include "common.h" + +typedef struct State { + u8 prefix[0x14]; + s32 level; +} State; +extern u16 D_001F61C4[]; +extern u8 D_0030B7F8[]; +extern s32 func_0045DC60(s16 message, s16 id); +extern s32 func_00505B20(void); +extern s32 func_004983E8(s32 mode); +extern void func_004C44B8(void); +extern void func_004C3B88(void); +extern s32 func_004C38E8(s32 level); +extern void func_004C3B20(s32 next); +extern void func_004C3EF8(void); +extern void func_00497980(s32 id); +extern void func_004C30B8(s32 next); +extern void func_004C3C38(void); + +void func_004C4698(void) +{ + s32 first; + s32 last; + State *state; + + if (D_001F61C4[0] != 0) { + func_0045DC60(0x2FA8, 0x67D); + func_0045DC60(0x2FA9, 0x67E); + func_0045DC60(0x2FAA, 0x67F); + func_0045DC60(0x2966, 0x2DD); + } + first = 0; + state = (State *)((u32)D_0030B7F8 + (u32)func_00505B20() * 0x74u); + last = 9; + switch (func_004983E8(6)) { + case 13: + func_004C44B8(); + break; + case 1: + func_004C3B88(); + case 2: + refresh: + func_004C3EF8(); + break; + case 7: + while (first < 9 && !func_004C38E8(first)) { + first++; + } + if (first < state->level) { + func_004C3B20(1); + } else { + goto refresh; + } + break; + case 8: + while (last >= 0 && !func_004C38E8(last)) { + last--; + } + if (state->level < last) { + func_004C3B20(0); + } else { + func_00497980(4); + } + break; + case 9: + case 10: + func_004C30B8(1); + func_004C3C38(); + break; + case 11: + case 12: + func_004C30B8(0); + func_004C3C38(); + break; + } +} diff --git a/src/game/004C6BA0.c b/src/game/004C6BA0.c new file mode 100644 index 00000000..757ef21c --- /dev/null +++ b/src/game/004C6BA0.c @@ -0,0 +1,66 @@ +#include "common.h" +typedef struct Data { + u8 a, locked, enabled, pad; + s32 id, kind; +} Data; +typedef struct Item { + u8 pad[8]; + Data *data; + u8 tail[12]; +} Item; +typedef struct List { + u8 pad[0x34]; + Item *items; + u8 pad2[0x18]; + s32 count, index; + u8 tail[0x20]; +} List; +typedef struct State { + u8 pad[0xAB4]; + List list; + s32 which; +} State; +typedef struct Descriptor { + u8 pad[0x14]; + s32 available; +} Descriptor; +extern State D_0030B9D8[]; +extern s32 func_00505B20(void), func_0054AB08(s32, s32); +extern Descriptor *func_0054A998(s32); +static inline s32 locked(Data *d) +{ + return d->locked; +} +static inline s32 enabled(Data *d) +{ + return d->enabled; +} +static inline s32 count(List *l) +{ + return l->count; +} +static inline Item *item(List *l, s32 index) +{ + if (index < 0) { + index = l->index; + if (index < 0) + return 0; + } + return (Item *)((u32)l->items + (u32)index * 24); +} +s32 func_004C6BA0(void) +{ + s32 i = 0, found = -1; + State *p = (State *)((u32)D_0030B9D8 + (u32)func_00505B20() * 0xB30); + for (; i < count(&p->list); i++) { + if (found == -1) { + Data *d = item(&p->list, i)->data; + if (d->kind != 1) { + Descriptor *desc = func_0054A998(func_0054AB08(p->which, d->id)); + if (desc->available && !locked(d) && !enabled(d)) + found = i; + } + } + } + return found; +} diff --git a/src/game/004C7168.c b/src/game/004C7168.c new file mode 100644 index 00000000..04668e36 --- /dev/null +++ b/src/game/004C7168.c @@ -0,0 +1,35 @@ +#include "common.h" + +typedef struct { + u8 prefix[0x50]; + s32 count, index; +} List; +typedef struct { + u8 prefix[0x10]; + u32 flags; + u8 gap[0xAA0]; + List list; + u8 tail[0x24]; +} State; +extern State D_0030B9D8[]; +extern s32 func_00505B20(void); +extern void func_004A1358(List *); +extern void func_004A1310(List *); +extern void func_00497980(s32); +void func_004C7168(s32 direction) +{ + s32 index = func_00505B20(); + State *state = D_0030B9D8 + index; + List *list = &state->list; + if (list->count >= 2) { + if (direction) + func_004A1358(list); + else + func_004A1310(list); + if (state->list.count >= 2) + func_00497980(10); + else + func_00497980(4); + D_0030B9D8[index].flags |= 3; + } +} diff --git a/src/game/004C9090.c b/src/game/004C9090.c new file mode 100644 index 00000000..929d394c --- /dev/null +++ b/src/game/004C9090.c @@ -0,0 +1,40 @@ +#include "common.h" +typedef struct { + s32 kind, other, count; +} Data; +typedef struct { + s32 a, b; + Data *data; + char tail[12]; +} Item; +typedef struct { + char pad[0x34]; + Item *items; + char gap[0x18]; + s32 count, index; +} List; +extern List D_0030E494; +extern s32 func_004E6FA0(Data *), func_00505B20(void); +extern const char *func_0045E038(s32); +extern void D_004C8FB0(s32), func_00497980(s32), func_0049E790(s32, const char *, void (*)(s32), s32, s32, s32, s32, f32); +static inline Item *selected(List *l) +{ + if (l->index < 0) + return 0; + return l->items + l->index; +} +void func_004C9090(void) +{ + if (D_0030E494.count) { + Data *d = selected(&D_0030E494)->data; + if (func_004E6FA0(d)) { + if (d->count <= 0 || d->kind == 1) + D_004C8FB0(1); + else { + s32 index = func_00505B20(); + func_0049E790(index, func_0045E038(0x8D0), D_004C8FB0, 3, 0, 0, 0, -1.0f); + } + } else + func_00497980(4); + } +} diff --git a/src/game/004CBB98.c b/src/game/004CBB98.c new file mode 100644 index 00000000..1a256bdf --- /dev/null +++ b/src/game/004CBB98.c @@ -0,0 +1,75 @@ +#include "common.h" + +typedef struct State { + u8 prefix[0x38]; + s32 resource; + u8 rest[0x28]; +} State; +typedef struct Resource { + s32 type, id; + u32 value; + u32 rest[3]; +} Resource; +typedef struct Player { + u8 prefix[0x26E4]; + void *settings; +} Player; +typedef struct Item { + u8 prefix[0x36]; + u16 value; +} Item; +extern u8 D_0030EAA0[]; +extern s32 D_00221920; +typedef struct Widgets { + u8 prefix[0x20]; + s32 first, second, third, fourth; +} Widgets; +extern Widgets D_003D2738; +extern void func_00498C98(Resource *); +extern s32 func_004A1A60(s32 *, s32); +extern s32 func_00505328(s32, u32); +extern s32 func_005054F8(s32, u32); +extern s32 func_00504F68(s32, s32); +extern s32 func_004CC978(void); +extern Player *func_00510BE8(s32); +extern s32 func_00548DA0(void *, s32); +extern Item *func_00548D28(s32, s32); + +void func_004CBB98(s32 context) +{ + Resource descriptor; + State *state = (State *)((u32)D_0030EAA0 + (u32)context * 100); + Widgets *items = &D_003D2738; + Player *player; + descriptor.type = 5; + descriptor.id = state->resource; + func_00498C98(&descriptor); + func_00505328(func_004A1A60(&D_00221920, items->first), 0x80808080); + func_005054F8(func_004A1A60(&D_00221920, items->first), descriptor.value); + func_00504F68(func_004A1A60(&D_00221920, items->first), 1); + func_00505328(func_004A1A60(&D_00221920, items->second), 0x80808080); + { + s32 handle = func_004A1A60(&D_00221920, items->second); + func_005054F8(handle, func_004CC978()); + } + func_00504F68(func_004A1A60(&D_00221920, items->second), 1); + player = func_00510BE8(context); + if (func_00548DA0(player->settings, 17)) { + s32 handle; + func_00505328(func_004A1A60(&D_00221920, items->third), 0x80808080); + handle = func_004A1A60(&D_00221920, items->third); + func_005054F8(handle, func_00548D28(17, 0)->value); + func_00504F68(func_004A1A60(&D_00221920, items->third), 1); + } else { + func_00504F68(func_004A1A60(&D_00221920, items->third), 0); + } + if (func_00548DA0(player->settings, 18)) { + s32 handle; + func_00505328(func_004A1A60(&D_00221920, 51), 0x80808080); + handle = func_004A1A60(&D_00221920, 51); + func_005054F8(handle, func_00548D28(18, 0)->value); + func_00504F68(func_004A1A60(&D_00221920, 51), 1); + } else { + func_00504F68(func_004A1A60(&D_00221920, D_003D2738.fourth), 0); + } +} diff --git a/src/game/004CDF08.c b/src/game/004CDF08.c new file mode 100644 index 00000000..fb93c018 --- /dev/null +++ b/src/game/004CDF08.c @@ -0,0 +1,51 @@ +#include "common.h" +typedef struct { + const char *label; + s32 icon; +} Data; +typedef struct { + u8 prefix[8]; + Data *data; + u8 suffix[12]; +} Item; +typedef struct { + u8 prefix[0x34]; + Item *items; + u8 gap[0x18]; + s32 count, index; +} List; +typedef struct { + s32 a, b, flags; + s32 handle; + u8 gap[0x200]; + List list; +} State; +extern u8 D_0030ECC0[], D_001CDD48[]; +extern s32 D_00221940; +extern s32 func_00505B20(void), func_00499CA0(const void *, s32), func_004A1A60(s32 *, s32), func_00506120(s32, s32); +extern void func_00499CE0(s32); +static inline s32 count(List *list) +{ + return list->count; +} +static inline Item *selected(List *list) +{ + if (list->index < 0) + return NULL; + return (Item *)((u32)list->items + (u32)list->index * 24); +} +void func_004CDF08(void) +{ + State *state = (State *)((u32)D_0030ECC0 + (u32)func_00505B20() * 0x280); + if (count(&state->list) > 0) { + Data *data = selected(&state->list)->data; + const void *resource = (void *)((u32)D_001CDD48 + ((u32)data->icon << 3)); + if (state->handle) { + func_00499CE0(state->handle); + state->handle = 0; + } + state->handle = func_00499CA0(resource, -1); + func_00506120(func_004A1A60(&D_00221940, 3), state->handle); + } + state->flags &= ~2; +} diff --git a/src/game/004CF950.c b/src/game/004CF950.c new file mode 100644 index 00000000..a8448b88 --- /dev/null +++ b/src/game/004CF950.c @@ -0,0 +1,45 @@ +#include "common.h" +typedef struct { + char pad[0x30]; + s32 label; +} Data; +typedef struct { + s32 a, b; + Data *data; + char tail[12]; +} Item; +typedef struct { + char pad[0x34]; + Item *items; + char gap[0x18]; + s32 count, index; +} List; +typedef struct { + s32 a, b, flags; + char pad[0x968]; + List list; + char tail[0x14]; +} State; +extern State D_00316D00[]; +extern s32 D_00221980; +extern s32 func_00505B20(void), func_004A1A60(s32 *, s32), func_00505238(s32, const char *), func_00504F68(s32, s32); +extern const char *func_0045E038(s32); +static inline Item *selected(List *l) +{ + if (l->index < 0) + return 0; + return l->items + l->index; +} +void func_004CF950(void) +{ + State *p = D_00316D00 + func_00505B20(); + List *l = &p->list; + if (l->count > 0) { + Data *d = selected(l)->data; + s32 handle = func_004A1A60(&D_00221980, 0xD); + func_00505238(handle, func_0045E038(d->label)); + func_00504F68(func_004A1A60(&D_00221980, 0xD), 1); + } else + func_00504F68(func_004A1A60(&D_00221980, 0xD), 0); + p->flags &= ~2; +} diff --git a/src/game/004D4C58.c b/src/game/004D4C58.c new file mode 100644 index 00000000..f54adfb8 --- /dev/null +++ b/src/game/004D4C58.c @@ -0,0 +1,79 @@ +#include "common.h" +typedef struct { + s32 mode; + u32 flags; + char pad8[0x1304]; + char context[0x6C]; + char pad1378[0x3A]; +} State; +extern State D_0031B9B8; +extern u32 D_002211CC; +extern void func_005014B0(void *); +extern void func_004D5950(void); +extern void func_004D51C0(void); +extern s32 func_004A1730(void *); +extern void func_004D52D0(void); +extern void func_004D5550(void); +extern void *func_0046D820(s32); +extern f32 func_00453940(f32); +extern void func_0046E728(void *); +extern void func_0046EDD8(void *); +extern void func_004706F0(void *); +extern void func_00479820(void *, void *, s32, s32); +void func_004D4C58(void *arg0) +{ + void *first; + void *second; + u32 packed; + s32 phase; + s32 shade; + f32 volume; + switch (D_0031B9B8.mode) { + case 0: + D_0031B9B8.mode = 2; + break; + case 2: + func_004D5950(); + break; + case 1: + func_005014B0(arg0); + break; + } + { + State *state = &D_0031B9B8; + if (state->flags & 1) { + func_004D51C0(); + } + func_004A1730(state->context); + if (state->flags & 2) { + func_004D52D0(); + } + if (state->flags & 4) { + func_004D5550(); + } + first = func_0046D820(0); + second = func_0046D820(1); + if (first == NULL || second == NULL) { + return; + } + phase = ((s32)D_002211CC & 0x3F) - 0x20; + shade = (s32)(func_00453940((f32)phase * 0.09817477315664291f) * 32.0f + 96.0f); + packed = (u32)shade; + packed = (packed << 24) | (packed << 16) | (packed << 8) | 0x80; + *(u32 *)((u32)first + 0x60) = packed; + volume = (f32)((s32)(D_002211CC & 0x1FF) - 0x100) * 0.012271846644580364f; + volume = func_00453940(volume) * 0.5f; + *(f32 *)((u32)first + 0xF8) = volume; + func_0046E728(first); + func_0046EDD8(first); + func_004706F0(first); + *(u32 *)((u32)second + 0x60) = packed; + volume = (f32)((s32)(D_002211CC & 0x1FF) - 0x100) * 0.012271846644580364f; + volume = func_00453940(volume) * 0.5f; + *(f32 *)((u32)second + 0xF8) = volume; + func_0046E728(second); + func_0046EDD8(second); + func_004706F0(second); + func_00479820(first, second, 5, 0); + } +} diff --git a/src/game/004D6378.c b/src/game/004D6378.c new file mode 100644 index 00000000..ee39c73d --- /dev/null +++ b/src/game/004D6378.c @@ -0,0 +1,26 @@ +#include "common.h" + +extern s32 D_0031D100[]; +extern s32 D_00221AD8; +extern u8 D_001CDAF0[]; +extern s32 func_00505B20(void); +extern void func_00501638(s32, s32, s32); +extern void func_00505B70(s32, s32); +extern s32 func_004A1A60(const s32 *, s32); +extern const char *func_0045E038(s32); +extern s32 func_00505238(u32, const char *); +extern s32 func_00499CA0(s32, s32); +extern void func_005054F8(s32, s32); +extern void func_00506120(s32, s32); + +void func_004D6378(void) { + s32 *record = (s32 *)(func_00505B20() * 0x528 + (s32)D_0031D100); + func_00501638((s32)&D_00221AD8, 0x29, -1); + func_00505B70(0xF, D_00221AD8); + func_00505238(func_004A1A60(&D_00221AD8, 0xA), func_0045E038(0x2350)); + func_00505238(func_004A1A60(&D_00221AD8, 9), func_0045E038(0x31CE)); + func_00505238(func_004A1A60(&D_00221AD8, 0xB), func_0045E038(0x2F0B)); + record[2] = func_00499CA0((s32)D_001CDAF0, -1); + func_005054F8(func_004A1A60(&D_00221AD8, 4), 1); + func_00506120(func_004A1A60(&D_00221AD8, 4), record[2]); +} diff --git a/src/game/004D8A18.c b/src/game/004D8A18.c new file mode 100644 index 00000000..cee7d272 --- /dev/null +++ b/src/game/004D8A18.c @@ -0,0 +1,47 @@ +#include "common.h" +typedef struct { + s32 f0, f4; + void *data; + char tail[12]; +} Item; +typedef struct { + char pad[0x34]; + Item *items; + char tail[0x18]; + s32 count, index; +} List; +typedef struct { + s32 f0, f4; + s32 flags; + s32 handle; + char pad[0x330]; + List list; + char tail[0x14]; +} State; +extern State D_00320178[]; +extern s32 D_00221B28; +extern char D_001CE1E8[]; +extern s32 func_00505B20(void), func_00499CA0(void *, s32), func_004A1A60(s32 *, s32), func_00506120(s32, u32); +extern void func_00499CE0(s32); +static inline Item *selected(List *l) +{ + if (l->index < 0) + return 0; + return l->items + l->index; +} +void func_004D8A18(void) +{ + State *p = D_00320178 + func_00505B20(); + List *l = &p->list; + if (l->count > 0) { + Item *item; + if (p->handle) { + func_00499CE0(p->handle); + p->handle = 0; + } + item = selected(l); + p->handle = func_00499CA0(D_001CE1E8 + (*(s32 *)item->data) * 8, -1); + func_00506120(func_004A1A60(&D_00221B28, 4), p->handle); + } + p->flags &= ~2; +} diff --git a/src/game/004D9048.c b/src/game/004D9048.c new file mode 100644 index 00000000..8b0290b9 --- /dev/null +++ b/src/game/004D9048.c @@ -0,0 +1,61 @@ +#include "common.h" + +typedef struct State { + u8 prefix[0x10]; + u32 first; + u32 second; +} State; + +extern u8 D_00321140[]; +extern char D_00321110[]; +extern const char D_0021FC48[]; +extern u8 D_001CDAB8[]; +extern s32 D_00221B48; +extern s32 func_00505B20(void); +extern s32 func_00501638(s32 *, s32 templateId, s32 context); +extern s32 func_00505B70(s32 type, s32 group); +extern const char *func_0045E038(s32 id); +extern s32 func_0011D920(char *destination, const char *format, ...); +extern s32 func_004A1A60(s32 *group, s32 index); +extern s32 func_00505238(s32 handle, const char *text); +extern u32 func_00499CA0(void *descriptor, s32 sector); +extern s32 func_005054F8(s32 handle, u32 value); +extern s32 func_00506120(u32 handle, u32 resource); +extern s32 func_005061D8(u32 handle, s32 a, s32 b, s32 c, s32 d, + s32 e, s32 f, s32 g, s32 h); +extern s32 func_00505040(u32 handle, s32 enabled); +extern s32 func_00506408(u32 handle, s32 angle, s32 steps, f32 rate); + +void func_004D9048(void) +{ + s32 context = func_00505B20(); + State *state = (State *)((u32)D_00321140 + (u32)context * 0x114u); + char *destination; + const char *format; + const char *first; + const char *second; + s32 handle; + u32 descriptor; + + func_00501638(&D_00221B48, 0x34, -1); + func_00505B70(15, D_00221B48); + destination = D_00321110; + format = D_0021FC48; + first = func_0045E038(0x3265); + second = func_0045E038(0x2350); + func_0011D920(destination, format, first, second); + func_00505238(func_004A1A60(&D_00221B48, 8), destination); + handle = func_004A1A60(&D_00221B48, 7); + func_00505238(handle, func_0045E038(0x3264)); + descriptor = (u32)D_001CDAB8; + state->first = func_00499CA0((void *)descriptor, -1); + func_005054F8(func_004A1A60(&D_00221B48, 1), 1); + func_00506120(func_004A1A60(&D_00221B48, 1), state->first); + state->second = func_00499CA0((void *)(descriptor + 0x6F0u), -1); + func_005054F8(func_004A1A60(&D_00221B48, 0), 1); + func_00506120(func_004A1A60(&D_00221B48, 0), state->second); + func_005054F8(func_004A1A60(&D_00221B48, 2), 1); + func_005061D8(func_004A1A60(&D_00221B48, 6), 1, 1, 1, 0, 0, 0, 0, 0); + func_00505040(func_004A1A60(&D_00221B48, 6), 1); + func_00506408(func_004A1A60(&D_00221B48, 6), 360, 10, 0.00031f); +} diff --git a/src/game/004D9408.c b/src/game/004D9408.c new file mode 100644 index 00000000..491472eb --- /dev/null +++ b/src/game/004D9408.c @@ -0,0 +1,52 @@ +#include "common.h" +typedef struct Data { + const char *label; + s32 icon; +} Data; +typedef struct Item { + u8 pad[8]; + Data *data; + u8 tail[12]; +} Item; +typedef struct List { + u8 pad[0x34]; + Item *items; + u8 gap[0x18]; + s32 count, index; +} List; +typedef struct State { + s32 a, b, flags, handle; + u8 pad[0x98]; + List list; + u8 tail[0x14]; +} State; +extern State D_00321140[]; +extern u8 D_001CE2F8[]; +extern s32 D_00221B48; +extern s32 func_00505B20(void), func_00499CA0(const void *, s32), func_004A1A60(s32 *, s32), func_00506120(s32, s32), func_00505238(s32, const char *); +extern void func_00499CE0(s32); +static inline s32 count(List *l) +{ + return l->count; +} +static inline Item *selected(List *l) +{ + if (l->index < 0) + return 0; + return (Item *)((u32)l->items + (u32)l->index * 24); +} +void func_004D9408(void) +{ + State *p = (State *)((u32)D_00321140 + (u32)func_00505B20() * 0x114); + if (count(&p->list) > 0) { + Data *d = selected(&p->list)->data; + if (p->handle) { + func_00499CE0(p->handle); + p->handle = 0; + } + p->handle = func_00499CA0(D_001CE2F8 + d->icon * 8, -1); + func_00506120(func_004A1A60(&D_00221B48, 2), p->handle); + func_00505238(func_004A1A60(&D_00221B48, 6), d->label); + } + p->flags &= ~2; +} diff --git a/src/game/004DA2D8.c b/src/game/004DA2D8.c new file mode 100644 index 00000000..0140aee9 --- /dev/null +++ b/src/game/004DA2D8.c @@ -0,0 +1,85 @@ +#include "common.h" + +typedef struct Item { + s32 kind; + s32 id; + s32 cost; + s32 unknownC; + s32 unknown10; + s32 label; + s32 unknown18; + s32 unknown1C; + s32 enabled; +} Item; +typedef struct Row { + s32 unknown; + s32 group; + Item *item; +} Row; +typedef struct List { + u8 pad00[0x54]; + s32 selected; +} List; + +extern char D_00321BA4[]; +extern u8 D_00322EA4[]; +extern s32 func_004A1A60(s32 *group, s32 index); +extern s32 func_00504F68(s32 handle, s32 enabled); +extern const char *func_0045E038(s32 label); +extern s32 func_00505238(s32 handle, const char *text); +extern s32 func_005054F8(s32 handle, u32 value); +extern s32 func_004FC518(void); +extern void func_004979A8(char *text, s32 value, s32 sign); +extern s32 func_00505328(s32 handle, u32 color); + +void func_004DA2D8(List *list, Row *row, s32 index) +{ + Item *item = row->item; + s32 handle; + s32 *group; + char *text; + + func_00504F68(func_004A1A60(&row->group, 6), item->kind == 0); + func_00504F68(func_004A1A60(&row->group, 2), item->kind != 0); + if (item->kind == 0) { + handle = func_004A1A60(&row->group, 7); + func_00505238(handle, func_0045E038(item->label)); + return; + } + func_005054F8(func_004A1A60(&row->group, 4), 0x7546); + if (func_004FC518() >= item->cost) { + handle = func_004A1A60(&row->group, 3); + func_00505238(handle, func_0045E038(item->label)); + } else { + handle = func_004A1A60(&row->group, 3); + func_00505238(handle, func_0045E038(0x16F)); + } + if (item->cost == 0) { + handle = func_004A1A60(&row->group, 5); + group = &row->group; + func_00505238(handle, func_0045E038(0x30DC)); + } else { + text = (char *)((u32)D_00321BA4 + (u32)index * 16u); + group = &row->group; + func_004979A8(text, item->cost, 0); + func_00505238(func_004A1A60(group, 5), text); + } + if (item->enabled != 0) { + func_00505328(func_004A1A60(group, 4), 0x80808080u); + func_00505328(func_004A1A60(group, 3), 0x80808080u); + if (item->cost == 0) + func_00505328(func_004A1A60(group, 5), 0x8040D0D0u); + else + func_00505328(func_004A1A60(group, 5), 0x80D0D0D0u); + } else { + func_00505328(func_004A1A60(group, 4), 0x80404040u); + func_00505328(func_004A1A60(group, 3), 0x80404040u); + func_00505328(func_004A1A60(group, 5), 0x80404080u); + } + if (list->selected == index) { + func_00505328(func_004A1A60(group, 4), 0x80D0D0D0u); + func_00505328(func_004A1A60(group, 3), 0x80D0D0D0u); + } + if (item->label == 0x30EB && *(s32 *)(D_00322EA4 + 0x94) == 0 && func_004FC518() >= item->cost) + func_00505328(func_004A1A60(group, 3), 0x807B00C9u); +} diff --git a/src/game/004DA960.c b/src/game/004DA960.c new file mode 100644 index 00000000..30a3af8c --- /dev/null +++ b/src/game/004DA960.c @@ -0,0 +1,28 @@ +#include "common.h" +extern char D_00321B98[]; +extern s32 func_004E21D8(s32, s32, void *); +extern void func_004E0858(void); +extern s32 func_004FC650(void); +extern s32 func_00475858(f32, s32 *, s32, s32); +extern void func_004979A8(void *, s32, s32); +extern void func_004E19D8(s32, void *); +extern void func_00497980(s32); +void func_004DA960(void) +{ + char *p = D_00321B98; + if (*(u8 *)(p + 0x13BD)) { + *(u8 *)(p + 0x13BD) = 0; + func_004E21D8(30, 4, 0); + func_004E0858(); + } + if (func_00475858(0.1f, (s32 *)(p + 0x1388), func_004FC650(), 1)) { + func_004979A8(p + 0x1378, *(s32 *)(p + 0x1388), 0); + } else { + func_004E19D8(30, 0); + if (*(u8 *)(p + 0x13BC)) { + func_00497980(32); + *(u8 *)(p + 0x13BC) = 0; + } + *(s32 *)(p + 4) &= ~4; + } +} diff --git a/src/game/004DAA78.c b/src/game/004DAA78.c new file mode 100644 index 00000000..62bc5302 --- /dev/null +++ b/src/game/004DAA78.c @@ -0,0 +1,80 @@ +#include "common.h" + +typedef struct Item { + s32 kind; + s32 id; + s32 cost; + s32 unknownC; + s32 unknown10; + s32 label; +} Item; +typedef struct Shop { + u8 pad00[4]; + u32 dirty; + u8 pad08[0x1398]; + s32 mode; + u8 pad13A4[0x14]; + s32 selected; + u8 changed; + u8 rebuild; +} Shop; +typedef struct List { + u8 pad00[0x34]; + u32 rows; + u8 pad38[0x18]; + s32 count; + s32 selected; +} List; +extern List D_00322EA4; +extern Shop D_00321B98; +extern u8 D_00322F4C[]; +extern s32 D_0021EDD4; +extern s32 D_0021EDD8; +extern s32 func_004DAA20(s32 id); +extern s32 func_004E7000(Item *item, s32 player, s32 mode); +extern void func_00497980(s32 sound); + +void func_004DAA78(s32 accepted) +{ + u32 row; + s32 selected; + Item *item; + Shop *shop; + s32 *previous; + + if (accepted == 0) + return; + selected = D_00322EA4.selected; + if (selected < 0) + row = 0; + else + row = D_00322EA4.rows + (u32)selected * 24u; + item = *(Item **)(row + 8); + if (func_004DAA20(item->id) == 0) { + D_00321B98.rebuild = 1; + D_00321B98.changed = 1; + } + shop = &D_00321B98; + func_004E7000(item, 0, shop->mode); + shop->dirty |= 5; + if (D_0021EDD4 != 0) + goto alternate; + if (D_0021EDD8 != 1) + goto alternate; + if (shop->mode == 1) { + previous = &shop->selected; + goto selectedTarget; + } +alternate: + previous = (s32 *)D_00322F4C; +selectedTarget: + if (item->id != *previous) { + *previous = item->id; + if (item->cost > 0) + func_00497980(0x21); + else + func_00497980(0x16); + } else { + func_00497980(4); + } +} diff --git a/src/game/004DEF78.c b/src/game/004DEF78.c new file mode 100644 index 00000000..59562e9a --- /dev/null +++ b/src/game/004DEF78.c @@ -0,0 +1,37 @@ +/* cflags: -fno-schedule-insns */ +#include "common.h" + +extern u8 *D_00221E20; +extern u8 *D_00221CF8; +extern u8 *D_00221CF4; +extern s32 D_0021DA34; +extern s32 D_0021DA30; +extern void func_00469968(void); +extern u8 *func_004E7B88(void); + +void func_004DEF78(void) +{ + s32 tag; + u8 *packet; + + D_00221CF8 = D_00221E20; + tag = 0x20000000; + D_00221E20 += 16; + *(s32 *)D_00221CF4 = tag; + packet = D_00221CF4; + *(u8 **)(packet + 4) = D_00221E20; + *(s32 *)(D_00221CF4 + 8) = 0; + *(s32 *)(D_00221CF4 + 12) = 0; + func_00469968(); + func_004E7B88(); + *(s32 *)D_00221E20 = tag; + *(u8 **)(D_00221E20 + 4) = D_00221CF4 + 16; + *(s32 *)(D_00221E20 + 8) = 0; + *(s32 *)(D_00221E20 + 12) = 0; + D_00221E20 += 16; + *(s32 *)D_00221CF8 = tag; + *(u8 **)(D_00221CF8 + 4) = D_00221E20; + *(s32 *)(D_00221CF8 + 8) = 0; + *(s32 *)(D_00221CF8 + 12) = 0; + D_0021DA30 = D_0021DA34; +} diff --git a/src/game/004EE150.c b/src/game/004EE150.c new file mode 100644 index 00000000..b9e26551 --- /dev/null +++ b/src/game/004EE150.c @@ -0,0 +1,35 @@ +#include "common.h" + +extern s32 D_003284A0[][4]; +extern s32 D_0021EDD4; + +s32 *func_0046D428(s32 arg0, s32 arg1, s32 arg2); + +void func_004EE150(void) +{ + s32 i; + s32 j; + s32 object; + s32 *entry; + + for (i = 0; i < 10; i++) { + for (j = 0; j < 4; j++) { + object = D_003284A0[i][j]; + if (object != 0) { + *(s32 *)(object + 0x98) = 0; + } + } + } + if (D_0021EDD4 == 0) { + entry = func_0046D428(0x263B, 0, 0xC); + if (entry != 0 && entry[1] != 0) { + ((void (*)(void))entry[1])(); + } + } + if (D_0021EDD4 == 1) { + entry = func_0046D428(0x265B, 0, 0x14); + if (entry != 0 && entry[4] != 0) { + ((void (*)(s32))entry[4])(-1); + } + } +} diff --git a/src/game/004F0660.c b/src/game/004F0660.c new file mode 100644 index 00000000..3b4a1501 --- /dev/null +++ b/src/game/004F0660.c @@ -0,0 +1,39 @@ +#include "common.h" + +typedef struct Stream Stream; +typedef struct { + u8 prefix[8]; + u8 *source; + s32 size; + u64 first, second; +} Block; +extern Stream *D_00221ED4; +extern char D_003D31D0[]; +extern void func_004F1C10(Stream *, u8 **, s32 *, u8 **, s32 *); +extern s32 func_004F0848(u8 *, s32, u8 *, s32, const u8 *, s32, const u8 *, s32); +extern s32 func_004F1CB8(Stream *, u64, u64, const u8 *, s32); +extern void func_004EF6A0(const char *); +extern void func_004F1C30(Stream *, s32); +s32 func_004F0660(s32 unused, Block *block, const u8 *buffer) +{ + u8 *first, *second; + s32 firstSize, secondSize; + s32 offset = *(const s32 *)(buffer + 0x50008); + const u8 *source = block->source; + s32 size = block->size; + s32 count = (s32)((u32)buffer + offset - (u32)source); + s32 remaining; + s32 copied; + if (size < count) + count = size; + remaining = size - count; + func_004F1C10(D_00221ED4, &first, &firstSize, &second, &secondSize); + copied = func_004F0848((u8 *)(((u32)first & 0x0FFFFFFF) | 0x20000000), firstSize, + (u8 *)(((u32)second & 0x0FFFFFFF) | 0x20000000), secondSize, source, count, buffer, remaining); + if (copied > 0) { + if (!func_004F1CB8(D_00221ED4, block->first, block->second, first, copied)) + func_004EF6A0(D_003D31D0); + } + func_004F1C30(D_00221ED4, copied); + return copied > 0; +} diff --git a/src/game/004F1D20.c b/src/game/004F1D20.c new file mode 100644 index 00000000..c8272caa --- /dev/null +++ b/src/game/004F1D20.c @@ -0,0 +1,35 @@ +#include "common.h" + +typedef struct Stream { + u8 prefix[0x48]; + u8 ring[0x60]; + s32 state; +} Stream; +typedef struct { + u8 bytes[4]; +} Command; +extern Command D_00220918[]; +extern Stream *D_00221ED4; +extern void func_004F1C10(Stream *, u8 **, s32 *, u8 **, s32 *); +extern s32 func_004F2138(u8 *, s32, u8 *, s32, const void *, s32, const void *, s32); +extern void func_004F1C30(Stream *, s32); +extern void func_004F16C0(void *); +s32 func_004F1D20(Stream *stream) +{ + Command command = D_00220918[0]; + u8 *first; + s32 firstSize; + u8 *second; + s32 secondSize; + s32 copied; + func_004F1C10(stream, &first, &firstSize, &second, &secondSize); + if (firstSize + secondSize < 4) + return 0; + copied = func_004F2138((u8 *)(((u32)first & 0x0FFFFFFF) | 0x20000000), firstSize, + (u8 *)(((u32)second & 0x0FFFFFFF) | 0x20000000), secondSize, &command, 4, 0, 0); + func_004F1C30(D_00221ED4, copied); + func_004F16C0(stream->ring); + if (stream->state == 0) + stream->state = 2; + return 1; +} diff --git a/src/game/004F1EA0.c b/src/game/004F1EA0.c new file mode 100644 index 00000000..7e1fe49e --- /dev/null +++ b/src/game/004F1EA0.c @@ -0,0 +1,60 @@ +#include "common.h" + +typedef struct Video { + u8 *pixels; + u8 *packets; + u8 p8[8]; + s32 count; +} Video; +extern Video *D_00221EA8; +extern const char D_003D3248[], D_003D3230[]; +extern void func_004EF3E0(void); +extern void *func_004F2360(Video *); +extern s32 func_00142150(void *, const void *, u32); +extern void func_004EF6A0(const char *); +extern void func_004F0228(void *, u32, s32, s32, s32); +extern void func_004F22F0(Video *); +extern s32 func_00142220(void *); +extern s32 func_004F1CA0(void *); +extern s32 func_0011D5D8(const char *, ...); +extern s32 func_001421A0(void *); +s32 func_004F1EA0(void *task) +{ + s32 result = 1; + void *block; + s32 i; + s32 width, height; + Video *current; + while (!func_00142220(task)) { + if (func_004F1CA0(task) == 1) { + result = -1; + func_0011D5D8(D_003D3230); + break; + } + while ((block = func_004F2360(D_00221EA8)) == NULL) { + func_004EF3E0(); + } + if (func_00142150(task, block, 0x340) < 0) + func_004EF6A0(D_003D3248); + if (*(s32 *)((u32)task + 8) == 0) { + width = *(s32 *)task; + height = *(s32 *)((u32)task + 4); + i = 0; + current = D_00221EA8; + if (i < current->count) { + do { + func_004F0228(current->packets + (u32)i * 0x27E40 + 0x40, + (u32)current->pixels + (u32)i * 0xD0000, 0, width, height); + func_004F0228(D_00221EA8->packets + (u32)i * 0x27E40 + 0x13F40, + (u32)D_00221EA8->pixels + (u32)i * 0xD0000, 1, width, height); + ++i; + current = D_00221EA8; + } while (i < current->count); + } + } + func_004F22F0(D_00221EA8); + func_004EF3E0(); + } + func_001421A0(task); + return result; +} diff --git a/src/game/004F5350.c b/src/game/004F5350.c new file mode 100644 index 00000000..9a97f6de --- /dev/null +++ b/src/game/004F5350.c @@ -0,0 +1,24 @@ +#include "common.h" +int D_00220980 = 0; +typedef struct Type1 { + char p[7]; + unsigned char f7; +} Type1; +extern Type1 D_00206948[]; +extern int D_0021DDB4; +extern void func_004F53C0(void); +extern void func_004F5418(void); + +void func_004F5350(void) +{ + if (D_00220980) { + D_00206948[0].f7 = 0; + if (D_00220980 < 25) + func_004F53C0(); + else + func_004F5418(); + D_00206948[0].f7 = 1; + D_0021DDB4 = 6; + D_00220980 = 0; + } +} diff --git a/src/game/004F7FD8.c b/src/game/004F7FD8.c new file mode 100644 index 00000000..3f019ad6 --- /dev/null +++ b/src/game/004F7FD8.c @@ -0,0 +1,49 @@ +#include "common.h" +typedef struct State { + u8 pad0[0x50]; + s32 count; + u8 pad54[3]; + u8 enabled; + u8 pad58[10]; + s8 mode; +} State; +extern u8 D_003DC090[]; +u8 *D_002209F8 = D_003DC090; +extern u64 D_0020C6C0[]; +extern s32 D_0021DF0C, D_0021DF18, D_0021DECC; +extern s32 D_00221F74; +extern void func_004F7A98(u64 **, s32, s32); +extern void func_004F7A48(u64 **, s32, s32); +void func_004F7FD8(void) +{ + u64 *begin = D_0020C6C0; + u64 *cursor = begin; + s32 i; + if (!D_002209F8[0x57] && *(s8 *)(D_002209F8 + 0x62) == -1) { + D_0021DECC = 0; + D_00221F74 = D_0021DF0C; + return; + } + *cursor++ = 0x1000000000000005ULL; + *cursor++ = 0xE; + *cursor++ = 0; + *cursor++ = 0x3F; + *cursor++ = 0xA0000000A0ULL; + *cursor++ = 0x19; + *cursor++ = 0x100000000ULL; + *cursor++ = 0x4F; + *cursor++ = 0x60; + *cursor++ = 0x15; + *cursor++ = 5; + *cursor++ = 9; + *(s32 *)(D_002209F8 + 0x50) = *(s32 *)(D_002209F8 + 0x50) < 5 ? *(s32 *)(D_002209F8 + 0x50) : 4; + if (*(s32 *)(D_002209F8 + 0x50) == 4) { + func_004F7A98(&cursor, D_0021DF0C, D_0021DF18); + D_00221F74 = D_0021DF18; + } else { + for (i = 0; i < *(s32 *)(D_002209F8 + 0x50); ++i) + func_004F7A48(&cursor, D_0021DF0C, D_0021DF18); + D_00221F74 = D_0021DF0C; + } + D_0021DECC = (s32)((u32)cursor - (u32)begin); +} diff --git a/src/game/004FAAA8.c b/src/game/004FAAA8.c new file mode 100644 index 00000000..05804073 --- /dev/null +++ b/src/game/004FAAA8.c @@ -0,0 +1,19 @@ +#include "common.h" +extern s32 D_0021DF28; +extern u32 *D_00221E20; +extern u8 D_0020F400[]; +extern s32 D_00221F70, D_00221F80, D_0021DEF0; +s32 D_002209D0 = 128; +s32 D_002209BC = 0; +extern void func_004F8778(s32, s32, s32, s32, s32, s32, u32, u32); +void func_004FAAA8(void) +{ + D_00221E20[0] = (D_0021DF28 >> 4) | 0x30000000; + D_00221E20[1] = (u32)D_0020F400; + D_00221E20[2] = D_00221F70 | 0x03000000; + D_00221E20[3] = 0x02000000; + D_00221F70 += D_00221F80; + D_00221E20 += 4; + func_004F8778(D_0021DEF0, 256, 256, 1, 0, D_002209D0, 0x00808080, 0x00ffffff); + D_002209BC = 0; +} diff --git a/src/game/004FC310.c b/src/game/004FC310.c new file mode 100644 index 00000000..62ee36f6 --- /dev/null +++ b/src/game/004FC310.c @@ -0,0 +1,30 @@ +#include "common.h" +typedef struct { + u8 pad00[0xC]; + s32 first, second; + u8 pad14[8]; + s32 third, fourth, percentage; +} Record; +typedef struct { + s32 first, second, third, percentage, fourth; + u8 enabled; +} Output; +extern s32 func_0054AB40(s32 item, s32 index); +extern const Record *func_0054A9B0(s32 record); +extern u8 D_00171BA8[]; + +void func_004FC310(s32 item, s32 index, Output *output) +{ + const Record *record; + s32 group; + if (index < 30) + index = (s32)((u32)(((s32)((u32)item - 1) % 20) * 30) + (u32)index); + record = func_0054A9B0(func_0054AB40(item, index)); + group = (s32)((u32)item - 1) % 20; + output->first = record->first; + output->second = record->second; + output->third = record->third; + output->percentage = (s32)((f32)record->percentage * 0.01f) * 100; + output->fourth = record->fourth; + output->enabled = (*(s32 *)((u32)D_00171BA8 + ((u32)group << 2)) >> ((u32)index - (u32)(group * 30))) & 1; +} diff --git a/src/game/004FEF80.c b/src/game/004FEF80.c new file mode 100644 index 00000000..c0640e90 --- /dev/null +++ b/src/game/004FEF80.c @@ -0,0 +1,60 @@ +#include "common.h" + +typedef struct A_004FEF80 { + s32 unk0; + u8 pad4[0x8 - 0x4]; + void *unk8; + s32 unkC; + s32 unk10; + struct B_004FEF80 *unk14; + u8 unk18[0x18]; + u8 unk30[0x18]; + u8 unk48[0x18]; + u8 pad60[0x64 - 0x60]; + s32 unk64; +} A_004FEF80; + +typedef struct B_004FEF80 { + u8 pad0[0x38]; + s32 unk38; +} B_004FEF80; + +extern u8 D_003D3548[]; +extern void func_00453608(void *, s32, s32); +extern u8 *func_004FEE70(A_004FEF80 *, u8 *); +extern s32 func_00501598(A_004FEF80 *); +extern s32 func_00502440(u8 *); +extern u8 *func_00502848(s32, s32); + +A_004FEF80 *func_004FEF80(A_004FEF80 *arg0, s32 arg1, B_004FEF80 *arg2) { + s32 id; + u8 *data; + u8 *p; + s32 n; + s32 i; + + func_00501598(arg0); + arg0->unkC = 0; + arg0->unk10 = 0; + arg0->unk64 = 0; + arg0->unk14 = arg2; + arg0->unk8 = D_003D3548; + func_00453608(arg0->unk18, 0, 0x18); + func_00453608(arg0->unk30, 0xFF, 0x18); + func_00453608(arg0->unk48, 0, 0x18); + id = arg2->unk38; + if (arg2 != NULL && id >= 0 && (data = func_00502848(arg1, id)) != NULL) { + i = 0; + p = data; + n = func_00502440(p); + p += 4; + for (; p != NULL && i < n; i++) { + p = func_004FEE70(arg0, p); + } + arg0->unk0 = 1; + } else { + arg0->unk14 = NULL; + arg0->unk0 = 0; + } + return arg0; +} diff --git a/src/game/00502510.c b/src/game/00502510.c new file mode 100644 index 00000000..59bc730f --- /dev/null +++ b/src/game/00502510.c @@ -0,0 +1,70 @@ +#include "common.h" + +extern const u8 *func_00502478(const u8 *stream, u32 limit); +extern u32 func_00502448(const u8 *stream); +extern u32 func_00502440(const u8 *stream); +extern f32 func_00502450(const u8 *stream); +extern s32 func_00506B70(u32 handle); +extern s32 func_00503920(u32 handle, u32 color); +extern s32 func_00504D68(u32 handle, u32 mask, u32 value); +extern s32 func_00504F68(u32 handle, s32 visible); +extern void func_00505B70(s32 type, u32 handle); +extern s32 func_00505DD0(s32 parent, u32 child); +extern s32 func_00504238(u32 handle, f32 x, f32 y); +extern s32 func_005058E0(u32 handle, f32 x, f32 y); +extern const u8 *func_00503708(const u8 *stream, s32 stopAtMarker, u32 root, + u32 base, u32 parent, u32 flags, s32 attach); +extern const u8 *func_005033D0(const u8 *stream, u32 base, u32 parent, u32 flags); + +const u8 *func_00502510(const u8 *stream, s32 root, u32 base, u32 parent, u32 flags, s32 attach) +{ + u32 mask; + u32 handle; + f32 x, y, width, height; + u32 color; + s32 visible; + s32 bit; + + if (flags & 1) { + stream = func_00502478(stream, 0x1000); + stream = func_00502478(stream, 0x1000); + } + mask = func_00502448(stream); + stream += 4; + handle = func_00502448(stream) + base; + stream += 4; + x = func_00502450(stream); + stream += 4; + y = func_00502450(stream); + stream += 4; + width = func_00502450(stream); + stream += 4; + height = func_00502450(stream); + stream += 4; + color = func_00502440(stream); + stream += 4; + visible = func_00502448(stream) != 0; + stream += 4; + func_00506B70(handle); + func_00503920(handle, color); + for (bit = 0; bit < 8; ++bit) { + u32 flag = 1u << bit; + func_00504D68(handle, flag, mask & flag); + } + func_00504F68(handle, visible); + if (attach) { + if (root) { + func_00505B70(parent, handle); + } else { + func_00505DD0(parent, handle); + } + } + func_00504238(handle, x, y); + func_005058E0(handle, width, height); + stream = func_00503708(stream, 0, 0, base, handle, flags, 1); + stream = func_005033D0(stream, base, handle, flags); + if (!root) { + stream = func_00502478(stream, 0x1000); + } + return stream; +} diff --git a/src/game/005040B0.c b/src/game/005040B0.c new file mode 100644 index 00000000..7b80764e --- /dev/null +++ b/src/game/005040B0.c @@ -0,0 +1,79 @@ +#include "common.h" + +typedef struct Allocator Allocator; +typedef struct Object Object; +typedef struct { + u32 unknown0[2]; + void *(*allocate)(Allocator *, s32); + void (*release)(Allocator *, void *); +} AllocatorVtable; +struct Allocator { + AllocatorVtable *vtable; +}; +typedef struct Manager { + void *unknown0; + u8 *table; +} Manager; +typedef struct { + u32 unknown0[2]; + void (*destroy)(Object *, s32); +} ObjectVtable; +struct Object { + u32 unknown0[2]; + ObjectVtable *vtable; + + u8 unknownC[0x50]; +}; + +extern Manager D_00222038[]; +extern Manager *func_005010E0(void); +extern Allocator *func_005011A8(Manager *, s32); +extern void func_00504228(s32); +extern s32 func_00504230(void); +extern s32 func_004FF910(void *, u32); +extern void *func_0015DB80(u32, void *); +extern Object *func_0050CC98(void *); +extern s32 func_005005A8(void *, Object *, u32); + +static inline Manager *get_manager(void) +{ + Manager *manager = D_00222038; + if (manager->table) { + return manager; + } + return func_005010E0(); +} + +s32 func_005040B0(u32 key) +{ + s32 result = 0; + Manager *manager; + Allocator *allocator; + u8 *state; + void *entry; + s32 size; + void *block; + Object *object; + + manager = get_manager(); + state = (u8 *)manager->table; + entry = state != NULL + ? *(void **)((u32)state + ((u32) * (s32 *)(state + 0x14) << 2)) + : NULL; + func_00504228(0x208); + size = func_00504230(); + if (entry != NULL && func_004FF910(entry, key) == 0) { + allocator = func_005011A8(get_manager(), 0x4); + block = allocator->vtable->allocate(allocator, size); + if (block != NULL) { + object = func_0050CC98(func_0015DB80(0x208, block)); + result = func_005005A8(entry, object, key) != 0; + if (!result) { + object->vtable->destroy(object, 2); + allocator = func_005011A8(get_manager(), 0x4); + allocator->vtable->release(allocator, block); + } + } + } + return result; +} diff --git a/src/game/00504550.c b/src/game/00504550.c new file mode 100644 index 00000000..d419bd36 --- /dev/null +++ b/src/game/00504550.c @@ -0,0 +1,52 @@ +#include "common.h" +typedef struct Object Object; +typedef struct Vtable { + void *unused[3]; + u32 (*type)(Object *); + void *f10; + s32 (*supports)(Object *, u32); +} Vtable; +struct Object { + s32 f0, f4; + Vtable *vtable; +}; +typedef struct { + s32 f0; + void *context; +} Manager; +extern Manager D_00222038[]; +extern Manager *func_005010E0(void); +extern Object *func_005005E8(void *, s32); +extern u32 D_00220AB8; +static inline Object *resolve(s32 handle) +{ + Manager *m; + Object *obj; + void *world; + if (D_00222038[0].context) + m = D_00222038; + else + m = func_005010E0(); + world = 0; + if (m->context) + world = *(void **)((u32)m->context + ((u32) * (s32 *)((char *)m->context + 0x14) << 2)); + obj = func_005005E8(world, handle); + if (obj && obj->vtable->supports(obj, D_00220AB8)) + return obj; + return 0; +} +typedef s32 (*Callback)(Object *, float *, float *); +extern char D_00335FA8[]; +extern Callback func_00507A10(void *, u32); +s32 func_00504550(s32 handle, float *a, float *b) +{ + s32 result = 0; + Object *obj = resolve(handle); + if (obj) { + u32 type = obj->vtable->type(obj); + Callback callback = func_00507A10(D_00335FA8, type); + if (callback) + result = callback(obj, a, b); + } + return result; +} diff --git a/src/game/00504648.c b/src/game/00504648.c new file mode 100644 index 00000000..88024f93 --- /dev/null +++ b/src/game/00504648.c @@ -0,0 +1,52 @@ +#include "common.h" +typedef struct Object Object; +typedef struct Vtable { + void *unused[3]; + u32 (*type)(Object *); + void *f10; + s32 (*supports)(Object *, u32); +} Vtable; +struct Object { + s32 f0, f4; + Vtable *vtable; +}; +typedef struct { + s32 f0; + void *context; +} Manager; +extern Manager D_00222038[]; +extern Manager *func_005010E0(void); +extern Object *func_005005E8(void *, s32); +extern u32 D_00220AB8; +static inline Object *resolve(s32 handle) +{ + Manager *m; + Object *obj; + void *world; + if (D_00222038[0].context) + m = D_00222038; + else + m = func_005010E0(); + world = 0; + if (m->context) + world = *(void **)((u32)m->context + ((u32) * (s32 *)((char *)m->context + 0x14) << 2)); + obj = func_005005E8(world, handle); + if (obj && obj->vtable->supports(obj, D_00220AB8)) + return obj; + return 0; +} +typedef s32 (*Callback)(Object *, float *, float *); +extern char D_00336038[]; +extern Callback func_00507A10(void *, u32); +s32 func_00504648(s32 handle, float *a, float *b) +{ + s32 result = 0; + Object *obj = resolve(handle); + if (obj) { + u32 type = obj->vtable->type(obj); + Callback callback = func_00507A10(D_00336038, type); + if (callback) + result = callback(obj, a, b); + } + return result; +} diff --git a/src/game/00504AA8.c b/src/game/00504AA8.c new file mode 100644 index 00000000..72050de3 --- /dev/null +++ b/src/game/00504AA8.c @@ -0,0 +1,61 @@ +#include "common.h" +typedef struct Object Object; +typedef struct { + char pad[0xC]; + u32 (*getType)(Object *); + s32 pad10; + s32 (*isType)(Object *, u32); +} VTable; +struct Object { + char pad[8]; + VTable *vtable; +}; + +typedef struct { + s32 pad; + char *table; +} Manager; +extern Manager D_00222038[]; +extern u32 D_00220AB8; +extern Manager *func_005010E0(void); +extern Object *func_005005E8(void *, u32); +typedef s32 (*Callback)(Object *, f32); +extern Callback func_00507B70(void *, u32); +static inline Manager *getManager(void) +{ + Manager *p = D_00222038; + if (p->table) + return p; + return func_005010E0(); +} +static inline Object *valid(Object *p) +{ + if (p && p->vtable->isType(p, D_00220AB8)) + return p; + return 0; +} +static inline Object *getTyped(u32 id) +{ + Manager *m = getManager(); + char *state = m->table; + void *table = 0; + if (state) + table = *(void **)(state + (*(s32 *)(state + 0x14) << 2)); + return valid(func_005005E8(table, id)); +} +extern char D_00336718[]; +static inline Callback handler(u32 kind) +{ + return func_00507B70(D_00336718, kind); +} +s32 func_00504AA8(u32 id, f32 amount) +{ + s32 result = 0; + Object *p = getTyped(id); + if (p) { + Callback callback = handler(p->vtable->getType(p)); + if (callback) + result = callback(p, amount); + } + return result; +} diff --git a/src/game/00504F68.c b/src/game/00504F68.c new file mode 100644 index 00000000..22e4ff23 --- /dev/null +++ b/src/game/00504F68.c @@ -0,0 +1,55 @@ +#include "common.h" +typedef struct Object Object; +typedef struct { + char pad[0x14]; + s32 (*isType)(Object *, u32); +} VTable; +struct Object { + char pad[8]; + VTable *vtable; + s32 flags; +}; +typedef struct { + s32 pad; + char *table; +} Manager; +extern Manager D_00222038[]; +extern u32 D_00220B50; +extern Manager *func_005010E0(void); +extern Object *func_005005E8(void *, u32); + +static inline Manager *getManager(void) +{ + Manager *p = D_00222038; + if (p->table) + return p; + return func_005010E0(); +} +static inline Object *valid(Object *p) +{ + if (p && p->vtable->isType(p, D_00220B50)) + return p; + return 0; +} +static inline Object *getTyped(u32 id) +{ + Manager *m = getManager(); + char *state = m->table; + void *table = 0; + if (state) + table = *(void **)(state + (*(s32 *)(state + 0x14) << 2)); + return valid(func_005005E8(table, id)); +} +s32 func_00504F68(u32 id, s32 enabled) +{ + s32 result = 0; + Object *p = getTyped(id); + if (p) { + result = 1; + if (enabled) + p->flags |= 0x1; + else + p->flags &= ~1; + } + return result; +} diff --git a/src/game/00505238.c b/src/game/00505238.c new file mode 100644 index 00000000..ee938b8c --- /dev/null +++ b/src/game/00505238.c @@ -0,0 +1,52 @@ +#include "common.h" +typedef struct Object Object; +typedef struct Vtable { + void *unused[3]; + u32 (*type)(Object *); + void *f10; + s32 (*supports)(Object *, u32); +} Vtable; +struct Object { + s32 f0, f4; + Vtable *vtable; +}; +typedef struct { + s32 f0; + void *context; +} Manager; +extern Manager D_00222038[]; +extern Manager *func_005010E0(void); +extern Object *func_005005E8(void *, s32); +extern u32 D_00220AB8; +static inline Object *resolve(s32 handle) +{ + Manager *m; + Object *obj; + void *world; + if (D_00222038[0].context) + m = D_00222038; + else + m = func_005010E0(); + world = 0; + if (m->context) + world = *(void **)((u32)m->context + ((u32) * (s32 *)((char *)m->context + 0x14) << 2)); + obj = func_005005E8(world, handle); + if (obj && obj->vtable->supports(obj, D_00220AB8)) + return obj; + return 0; +} +typedef s32 (*Callback)(Object *, u32); +extern char D_003360C8[]; +extern Callback func_00507E90(void *, u32); +s32 func_00505238(s32 handle, u32 value) +{ + s32 result = 0; + Object *obj = resolve(handle); + if (obj) { + u32 type = obj->vtable->type(obj); + Callback callback = func_00507E90(D_003360C8, type); + if (callback) + result = callback(obj, value); + } + return result; +} diff --git a/src/game/00505328.c b/src/game/00505328.c new file mode 100644 index 00000000..8b2fbbee --- /dev/null +++ b/src/game/00505328.c @@ -0,0 +1,52 @@ +#include "common.h" +typedef struct Object Object; +typedef struct Vtable { + void *unused[3]; + u32 (*type)(Object *); + void *f10; + s32 (*supports)(Object *, u32); +} Vtable; +struct Object { + s32 f0, f4; + Vtable *vtable; +}; +typedef struct { + s32 f0; + void *context; +} Manager; +extern Manager D_00222038[]; +extern Manager *func_005010E0(void); +extern Object *func_005005E8(void *, s32); +extern u32 D_00220AB8; +static inline Object *resolve(s32 handle) +{ + Manager *m; + Object *obj; + void *world; + if (D_00222038[0].context) + m = D_00222038; + else + m = func_005010E0(); + world = 0; + if (m->context) + world = *(void **)((u32)m->context + ((u32) * (s32 *)((char *)m->context + 0x14) << 2)); + obj = func_005005E8(world, handle); + if (obj && obj->vtable->supports(obj, D_00220AB8)) + return obj; + return 0; +} +typedef s32 (*Callback)(Object *, u32); +extern char D_003361A0[]; +extern Callback func_00507B00(void *, u32); +s32 func_00505328(s32 handle, u32 value) +{ + s32 result = 0; + Object *obj = resolve(handle); + if (obj) { + u32 type = obj->vtable->type(obj); + Callback callback = func_00507B00(D_003361A0, type); + if (callback) + result = callback(obj, value); + } + return result; +} diff --git a/src/game/005081B0.c b/src/game/005081B0.c new file mode 100644 index 00000000..7dab7a85 --- /dev/null +++ b/src/game/005081B0.c @@ -0,0 +1,79 @@ +#include "common.h" + +typedef struct Allocator Allocator; +typedef struct Object Object; +typedef struct { + u32 unknown0[2]; + void *(*allocate)(Allocator *, s32); + void (*release)(Allocator *, void *); +} AllocatorVtable; +struct Allocator { + AllocatorVtable *vtable; +}; +typedef struct Manager { + void *unknown0; + u8 *table; +} Manager; +typedef struct { + u32 unknown0[2]; + void (*destroy)(Object *, s32); +} ObjectVtable; +struct Object { + u32 unknown0[2]; + ObjectVtable *vtable; + + u8 unknownC[0x50]; +}; + +extern Manager D_00222038[]; +extern Manager *func_005010E0(void); +extern Allocator *func_005011A8(Manager *, s32); +extern void func_00504228(s32); +extern s32 func_00504230(void); +extern s32 func_004FF910(void *, u32); +extern void *func_0015DB80(u32, void *); +extern Object *func_005105A0(void *); +extern s32 func_005005A8(void *, Object *, u32); + +static inline Manager *get_manager(void) +{ + Manager *manager = D_00222038; + if (manager->table) { + return manager; + } + return func_005010E0(); +} + +s32 func_005081B0(u32 key) +{ + s32 result = 0; + Manager *manager; + Allocator *allocator; + u8 *state; + void *entry; + s32 size; + void *block; + Object *object; + + manager = get_manager(); + state = (u8 *)manager->table; + entry = state != NULL + ? *(void **)((u32)state + ((u32) * (s32 *)(state + 0x14) << 2)) + : NULL; + func_00504228(0x50); + size = func_00504230(); + if (entry != NULL && func_004FF910(entry, key) == 0) { + allocator = func_005011A8(get_manager(), 1); + block = allocator->vtable->allocate(allocator, size); + if (block != NULL) { + object = func_005105A0(func_0015DB80(0x50, block)); + result = func_005005A8(entry, object, key) != 0; + if (!result) { + object->vtable->destroy(object, 2); + allocator = func_005011A8(get_manager(), 1); + allocator->vtable->release(allocator, block); + } + } + } + return result; +} diff --git a/src/game/0050BE90.c b/src/game/0050BE90.c new file mode 100644 index 00000000..d617dcfa --- /dev/null +++ b/src/game/0050BE90.c @@ -0,0 +1,61 @@ +#include "common.h" + +typedef union FloatWord { + u32 bits; + f32 value; +} FloatWord; +typedef struct Flags { + u32 active : 1, b1 : 1, mode : 2, b4 : 1, b5 : 1, b6 : 1, b7 : 1, b8 : 1, rest : 23; +} Flags; +typedef struct Resource { + u32 references, reserved; + const void *methods; + Flags flags; + u32 field10; + FloatWord x, y, width, height, unitx, unity, scale; + u32 color, blend; + s32 texture; + void *field3C; +} Resource; +extern u8 D_003D35D8[]; +extern Resource *func_00501598(Resource *resource); +extern void func_0050C058(Resource *resource, s32 x, s32 y); +Resource *func_0050BE90(Resource *resource) +{ + Flags flags; + func_00501598(resource); + flags = resource->flags; + flags.active = 1; + flags.b1 = 0; + flags.mode = 3; + flags.b5 = 0; + flags.b4 = 0; + flags.b6 = 0; + flags.b7 = 0; + resource->field10 = 0; + resource->x.bits = 0; + resource->y.bits = 0; + resource->width.bits = 0; + resource->height.bits = 0; + resource->unitx.bits = 0; + resource->unity.bits = 0; + resource->scale.bits = 0; + resource->methods = D_003D35D8; + resource->color = 0x80808080; + resource->blend = 0x80808080; + flags.b8 = 0; + resource->flags = flags; + func_0050C058(resource, 3, 3); + resource->scale.value = 1.0f; + resource->x.value = 0.5f; + resource->y.value = 0.5f; + resource->width.value = 1.0f; + resource->height.value = 1.0f; + resource->unitx.value = 0.00390625f; + resource->unity.value = 0.0048076925f; + resource->blend = 0x40000000; + resource->color = 0xFFFFFFFF; + resource->texture = -1; + resource->field3C = 0; + return resource; +} diff --git a/src/game/0050C100.c b/src/game/0050C100.c new file mode 100644 index 00000000..045d70af --- /dev/null +++ b/src/game/0050C100.c @@ -0,0 +1,86 @@ +#include "common.h" + +typedef struct Object Object; +typedef struct { + s32 enabled; + u16 kind; + u16 unused; + u32 mask; +} Event; +typedef struct { + u32 id; + u16 kind; + u8 data[6]; +} Action; +typedef struct { + u32 unused; + u16 kind; + u16 unused06; + u32 mask; + Action actions[15]; +} Handler; +typedef struct { + void *unused[9]; + s32 (*fallback)(Object *, const Event *); +} VTable; +struct Object { + u32 unused00, unused04; + VTable *vtable; + u32 flags; + u8 pad10[0x2C]; + const Handler **handlers; +}; +typedef struct { + s32 unused; + void *context; +} Manager; + +extern Manager D_00222038[]; +extern Manager *func_005010E0(void); +extern s32 func_0050C090(Object *, const Event *); +extern void *func_00500ED0(Manager *); +extern s32 func_00503D78(void *, const Action *); + +static inline Manager *getManager(void) +{ + if (D_00222038[0].context) + return D_00222038; + return func_005010E0(); +} + +s32 func_0050C100(Object *object, const Event *event) +{ + s32 handled = 0; + u32 index; + s32 action, matches; + const Handler *handler; + + if (!(object->flags & 2) && !event->enabled) + goto done; + handled = func_0050C090(object, event); + if (object->handlers) { + for (index = 0; *(const Handler **)((u32)object->handlers + (index << 2)); index++) { + handler = *(const Handler **)((u32)object->handlers + (index << 2)); + matches = 0; + if (event->kind == 1) { + if (handler->kind == 1 && (event->mask & handler->mask)) + matches = 1; + } else if (handler->kind == event->kind) { + matches = 1; + } + if (matches) { + handled = 1; + for (action = 0; + action < 15 && handler->actions[action].kind; + action++) { + func_00503D78(func_00500ED0(getManager()), + &handler->actions[action]); + } + } + } + } + if (!handled) + object->vtable->fallback(object, event); +done: + return handled; +} diff --git a/src/game/0050C7D8.c b/src/game/0050C7D8.c new file mode 100644 index 00000000..fd94e750 --- /dev/null +++ b/src/game/0050C7D8.c @@ -0,0 +1,64 @@ +#include "common.h" + +typedef struct Object Object; +typedef struct { + u8 unknown0[0x14]; + s32 (*isType)(Object *, u32); +} VTable; +struct Object { + u8 unknown0[8]; + VTable *vtable; +}; +typedef struct { + s32 unknown0; + char *table; +} Manager; +typedef struct { + u8 unknown0[0x1E8]; + s32 count; +} Container; + +extern Manager D_00222038[]; +u32 D_00220B50 = 1; +extern Manager *func_005010E0(void); +extern Object *func_005005E8(void *, u32); +extern s32 func_0050CAC0(Container *, u32, s32); + +static inline Manager *manager(void) +{ + Manager *p = D_00222038; + if (p->table) + return p; + return func_005010E0(); +} +static inline Object *valid(Object *p) +{ + if (p && p->vtable->isType(p, D_00220B50)) + return p; + return NULL; +} +static inline Object *lookup(u32 id) +{ + Manager *p = manager(); + char *state = p->table; + void *table = NULL; + if (state) + table = *(void **)((u32)state + ((u32) * (s32 *)(state + 0x14) << 2)); + return valid(func_005005E8(table, id)); +} + +s32 func_0050C7D8(Container *container, u32 child, u32 id) +{ + s32 result = 0; + Object *p = lookup(id); + s32 i; + if (p) { + for (i = 0; i < (s32)((u32)container->count - 1); i++) { + if (p == *(Object **)((u32)container + 0x40 + ((u32)i << 2))) { + result = func_0050CAC0(container, child, i); + break; + } + } + } + return result; +} diff --git a/src/game/00511060.c b/src/game/00511060.c new file mode 100644 index 00000000..b43e008e --- /dev/null +++ b/src/game/00511060.c @@ -0,0 +1,41 @@ +#include "common.h" +typedef struct Object { + u32 id; + u32 unknown4; + s32 status; + struct Object *next; +} Object; +extern u32 D_003D37C0[]; +extern Object *D_00336818[]; +extern Object *D_003367E0[]; +extern void *func_00510C58(u32 id); +extern void *func_0053E0D8(u32 id); +void *func_00511060(u32 id) +{ + u32 category; + u32 slot; + Object *object; + if (id == 0xFFFFFFFF) { + return NULL; + } + category = (id >> 24) & 15; + slot = id & 0xFFF; + if (category == 0) { + return func_00510C58(id); + } + if (category == 2) { + return func_0053E0D8(id); + } + object = (Object *)((u32)D_00336818[category] + slot * D_003D37C0[category]); + if (object->id == id && object->status != 2) { + return object; + } + object = D_003367E0[category]; + while (object) { + if (object->id == id && object->status != 2) { + return object; + } + object = object->next; + } + return NULL; +} diff --git a/src/game/0051A638.c b/src/game/0051A638.c new file mode 100644 index 00000000..41c1a658 --- /dev/null +++ b/src/game/0051A638.c @@ -0,0 +1,49 @@ +#include "common.h" +typedef struct Hero Hero; +typedef struct HeroMethods { + u8 unknown0[0x4C]; + s32 (*context)(Hero *hero); +} HeroMethods; +extern s32 D_0021EDD4; +extern u8 *D_0021DFF0; +extern void func_00548FD8(void *inventory, s32 retained, s32 reset); +extern void func_00525C58(Hero *hero); +extern void func_004A7C50(s32 context); +extern void func_004A7D48(s32 context); +extern void func_00522AF8(Hero *hero, s32 item, s32 mode, s32 slot); +extern void func_00548DF8(void *inventory, s32 item, s32 level, s32 force, s32 skip_existing); +#define AT(type, offset) (*(type *)((u32)hero + (offset))) +void func_0051A638(Hero *hero) +{ + s32 *row, *a, *b, *c, *d, *e; + s32 i; + func_00548FD8(AT(void *, 0x26E4), 1, D_0021EDD4 != 1); + func_00525C58(hero); + if (AT(u8, 0x266D)) { + func_004A7C50(AT(HeroMethods *, 0x14)->context(hero)); + func_004A7D48(AT(HeroMethods *, 0x14)->context(hero)); + } + e = (s32 *)((u32)hero + 0x26BC); + d = (s32 *)((u32)hero + 0x2674); + c = (s32 *)((u32)hero + 0x26A4); + b = (s32 *)((u32)hero + 0x268C); + a = (s32 *)((u32)hero + 0x24B0); + row = (s32 *)((u32)hero + 0x2318); + for (i = 5; i >= 0; i--) { + *row = 0; + *a++ = 0; + row += 0x14; + *b++ = 0; + *c++ = 0; + *d++ = 0; + *e++ = 0; + } + AT(u8, 0x266C) = 0; + if (D_0021EDD4 == 1) { + func_00522AF8(hero, 0x12, 0, -1); + func_00548DF8(AT(void *, 0x26E4), 0xE, 0, 0, 0); + if (*(s8 *)(D_0021DFF0 + 9) != 0 && D_0021DFF0[0x2A] == 1) + func_00522AF8(hero, 0xD, 0, -1); + } +} +#undef AT diff --git a/src/game/0053D6E0.c b/src/game/0053D6E0.c new file mode 100644 index 00000000..5b7f1f29 --- /dev/null +++ b/src/game/0053D6E0.c @@ -0,0 +1,30 @@ +#include "common.h" +typedef struct { + s32 count; +} Manager; +typedef struct { + char pad[0x2EF8]; + s32 *state; + char gap[0x1C]; + s32 owner; +} Object; +extern Manager *D_0021DDA4, *D_0021DDA8; +extern Object *func_00510BE8(s32), *func_00510C10(s32); +void func_0053D6E0(s32 owner, s32 id) +{ + s32 i; + for (i = 0; i < D_0021DDA4->count; i++) { + Object *p = func_00510BE8(i); + if (p && p->owner == owner && p->state) { + if (*p->state == id) + p->owner = 0; + } + } + for (i = 0; i < D_0021DDA8->count; i++) { + Object *p = func_00510C10(i); + if (p && p->owner == owner && p->state) { + if (*p->state == id) + p->owner = 0; + } + } +} diff --git a/src/game/005480A8.c b/src/game/005480A8.c new file mode 100644 index 00000000..ce6440b7 --- /dev/null +++ b/src/game/005480A8.c @@ -0,0 +1,29 @@ +#include "common.h" + +typedef struct { + s32 f0, value; + u8 rest[24]; +} __attribute__((packed)) Data; +typedef struct { + f32 f0; + u32 f4; + s32 f8; + u32 fC; +} Scale; +extern const Data *func_00548D68(s32, s32); +extern s32 func_0045CB50(void); +extern Scale D_003DE168[]; +s32 func_005480A8(s32 kind, s32 level) +{ + s32 low = level < 9; + Data data = *func_00548D68(kind, low ? level : 8); + s32 value = data.value; + if (func_0045CB50() && !low) { + s32 excess = level - 8; + s32 triangle = excess * (level - 7) / 2; + f32 coefficient = *(f32 *)((u32)kind * 16 + (u32)D_003DE168); + s32 step = *(s32 *)((u32)D_003DE168 + (u32)kind * 16 + 8); + value += step * excess + (s32)(coefficient * (f32)triangle); + } + return value; +} diff --git a/src/game/0054A0C0.c b/src/game/0054A0C0.c new file mode 100644 index 00000000..b06653c8 --- /dev/null +++ b/src/game/0054A0C0.c @@ -0,0 +1,23 @@ +#include "common.h" + +typedef struct { + u8 unknown0[0xD]; + u8 allowed[10]; + u8 unknown17[0x21]; +} Definition; + +extern const Definition *func_00549AE8(s32); + +s32 func_0054A0C0(s32 item, s32 mode) +{ + Definition definition; + s32 i; + + definition = *func_00549AE8(mode); + for (i = 0; i < 10; i++) { + if (definition.allowed[i] == item) { + return 1; + } + } + return 0; +} diff --git a/src/game/0054C250.c b/src/game/0054C250.c new file mode 100644 index 00000000..874057ac --- /dev/null +++ b/src/game/0054C250.c @@ -0,0 +1,44 @@ +#include "common.h" + +extern s32 D_00355320[]; +extern void func_0054E910(void); +extern s32 func_00453CE8(void *); +extern void func_004F6150(f32); + +s32 func_0054C250(s32 arg0) { + s32 *record; + s32 result = 0; + s32 one = 1; + func_0054E910(); + record = D_00355320; + switch (record[0x14 / 4]) { + case 0: + if (func_00453CE8(record + 0x10 / 4) != 0) { + record[0x14 / 4] = one; + record[0x10 / 4] = 0x1E; + } + func_004F6150(1.0f); + break; + case 1: + if (func_00453CE8(record + 0x10 / 4) != 0) { + record[0x14 / 4] = 2; + record[0x10 / 4] = 0x12C; + } + func_004F6150((f32)record[0x10 / 4] / 30.0f); + break; + case 2: + if (func_00453CE8(record + 0x10 / 4) != 0) { + record[0x14 / 4] = 3; + record[0x10 / 4] = 0x1E; + } + func_004F6150(0.0f); + break; + case 3: + if (arg0 != 0) { + result = func_00453CE8(record + 0x10 / 4) ? one : 0; + } + func_004F6150(1.0f - (f32)record[0x10 / 4] / 30.0f); + break; + } + return result; +} diff --git a/src/game/0054CC60.c b/src/game/0054CC60.c new file mode 100644 index 00000000..97a945ee --- /dev/null +++ b/src/game/0054CC60.c @@ -0,0 +1,48 @@ +#include "common.h" + +f32 D_00221000 = 0.13f; +f32 D_00220FFC = 0.125f; +f32 D_00221008 = 60.0f; +f32 D_0022100C = 64.0f; +f32 D_00221010 = 64.0f; +f32 D_00221014 = 0.0f; +f32 D_00221018 = 15.0f; +f32 D_00221020 = 375.0f; +f32 D_00221024 = 60.0f; +u64 D_00221028 = 0xFFFFFFFF803C3C3CULL; + +extern f32 D_0022210C; +extern s32 D_001D3F40[]; +extern const s32 D_003D4E38[]; +extern const s32 D_003D4E58[]; + +extern void *memcpy(void *, const void *, u32); +extern void func_004E7990(s32, u64, s32); +extern s32 func_00448F98(s32, s32); +extern void func_0044A238(s32, s32, s32, s32, u64, s32, f32, f32, f32, f32); + +void func_0054CC60(void) +{ + u64 color = D_00221028; + s32 first[8]; + s32 second[8]; + s32 i; + + func_004E7990(0x42, 0x8000000044ULL, 0); + func_004E7990(0x47, 0x3004B, 0); + D_0022100C = D_00220FFC * (f32)D_001D3F40[0]; + D_00221010 = D_00220FFC * (f32)D_001D3F40[1]; + D_0022210C = D_00221000 * (f32)D_001D3F40[0] * 0.96f; + memcpy(first, D_003D4E38, sizeof(first)); + for (i = 0; i < 8; i++) { + D_00221014 = (f32)i * D_0022100C; + func_0044A238(0, 0, 0x40, 0x40, color, func_00448F98(first[i], 1), + D_00221014, D_00221018, D_0022210C, D_00221024); + } + memcpy(second, D_003D4E58, sizeof(second)); + for (i = 0; i < 8; i++) { + D_00221014 = (f32)i * D_0022100C; + func_0044A238(0, 0, 0x40, 0x40, color, func_00448F98(second[i], 1), + D_00221014, D_00221020, D_0022210C, D_00221008); + } +} diff --git a/src/overlays/l00_multiplayer_menu/L00_004F8F78.c b/src/overlays/l00_multiplayer_menu/L00_004F8F78.c new file mode 100644 index 00000000..cceff950 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_004F8F78.c @@ -0,0 +1,58 @@ +/* cflags: @ee29 */ +#include "common.h" + +extern u64 func_00130480(u64, u64); + +typedef struct HashNode { + union { + s32 i; + void *p; + } key; + struct HashNode *next; + u64 hash; +} HashNode; + +typedef struct { + HashNode **buckets; + s32 (*compare)(s32, s32); + u64 (*hash)(s32); + u8 padC[0x10 - 0xC]; + u32 size; + u32 minIndex; + u32 altSize; + u8 pad1C[0x58 - 0x1C]; + u64 lookups; + u64 compares; + u8 pad68[0x98 - 0x68]; + u64 probes; +} HashTable; + +HashNode **func_L00_004F8F78(HashTable *t, s32 key, u64 *outHash) { + u64 h = t->hash(key); + u64 idx; + s32 (*compare)(s32, s32); + HashNode **pp; + HashNode *n; + + t->lookups++; + *outHash = h; + idx = func_00130480(h, t->altSize); + if (idx < t->minIndex) { + idx = func_00130480(h, t->size); + } + compare = t->compare; + pp = &t->buckets[(s32)idx]; + n = *pp; + while (n != NULL) { + t->probes++; + if (n->hash == h) { + t->compares++; + if (compare(n->key.i, key) == 0) { + break; + } + } + pp = &n->next; + n = n->next; + } + return pp; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_004FD6B8.c b/src/overlays/l00_multiplayer_menu/L00_004FD6B8.c new file mode 100644 index 00000000..43ae0d6b --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_004FD6B8.c @@ -0,0 +1,27 @@ +/* cflags: @ee29 -O2 -G0 */ +#include "common.h" + +typedef struct H_004FD6B8 { s32 type; s32 pad4[2]; s32 unkC; } H_004FD6B8; +typedef struct O_004FD6B8 { s32 pad0; s32 *unk4; } O_004FD6B8; +extern H_004FD6B8 *func_L00_004F7BE0(s32); +extern void func_L00_004F84C8(int, int, int, int, int); +extern s32 func_L00_005266A0(s32, s32, s32, s32, s32); + +s32 func_L00_004FD6B8(O_004FD6B8 *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + s32 ret = -1; + H_004FD6B8 *h; + + if (arg0 == NULL || *arg0->unk4 == 0 || (h = func_L00_004F7BE0(*arg0->unk4)) == NULL) { + func_L00_004F84C8(0x14, 0xBC, 0xC0, 0, 0); + return -1; + } + if (h->type != 6) { + func_L00_004F84C8(0x14, 0xBC, 0xD1, 0, 0); + } else { + ret = func_L00_005266A0(arg1, arg2, arg3, h->unkC, arg4); + if (ret < 0) { + func_L00_004F84C8(0x14, 0xBC, 0x804, 0, 0); + } + } + return ret; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00501980.c b/src/overlays/l00_multiplayer_menu/L00_00501980.c new file mode 100644 index 00000000..f20e7ad7 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00501980.c @@ -0,0 +1,55 @@ +/* cflags: @ee29 */ +#include "common.h" + +typedef struct { + u8 pad0[0x14]; + s32 f14; + s32 f18; + s32 f1C; + s32 f20; + s32 f24; + u8 pad28[0x10]; + s32 f38; +} Buf; + +typedef struct { + u8 pad0[0x10]; + s32 f10; + u8 pad14[4]; + s32 f18; + u8 pad1C[0x34]; + s32 f50; +} Conn; + +extern s32 *func_0011A1A0(void); +extern void func_L00_004F84C8(s32, s32, s32, s32, s32); +extern s32 func_L00_00516AB0(s32, s32, s32); + +s32 func_L00_00501980(Conn *arg0, s32 arg1, s32 arg2) { + s32 n; + + if (arg2 < ((Buf *)arg0->f50)->f14 || ((Buf *)arg0->f50)->f18 != arg1) { + func_L00_004F84C8(0x14, 0xD5, 0x7F, 0, 0); + return -1; + } + while (1) { + *func_0011A1A0() = 0; + if (arg0->f10 != 0) { + arg0->f18 = 2; + n = func_L00_00516AB0(arg0->f10, ((Buf *)arg0->f50)->f38 + ((Buf *)arg0->f50)->f1C, ((Buf *)arg0->f50)->f20); + } else { + func_L00_004F84C8(0x14, 0xD5, 0x104, 0, 0); + n = -1; + } + if (n == ((Buf *)arg0->f50)->f20) { + ((Buf *)arg0->f50)->f20 = 0; + arg0->f18 = 1; + return ((Buf *)arg0->f50)->f24; + } + if (n <= 0) { + return n; + } + ((Buf *)arg0->f50)->f1C += n; + ((Buf *)arg0->f50)->f20 -= n; + } +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00505368.c b/src/overlays/l00_multiplayer_menu/L00_00505368.c new file mode 100644 index 00000000..bf05f268 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00505368.c @@ -0,0 +1,58 @@ +/* cflags: @ee29 -O2 -G0 */ +#include "common.h" + +typedef struct Sock { + u8 pad0[0xA4]; + s32 fA4; + s32 fA8; + s32 fAC; + u8 padB0[0xE8 - 0xB0]; + s32 fE8; + s32 fEC; + s32 fF0; + s32 fF4; +} Sock; + +typedef struct Conn { + u8 pad0[0x10]; + s32 f10; + u8 pad14[0x4]; + s32 f18; + u8 pad1C[0x54 - 0x1C]; + s32 f54; +} Conn; + +extern s32 *func_0011A1A0(void); +extern void func_L00_004F84C8(s32, s32, s32, s32, s32); +extern s32 func_L00_00516AB0(s32, s32, s32); + +s32 func_L00_00505368(Conn *c, s32 arg1, s32 arg2, s32 arg3) { + Sock *s; + s32 r; + + s = ((Sock *)c->f54); + if (arg3 < s->fE8 || s->fF4 != arg2 || s->fEC != arg1) { + func_L00_004F84C8(0x14, 0xA0, 0x7F, 0, 0); + return -1; + } + while (1) { + *func_0011A1A0() = 0; + if (c->f10 != 0) { + c->f18 = 2; + r = func_L00_00516AB0(c->f10, ((Sock *)c->f54)->fAC + ((Sock *)c->f54)->fA8, ((Sock *)c->f54)->fA4); + } else { + func_L00_004F84C8(0x14, 0xA0, 0x80, 0, 0); + r = -1; + } + if (r == ((Sock *)c->f54)->fA4) { + ((Sock *)c->f54)->fA4 = 0; + c->f18 = 1; + return ((Sock *)c->f54)->fF0; + } + if (r <= 0) { + return r; + } + ((Sock *)c->f54)->fA8 += r; + ((Sock *)c->f54)->fA4 -= r; + } +} diff --git a/src/overlays/l00_multiplayer_menu/L00_0051E1D8.c b/src/overlays/l00_multiplayer_menu/L00_0051E1D8.c new file mode 100644 index 00000000..73ebde2d --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_0051E1D8.c @@ -0,0 +1,24 @@ +/* cflags: @ee296 -O2 -G0 */ +#include "common.h" + +u32 func_L00_0051E1D8(s32 value) { + u32 out; + s32 top; + s32 nib; + s32 high; + s32 i; + + out = 0; + top = value >> 28; + nib = 0xF; + nib = top & nib; + if ((top & 7) != 0) { + high = nib - (nib & 8); + } else { + high = 5; + } + for (i = 0; i < 7; i++) { + out |= ((value >> (i * 4)) & 7) << (i * 4); + } + return (out & 0xFFFFFFF) | (high << 28); +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00526DA8.c b/src/overlays/l00_multiplayer_menu/L00_00526DA8.c new file mode 100644 index 00000000..2693c46e --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00526DA8.c @@ -0,0 +1,66 @@ +/* cflags: @ee29 -O2 -G0 -fno-strict-aliasing */ +#include "common.h" + +typedef struct Sub54 { + u8 pad0[0x18]; + s32 f18; + u8 pad1C[0x100 - 0x1C]; + s32 f100; +} Sub54; + +typedef struct Peer { + u8 pad0[0x54]; + Sub54 *f54; +} Peer; + +typedef struct Conn { + u8 pad0[0x4]; + void *f4; +} Conn; + +typedef struct Self { + u8 pad0[0x8]; + Peer *f8; + u8 padC[0x3C - 0xC]; + Conn *f3C; + u8 pad40[0x54 - 0x40]; + Sub54 *f54; +} Self; + +extern s32 func_0011A2DC(void *, void *, s32); +extern void func_L00_004F84C8(s32, s32, s32, s32, s32); +extern void func_L00_00505D50(Self *, s32, s32); +extern s64 func_L00_00527340(Self *, s32, s32, s32, u64, s32 *); + +s32 func_L00_00526DA8(Self *self, s32 arg1, s32 arg2) { + s32 status; + s64 r; + s32 code; + s32 len; + void *data; + + r = func_L00_00527340(self, arg1, arg2, 0x14, 0x40, &status); + if (status == 0) { + return r; + } + if (self->f54->f100 == 0) { + code = 10; + func_L00_004F84C8(0x14, 0x8C, 0x9A, 0, 0); + } else { + self->f54->f100 = 0; + len = self->f8->f54->f18; + data = self->f3C->f4; + if (len != r) { + code = 0x32; + func_L00_004F84C8(0x14, 0x8C, 0x6F, 0, 0); + } else { + if (func_0011A2DC(data, (u8 *)self->f54 + 0x128, len) == 0) { + return 1; + } + code = 0x33; + func_L00_004F84C8(0x14, 0x8C, 0x95, 0, 0); + } + } + func_L00_00505D50(self, 2, code); + return -1; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00545C48.c b/src/overlays/l00_multiplayer_menu/L00_00545C48.c new file mode 100644 index 00000000..83c76c61 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00545C48.c @@ -0,0 +1,24 @@ +/* cflags: @ee296 -O2 -G0 */ +#include "common.h" + +u32 func_L00_00545C48(s32 value) { + u32 out; + s32 top; + s32 nib; + s32 high; + s32 i; + + out = 0; + top = value >> 28; + nib = 0xF; + nib = top & nib; + if ((top & 7) != 0) { + high = nib - (nib & 8); + } else { + high = 5; + } + for (i = 0; i < 7; i++) { + out |= ((value >> (i * 4)) & 7) << (i * 4); + } + return (out & 0xFFFFFFF) | (high << 28); +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00551DA0.c b/src/overlays/l00_multiplayer_menu/L00_00551DA0.c new file mode 100644 index 00000000..0f80c689 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00551DA0.c @@ -0,0 +1,17 @@ +/* cflags: -Wuninitialized */ +#include "common.h" + +s32 func_L00_00551DA0(void *arg0) { + s32 (*var_2)(s32); + s32 var_4; + void *var_3; + + var_3 = arg0; + var_2 = NULL; + if (var_3 != NULL) { + var_2 = *(s32 (**)(s32))var_3; + var_4 = *(s32 *)((u8 *)var_3 + 4); + var_2 = (s32 (*)(s32)) (var_2(var_4) != 0); + } + return (s32) var_2; +} \ No newline at end of file diff --git a/src/overlays/l00_multiplayer_menu/L00_00565150.c b/src/overlays/l00_multiplayer_menu/L00_00565150.c new file mode 100644 index 00000000..fe2f228a --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00565150.c @@ -0,0 +1,24 @@ +/* cflags: @ee296 -O2 -G0 */ +#include "common.h" + +u32 func_L00_00565150(s32 value) { + u32 out; + s32 top; + s32 nib; + s32 high; + s32 i; + + out = 0; + top = value >> 28; + nib = 0xF; + nib = top & nib; + if ((top & 7) != 0) { + high = nib - (nib & 8); + } else { + high = 5; + } + for (i = 0; i < 7; i++) { + out |= ((value >> (i * 4)) & 7) << (i * 4); + } + return (out & 0xFFFFFFF) | (high << 28); +} diff --git a/src/overlays/l00_multiplayer_menu/L00_005661C8.c b/src/overlays/l00_multiplayer_menu/L00_005661C8.c new file mode 100644 index 00000000..1079b52d --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_005661C8.c @@ -0,0 +1,24 @@ +/* cflags: @ee296 -O2 -G0 */ +#include "common.h" + +u32 func_L00_005661C8(s32 value) { + u32 out; + s32 top; + s32 nib; + s32 high; + s32 i; + + out = 0; + top = value >> 28; + nib = 0xF; + nib = top & nib; + if ((top & 7) != 0) { + high = nib - (nib & 8); + } else { + high = 5; + } + for (i = 0; i < 7; i++) { + out |= ((value >> (i * 4)) & 7) << (i * 4); + } + return (out & 0xFFFFFFF) | (high << 28); +} diff --git a/src/overlays/l00_multiplayer_menu/L00_0069DA50.c b/src/overlays/l00_multiplayer_menu/L00_0069DA50.c new file mode 100644 index 00000000..af8e4288 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_0069DA50.c @@ -0,0 +1,52 @@ +#include "common.h" +typedef struct Object Object; +typedef struct Vtable { + void *unused[3]; + u32 (*type)(Object *); + void *f10; + s32 (*supports)(Object *, u32); +} Vtable; +struct Object { + s32 f0, f4; + Vtable *vtable; +}; +typedef struct { + s32 f0; + void *context; +} Manager; +extern Manager D_00223148[]; +extern Manager *func_005010E0(void); +extern Object *func_005005E8(void *, s32); +extern u32 D_00220B50; +static inline Object *resolve(s32 handle) +{ + Manager *m; + Object *obj; + void *world; + if (D_00223148[0].context) + m = D_00223148; + else + m = func_005010E0(); + world = 0; + if (m->context) + world = *(void **)((u32)m->context + ((u32) * (s32 *)((char *)m->context + 0x14) << 2)); + obj = func_005005E8(world, handle); + if (obj && obj->vtable->supports(obj, D_00220B50)) + return obj; + return 0; +} +typedef s32 (*Callback)(Object *, f32, f32); +extern char D_003436B0[]; +extern Callback func_L00_0069FE90(void *, u32); +s32 func_L00_0069DA50(s32 handle, f32 a, f32 b) +{ + s32 result = 0; + Object *obj = resolve(handle); + if (obj) { + u32 type = obj->vtable->type(obj); + Callback callback = func_L00_0069FE90(D_003436B0, type); + if (callback) + result = callback(obj, a, b); + } + return result; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00711478.c b/src/overlays/l00_multiplayer_menu/L00_00711478.c new file mode 100644 index 00000000..ffb9716d --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00711478.c @@ -0,0 +1,21 @@ +#include "common.h" + +extern s32 func_L00_0069E7A8(s32 item, s32 mode); +extern s32 func_L00_0069E6E0(s32 item, f32 first, f32 second); + +s32 func_L00_00711478(void *object, s32 mode, f32 first, f32 second) +{ + s32 item; + + item = *(s32 *)((s8 *)object + 0x14); + if (item != 0) { + if (func_L00_0069E7A8(item, mode) != 0) { + if (mode != 0) { + return func_L00_0069E6E0(*(s32 *)((s8 *)object + 0x14), first, second); + } + return 1; + } + return 0; + } + return 0; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_007121A0.c b/src/overlays/l00_multiplayer_menu/L00_007121A0.c new file mode 100644 index 00000000..b80a914b --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_007121A0.c @@ -0,0 +1,23 @@ +#include "common.h" + +s32 func_L00_0069CC48(s32 handle, s32 a, s32 b); + +s32 func_L00_007121A0(void *arg0, s32 arg1, s32 arg2) { + s32 temp_a0; + s32 temp_a0_2; + s32 temp_a0_3; + + temp_a0 = (*(s32 *)((s8 *)(arg0) + (0x5C))); + if (temp_a0 != 0) { + func_L00_0069CC48(temp_a0, arg1, arg2); + } + temp_a0_2 = (*(s32 *)((s8 *)(arg0) + (0x64))); + if (temp_a0_2 != -1) { + func_L00_0069CC48(temp_a0_2, arg1, arg2); + } + temp_a0_3 = (*(s32 *)((s8 *)(arg0) + (0x68))); + if (temp_a0_3 != -1) { + func_L00_0069CC48(temp_a0_3, arg1, arg2); + } + return 1; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00712220.c b/src/overlays/l00_multiplayer_menu/L00_00712220.c new file mode 100644 index 00000000..01025888 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00712220.c @@ -0,0 +1,23 @@ +#include "common.h" + +s32 func_L00_0069CE38(s32 handle, s32 a, s32 b); + +s32 func_L00_00712220(void *arg0, s32 arg1, s32 arg2) { + s32 temp_a0; + s32 temp_a0_2; + s32 temp_a0_3; + + temp_a0 = (*(s32 *)((s8 *)(arg0) + (0x5C))); + if (temp_a0 != 0) { + func_L00_0069CE38(temp_a0, arg1, arg2); + } + temp_a0_2 = (*(s32 *)((s8 *)(arg0) + (0x64))); + if (temp_a0_2 != -1) { + func_L00_0069CE38(temp_a0_2, arg1, arg2); + } + temp_a0_3 = (*(s32 *)((s8 *)(arg0) + (0x68))); + if (temp_a0_3 != -1) { + func_L00_0069CE38(temp_a0_3, arg1, arg2); + } + return 1; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00713360.c b/src/overlays/l00_multiplayer_menu/L00_00713360.c new file mode 100644 index 00000000..6a076f09 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00713360.c @@ -0,0 +1,14 @@ +/* cflags: -O2 -G8 -Wuninitialized */ +#include "common.h" + +extern s32 func_0069D6C0(s32 handle, u32 value); + +s32 func_L00_00713360(void *object, u32 value) +{ + s32 handle = *(s32 *)((u8 *)object + 0x14); + + if (handle != 0xFFFFFFFF) { + return func_0069D6C0(handle, value); + } + return 0; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_007141C8.c b/src/overlays/l00_multiplayer_menu/L00_007141C8.c new file mode 100644 index 00000000..9997a5e1 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_007141C8.c @@ -0,0 +1,7 @@ +#include "common.h" + +void *func_L00_0069D9B8(s32); + +s32 func_L00_007141C8(void *arg0, s32 arg1) { + return (s32) ((*(f32 *)((s8 *)(func_L00_0069D9B8(arg1 | (*(s32 *)((s8 *)(arg0) + (0x45C))))) + (0x1C))) * 512.0f); +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00714F10.c b/src/overlays/l00_multiplayer_menu/L00_00714F10.c new file mode 100644 index 00000000..7dc8f983 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00714F10.c @@ -0,0 +1,53 @@ +#include "common.h" + +extern s32 func_0069CC48(s32, s32, s32); +extern u32 func_005E6358(u32, u32, s32, s32, s32, s32); +extern s32 func_0069D318(s32, u8 *); +extern s32 func_0069D408(s32, u32); +extern void func_0069E7A8(s32, s32); + +void func_L00_00714F10(u8 *item) { + u32 col; + s32 mode; + + if (*(s32 *)(item + 4) == 0) { + return; + } + if (*(s32 *)(item + 0x14) == 0 && *(s32 *)(item + 0x5C) == 0) { + return; + } + func_0069CC48(*(s32 *)(item + 0x14), 1, 0); + if (*(s32 *)(item + 4) == 1) { + func_0069CC48(*(s32 *)(item + 0x5C), 1, 0); + return; + } + func_0069CC48(*(s32 *)(item + 0x5C), 1, 1); + mode = *(s32 *)(item + 4); + if (mode == 3) { + col = 0x80808080; + } else if (mode == 4) { + col = *(u32 *)(item + 0x130); + } else if (mode == 5) { + col = func_005E6358(0x80D6CBBE, 0x66A6BEFA, 0x2D, 1, 0, 1); + } else if (mode == 6) { + col = 0x66A6BEFA; + } else { + col = *(u32 *)(item + 0x130); + } + if (*(s32 *)(item + 0x14) != 0 && item[0x18] != 0) { + func_0069D318(*(s32 *)(item + 0x14), item + 0x18); + func_0069D408(*(s32 *)(item + 0x14), col); + func_0069CC48(*(s32 *)(item + 0x14), 1, 1); + } + if (*(s32 *)(item + 0x5C) != 0) { + if (*(s32 *)(item + 0x128) != 0) { + if (item[0x134] != 0) { + func_0069E7A8(*(s32 *)(item + 0x5C), 1); + } else { + func_0069E7A8(*(s32 *)(item + 0x5C), 0); + } + } + func_0069D318(*(s32 *)(item + 0x5C), item + 0x60); + func_0069D408(*(s32 *)(item + 0x5C), col); + } +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00717580.c b/src/overlays/l00_multiplayer_menu/L00_00717580.c new file mode 100644 index 00000000..8fd588dd --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00717580.c @@ -0,0 +1,45 @@ +#include "common.h" + +s32 func_0069DA50(s32 handle, f32 a, f32 b); + +s32 func_L00_00717580(void *arg0, f32 fparg0, f32 fparg1) { + s32 temp_a0; + s32 temp_a0_2; + s32 temp_a0_3; + s32 temp_a0_4; + s32 temp_a0_5; + s32 temp_a0_6; + s32 temp_a0_7; + s32 var_s1; + + var_s1 = 0; + temp_a0 = (*(s32 *)((s8 *)(arg0) + (0x14))); + if (temp_a0 != 0) { + var_s1 = func_0069DA50(temp_a0, fparg0, fparg1); + } + temp_a0_2 = (*(s32 *)((s8 *)(arg0) + (0x5C))); + if (temp_a0_2 != 0) { + var_s1 |= func_0069DA50(temp_a0_2, fparg0, fparg1); + } + temp_a0_3 = (*(s32 *)((s8 *)(arg0) + (0x12C))); + if (temp_a0_3 != -1) { + var_s1 |= func_0069DA50(temp_a0_3, fparg0, fparg1); + } + temp_a0_4 = (*(s32 *)((s8 *)(arg0) + (0x130))); + if (temp_a0_4 != -1) { + var_s1 |= func_0069DA50(temp_a0_4, fparg0, fparg1); + } + temp_a0_5 = (*(s32 *)((s8 *)(arg0) + (0x134))); + if (temp_a0_5 != -1) { + var_s1 |= func_0069DA50(temp_a0_5, fparg0, fparg1); + } + temp_a0_6 = (*(s32 *)((s8 *)(arg0) + (0x138))); + if (temp_a0_6 != -1) { + var_s1 |= func_0069DA50(temp_a0_6, fparg0, fparg1); + } + temp_a0_7 = (*(s32 *)((s8 *)(arg0) + (0x13C))); + if (temp_a0_7 != -1) { + var_s1 |= func_0069DA50(temp_a0_7, fparg0, fparg1); + } + return var_s1 != 0; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00717678.c b/src/overlays/l00_multiplayer_menu/L00_00717678.c new file mode 100644 index 00000000..a57ff9c3 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00717678.c @@ -0,0 +1,45 @@ +#include "common.h" + +s32 func_0069CC48(s32 handle, s32 a, s32 b); + +s32 func_L00_00717678(void *arg0, s32 arg1, s32 arg2) { + s32 temp_a0; + s32 temp_a0_2; + s32 temp_a0_3; + s32 temp_a0_4; + s32 temp_a0_5; + s32 temp_a0_6; + s32 temp_a0_7; + s32 var_s3; + + temp_a0 = (*(s32 *)((s8 *)(arg0) + (0x14))); + var_s3 = 0; + if (temp_a0 != 0) { + var_s3 = func_0069CC48(temp_a0, arg1, arg2); + } + temp_a0_2 = (*(s32 *)((s8 *)(arg0) + (0x5C))); + if (temp_a0_2 != 0) { + var_s3 |= func_0069CC48(temp_a0_2, arg1, arg2); + } + temp_a0_3 = (*(s32 *)((s8 *)(arg0) + (0x12C))); + if (temp_a0_3 != -1) { + var_s3 |= func_0069CC48(temp_a0_3, arg1, arg2); + } + temp_a0_4 = (*(s32 *)((s8 *)(arg0) + (0x130))); + if (temp_a0_4 != -1) { + var_s3 |= func_0069CC48(temp_a0_4, arg1, arg2); + } + temp_a0_5 = (*(s32 *)((s8 *)(arg0) + (0x134))); + if (temp_a0_5 != -1) { + var_s3 |= func_0069CC48(temp_a0_5, arg1, arg2); + } + temp_a0_6 = (*(s32 *)((s8 *)(arg0) + (0x138))); + if (temp_a0_6 != -1) { + var_s3 |= func_0069CC48(temp_a0_6, arg1, arg2); + } + temp_a0_7 = (*(s32 *)((s8 *)(arg0) + (0x13C))); + if (temp_a0_7 != -1) { + var_s3 |= func_0069CC48(temp_a0_7, arg1, arg2); + } + return var_s3 != 0; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_007177B0.c b/src/overlays/l00_multiplayer_menu/L00_007177B0.c new file mode 100644 index 00000000..22cccc25 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_007177B0.c @@ -0,0 +1,45 @@ +#include "common.h" + +s32 func_L00_0069CE38(s32 handle, s32 a, s32 b); + +s32 func_L00_007177B0(void *arg0, s32 arg1, s32 arg2) { + s32 temp_a0; + s32 temp_a0_2; + s32 temp_a0_3; + s32 temp_a0_4; + s32 temp_a0_5; + s32 temp_a0_6; + s32 temp_a0_7; + s32 var_s3; + + temp_a0 = (*(s32 *)((s8 *)(arg0) + (0x14))); + var_s3 = 0; + if (temp_a0 != 0) { + var_s3 = func_L00_0069CE38(temp_a0, arg1, arg2); + } + temp_a0_2 = (*(s32 *)((s8 *)(arg0) + (0x5C))); + if (temp_a0_2 != 0) { + var_s3 |= func_L00_0069CE38(temp_a0_2, arg1, arg2); + } + temp_a0_3 = (*(s32 *)((s8 *)(arg0) + (0x12C))); + if (temp_a0_3 != -1) { + var_s3 |= func_L00_0069CE38(temp_a0_3, arg1, arg2); + } + temp_a0_4 = (*(s32 *)((s8 *)(arg0) + (0x130))); + if (temp_a0_4 != -1) { + var_s3 |= func_L00_0069CE38(temp_a0_4, arg1, arg2); + } + temp_a0_5 = (*(s32 *)((s8 *)(arg0) + (0x134))); + if (temp_a0_5 != -1) { + var_s3 |= func_L00_0069CE38(temp_a0_5, arg1, arg2); + } + temp_a0_6 = (*(s32 *)((s8 *)(arg0) + (0x138))); + if (temp_a0_6 != -1) { + var_s3 |= func_L00_0069CE38(temp_a0_6, arg1, arg2); + } + temp_a0_7 = (*(s32 *)((s8 *)(arg0) + (0x13C))); + if (temp_a0_7 != -1) { + var_s3 |= func_L00_0069CE38(temp_a0_7, arg1, arg2); + } + return var_s3 != 0; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_007178A8.c b/src/overlays/l00_multiplayer_menu/L00_007178A8.c new file mode 100644 index 00000000..a7d41473 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_007178A8.c @@ -0,0 +1,7 @@ +#include "common.h" + +void *func_L00_0069D9B8(s32); + +s32 func_L00_007178A8(void *arg0, s32 arg1) { + return (s32) ((*(f32 *)((s8 *)(func_L00_0069D9B8(arg1 | (*(s32 *)((s8 *)(arg0) + (0x10))))) + (0x1C))) * 512.0f); +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00721A28.c b/src/overlays/l00_multiplayer_menu/L00_00721A28.c new file mode 100644 index 00000000..de8adb98 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00721A28.c @@ -0,0 +1,62 @@ +/* cflags: -O2 -G8 -Wuninitialized */ +#include "common.h" +extern void *D_002233A4; +extern char D_00220E50[], D_00220E58[], D_00220E60[]; +extern int func_004534D0(void *); +extern int func_L00_00767A50(void *, int); +extern void *func_0011AFC8(void *, const void *, unsigned int); +extern int func_0011D920(char *, const char *, ...); +extern int func_L00_00772630(void *, int, int, int *); +extern int func_L00_00725150(void *, int); +#define FIELD(p, t, n) (*(t *)((char *)(p) + (n))) +typedef void (*SetTextMethod)(void *, const char *); +typedef void (*ClearMethod)(void *); +#define SETTEXT(p, s) FIELD(FIELD(p, void *, 0x58), SetTextMethod, 0xE8)(p, s) +#define CLEAR(p) FIELD(FIELD(p, void *, 0x58), ClearMethod, 0xE4)(p) +void func_L00_00721A28(void *self) { + char tag[16]; + char name[16]; + char text[16]; + + int stats[100]; + void *profile; + void *widget; + void *widget6; + void *widget5; + void *widget4; + void *widget3; + void *widget2; + void *widget1; + int first, second; + profile = FIELD(D_002233A4, void *, 0x3C); + func_004534D0((char *)self + 0x384); + if (FIELD(self, int, 0x384) <= 0) { + func_L00_00767A50(profile, 0); + widget = FIELD(self, void *, 0xC0); + FIELD(self, int, 0x384) = 0x384; + SETTEXT(widget, (char *)profile + 4); + func_0011AFC8(tag, (char *)profile + 44, 4); + tag[4] = 0; + func_0011D920(name, D_00220E50, tag); + widget1 = FIELD(self, void *, 0xD4); + SETTEXT(widget1, name); + if (func_L00_00772630(FIELD(D_002233A4, void *, 0x50), FIELD(profile, int, 0), 1, stats)) { + func_0011D920(text, D_00220E58, stats[2], stats[3]); + widget2 = FIELD(self, void *, 0xCC); + SETTEXT(widget2, text); + func_0011D920(text, D_00220E58, stats[0], stats[1]); + widget3 = FIELD(self, void *, 0xD0); + SETTEXT(widget3, text); + } else { + widget4 = FIELD(self, void *, 0xCC); + CLEAR(widget4); + widget5 = FIELD(self, void *, 0xD0); + CLEAR(widget5); + } + first = func_L00_00725150(profile, 4); + second = func_L00_00725150(profile, 10); + func_0011D920(text, D_00220E60, first, second); + widget6 = FIELD(self, void *, 0xC8); + SETTEXT(widget6, text); + } +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00725150.c b/src/overlays/l00_multiplayer_menu/L00_00725150.c new file mode 100644 index 00000000..8f6f5466 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00725150.c @@ -0,0 +1,16 @@ +/* cflags: -O2 -G8 -Wuninitialized */ +#include "common.h" + +void *func_L00_0076C5E0(s32, s32, s32); + +s32 func_L00_00725150(s32 arg0, s32 arg1) { + void *temp_2; + + if (arg0 != 0) { + temp_2 = func_L00_0076C5E0(arg0, arg1, 1); + if (temp_2 != NULL) { + return *(s32 *)((u8 *)temp_2 + 0x18); + } + } + return 0; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00725188.c b/src/overlays/l00_multiplayer_menu/L00_00725188.c new file mode 100644 index 00000000..1eacb72f --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00725188.c @@ -0,0 +1,62 @@ +/* cflags: -O2 -G8 -Wuninitialized */ +#include "common.h" +extern void *D_002233A4; +extern char D_00220EA0[], D_00220EA8[], D_00220EB0[]; +extern int func_004534D0(void *); +extern int func_L00_00767A50(void *, int); +extern void *func_0011AFC8(void *, const void *, unsigned int); +extern int func_0011D920(char *, const char *, ...); +extern int func_L00_00772630(void *, int, int, int *); +extern int func_L00_00725150(void *, int); +#define FIELD(p, t, n) (*(t *)((char *)(p) + (n))) +typedef void (*SetTextMethod)(void *, const char *); +typedef void (*ClearMethod)(void *); +#define SETTEXT(p, s) FIELD(FIELD(p, void *, 0x58), SetTextMethod, 0xE8)(p, s) +#define CLEAR(p) FIELD(FIELD(p, void *, 0x58), ClearMethod, 0xE4)(p) +void func_L00_00725188(void *self) { + char tag[16]; + char name[16]; + char text[16]; + + int stats[100]; + void *profile; + void *widget; + void *widget6; + void *widget5; + void *widget4; + void *widget3; + void *widget2; + void *widget1; + int first, second; + profile = FIELD(D_002233A4, void *, 0x3C); + func_004534D0((char *)self + 0x370); + if (FIELD(self, int, 0x370) <= 0) { + func_L00_00767A50(profile, 0); + widget = FIELD(self, void *, 0xC0); + FIELD(self, int, 0x370) = 0x384; + SETTEXT(widget, (char *)profile + 4); + func_0011AFC8(tag, (char *)profile + 44, 4); + tag[4] = 0; + func_0011D920(name, D_00220EA0, tag); + widget1 = FIELD(self, void *, 0xD4); + SETTEXT(widget1, name); + if (func_L00_00772630(FIELD(D_002233A4, void *, 0x50), FIELD(profile, int, 0), 1, stats)) { + func_0011D920(text, D_00220EA8, stats[2], stats[3]); + widget2 = FIELD(self, void *, 0xCC); + SETTEXT(widget2, text); + func_0011D920(text, D_00220EA8, stats[0], stats[1]); + widget3 = FIELD(self, void *, 0xD0); + SETTEXT(widget3, text); + } else { + widget4 = FIELD(self, void *, 0xCC); + CLEAR(widget4); + widget5 = FIELD(self, void *, 0xD0); + CLEAR(widget5); + } + first = func_L00_00725150(profile, 4); + second = func_L00_00725150(profile, 10); + func_0011D920(text, D_00220EB0, first, second); + widget6 = FIELD(self, void *, 0xC8); + SETTEXT(widget6, text); + } +} diff --git a/src/overlays/l00_multiplayer_menu/L00_0072BD20.c b/src/overlays/l00_multiplayer_menu/L00_0072BD20.c new file mode 100644 index 00000000..ffc8bb39 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_0072BD20.c @@ -0,0 +1,12 @@ +#include "common.h" + +extern s32 func_L00_0071AF88(void *, s32); +extern void func_L00_0070C3E0(void *, s32); +extern u8 D_004BBD20[]; + +s32 func_L00_0072BD20(void *arg0, s32 arg1) +{ + *(void **)((u8 *)arg0 + 88) = D_004BBD20; + func_L00_0070C3E0((u8 *)arg0 + 676, 2); + return func_L00_0071AF88(arg0, arg1); +} diff --git a/src/overlays/l00_multiplayer_menu/L00_0072FDF0.c b/src/overlays/l00_multiplayer_menu/L00_0072FDF0.c new file mode 100644 index 00000000..81368bd6 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_0072FDF0.c @@ -0,0 +1,12 @@ +#include "common.h" + +extern s32 func_L00_0071AF88(void *, s32); +extern void func_L00_0070C3E0(void *, s32); +extern u8 D_004BBF70[]; + +s32 func_L00_0072FDF0(void *arg0, s32 arg1) +{ + *(void **)((u8 *)arg0 + 88) = D_004BBF70; + func_L00_0070C3E0((u8 *)arg0 + 0xCC8, 2); + return func_L00_0071AF88(arg0, arg1); +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00734928.c b/src/overlays/l00_multiplayer_menu/L00_00734928.c new file mode 100644 index 00000000..839c623c --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00734928.c @@ -0,0 +1,12 @@ +#include "common.h" + +extern s32 func_L00_0071EDF0(void *, s32); +extern void func_L00_00710200(void *, s32); +extern u8 D_004BBE20[]; + +s32 func_L00_00734928(void *arg0, s32 arg1) +{ + *(void **)((u8 *)arg0 + 88) = D_004BBE20; + func_L00_00710200((u8 *)arg0 + 0x260, 2); + return func_L00_0071EDF0(arg0, arg1); +} diff --git a/src/overlays/l00_multiplayer_menu/L00_0073F590.c b/src/overlays/l00_multiplayer_menu/L00_0073F590.c new file mode 100644 index 00000000..304cc644 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_0073F590.c @@ -0,0 +1,15 @@ +#include "common.h" + +void func_L00_0073F590(char *arg0) { + char **p = (char **)(arg0 + 0xd4); + s32 i; + *(s32 *)(arg0 + 0x36C) = -1; + i = 10; + do { + char *v; + i--; + v = *p; + (*(void (**)(char *))((*(char **)(v + 0x58)) + 0xe4))(v); + p++; + } while (i >= 0); +} diff --git a/src/overlays/l00_multiplayer_menu/L00_0074AC98.c b/src/overlays/l00_multiplayer_menu/L00_0074AC98.c new file mode 100644 index 00000000..42fb7128 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_0074AC98.c @@ -0,0 +1,12 @@ +#include "common.h" + +extern s32 func_L00_0071AF88(void *, s32); +extern void func_L00_0070C3E0(void *, s32); +extern u8 D_004BEAB0[]; + +s32 func_L00_0074AC98(void *arg0, s32 arg1) +{ + *(void **)((u8 *)arg0 + 88) = D_004BEAB0; + func_L00_0070C3E0((u8 *)arg0 + 0x278, 2); + return func_L00_0071AF88(arg0, arg1); +} diff --git a/src/overlays/l00_multiplayer_menu/L00_007527A8.c b/src/overlays/l00_multiplayer_menu/L00_007527A8.c new file mode 100644 index 00000000..55f0a82c --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_007527A8.c @@ -0,0 +1,12 @@ +/* cflags: -O2 -G8 -Wuninitialized */ +#include "common.h" + +s32 func_L00_00751B78(); +s32 D_002213B8 = 0; +s32 D_002213BC = 0; + +void func_L00_007527A8(s32 arg0, s32 arg1) { + func_L00_00751B78(); + D_002213B8 = arg0; + D_002213BC = arg1; +} diff --git a/src/overlays/l00_multiplayer_menu/L00_0075B8F8.c b/src/overlays/l00_multiplayer_menu/L00_0075B8F8.c new file mode 100644 index 00000000..2a165578 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_0075B8F8.c @@ -0,0 +1,43 @@ +#include "common.h" + +extern u8 D_001723B0[]; +typedef struct { + u8 pad0[0x104]; + u8 ids[10]; + u8 pad10E[0x124 - 0x10E]; + f32 vals[10]; +} Board; +extern Board *D_0021DFE8; +extern u8 D_001725F0[]; +extern s32 func_0070C410(s32); +extern void func_0070CB48(void *, s32, void *); +extern s32 func_L00_0070C368(void *); +extern void func_L00_0070C3E0(void *, s32); +extern void func_L00_0070C528(void *, s32, s32); +extern s32 func_L00_0077B8A0(f32); + +void func_L00_0075B8F8(void) { + u8 buf[0x470]; + s32 sum; + s32 count; + s32 i; + s32 avg; + + if (D_001723B0[0] != 0 && D_0021DFE8 != NULL) { + sum = 0; + count = 0; + for (i = 0; i < 10; i++) { + if (D_0021DFE8->ids[i] != 0xFF) { + count++; + sum += func_L00_0077B8A0(D_0021DFE8->vals[i]); + } + } + if (count > 0) { + avg = (f32)sum / (f32)count; + func_L00_0070C368(buf); + func_L00_0070C528(buf, func_0070C410(4), avg); + func_0070CB48(buf, 4, D_001725F0); + func_L00_0070C3E0(buf, 2); + } + } +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00766EB8.c b/src/overlays/l00_multiplayer_menu/L00_00766EB8.c new file mode 100644 index 00000000..f60d5aeb --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00766EB8.c @@ -0,0 +1,72 @@ +#include "common.h" + +void func_0076C820(s32 object, u8 *arg1); +void func_0076C860(void *object, void *queue); +void func_0076C8D0(void *object, void *queue); +void func_0076C940(void *object, void *queue); +void func_0076C9B0(void *object, void *queue); +void func_0076CA20(void *object, void *queue); +void func_0076CA90(void *object, void *queue); + +void func_L00_00766EB8(void *object) { + (*(s32 *)((s8 *)(object) + (0x3D4))) = -1; + (*(s32 *)((s8 *)(object) + (0x3DC))) = -1; + (*(s32 *)((s8 *)(object) + (0x3E0))) = -1; + (*(s32 *)((s8 *)(object) + (0x40C))) = -1; + (*(s32 *)((s8 *)(object) + (0x414))) = -1; + (*(s32 *)((s8 *)(object) + (0x418))) = -1; + (*(s32 *)((s8 *)(object) + (0x444))) = -1; + (*(s32 *)((s8 *)(object) + (0x44C))) = -1; + (*(s32 *)((s8 *)(object) + (0x450))) = -1; + (*(s32 *)((s8 *)(object) + (0x47C))) = -1; + (*(s32 *)((s8 *)(object) + (0x484))) = -1; + (*(s8 *)((s8 *)(object) + (0x30))) = 0; + (*(s8 *)((s8 *)(object) + (0x58))) = 0; + (*(s8 *)((s8 *)(object) + (0x60))) = 0; + (*(s8 *)((s8 *)(object) + (0x68))) = 0; + (*(s8 *)((s8 *)(object) + (0x78))) = 0; + (*(s8 *)((s8 *)(object) + (0x80))) = 0; + (*(s8 *)((s8 *)(object) + (0x88))) = 0; + (*(s8 *)((s8 *)(object) + (0x90))) = 0; + (*(s8 *)((s8 *)(object) + (0x98))) = 0; + (*(s8 *)((s8 *)(object) + (0xA0))) = 0; + (*(s8 *)((s8 *)(object) + (0xA8))) = 0; + (*(s8 *)((s8 *)(object) + (0xB0))) = 0; + (*(s8 *)((s8 *)(object) + (0xB8))) = 0; + (*(s8 *)((s8 *)(object) + (0xC0))) = 0; + (*(s8 *)((s8 *)(object) + (0xC8))) = 0; + (*(s8 *)((s8 *)(object) + (0xF0))) = 0; + (*(s8 *)((s8 *)(object) + (0x23C))) = 0; + (*(s8 *)((s8 *)(object) + (0x3A8))) = 0; + (*(s8 *)((s8 *)(object) + (0x3D8))) = 0; + (*(s8 *)((s8 *)(object) + (0x410))) = 0; + (*(s8 *)((s8 *)(object) + (0x448))) = 0; + (*(s8 *)((s8 *)(object) + (0x480))) = 0; + (*(s32 *)((s8 *)(object) + (0x488))) = -1; + (*(s8 *)((s8 *)(object) + (0x4C0))) = 0; + (*(s8 *)((s8 *)(object) + (0x500))) = 0; + (*(s8 *)((s8 *)(object) + (0x538))) = 0; + (*(s32 *)((s8 *)(object) + (0x4BC))) = -1; + (*(s32 *)((s8 *)(object) + (0x4C4))) = -1; + (*(s32 *)((s8 *)(object) + (0x4C8))) = -1; + (*(s32 *)((s8 *)(object) + (0x4FC))) = -1; + (*(s32 *)((s8 *)(object) + (0x504))) = -1; + (*(s32 *)((s8 *)(object) + (0x508))) = -1; + (*(s32 *)((s8 *)(object) + (0x534))) = -1; + (*(s32 *)((s8 *)(object) + (0x53C))) = -1; + (*(s32 *)((s8 *)(object) + (0x540))) = -1; + (*(s32 *)((s8 *)(object) + (0))) = -1; + func_0076C820((*(s32 *)((s8 *)(object) + (0x400))), (u8 *)object + 0x3E8); + func_0076C860((*(void **)((s8 *)(object) + (0x438))), (u8 *)object + 0x420); + func_0076C860((*(void **)((s8 *)(object) + (0x438))), (u8 *)object + 0x42C); + func_0076C8D0((*(void **)((s8 *)(object) + (0x470))), (u8 *)object + 0x458); + func_0076C8D0((*(void **)((s8 *)(object) + (0x470))), (u8 *)object + 0x464); + func_0076C940((*(void **)((s8 *)(object) + (0x4A8))), (u8 *)object + 0x490); + func_0076C940((*(void **)((s8 *)(object) + (0x4A8))), (u8 *)object + 0x49C); + func_0076C9B0((*(void **)((s8 *)(object) + (0x4E8))), (u8 *)object + 0x4D0); + func_0076C9B0((*(void **)((s8 *)(object) + (0x4E8))), (u8 *)object + 0x4DC); + func_0076CA20((*(void **)((s8 *)(object) + (0x528))), (u8 *)object + 0x510); + func_0076CA20((*(void **)((s8 *)(object) + (0x528))), (u8 *)object + 0x51C); + func_0076CA90((*(void **)((s8 *)(object) + (0x560))), (u8 *)object + 0x548); + func_0076CA90((*(void **)((s8 *)(object) + (0x560))), (u8 *)object + 0x554); +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00770340.c b/src/overlays/l00_multiplayer_menu/L00_00770340.c new file mode 100644 index 00000000..ebe35923 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00770340.c @@ -0,0 +1,15 @@ +#include "common.h" + +void func_L00_00770D40(s32 object, u8 *arg1); + +void func_L00_00770340(void *object) { + (*(s32 *)((s8 *)(object) + (0x18))) = 0x2710; + (*(s8 *)((s8 *)(object) + (0))) = 0; + (*(s8 *)((s8 *)(object) + (0xC))) = 0; + (*(s8 *)((s8 *)(object) + (0x14))) = 0; + (*(s32 *)((s8 *)(object) + (0x1C))) = -1; + (*(s8 *)((s8 *)(object) + (0x20))) = 0; + (*(s32 *)((s8 *)(object) + (0x24))) = -1; + (*(s32 *)((s8 *)(object) + (0x28))) = -1; + func_L00_00770D40((*(s32 *)((s8 *)(object) + (0x48))), (u8 *)object + 0x30); +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00770DB0.c b/src/overlays/l00_multiplayer_menu/L00_00770DB0.c new file mode 100644 index 00000000..c45094f4 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00770DB0.c @@ -0,0 +1,13 @@ +#include "common.h" + +void func_L00_007719E0(s32 object, u8 *arg1); + +void func_L00_00770DB0(void *object) { + (*(s32 *)((s8 *)(object) + (4))) = -1; + (*(s8 *)((s8 *)(object) + (8))) = 0; + (*(s32 *)((s8 *)(object) + (0xC))) = -1; + (*(s32 *)((s8 *)(object) + (0x10))) = -1; + (*(s8 *)((s8 *)(object) + (0x1C))) = 0; + (*(s8 *)((s8 *)(object) + (0x24))) = 0; + func_L00_007719E0((*(s32 *)((s8 *)(object) + (0x48))), (u8 *)object + 0x30); +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00771A48.c b/src/overlays/l00_multiplayer_menu/L00_00771A48.c new file mode 100644 index 00000000..e7b415b8 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00771A48.c @@ -0,0 +1,12 @@ +#include "common.h" + +void func_L00_00772A60(s32 arg0, u8 *arg1); +void func_L00_00771A48(void *arg0) +{ + *((s32 *) (((s8 *) arg0) + 4)) = -1; + *((s8 *) (((s8 *) arg0) + 8)) = 0; + *((s8 *) (((s8 *) arg0) + 0x14)) = 0; + *((s32 *) (((s8 *) arg0) + 0xC)) = -1; + *((s32 *) (((s8 *) arg0) + 0x10)) = -1; + func_L00_00772A60(*((s32 *) (((s8 *) arg0) + 0x80)), arg0 + 0x68); +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00772B88.c b/src/overlays/l00_multiplayer_menu/L00_00772B88.c new file mode 100644 index 00000000..ecc85eb8 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00772B88.c @@ -0,0 +1,12 @@ +#include "common.h" + +void func_00773130(void *object, void *queue); + +void func_L00_00772B88(void *object) { + (*(s8 *)((s8 *)(object) + (0))) = 0; + (*(s32 *)((s8 *)(object) + (4))) = -1; + (*(s32 *)((s8 *)(object) + (8))) = -1; + (*(s8 *)((s8 *)(object) + (0xC))) = 0; + (*(s8 *)((s8 *)(object) + (0xD))) = 0; + func_00773130((*(void **)((s8 *)(object) + (0x20))), (u8 *)object + 0x14); +} diff --git a/src/overlays/l00_multiplayer_menu/L00_00777150.c b/src/overlays/l00_multiplayer_menu/L00_00777150.c new file mode 100644 index 00000000..9ac78af2 --- /dev/null +++ b/src/overlays/l00_multiplayer_menu/L00_00777150.c @@ -0,0 +1,27 @@ +#include "common.h" + +void func_00779128(s32 object, u8 *arg1); +void func_007791D8(s32 object, u8 *arg1); +void func_L00_00777150(void *object) +{ + *((s8 *) (((s8 *) object) + 4)) = 0; + *((s8 *) (((s8 *) object) + 0xC0)) = 0; + *((s8 *) (((s8 *) object) + 0xE4)) = 0; + *((s8 *) (((s8 *) object) + 0xEC)) = 0; + *((s8 *) (((s8 *) object) + 0xF4)) = 0; + *((s8 *) (((s8 *) object) + 0x15D)) = 0; + *((s8 *) (((s8 *) object) + 0x168)) = 0; + *((s8 *) (((s8 *) object) + 0x199)) = 0; + *((s8 *) (((s8 *) object) + 0x1A4)) = 0; + *((s32 *) (((s8 *) object) + 0)) = -1; + *((s32 *) (((s8 *) object) + 0x160)) = -1; + *((s32 *) (((s8 *) object) + 0x164)) = -1; + *((s32 *) (((s8 *) object) + 0x16C)) = 0x2710; + *((s32 *) (((s8 *) object) + 0x1A8)) = 0x2710; + *((s32 *) (((s8 *) object) + 0x170)) = -1; + *((s32 *) (((s8 *) object) + 0x19C)) = -1; + *((s32 *) (((s8 *) object) + 0x1A0)) = -1; + *((s32 *) (((s8 *) object) + 0x1AC)) = -1; + func_00779128(*((s32 *) (((s8 *) object) + 0x190)), (u8 *)object + 0x178); + func_007791D8(*((s32 *) (((s8 *) object) + 0x1CC)), (u8 *)object + 0x1B4); +} diff --git a/src/overlays/l01_dreadzone_station/L01_004B8F68.c b/src/overlays/l01_dreadzone_station/L01_004B8F68.c new file mode 100644 index 00000000..87bc181f --- /dev/null +++ b/src/overlays/l01_dreadzone_station/L01_004B8F68.c @@ -0,0 +1,21 @@ +/* cflags: -O2 -G8 -Wuninitialized */ +#include "common.h" + +extern s64 func_L01_004B8360(void *object); + +u32 func_L01_004B8F68(void *object) +{ + u32 value; + u32 result; + u8 disabled; + + value = (u32)*(u8 **)((u8 *)object + 0xAC); + disabled = ((u8 *)value)[0x458]; + result = 0; + if (disabled == 0) { + value = func_L01_004B8360(object) != 0; + result = value; + } + value = result; + return value; +} diff --git a/src/overlays/l05_dark_cathedral/L05_0050A5F8.c b/src/overlays/l05_dark_cathedral/L05_0050A5F8.c new file mode 100644 index 00000000..419a797d --- /dev/null +++ b/src/overlays/l05_dark_cathedral/L05_0050A5F8.c @@ -0,0 +1,68 @@ +#include "common.h" + +typedef struct { + u8 pad0[0x70]; + s32 x70; + s32 x74; + u8 pad78[0xC]; + s16 n; + u8 pad86[0x16A]; + u8 *mobys[1]; +} Arena; + +extern Arena D_0023C540; +extern u8 *D_00363038[]; +extern s32 D_0021DE10; +extern void func_L00_00596A28(s32, s32, s32, s32); +extern void func_L00_00598118(s32); +extern void func_L02_004E3248(void); + +void func_L05_0050A5F8(void) { + u8 *moby; + u8 *m; + u8 *q; + s32 i; + s32 j; + s32 id; + + for (i = 0; i < D_0023C540.n; i++) { + moby = D_0023C540.mobys[i]; + if (moby != NULL) { + id = *(s16 *)(moby + 0xBC); + if (id == 0x216A || id == 0x2691 || (id == 0x2429 && D_0021DE10 == 0x2574) || id == 0x20FD || id == 0x2703 || id == 0x2505) { + func_L00_00596A28(i, 0x96, 0, 0); + } + if (*(s16 *)(moby + 0xBC) == 0x216A || *(s16 *)(moby + 0xBC) == 0x2691) { + *(u16 *)(D_0023C540.mobys[i] + 0x74) |= 0x1000; + } + if (*(s16 *)(moby + 0xBC) == 0xA) { + m = D_0023C540.mobys[i]; + if (D_0023C540.x70 == 2) { + *(u16 *)(m + 0x74) |= 0x1000; + } else { + *(u16 *)(m + 0x74) |= 0x1002; + } + func_L00_00596A28(i, 0x6E, 0x80306629, 0x8058B856); + } + if (*(s16 *)(moby + 0xBC) == 0x243D) { + func_L00_00596A28(i, 0x168, 0xC0808080, 0x80505050); + } + if (*(s16 *)(moby + 0xBC) == 0x247F || *(s16 *)(moby + 0xBC) == 0x24D9 || *(s16 *)(moby + 0xBC) == 0x24D5) { + func_L00_00596A28(i, 0x5A, 0xFFC0C0C0, 0xB0505050); + } + } + } + func_L02_004E3248(); + if (D_0023C540.x70 == 0x2 && D_0023C540.x74 < 0xA0) { + func_L00_00598118(0); + } + if (D_0023C540.x70 == 0x3 && D_0023C540.x74 >= 0x65) { + func_L00_00598118(0); + } + func_L00_00598118(0); + for (j = 0, q = D_00363038[0]; j < 10; q = D_00363038[++j]) { + if (q != NULL) { + (*(u8 **)(q + 0x2EF0))[0x31] = 0; + } + } +} diff --git a/src/overlays/l13_maraxus_prison/L13_0046D2E8.c b/src/overlays/l13_maraxus_prison/L13_0046D2E8.c new file mode 100644 index 00000000..877f2971 --- /dev/null +++ b/src/overlays/l13_maraxus_prison/L13_0046D2E8.c @@ -0,0 +1,63 @@ +/* cflags: -G0 -Wuninitialized */ +#include "common.h" +typedef s32 M2C_UNK; typedef s8 M2C_UNK8; typedef s16 M2C_UNK16; +typedef s32 M2C_UNK32; typedef s64 M2C_UNK64; +typedef int solver_s128 __attribute__((mode(TI))); +typedef unsigned int solver_u128 __attribute__((mode(TI))); +typedef solver_s128 s128; typedef solver_u128 u128; +#define M2C_FIELD(base, kind, offset) (*(kind)((u8 *)(base) + (offset))) +#define M2C_R5900_PAND(a,b) __builtin_pand((u128)(a),(u128)(b)) +#define M2C_R5900_POR(a,b) __builtin_por((u128)(a),(u128)(b)) +#define M2C_R5900_PCPYLD(a,b) __builtin_pcpyld((u128)(a),(u128)(b)) +#define M2C_R5900_PEXTLW(a,b) __builtin_pextlw((u128)(a),(u128)(b)) +#define M2C_R5900_PEXTUW(a,b) __builtin_pextuw((u128)(a),(u128)(b)) +#define M2C_R5900_PROT3W(a) __builtin_prot3w((u128)(a)) + +s32 func_0047BA40(s128, s32); +s32 func_00556D90(s32, M2C_UNK, M2C_UNK); +M2C_UNK func_0046D3E8(void *); +M2C_UNK func_L13_0046D408(void *); +M2C_UNK func_L13_0046D498(void *); +extern void *D_00362E38[]; + +void func_L13_0046D2E8(void *arg0) { + s32 temp_4; + s32 temp_5; + s32 var_17; + u8 temp_3; + void **var_16; + void *temp_19; + void *var_3; + + temp_3 = M2C_FIELD(arg0, u8 *, 0x20); + temp_19 = M2C_FIELD(arg0, void **, 0xAC); + switch (temp_3) { + case 0: + func_0046D3E8(arg0); + return; + case 1: + var_17 = 9; + var_3 = D_00362E38[0]; + var_16 = D_00362E38; + do { + if (var_3 != NULL) { + temp_5 = M2C_FIELD(temp_19, s32 *, 0x18); + if ((temp_5 >= 0) && (func_0047BA40(M2C_FIELD(var_3, s128 *, 0xA0), temp_5) != 0)) { + func_L13_0046D408(arg0); + } + } + var_16 = (void **)((unsigned char *)(var_16) + (4)); + var_17 = var_17 - 1; + var_3 = *var_16; + } while (var_17 >= 0); + break; + case 2: + temp_4 = M2C_FIELD(temp_19, s32 *, 0x1C); + if (temp_4 >= 0) { + if (func_00556D90(temp_4, -1, 0) == 0) { + func_L13_0046D498(arg0); + } + } + break; + } +} diff --git a/src/overlays/l15_control_level/L15_004D6FD0.c b/src/overlays/l15_control_level/L15_004D6FD0.c new file mode 100644 index 00000000..0cb02f00 --- /dev/null +++ b/src/overlays/l15_control_level/L15_004D6FD0.c @@ -0,0 +1,96 @@ +/* cflags: -Wuninitialized -Wa,-G0 */ +#include "common.h" +typedef s32 M2C_UNK; typedef s8 M2C_UNK8; typedef s16 M2C_UNK16; +typedef s32 M2C_UNK32; typedef s64 M2C_UNK64; +typedef long long s128; typedef unsigned long long u128; +#define M2C_FIELD(base, kind, offset) (*(kind)((u8 *)(base) + (offset))) +#define M2C_R5900_PAND(a,b) __builtin_pand((u128)(a),(u128)(b)) +#define M2C_R5900_POR(a,b) __builtin_por((u128)(a),(u128)(b)) +#define M2C_R5900_PCPYLD(a,b) __builtin_pcpyld((u128)(a),(u128)(b)) +#define M2C_R5900_PEXTLW(a,b) __builtin_pextlw((u128)(a),(u128)(b)) +#define M2C_R5900_PEXTUW(a,b) __builtin_pextuw((u128)(a),(u128)(b)) +#define M2C_R5900_PROT3W(a) __builtin_prot3w((u128)(a)) + +int func_00472590(int, int); +void func_L01_0044AA78(void *, int, float); +extern int D_00222694; +int D_002226E0 = 0; +extern s16 *D_00288B20[]; +void func_L15_004D6FD0(void *arg0, s32 arg1, s32 arg2) { + s32 temp_3; + s32 temp_4; + s16 *var_16; + u32 object; + s32 var_3; + void *temp_17; + temp_17 = *((void **) (((u8 *) arg0) + 0xAC)); + temp_3 = *((s32 *) (((u8 *) temp_17) + 0x1E4)); + if (arg1 != 0) + { + goto block_3; + } + if (temp_3 != 0) + { + goto block_4; + } + return; + block_3: + if (temp_3 == 3) + { + goto block_21; + } + + block_4: + *((s32 *) (((u8 *) temp_17) + 0x1EC)) = 0; + + if (arg2 == 0) + { + goto block_6; + } + var_3 = 4; + goto block_7; + block_6: + var_3 = func_00472590(1, 3); + + block_7: + *((s32 *) (((u8 *) temp_17) + 0x1E8)) = var_3; + + *((s32 *) (((u8 *) temp_17) + 0x1E4)) = (s32) ((arg1 == 0) ? (0) : (3)); + if (arg2 == 0) + { + goto block_21; + } + var_16 = D_00288B20[*((s32 *) (((u8 *) temp_17) + 0x1D4))]; + for (;;) + { + temp_4 = *((s32 *) (((u8 *) temp_17) + 0x1D4)); + if ((temp_4 & 0xFF) == 0xFF) + { + break; + } + if (D_002226E0 < temp_4) + { + break; + } + if (var_16 == 0) + { + break; + } + if ((var_16[-1] < 0) && (var_16 != D_00288B20[temp_4])) + { + break; + } + object = ((u32) D_00222694) + ((((u32) (*((u16 *) var_16))) & 0x7FFF) << 8); + if (object == 0) + { + break; + } + var_16++; + func_L01_0044AA78((void *) object, *((s32 *) (((u8 *) temp_17) + 0x1E4)), 500.5f); + } + + *((s32 *) (((u8 *) temp_17) + 0x1E8)) = 0; + block_21: + return; + +} diff --git a/src/overlays/shared/L00_00599710.c b/src/overlays/shared/L00_00599710.c new file mode 100644 index 00000000..b8221d44 --- /dev/null +++ b/src/overlays/shared/L00_00599710.c @@ -0,0 +1,62 @@ +/* cflags: -O2 -G8 -Wuninitialized */ +#include "common.h" +extern s32 func_00596A28(s32, s32, u32, u32); +extern s32 func_00598118(s32); +extern s32 D_0021DE10; +struct Type1 { + u8 f0[0x70]; + s32 f70; + u8 f74[0x10]; + s16 f84; +}; +extern struct Type1 D_0023BE00[]; +extern u8 *D_00343E78[]; +#define ID(p) (*(s16 *)((p) + 0xbc)) +#define FLAGS(p) (*(u16 *)((p) + 0x74)) + +void func_L00_00599710(void) { + s32 i; + + u8 *m; + i = 0; + if (D_0023BE00[0].f84 > 0) { + + do { + m = ((u8 **)((u8 *)D_0023BE00 + 0x1f0))[i]; + if (m) { + if (ID(m) == 0x216a || ID(m) == 0x2691 || + (ID(m) == 0x2429 && D_0021DE10 == 0x2574) || ID(m) == 0x20fd || + ID(m) == 0x2703 || ID(m) == 0x2505) + func_00596A28(i, 0x96, 0, 0); + if (ID(m) == 0x216a || ID(m) == 0x2691) + FLAGS(((u8 **)((u8 *)D_0023BE00 + 0x1f0))[i]) |= 0x1000; + if (ID(m) == 10) { + u8 *p = ((u8 **)((u8 *)D_0023BE00 + 0x1f0))[i]; + if (D_0023BE00[0].f70 == 2) + FLAGS(p) |= 0x1000; + else + FLAGS(p) |= 0x1002; + func_00596A28(i, 0x6E, 0x80306629, 0x8058b856); + } + if (ID(m) == 0x243d) + func_00596A28(i, 0x168, 0xc0808080, 0x80505050); + if (ID(m) == 0x247f || ID(m) == 0x24d9 || ID(m) == 0x24d5) + func_00596A28(i, 0x5A, 0xffc0c0c0, 0xb0505050); + } + i++; + } while (i < D_0023BE00[0].f84); + } + func_00598118(0); + { + u8 **p = D_00343E78; + s32 n = 9; + u8 *v = *p; + do { + p++; + n--; + if (v) + (*(u8 **)(v + 0x2ef0))[0x31] = 0; + v = *p; + } while (n >= 0); + } +} diff --git a/src/overlays/shared/L00_006027E8.c b/src/overlays/shared/L00_006027E8.c new file mode 100644 index 00000000..644e6551 --- /dev/null +++ b/src/overlays/shared/L00_006027E8.c @@ -0,0 +1,26 @@ +#include "common.h" +extern u8 *D_00222550; +extern void func_00453718(void *, const void *, u32); +extern void *func_0048B818(u32, u8 **, const u8 *); +static inline s32 count(void) +{ + return *(s32 *)(D_00222550 + 0x301C); +} +static inline u8 *values(void) +{ + return (u8 *)*(u32 *)(D_00222550 + 0x3020); +} +s32 func_L00_006027E8(const u8 *input, u8 **cursor, const u8 *end) +{ + s32 i; + func_00453718(D_00222550 + 0x301C, input, 4); + input += 4; + *(u32 *)(D_00222550 + 0x3020) = (u32)func_0048B818((u32)count() << 3, cursor, end); + if (!values()) + return 1; + for (i = 0; i < count(); i++) { + func_00453718(values() + ((u32)i << 3), input, 8); + input += 8; + } + return 0; +} diff --git a/src/overlays/shared/L00_006028D0.c b/src/overlays/shared/L00_006028D0.c new file mode 100644 index 00000000..23541d14 --- /dev/null +++ b/src/overlays/shared/L00_006028D0.c @@ -0,0 +1,26 @@ +#include "common.h" +extern u8 *D_00222550; +extern void func_00453718(void *, const void *, u32); +extern void *func_0048B818(u32, u8 **, const u8 *); +static inline s32 count(void) +{ + return *(s32 *)(D_00222550 + 0x3024); +} +static inline u8 *values(void) +{ + return (u8 *)*(u32 *)(D_00222550 + 0x3028); +} +s32 func_L00_006028D0(const u8 *input, u8 **cursor, const u8 *end) +{ + s32 i; + func_00453718(D_00222550 + 0x3024, input, 4); + input += 4; + *(u32 *)(D_00222550 + 0x3028) = (u32)func_0048B818((u32)count() << 3, cursor, end); + if (!values()) + return 1; + for (i = 0; i < count(); i++) { + func_00453718(values() + ((u32)i << 3), input, 8); + input += 8; + } + return 0; +} diff --git a/src/overlays/shared/L00_00602AA0.c b/src/overlays/shared/L00_00602AA0.c new file mode 100644 index 00000000..5ad2205c --- /dev/null +++ b/src/overlays/shared/L00_00602AA0.c @@ -0,0 +1,26 @@ +#include "common.h" +extern u8 *D_002215D8; +extern void func_00453F30(void *, const void *, u32); +extern void *func_0048C2D0(u32, u8 **, const u8 *); +static inline s32 count(void) +{ + return *(s32 *)(D_002215D8 + 0x3044); +} +static inline u8 *values(void) +{ + return (u8 *)*(u32 *)(D_002215D8 + 0x3048); +} +s32 func_L00_00602AA0(const u8 *input, u8 **cursor, const u8 *end) +{ + s32 i; + func_00453F30(D_002215D8 + 0x3044, input, 4); + input += 4; + *(u32 *)(D_002215D8 + 0x3048) = (u32)func_0048C2D0((u32)count() << 3, cursor, end); + if (!values()) + return 1; + for (i = 0; i < count(); i++) { + func_00453F30(values() + ((u32)i << 3), input, 8); + input += 8; + } + return 0; +} diff --git a/src/overlays/shared/L00_00602B88.c b/src/overlays/shared/L00_00602B88.c new file mode 100644 index 00000000..57336c3b --- /dev/null +++ b/src/overlays/shared/L00_00602B88.c @@ -0,0 +1,23 @@ +#include "common.h" +extern u8 *D_00222550; +extern void func_00453718(void *, const void *, u32); +extern void *func_0048B818(u32, u8 **, const u8 *); +static inline u32 *values(void) +{ + return (u32 *)*(u32 *)(D_00222550 + 0x3004); +} +s32 func_L00_00602B88(const u8 *input, u8 **cursor, const u8 *end) +{ + s32 count; + s32 i; + func_00453718(&count, input, 4); + input += 4; + *(u32 *)(D_00222550 + 0x3004) = (u32)func_0048B818((u32)count << 2, cursor, end); + if (!values()) + return 1; + for (i = 0; i < count; i++) { + func_00453718(values() + i, input, 4); + input += 4; + } + return 0; +} diff --git a/src/overlays/shared/L00_00602C58.c b/src/overlays/shared/L00_00602C58.c new file mode 100644 index 00000000..ad8477d4 --- /dev/null +++ b/src/overlays/shared/L00_00602C58.c @@ -0,0 +1,23 @@ +#include "common.h" +extern u8 *D_00222550; +extern void func_00453718(void *, const void *, u32); +extern void *func_0048B818(u32, u8 **, const u8 *); +static inline u32 *values(void) +{ + return (u32 *)*(u32 *)(D_00222550 + 0x3008); +} +s32 func_L00_00602C58(const u8 *input, u8 **cursor, const u8 *end) +{ + s32 count; + s32 i; + func_00453718(&count, input, 4); + input += 4; + *(u32 *)(D_00222550 + 0x3008) = (u32)func_0048B818((u32)count << 2, cursor, end); + if (!values()) + return 1; + for (i = 0; i < count; i++) { + func_00453718(values() + i, input, 4); + input += 4; + } + return 0; +} diff --git a/src/overlays/shared/L00_00602D28.c b/src/overlays/shared/L00_00602D28.c new file mode 100644 index 00000000..04165f99 --- /dev/null +++ b/src/overlays/shared/L00_00602D28.c @@ -0,0 +1,26 @@ +#include "common.h" +extern u8 *D_00222550; +extern void func_005BCBF0(void *, const void *, u32); +extern void *func_006025B0(u32, u8 **, const u8 *); +static inline s32 count(void) +{ + return *(s32 *)(D_00222550 + 0x305C); +} +static inline u8 *values(void) +{ + return (u8 *)*(u32 *)(D_00222550 + 0x3060); +} +s32 func_L00_00602D28(const u8 *input, u8 **cursor, const u8 *end) +{ + s32 i; + func_005BCBF0(D_00222550 + 0x305C, input, 4); + input += 4; + *(u32 *)(D_00222550 + 0x3060) = (u32)func_006025B0((u32)count() * 4u, cursor, end); + if (!values()) + return 1; + for (i = 0; i < count(); i++) { + func_005BCBF0(values() + ((u32)i * 4u), input, 4); + input += 4; + } + return 0; +} diff --git a/src/overlays/shared/L00_00602E10.c b/src/overlays/shared/L00_00602E10.c new file mode 100644 index 00000000..0aa61ada --- /dev/null +++ b/src/overlays/shared/L00_00602E10.c @@ -0,0 +1,26 @@ +#include "common.h" +extern u8 *D_002215D8; +extern void func_00453F30(void *, const void *, u32); +extern void *func_0048C2D0(u32, u8 **, const u8 *); +static inline s32 count(void) +{ + return *(s32 *)(D_002215D8 + 0x3064); +} +static inline u8 *values(void) +{ + return (u8 *)*(u32 *)(D_002215D8 + 0x3068); +} +s32 func_L00_00602E10(const u8 *input, u8 **cursor, const u8 *end) +{ + s32 i; + func_00453F30(D_002215D8 + 0x3064, input, 4); + input += 4; + *(u32 *)(D_002215D8 + 0x3068) = (u32)func_0048C2D0((u32)count() * 4u, cursor, end); + if (!values()) + return 1; + for (i = 0; i < count(); i++) { + func_00453F30(values() + ((u32)i * 4u), input, 4); + input += 4; + } + return 0; +} diff --git a/src/overlays/shared/L00_00602EF8.c b/src/overlays/shared/L00_00602EF8.c new file mode 100644 index 00000000..a60af543 --- /dev/null +++ b/src/overlays/shared/L00_00602EF8.c @@ -0,0 +1,26 @@ +#include "common.h" +extern u8 *D_00222550; +extern void func_00453718(void *, const void *, u32); +extern void *func_0048B818(u32, u8 **, const u8 *); +static inline s32 count(void) +{ + return *(s32 *)(D_00222550 + 0x306C); +} +static inline u8 *values(void) +{ + return (u8 *)*(u32 *)(D_00222550 + 0x3070); +} +s32 func_L00_00602EF8(const u8 *input, u8 **cursor, const u8 *end) +{ + s32 i; + func_00453718(D_00222550 + 0x306C, input, 4); + input += 4; + *(u32 *)(D_00222550 + 0x3070) = (u32)func_0048B818((u32)count() * 4u, cursor, end); + if (!values()) + return 1; + for (i = 0; i < count(); i++) { + func_00453718(values() + ((u32)i * 4u), input, 4); + input += 4; + } + return 0; +} diff --git a/src/overlays/shared/L00_00602FE0.c b/src/overlays/shared/L00_00602FE0.c new file mode 100644 index 00000000..f0575330 --- /dev/null +++ b/src/overlays/shared/L00_00602FE0.c @@ -0,0 +1,26 @@ +#include "common.h" +extern u8 *D_00222550; +extern void func_00453718(void *, const void *, u32); +extern void *func_0048B818(u32, u8 **, const u8 *); +static inline s32 count(void) +{ + return *(s32 *)(D_00222550 + 0x3074); +} +static inline u8 *values(void) +{ + return (u8 *)*(u32 *)(D_00222550 + 0x3078); +} +s32 func_L00_00602FE0(const u8 *input, u8 **cursor, const u8 *end) +{ + s32 i; + func_00453718(D_00222550 + 0x3074, input, 4); + input += 4; + *(u32 *)(D_00222550 + 0x3078) = (u32)func_0048B818((u32)count() * 4u, cursor, end); + if (!values()) + return 1; + for (i = 0; i < count(); i++) { + func_00453718(values() + ((u32)i * 4u), input, 4); + input += 4; + } + return 0; +} diff --git a/src/overlays/shared/L00_006282F0.c b/src/overlays/shared/L00_006282F0.c new file mode 100644 index 00000000..b3c2c0e7 --- /dev/null +++ b/src/overlays/shared/L00_006282F0.c @@ -0,0 +1,79 @@ +#include "common.h" + +typedef struct Allocator Allocator; +typedef struct Object Object; +typedef struct { + u32 unknown0[2]; + void *(*allocate)(Allocator *, s32); + void (*release)(Allocator *, void *); +} AllocatorVtable; +struct Allocator { + AllocatorVtable *vtable; +}; +typedef struct Manager { + void *unknown0; + u8 *table; +} Manager; +typedef struct { + u32 unknown0[2]; + void (*destroy)(Object *, s32); +} ObjectVtable; +struct Object { + u32 unknown0[2]; + ObjectVtable *vtable; + + u8 unknownC[0x50]; +}; + +extern Manager D_00223148[]; +extern Manager *func_005010E0(void); +extern Allocator *func_005011A8(Manager *, s32); +extern void func_L00_0069BEC8(s32); +extern s32 func_L00_0069BED0(void); +extern s32 func_004FF910(void *, u32); +extern void *func_0015DB80(u32, void *); +extern Object *func_0050EB00(void *); +extern s32 func_005005A8(void *, Object *, u32); + +static inline Manager *get_manager(void) +{ + Manager *manager = D_00223148; + if (manager->table) { + return manager; + } + return func_005010E0(); +} + +s32 func_L00_006282F0(u32 key) +{ + s32 result = 0; + Manager *manager; + Allocator *allocator; + u8 *state; + void *entry; + s32 size; + void *block; + Object *object; + + manager = get_manager(); + state = (u8 *)manager->table; + entry = state != NULL + ? *(void **)((u32)state + ((u32) * (s32 *)(state + 0x14) << 2)) + : NULL; + func_L00_0069BEC8(0x50); + size = func_L00_0069BED0(); + if (entry != NULL && func_004FF910(entry, key) == 0) { + allocator = func_005011A8(get_manager(), 1); + block = allocator->vtable->allocate(allocator, size); + if (block != NULL) { + object = func_0050EB00(func_0015DB80(0x50, block)); + result = func_005005A8(entry, object, key) != 0; + if (!result) { + object->vtable->destroy(object, 2); + allocator = func_005011A8(get_manager(), 1); + allocator->vtable->release(allocator, block); + } + } + } + return result; +} diff --git a/src/overlays/shared/L00_00644D18.c b/src/overlays/shared/L00_00644D18.c new file mode 100644 index 00000000..45ff81f5 --- /dev/null +++ b/src/overlays/shared/L00_00644D18.c @@ -0,0 +1,40 @@ +#include "common.h" + +typedef struct State { + u32 unknown; + s32 group; +} State; + +extern s32 func_006294E0(s32 *group, s32 id); +extern s32 func_0069D5D8(s32 handle, u32 resource); +extern s32 func_0069D028(s32 handle, s32 visible); + +void func_L00_00644D18(State *state, s32 enabled, s32 count) +{ + func_0069D5D8(func_006294E0(&state->group, 8), 0x7546); + func_0069D5D8(func_006294E0(&state->group, 7), 0x7546); + func_0069D5D8(func_006294E0(&state->group, 6), 0x7546); + func_0069D5D8(func_006294E0(&state->group, 5), 0x7546); + func_0069D5D8(func_006294E0(&state->group, 4), 0x7546); + + func_0069D028(func_006294E0(&state->group, 8), 0); + func_0069D028(func_006294E0(&state->group, 7), 0); + func_0069D028(func_006294E0(&state->group, 6), 0); + func_0069D028(func_006294E0(&state->group, 5), 0); + func_0069D028(func_006294E0(&state->group, 4), 0); + + if (enabled) { + switch (count) { + case 5: + func_0069D028(func_006294E0(&state->group, 4), 1); + case 4: + func_0069D028(func_006294E0(&state->group, 5), 1); + case 3: + func_0069D028(func_006294E0(&state->group, 6), 1); + case 2: + func_0069D028(func_006294E0(&state->group, 7), 1); + case 1: + func_0069D028(func_006294E0(&state->group, 8), 1); + } + } +} diff --git a/src/overlays/shared/L00_0064DC68.c b/src/overlays/shared/L00_0064DC68.c new file mode 100644 index 00000000..36715b4e --- /dev/null +++ b/src/overlays/shared/L00_0064DC68.c @@ -0,0 +1,40 @@ +#include "common.h" + +typedef struct State { + u32 unknown; + s32 group; +} State; + +extern s32 func_004A1A60(s32 *group, s32 id); +extern s32 func_L00_0069D5D8(s32 handle, u32 resource); +extern s32 func_00504F68(s32 handle, s32 visible); + +void func_L00_0064DC68(State *state, s32 enabled, s32 count) +{ + func_L00_0069D5D8(func_004A1A60(&state->group, 8), 0x7546); + func_L00_0069D5D8(func_004A1A60(&state->group, 7), 0x7546); + func_L00_0069D5D8(func_004A1A60(&state->group, 6), 0x7546); + func_L00_0069D5D8(func_004A1A60(&state->group, 5), 0x7546); + func_L00_0069D5D8(func_004A1A60(&state->group, 4), 0x7546); + + func_00504F68(func_004A1A60(&state->group, 8), 0); + func_00504F68(func_004A1A60(&state->group, 7), 0); + func_00504F68(func_004A1A60(&state->group, 6), 0); + func_00504F68(func_004A1A60(&state->group, 5), 0); + func_00504F68(func_004A1A60(&state->group, 4), 0); + + if (enabled) { + switch (count) { + case 5: + func_00504F68(func_004A1A60(&state->group, 4), 1); + case 4: + func_00504F68(func_004A1A60(&state->group, 5), 1); + case 3: + func_00504F68(func_004A1A60(&state->group, 6), 1); + case 2: + func_00504F68(func_004A1A60(&state->group, 7), 1); + case 1: + func_00504F68(func_004A1A60(&state->group, 8), 1); + } + } +} diff --git a/src/overlays/shared/L00_00666CE8.c b/src/overlays/shared/L00_00666CE8.c new file mode 100644 index 00000000..ae444097 --- /dev/null +++ b/src/overlays/shared/L00_00666CE8.c @@ -0,0 +1,34 @@ +#include "common.h" + +extern s32 func_L00_006688C8(s32); +extern void func_L00_00679408(void); +extern s32 *D_00222D68; +extern s32 D_00222D70; +extern s32 *D_00222EE0; +extern s32 D_0021DA30; + +void func_L00_00666CE8(void) { + s32 *t; + s32 n; + + t = D_00222EE0; + D_00222EE0 = t + 4; + D_00222D68[0] = 0x20000000; + D_00222D68[1] = (s32)D_00222EE0; + D_00222D68[2] = 0; + D_00222D68[3] = 0; + n = func_L00_006688C8(D_0021DA30); + func_L00_00679408(); + if (D_00222D70 < n) { + D_00222D70 = n; + } + D_00222EE0[0] = 0x20000000; + D_00222EE0[1] = (s32)(D_00222D68 + 4); + D_00222EE0[2] = 0; + D_00222EE0[3] = 0; + D_00222EE0 += 4; + t[0] = 0x20000000; + t[1] = (s32)D_00222EE0; + t[2] = 0; + t[3] = 0; +} diff --git a/src/overlays/shared/L00_0069C6A8.c b/src/overlays/shared/L00_0069C6A8.c new file mode 100644 index 00000000..d6c4f60c --- /dev/null +++ b/src/overlays/shared/L00_0069C6A8.c @@ -0,0 +1,52 @@ +#include "common.h" +typedef struct Object Object; +typedef struct Vtable { + void *unused[3]; + u32 (*type)(Object *); + void *f10; + s32 (*supports)(Object *, u32); +} Vtable; +struct Object { + s32 f0, f4; + Vtable *vtable; +}; +typedef struct { + s32 f0; + void *context; +} Manager; +extern Manager D_00223148[]; +extern Manager *func_005010E0(void); +extern Object *func_005005E8(void *, s32); +extern u32 D_00220B50; +static inline Object *resolve(s32 handle) +{ + Manager *m; + Object *obj; + void *world; + if (D_00223148[0].context) + m = D_00223148; + else + m = func_005010E0(); + world = 0; + if (m->context) + world = *(void **)((u32)m->context + ((u32) * (s32 *)((char *)m->context + 0x14) << 2)); + obj = func_005005E8(world, handle); + if (obj && obj->vtable->supports(obj, D_00220B50)) + return obj; + return 0; +} +typedef s32 (*Callback)(Object *, f32, f32); +extern char D_00343E38[]; +extern Callback func_L00_0069FF70(void *, u32); +s32 func_L00_0069C6A8(s32 handle, f32 a, f32 b) +{ + s32 result = 0; + Object *obj = resolve(handle); + if (obj) { + u32 type = obj->vtable->type(obj); + Callback callback = func_L00_0069FF70(D_00343E38, type); + if (callback) + result = callback(obj, a, b); + } + return result; +} diff --git a/src/overlays/shared/L00_0069C890.c b/src/overlays/shared/L00_0069C890.c new file mode 100644 index 00000000..9888707b --- /dev/null +++ b/src/overlays/shared/L00_0069C890.c @@ -0,0 +1,52 @@ +#include "common.h" +typedef struct Object Object; +typedef struct Vtable { + void *unused[3]; + u32 (*type)(Object *); + void *f10; + s32 (*supports)(Object *, u32); +} Vtable; +struct Object { + s32 f0, f4; + Vtable *vtable; +}; +typedef struct { + s32 f0; + void *context; +} Manager; +extern Manager D_00222138[]; +extern Manager *func_00502150(void); +extern Object *func_00501658(void *, s32); +extern u32 D_00220B50; +static inline Object *resolve(s32 handle) +{ + Manager *m; + Object *obj; + void *world; + if (D_00222138[0].context) + m = D_00222138; + else + m = func_00502150(); + world = 0; + if (m->context) + world = *(void **)((u32)m->context + ((u32) * (s32 *)((char *)m->context + 0x14) << 2)); + obj = func_00501658(world, handle); + if (obj && obj->vtable->supports(obj, D_00220B50)) + return obj; + return 0; +} +typedef s32 (*Callback)(Object *, f32, f32); +extern char D_00335F60[]; +extern Callback func_00508A38(void *, u32); +s32 func_L00_0069C890(s32 handle, f32 a, f32 b) +{ + s32 result = 0; + Object *obj = resolve(handle); + if (obj) { + u32 type = obj->vtable->type(obj); + Callback callback = func_00508A38(D_00335F60, type); + if (callback) + result = callback(obj, a, b); + } + return result; +} diff --git a/src/overlays/shared/L00_0069D7A8.c b/src/overlays/shared/L00_0069D7A8.c new file mode 100644 index 00000000..165fbc75 --- /dev/null +++ b/src/overlays/shared/L00_0069D7A8.c @@ -0,0 +1,61 @@ +#include "common.h" +typedef struct Object Object; +typedef struct { + char pad[0xC]; + u32 (*getType)(Object *); + s32 pad10; + s32 (*isType)(Object *, u32); +} VTable; +struct Object { + char pad[8]; + VTable *vtable; +}; + +typedef struct { + s32 pad; + char *table; +} Manager; +extern Manager D_00223148[]; +extern u32 D_00220B50; +extern Manager *func_005010E0(void); +extern Object *func_005005E8(void *, u32); +typedef s32 (*Callback)(Object *, s32, s32, s32, s32); +extern Callback func_L00_006A04E0(void *, u32); +static inline Manager *getManager(void) +{ + Manager *p = D_00223148; + if (p->table) + return p; + return func_005010E0(); +} +static inline Object *valid(Object *p) +{ + if (p && p->vtable->isType(p, D_00220B50)) + return p; + return 0; +} +static inline Object *getTyped(u32 id) +{ + Manager *m = getManager(); + char *state = m->table; + void *table = 0; + if (state) + table = *(void **)(state + (*(s32 *)(state + 0x14) << 2)); + return valid(func_005005E8(table, id)); +} +extern char D_00343CE0[]; +static inline Callback handler(u32 kind) +{ + return func_L00_006A04E0(D_00343CE0, kind); +} +s32 func_L00_0069D7A8(u32 id, s32 arg1, s32 arg2, s32 arg3, s32 arg4) +{ + s32 result = 0; + Object *p = getTyped(id); + if (p) { + Callback callback = handler(p->vtable->getType(p)); + if (callback) + result = callback(p, arg1, arg2, arg3, arg4); + } + return result; +} diff --git a/src/overlays/shared/L00_006A06A0.c b/src/overlays/shared/L00_006A06A0.c new file mode 100644 index 00000000..0fbac507 --- /dev/null +++ b/src/overlays/shared/L00_006A06A0.c @@ -0,0 +1,79 @@ +#include "common.h" + +typedef struct Allocator Allocator; +typedef struct Object Object; +typedef struct { + u32 unknown0[2]; + void *(*allocate)(Allocator *, s32); + void (*release)(Allocator *, void *); +} AllocatorVtable; +struct Allocator { + AllocatorVtable *vtable; +}; +typedef struct Manager { + void *unknown0; + u8 *table; +} Manager; +typedef struct { + u32 unknown0[2]; + void (*destroy)(Object *, s32); +} ObjectVtable; +struct Object { + u32 unknown0[2]; + ObjectVtable *vtable; + + u8 unknownC[0x50]; +}; + +extern Manager D_00222138[]; +extern Manager *func_00502150(void); +extern Allocator *func_00502218(Manager *, s32); +extern void func_005052C0(s32); +extern s32 func_005052C8(void); +extern s32 func_00500980(void *, u32); +extern void *func_0015DB90(u32, void *); +extern Object *func_0050EB78(void *); +extern s32 func_00501618(void *, Object *, u32); + +static inline Manager *get_manager(void) +{ + Manager *manager = D_00222138; + if (manager->table) { + return manager; + } + return func_00502150(); +} + +s32 func_L00_006A06A0(u32 key) +{ + s32 result = 0; + Manager *manager; + Allocator *allocator; + u8 *state; + void *entry; + s32 size; + void *block; + Object *object; + + manager = get_manager(); + state = (u8 *)manager->table; + entry = state != NULL + ? *(void **)((u32)state + ((u32) * (s32 *)(state + 0x14) << 2)) + : NULL; + func_005052C0(0x50); + size = func_005052C8(); + if (entry != NULL && func_00500980(entry, key) == 0) { + allocator = func_00502218(get_manager(), 1); + block = allocator->vtable->allocate(allocator, size); + if (block != NULL) { + object = func_0050EB78(func_0015DB90(0x50, block)); + result = func_00501618(entry, object, key) != 0; + if (!result) { + object->vtable->destroy(object, 2); + allocator = func_00502218(get_manager(), 1); + allocator->vtable->release(allocator, block); + } + } + } + return result; +} diff --git a/src/overlays/shared/L00_006E8D78.c b/src/overlays/shared/L00_006E8D78.c new file mode 100644 index 00000000..5612c466 --- /dev/null +++ b/src/overlays/shared/L00_006E8D78.c @@ -0,0 +1,13 @@ +#include "common.h" + +extern void func_00453E20(void *, s32, s32); +extern void *func_L00_006EF740(u8 *p); +extern u8 D_004B5A50[]; + +void func_L00_006E8D78(u8 *p) { + func_00453E20(p, 0, 0x31f0); + func_L00_006EF740(p); + *(u8 **)(p + 0x14) = D_004B5A50; + *(u8 *)(p + 0x266d) = 1; + *(u8 *)(p + 0x31cf) = 5; +} diff --git a/src/overlays/shared/L01_003C9A68.c b/src/overlays/shared/L01_003C9A68.c new file mode 100644 index 00000000..d095f83b --- /dev/null +++ b/src/overlays/shared/L01_003C9A68.c @@ -0,0 +1,64 @@ +/* cflags: -O2 -G8 -Wuninitialized */ +#include "common.h" +#define FIELD(base, type, offset) (*(type *)((u8 *)(base) + (offset))) +void *func_0046B930(s32, s32); +void func_0047B9B8(void *, s32); +void func_L01_003C9930(void *); +void func_L01_003C9CF0(void *); +extern s32 D_0021DE10; +extern s16 D_003BAB60[]; + +void *func_L01_003C9A68(s32 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4, s32 arg5) { + s32 index; + void *actor; + void *data; + void *second; + if (arg0 == -1) + goto failed; + index = D_0021DE10 % 20; + if (arg0 >= 26) { + if (arg0 < D_003BAB60[index]) + return 0; + if (arg0 > D_003BAB60[index + 1]) + return 0; + } + actor = func_0046B930(3950, 144); + if (!actor) { + failed: + return 0; + } + data = FIELD(actor, void *, 0xAC); + func_0047B9B8(actor, 0); + FIELD(data, s32, 0x6C) = arg0; + FIELD(data, u8, 0x71) = arg1; + FIELD(data, u8, 0x72) = arg2; + FIELD(data, u8, 0x7C) = arg3; + FIELD(data, u8, 0x7D) = arg4; + FIELD(data, u8, 0x70) = 1; + FIELD(data, s32, 0x74) = -1; + FIELD(data, u8, 0x7F) = 0; + FIELD(data, u8, 0x7E) = 0; + FIELD(data, u8, 0x80) = 0; + FIELD(data, s8, 0x73) = -1; + FIELD(data, s32, 0x88) = -1; + FIELD(data, s32, 0x78) = -1; + FIELD(data, void *, 0x84) = 0; + if (arg5 != -1) { + second = func_0046B930(3950, 144); + FIELD(data, void *, 0x84) = second; + if (second) { + data = FIELD(second, void *, 0xAC); + func_0047B9B8(second, 0); + FIELD(data, u8, 0x70) = 1; + FIELD(data, void *, 0x84) = 0; + FIELD(data, u8, 0x7F) = 0; + FIELD(data, u8, 0x7E) = 0; + FIELD(data, u8, 0x80) = 0; + FIELD(data, s32, 0x78) = FIELD(data, s32, 0x88) = FIELD(data, s8, 0x73) = -1; + FIELD(data, s32, 0x6C) = arg5; + } + } + func_L01_003C9930(actor); + func_L01_003C9CF0(actor); + return actor; +} diff --git a/src/overlays/shared/L01_003DAF28.c b/src/overlays/shared/L01_003DAF28.c new file mode 100644 index 00000000..72e9050a --- /dev/null +++ b/src/overlays/shared/L01_003DAF28.c @@ -0,0 +1,62 @@ +#include "common.h" + +typedef unsigned int Quadword __attribute__((mode(TI))); +extern char *func_0046B930(s32 classId, s32 privateSize); +extern void func_004706F0(void *object); +extern void func_00476C38(void *object); + +char *func_L01_003DAF28(const char *descriptor, const Quadword *position, u32 value, const Quadword *optional) +{ + char *object = func_0046B930(0x27F, 0x80); + if (object != 0) { + char *state; + u8 mode; + *(u8 *)(object + 0x30) = 0xFF; + *(u8 *)(object + 0x31) = 1; + *(u16 *)(object + 0x34) |= 1; + *(u8 *)(object + 0x20) = 0; + *(u8 *)(object + 0x67) = 0; + state = *(char **)(object + 0xAC); + *(Quadword *)(object + 0x10) = *position; + *(Quadword *)state = optional != 0 ? *optional : *(const Quadword *)descriptor; + *(u32 *)(state + 0x20) = value; + *(u16 *)(object + 0x32) = *(const u8 *)(descriptor + 0x3C); + *(u8 *)(state + 0x24) = *(const u8 *)(descriptor + 0x10); + *(u8 *)(state + 0x25) = *(const u8 *)(descriptor + 0x11); + *(u8 *)(state + 0x26) = *(const u8 *)(descriptor + 0x12); + *(u8 *)(state + 0x27) = *(const u8 *)(descriptor + 0x13); + *(u8 *)(state + 0x28) = *(const u8 *)(descriptor + 0x14); + *(u8 *)(state + 0x29) = *(const u8 *)(descriptor + 0x15); + *(u8 *)(state + 0x68) = *(const u8 *)(descriptor + 0x3D); + *(u16 *)(state + 0x6C) = *(const u16 *)(descriptor + 0x40); + *(u8 *)(state + 0x2A) = *(const u8 *)(descriptor + 0x16); + *(u8 *)(state + 0x2B) = *(const u8 *)(descriptor + 0x17); + *(u8 *)(state + 0x2C) = *(const u8 *)(descriptor + 0x18); + *(u8 *)(state + 0x2D) = *(const u8 *)(descriptor + 0x19); + *(u8 *)(state + 0x2E) = *(const u8 *)(descriptor + 0x1A); + *(u8 *)(state + 0x69) = *(const u8 *)(descriptor + 0x3E); + *(u16 *)(state + 0x6E) = *(const u16 *)(descriptor + 0x42); + *(u8 *)(state + 0x2F) = *(const u8 *)(descriptor + 0x1B); + *(u8 *)(state + 0x30) = *(const u8 *)(descriptor + 0x1C); + *(u8 *)(state + 0x31) = *(const u8 *)(descriptor + 0x1D); + *(u8 *)(state + 0x32) = *(const u8 *)(descriptor + 0x1E); + *(u8 *)(state + 0x33) = *(const u8 *)(descriptor + 0x1F); + *(u8 *)(state + 0x6A) = *(const u8 *)(descriptor + 0x3F); + *(u16 *)(state + 0x70) = *(const u16 *)(descriptor + 0x44); + *(f32 *)(state + 0x34) = *(const f32 *)(descriptor + 0x20); + *(f32 *)(state + 0x38) = *(const f32 *)(descriptor + 0x24); + *(f32 *)(state + 0x3C) = *(const f32 *)(descriptor + 0x28); + *(f32 *)(state + 0x40) = *(const f32 *)(descriptor + 0x2C); + *(f32 *)(state + 0x44) = *(const f32 *)(descriptor + 0x30); + *(u8 *)(state + 0x6B) = *(const u8 *)(descriptor + 0x48); + *(u16 *)(state + 0x72) = *(const u16 *)(descriptor + 0x46); + *(u32 *)(state + 0x48) = *(const u32 *)(descriptor + 0x34); + *(u32 *)(state + 0x4C) = *(const u32 *)(descriptor + 0x38); + mode = *(const u8 *)(descriptor + 0x49); + *(s32 *)(state + 0x64) = -1; + *(u8 *)(state + 0x1C) = mode; + func_004706F0(object); + func_00476C38(object); + } + return object; +} diff --git a/src/overlays/shared/L01_003EE950.c b/src/overlays/shared/L01_003EE950.c new file mode 100644 index 00000000..9689c1a2 --- /dev/null +++ b/src/overlays/shared/L01_003EE950.c @@ -0,0 +1,34 @@ +#include "common.h" +s32 func_L01_0056B748(void *object); +s32 func_L01_0056D480(void *extension, void *object); +f32 func_L01_003EE950(void *object) +{ + f32 result; + s32 count; + s32 total; + void *extension; + void *node; + + count = 0; + extension = *(void **)((u8 *)object + 0xAC); + node = *(void **)((u8 *)extension + 0x3F0); + total = 0; + if (node != NULL) { + do { + total = (s32)((u32)total + 2U); + if (func_L01_0056B748(node) != 0) { + count = (s32)((u32)count + 1U); + } + if (func_L01_0056D480(extension, node) != 0) { + count = (s32)((u32)count + 1U); + } + node = *(void **)((u8 *)node + 0x1AC); + } while (node != NULL); + } + if (total != 0) { + result = (f32)count / (f32)total; + } else { + result = 1.0f; + } + return result; +} diff --git a/src/overlays/shared/L01_00412848.c b/src/overlays/shared/L01_00412848.c new file mode 100644 index 00000000..f1f33e5a --- /dev/null +++ b/src/overlays/shared/L01_00412848.c @@ -0,0 +1,31 @@ +/* cflags: -O2 -G8 -Wa,-G0 -Wuninitialized */ +#include "common.h" +typedef unsigned long long u128; +extern int func_0054A7E0(int, int); +extern unsigned char *func_00548D28(int, int); +extern int func_0054A788(int, int, int); +extern void func_004742D8(void *, u128, int, int, float, float, float, int, int); + +void func_L01_00412848(void *actor, u128 position, float scale) { + char *data = *(char **)((char *)actor + 0xAC); + int flags = 0x801; + unsigned char count; + int extra; + if (func_0054A7E0(*(int *)(*(char **)(data + 0x40) + 0x26E4), 5) == 3) + flags = 0x800801; + if (func_0054A7E0(*(int *)(*(char **)(data + 0x40) + 0x26E4), 5) == 7) + flags |= 0x80; + if (func_0054A7E0(*(int *)(*(char **)(data + 0x40) + 0x26E4), 5) == 8) + flags |= 0x40; + if (func_0054A7E0(*(int *)(*(char **)(data + 0x40) + 0x26E4), 5) == 6) + flags |= 0x100; + if (func_0054A7E0(*(int *)(*(char **)(data + 0x40) + 0x26E4), 5) == 5) + flags |= 0x400; + count = func_00548D28(5, 0)[0x2F]; + extra = func_0054A788(*(int *)(*(char **)(data + 0x40) + 0x26E4), 5, 4); + if (extra > 0) { + flags |= 0x20; + count += extra; + } + func_004742D8(actor, position, flags, 1, .3f, scale, (float)(extra + 1), count, 0); +} diff --git a/src/overlays/shared/L01_00431B38.c b/src/overlays/shared/L01_00431B38.c new file mode 100644 index 00000000..64997066 --- /dev/null +++ b/src/overlays/shared/L01_00431B38.c @@ -0,0 +1,57 @@ +#include "common.h" + +typedef int u128 __attribute__((mode(TI))); + +extern u8 *func_005869E0(s32, s32); +extern void func_00587A98(u8 *, s32, u8 *); +extern void func_00591BD8(u8 *, s32, s32); +extern void func_00587930(u8 *, s32, u128 *); +extern void func_00596470(u128 *, u8 *); + +s32 func_L01_00431B38(u8 *owner, s32 joint, s32 bone, s32 flags, f32 scale) { + u128 mtx[4]; + u8 pos[0x10]; + u8 *moby = func_005869E0(0x200F, 0x10); + u8 *v1; + u8 *v2; + u8 *o; + f32 f; + u128 *m; + + if (moby == NULL) { + return 0; + } + if (owner == NULL) { + return 0; + } + v1 = *(u8 **)(moby + 0xAC); + if (flags & 8) { + v1[0xA] = 1; + } else { + v1[0xA] = 0; + } + func_00587A98(owner, v1[8], pos); + v2 = *(u8 **)(moby + 0xAC); + *(u8 **)(moby + 0xB8) = owner; + moby[0x30] = 0xFF; + *(s16 *)(moby + 0x32) = 0xFF; + v2[8] = joint; + o = *(u8 **)(moby + 0xB8); + if (o != NULL && o[0x20] != 0xFE && o[0x20] != 0xFD) { + f = *(f32 *)(o + 0x70) / *(f32 *)(*(u8 **)(o + 0x24) + 0x24); + } else { + f = 1.0f; + } + *(f32 *)(moby + 0x70) = scale * f * 0.4f; + *(s32 *)(v2 + 0) = flags; + func_00591BD8(moby, 0, -1); + *(s16 *)(v2 + 4) = 0x2D; + v1[9] = bone; + func_00587930(*(u8 **)(moby + 0xB8), (s8)bone, mtx); + func_00596470(mtx, moby + 0xF0); + m = (u128 *)(moby + 0xC0); + m[0] = mtx[0]; + m[1] = mtx[1]; + m[2] = mtx[2]; + return 1; +} diff --git a/src/overlays/shared/L01_00450348.c b/src/overlays/shared/L01_00450348.c new file mode 100644 index 00000000..fd0d3c57 --- /dev/null +++ b/src/overlays/shared/L01_00450348.c @@ -0,0 +1,29 @@ +#include "common.h" + +void func_00453718(void *destination, const void *source, u32 bytes); +f32 func_004756D0(f32 first, f32 last, f32 fraction); +s32 func_004756A8(s32 first, s32 last, f32 fraction); +void func_L01_00450348(void *arg0, void *arg1, void *arg2, f32 fparg0) +{ + if ((arg1 == arg2) || (fparg0 <= 0.0f)) + { + func_00453718(arg0, arg1, 0x20U); + } + else + if (fparg0 >= 1.0f) + { + func_00453718(arg0, arg2, 0x20U); + } + else + { + *((f32 *) (((s8 *) arg0) + 0)) = func_004756D0(*((f32 *) (((s8 *) arg1) + 0)), *((f32 *) (((s8 *) arg2) + 0)), fparg0); + *((f32 *) (((s8 *) arg0) + 4)) = func_004756D0(*((f32 *) (((s8 *) arg1) + 4)), *((f32 *) (((s8 *) arg2) + 4)), fparg0); + *((f32 *) (((s8 *) arg0) + 8)) = func_004756D0(*((f32 *) (((s8 *) arg1) + 8)), *((f32 *) (((s8 *) arg2) + 8)), fparg0); + *((f32 *) (((s8 *) arg0) + 0xC)) = func_004756D0(*((f32 *) (((s8 *) arg1) + 0xC)), *((f32 *) (((s8 *) arg2) + 0xC)), fparg0); + *((f32 *) (((s8 *) arg0) + 0x10)) = func_004756D0(*((f32 *) (((s8 *) arg1) + 0x10)), *((f32 *) (((s8 *) arg2) + 0x10)), fparg0); + *((s8 *) (((s8 *) arg0) + 0x14)) = func_004756A8(*((u8 *) (((s8 *) arg1) + 0x14)), *((u8 *) (((s8 *) arg2) + 0x14)), fparg0); + *((s8 *) (((s8 *) arg0) + 0x15)) = func_004756A8(*((u8 *) (((s8 *) arg1) + 0x15)), *((u8 *) (((s8 *) arg2) + 0x15)), fparg0); + *((s8 *) (((s8 *) arg0) + 0x16)) = func_004756A8(*((u8 *) (((s8 *) arg1) + 0x16)), *((u8 *) (((s8 *) arg2) + 0x16)), fparg0); + *((s8 *) (((s8 *) arg0) + 0x17)) = func_004756A8(*((u8 *) (((s8 *) arg1) + 0x17)), *((u8 *) (((s8 *) arg2) + 0x17)), fparg0); + } +} diff --git a/src/overlays/shared/L01_00452D40.c b/src/overlays/shared/L01_00452D40.c new file mode 100644 index 00000000..13f5fb24 --- /dev/null +++ b/src/overlays/shared/L01_00452D40.c @@ -0,0 +1,40 @@ +#include "common.h" + +extern s32 func_004534D0(void *); +extern void func_0046BDD0(void *); +extern void func_00473A88(void *, s32, s32); +extern void func_L01_00452E10(void *); +extern void func_L01_00453100(void *); +extern void func_L01_00453608(void *); + +void func_L01_00452D40(u8 *arg0) { + u8 *vars = *(u8 **)(arg0 + 0xAC); + + if (vars != NULL && *(s32 *)(vars + 0x10) != 0) { + switch (arg0[0x20]) { + case 0: { + s32 first; + u8 flags = arg0[0xBE]; + if ((flags ^ 1) & 1) { + first = 1; + arg0[0xBE] = flags | 1; + } else { + first = 0; + } + if (first != 0) { + *(s32 *)(vars + 0x14) = 0x3C; + } + func_L01_00452E10(arg0); + func_L01_00453608(arg0); + func_L01_00453100(arg0); + if (func_004534D0(vars + 0x14) != 0) { + func_00473A88(arg0, 1, -1); + } + break; + } + case 1: + func_0046BDD0(arg0); + break; + } + } +} diff --git a/src/overlays/shared/L01_00453820.c b/src/overlays/shared/L01_00453820.c new file mode 100644 index 00000000..6d4ee5b4 --- /dev/null +++ b/src/overlays/shared/L01_00453820.c @@ -0,0 +1,53 @@ +#include "common.h" + +typedef struct V_00453820 { + u8 pad0[0x170]; + s32 unk170; + s32 unk174; + s32 unk178; + u8 pad17C[0x19C - 0x17C]; + s32 unk19C; + u8 pad1A0[0x1DC - 0x1A0]; + u8 unk1DC; +} V_00453820; + +typedef struct A_00453820 { + u8 pad0[0xAC]; + V_00453820 *unkAC; +} A_00453820; + +extern s32 func_L01_00453750(s32); +extern s32 func_L01_004537F8(s32); +extern s32 func_L01_0056A718(V_00453820 *, s32); + +f32 func_L01_00453820(A_00453820 *arg0) { + V_00453820 *v; + s32 total; + s32 good; + s32 bad; + s32 n; + + good = 0; + total = 0; + v = arg0->unkAC; + bad = 0; + if (v == NULL || v->unk19C > 0 || v->unk1DC == 0) { + return 0.0f; + } + if (v->unk174 != 0) { + good = func_L01_004537F8(v->unk178); + total = func_L01_004537F8(v->unk174); + bad = func_L01_0056A718(v, -1); + } + if (v->unk170 != -1) { + n = func_L01_00453750(v->unk170); + total += n; + if (v->unk1DC != 0) { + good += n; + } + } + if (total <= 0) { + return 1.0f; + } + return (2.0f * good - bad) / (2.0f * total); +} diff --git a/src/overlays/shared/L01_0045BF60.c b/src/overlays/shared/L01_0045BF60.c new file mode 100644 index 00000000..c9b2fb24 --- /dev/null +++ b/src/overlays/shared/L01_0045BF60.c @@ -0,0 +1,11 @@ +/* cflags: -mno-split-addresses */ +#include "common.h" + +extern s32 func_00550790(void *, void *, void *, void *, void *, s32, s32); +extern u8 D_00222B20[]; + +void func_L01_0045BF60(void *arg0) { + u8 *linked = *(u8 **)((u8 *)arg0 + 0xAC); + func_00550790(D_00222B20, arg0, (u8 *)arg0 + 0x10, (u8 *)arg0 + 0xF0, linked + 0x5F0, 1, 0); + *(s16 *)(linked + 0x60E) = 0x78; +} diff --git a/src/overlays/shared/L01_00469C88.c b/src/overlays/shared/L01_00469C88.c new file mode 100644 index 00000000..6f2ed439 --- /dev/null +++ b/src/overlays/shared/L01_00469C88.c @@ -0,0 +1,21 @@ +/* cflags: -O2 -G8 -Wuninitialized */ +#include "common.h" + +extern s64 func_L01_004697A0(void *object); + +u32 func_L01_00469C88(void *object) +{ + u32 value; + u32 result; + u8 disabled; + + value = (u32)*(u8 **)((u8 *)object + 0xAC); + disabled = ((u8 *)value)[0x458]; + result = 0; + if (disabled == 0) { + value = func_L01_004697A0(object) != 0; + result = value; + } + value = result; + return value; +} diff --git a/src/overlays/shared/L01_0048DF40.c b/src/overlays/shared/L01_0048DF40.c new file mode 100644 index 00000000..cf958949 --- /dev/null +++ b/src/overlays/shared/L01_0048DF40.c @@ -0,0 +1,53 @@ +#include "common.h" + +typedef int u128 __attribute__((mode(TI))); + +extern f32 *func_00476690(void *); +extern s32 func_00476660(void *); +extern s32 func_L01_005AE158(void *); +extern void func_L01_005A24D0(void *, s32); +extern void func_00484710(void *, s32, s32); +extern void func_00473A88(void *, s32, s32); +extern void func_L00_005F15B8(void *); +extern void func_005A85F8(void *, s32, s32); +extern s32 func_L01_005A2F40(void *, void *); +extern void func_L01_005A1B38(void *); +extern void func_004771B0(void *, s32); + +s32 func_L01_0048DF40(u8 *arg0, u8 *arg1) { + f32 *value; + f32 old; + u8 *obj; + + if (*(u8 **)(arg1 + 0x170) == NULL) { + return arg0[0x20] != 1; + } + value = func_00476690(*(u8 **)(arg1 + 0x170)); + if (value == NULL) { + return 1; + } + if (func_00476660(*(u8 **)(arg1 + 0x170)) == 0) { + return 1; + } + old = *value; + if (func_L01_005AE158(*(u8 **)(arg1 + 0x170)) != 0 || *value < old) { + func_L01_005A24D0(arg0, 0xF0); + } + if (*value <= 0.0f) { + func_00484710(*(u8 **)(arg1 + 0x170), -1, 0); + func_00473A88(arg0, 5, 4); + } + obj = *(u8 **)(arg1 + 0x170); + if (((*(u64 *)(obj + 0x30) & ((u64)0x8208 << 29)) != ((u64)0x8200 << 23) || *(s32 *)(obj + 0x98) != 0) && + *value > 0.0f) { + func_L00_005F15B8(obj); + func_005A85F8(arg0, 5, -1); + } + if (*(s32 *)(arg1 + 0x60) != 0 && func_L01_005A2F40(arg0, arg1 + 0x50) != 0) { + arg1[0x1D6] = 1; + *(u128 *)(arg1 + 0xD60) = *(u128 *)(arg1 + 0x50); + } + func_L01_005A1B38(arg0); + func_004771B0(*(u8 **)(arg1 + 0x170), 0); + return 0; +} diff --git a/src/overlays/shared/L01_00495A60.c b/src/overlays/shared/L01_00495A60.c new file mode 100644 index 00000000..70f27e6e --- /dev/null +++ b/src/overlays/shared/L01_00495A60.c @@ -0,0 +1,21 @@ +/* cflags: -O2 -G8 -Wuninitialized */ +#include "common.h" + +extern s64 func_L01_004958F0(void *object); + +u32 func_L01_00495A60(void *object) +{ + u32 value; + u32 result; + u8 disabled; + + value = (u32)*(u8 **)((u8 *)object + 0xAC); + disabled = ((u8 *)value)[0x458]; + result = 0; + if (disabled == 0) { + value = func_L01_004958F0(object) != 0; + result = value; + } + value = result; + return value; +} diff --git a/src/overlays/shared/L01_0049A7E8.c b/src/overlays/shared/L01_0049A7E8.c new file mode 100644 index 00000000..25b1d38e --- /dev/null +++ b/src/overlays/shared/L01_0049A7E8.c @@ -0,0 +1,66 @@ +/* cflags: -O2 -G8 */ +#include "common.h" + +typedef struct V_0049A7E8 { + u8 pad0[0x18]; + f32 unk18; + f32 unk1C; + s32 unk20[3]; + s32 unk2C; +} V_0049A7E8; + +typedef struct M_0049A7E8 { + u8 pad0[0x20]; + u8 unk20; + u8 pad21[0xAC - 0x21]; + V_0049A7E8 *unkAC; +} M_0049A7E8; + +typedef struct G_0049A7E8 { + u8 pad0[0x2E20]; + f32 unk2E20; +} G_0049A7E8; + +M_0049A7E8 *D_00221CC0 = 0; +extern s32 D_0021DDB4; +extern s32 D_0024AD20[]; +extern s16 D_0024AD4C[]; +extern G_0049A7E8 *func_006658C0(s32); +extern s32 func_L00_005A00F8(void); +extern s32 func_L00_005BC980(void *); +extern s32 func_L01_0049A8F0(M_0049A7E8 *); +extern void func_L01_0049A9C0(M_0049A7E8 *); + +void func_L01_0049A7E8(M_0049A7E8 *arg0) { + V_0049A7E8 *v; + M_0049A7E8 *m; + u8 t; + + v = arg0->unkAC; + if (func_L01_0049A8F0(arg0) != 0) { + return; + } + m = D_00221CC0; + if (m != arg0) { + return; + } + if ((u32)(D_0021DDB4 - 1) < 2) { + return; + } + if (func_L00_005A00F8() != 0) { + return; + } + t = m->unk20; + if (t == 1 && func_L00_005BC980(&v->unk20) != 0) { + func_L00_005BC980(&v->unk2C); + if (D_0024AD20[0] != t && D_0024AD4C[0] <= 0) { + if (v->unk2C <= 0) { + func_L01_0049A9C0(m); + } + } else if (v->unk2C < 300) { + v->unk2C = 300; + } + } + v->unk18 = func_006658C0(0)->unk2E20; + v->unk1C = func_006658C0(1)->unk2E20; +} diff --git a/src/overlays/shared/L01_004AC628.c b/src/overlays/shared/L01_004AC628.c new file mode 100644 index 00000000..76ef1b27 --- /dev/null +++ b/src/overlays/shared/L01_004AC628.c @@ -0,0 +1,32 @@ +#include "common.h" + +void func_00473A88(void *object, s32 state, s32 animation); + +s32 func_L01_005A2F40(void *, void *); + +void func_L01_004AC628(void *arg0) { + u8 temp_v1; + u8 temp_v1_2; + void *temp_a1; + + temp_v1 = (*(u8 *)((s8 *)(arg0) + (0x69))); + temp_a1 = (*(void **)((s8 *)(arg0) + (0xAC))); + switch (temp_v1) { + case 0: + if (((*(u8 *)((s8 *)(temp_a1) + (0x632))) == 0) && ((*(s32 *)((s8 *)(temp_a1) + (0x418))) >= 0)) { + func_00473A88(arg0, 3, 1); + return; + } + if (func_L01_005A2F40(arg0, temp_a1 + 0x310) != 0) { + func_00473A88(arg0, 5, 2); + return; + } + case 1: + return; + case 2: + if (((*(s32 *)((s8 *)(temp_a1) + (0x334))) < 0) && (temp_v1_2 = (*(u8 *)((s8 *)(arg0) + (0x20))), ((temp_v1_2 == 5) || (temp_v1_2 == 7)))) { + func_00473A88(arg0, 1, 0); + } + break; + } +} diff --git a/src/overlays/shared/L01_004ADC38.c b/src/overlays/shared/L01_004ADC38.c new file mode 100644 index 00000000..1148647f --- /dev/null +++ b/src/overlays/shared/L01_004ADC38.c @@ -0,0 +1,21 @@ +/* cflags: -O2 -G8 -Wuninitialized */ +#include "common.h" + +extern s64 func_L01_004ADFB0(void *object); + +u32 func_L01_004ADC38(void *object) +{ + u32 value; + u32 result; + u8 disabled; + + value = (u32)*(u8 **)((u8 *)object + 0xAC); + disabled = ((u8 *)value)[0x408]; + result = 0; + if (disabled == 0) { + value = func_L01_004ADFB0(object) != 0; + result = value; + } + value = result; + return value; +} diff --git a/src/overlays/shared/L01_004B3FE8.c b/src/overlays/shared/L01_004B3FE8.c new file mode 100644 index 00000000..ba7a3c33 --- /dev/null +++ b/src/overlays/shared/L01_004B3FE8.c @@ -0,0 +1,21 @@ +/* cflags: -O2 -G8 -Wuninitialized */ +#include "common.h" + +extern s64 func_L01_0045D380(void *object); + +u32 func_L01_004B3FE8(void *object) +{ + u32 value; + u32 result; + u8 disabled; + + value = (u32)*(u8 **)((u8 *)object + 0xAC); + disabled = ((u8 *)value)[0x458]; + result = 0; + if (disabled == 0) { + value = func_L01_0045D380(object) != 0; + result = value; + } + value = result; + return value; +} diff --git a/src/overlays/shared/L01_004C1D28.c b/src/overlays/shared/L01_004C1D28.c new file mode 100644 index 00000000..164b039a --- /dev/null +++ b/src/overlays/shared/L01_004C1D28.c @@ -0,0 +1,32 @@ +#include "common.h" + +extern s32 func_L00_005E0B30(void *, s32, s32, s32, f32, s32, s32); +extern s32 func_L00_005EE1D8(void *, f32); +extern void func_L00_005EEA48(void *, s32, s32, s32); +extern s32 func_L01_004C6600(void *); + +s32 func_L01_004C1D28(u8 *moby, s32 arg1) { + u8 *vars; + s32 v; + s32 a; + + vars = *(u8 **)(moby + 0xAC); + switch (arg1) { + case 1: + if (func_L00_005EE1D8(moby, 12.0f) != 0) { + a = func_L01_004C6600(moby); + *(s32 *)(vars + 0x4C8) = a; + func_L00_005EEA48(moby, a, 3, 0); + v = *(s16 *)(vars + 0x49E) << 16; + *(s32 *)(vars + 0x49C) = v; + *(s16 *)(moby + 0x74) = v >> 11; + *(s8 *)(vars + 0x4BF) = arg1; + } + break; + case 4: + *(s32 *)(vars + 0x4C0) = func_L00_005E0B30(moby, *(s32 *)(*(u8 **)(moby + 0x24) + 0x74), 0xB, 5, 0.0f, 0xB, 0xFF); + *(s32 *)(vars + 0x4C4) = func_L00_005E0B30(moby, *(s32 *)(*(u8 **)(moby + 0x24) + 0x74), 0xB, 5, 0.0f, 0xC, 0xFF); + break; + } + return 1; +} diff --git a/src/overlays/shared/L01_004C7C58.c b/src/overlays/shared/L01_004C7C58.c new file mode 100644 index 00000000..7e7286fc --- /dev/null +++ b/src/overlays/shared/L01_004C7C58.c @@ -0,0 +1,21 @@ +/* cflags: -O2 -G8 -Wuninitialized */ +#include "common.h" + +extern s64 func_L01_004C80A8(void *object); + +u32 func_L01_004C7C58(void *object) +{ + u32 value; + u32 result; + u8 disabled; + + value = (u32)*(u8 **)((u8 *)object + 0xAC); + disabled = ((u8 *)value)[0x408]; + result = 0; + if (disabled == 0) { + value = func_L01_004C80A8(object) != 0; + result = value; + } + value = result; + return value; +} diff --git a/src/overlays/shared/L01_004C9148.c b/src/overlays/shared/L01_004C9148.c new file mode 100644 index 00000000..5081b599 --- /dev/null +++ b/src/overlays/shared/L01_004C9148.c @@ -0,0 +1,46 @@ +/* cflags: -G0 */ +#include "common.h" + +typedef int u128 __attribute__((mode(TI))); + +typedef struct Type1 { + u8 pad0[0x22]; + u8 unk22; +} Type1; + +typedef struct M_004C9148 { + u8 pad0[0x10]; + u128 pos; + u8 pad20[0xAC - 0x20]; + Type1 *unkAC; + u8 padB0[0xC0 - 0xB0]; + u128 mtx[3]; +} M_004C9148; + +extern u8 D_003AB250[]; +extern void func_004C8F08(M_004C9148 *, void *, s32, u128 *, s32, s32, s32, s32, s32, + f32, f32, f32, f32, f32, f32, f32); + +void func_L01_004C9148(M_004C9148 *arg0) { + u128 m[4]; + u128 *src; + u128 *p = m; + Type1 *s; + s32 max; + f32 t; + + src = arg0->mtx; + s = arg0->unkAC; + max = 40; + p[0] = src[2]; + p[1] = arg0->mtx[0]; + p[2] = src[1]; + p[3] = arg0->pos; + if (s->unk22 <= max) { + t = (f32)s->unk22 / (f32)max; + } else { + t = 1.0f; + } + func_004C8F08(arg0, D_003AB250, 3, m, 0x45, 2, 0x597B98, 0x162A3C, 0x10, + 0.7f, 2.5f, (f32)s->unk22 / 40.0f, t, 5.0f, 1.25f, 1.75f); +} diff --git a/src/overlays/shared/L01_004D8C60.c b/src/overlays/shared/L01_004D8C60.c new file mode 100644 index 00000000..761de550 --- /dev/null +++ b/src/overlays/shared/L01_004D8C60.c @@ -0,0 +1,24 @@ +#include "common.h" + +extern void func_00591BD8(void *, s32, s32); + +void func_L01_004D8C60(void *arg0, u8 *arg1) { + u8 state = arg1[0x20]; + u8 *vars = *(u8 **)(arg1 + 0xAC); + + if (state != 0 && state != 4 && state != 6) { + s32 v; + u8 kind; + func_00591BD8(arg1, 1, -1); + kind = arg1[0x68]; + if (kind == 2) { + v = (s32)((f32)*(s32 *)(vars + 0x104) * 60.0f) - *(u16 *)(vars + 0x116); + } else { + if (kind != 5) { + return; + } + v = (s32)((f32)*(s32 *)(vars + 0x104) * 60.0f); + } + *(s16 *)(vars + 0x114) = v; + } +} diff --git a/src/overlays/shared/L01_004D9AD8.c b/src/overlays/shared/L01_004D9AD8.c new file mode 100644 index 00000000..63497751 --- /dev/null +++ b/src/overlays/shared/L01_004D9AD8.c @@ -0,0 +1,33 @@ +#include "common.h" + +const char *func_0045E038(s32 id); +void func_00473A88(void *object, s32 state, s32 animation); +void func_L01_005D74F0(s32 a0, s32 a1, s32 a2); + +s32 func_004534D0(void *); +extern s32 D_0021EBDC; + +void func_L01_004D9AD8(void *arg0) { + u8 temp_v1; + void *temp_s1; + + temp_v1 = (*(u8 *)((s8 *)(arg0) + (0x20))); + temp_s1 = (*(void **)((s8 *)(arg0) + (0xAC))); + switch (temp_v1) { + case 0: + (*(s32 *)((s8 *)(temp_s1) + (4))) = (s32) ((f32) (*(s32 *)((s8 *)(temp_s1) + (0))) * 60.0f); + func_00473A88(arg0, 1, -1); + return; + case 1: + if (D_0021EBDC != 0) { + func_00473A88(arg0, 2, -1); + return; + } + if (func_004534D0(temp_s1 + 4) != 0) { + D_0021EBDC = 2; + func_00473A88(arg0, 2, -1); + } + func_L01_005D74F0(0, (s32)func_0045E038(0x255D), (*(s32 *)((s8 *)(temp_s1) + (4)))); + return; + } +} diff --git a/src/overlays/shared/L01_004E49D8.c b/src/overlays/shared/L01_004E49D8.c new file mode 100644 index 00000000..fc2fbb77 --- /dev/null +++ b/src/overlays/shared/L01_004E49D8.c @@ -0,0 +1,33 @@ +/* cflags: -O2 -G8 */ +extern int func_L01_004E4AB8(void *); +extern int func_L01_004E4B20(void *); +extern void func_005A85F8(void *, int, int); +extern int func_L01_004E4E50(void *); +extern void func_00473A88(void *, int, int); +extern void func_004E1F90(int, int, void *); +extern void func_00476F88(void *, int, int, int); +extern void func_L01_004E4C38(void *); + +void func_L01_004E49D8(unsigned char *p) +{ + int changed; + if (func_L01_004E4AB8(p)) return; + if (func_L01_004E4B20(p)) return; + switch (p[0x20]) { + case 2: { + func_005A85F8(p, 17, -1); + if (func_L01_004E4E50(p)) func_00473A88(p, 3, -1); + break; } + case 3: { + if ((p[0xbe] ^ 1) & 1) { + p[0xbe] |= 1; + changed = 1; + } else changed = 0; + if (changed) { + func_004E1F90(0, 0, p); + func_00476F88(p, 4, 0, 0); + } + } + } + func_L01_004E4C38(p); +} diff --git a/src/overlays/shared/L01_004E4B20.c b/src/overlays/shared/L01_004E4B20.c new file mode 100644 index 00000000..624fbde1 --- /dev/null +++ b/src/overlays/shared/L01_004E4B20.c @@ -0,0 +1,41 @@ +#include "common.h" + +typedef struct { + u8 pad0[0x3C]; + u8 *moby; +} Target; + +extern Target D_002423C0[]; + +extern void func_004771B0(u8 *, u8 *); +extern s32 func_L01_004E4E50(u8 *); +extern s32 func_00453508(s16 *); +extern u8 *func_00474DD0(u8 *, s32, s32); +extern void func_00476F88(u8 *, s32, s32, s32); + +s32 func_L01_004E4B20(u8 *moby) { + u8 *vars = *(u8 **)(moby + 0xAC); + u8 *hit; + s32 dmg; + + func_004771B0(moby, vars + 0xE0); + if (func_L01_004E4E50(moby) != 0 || vars[0xF4] == 0) { + *(u16 *)(moby + 0x34) &= 0xEFFF; + return 0; + } + *(u16 *)(moby + 0x34) |= 0x1000; + func_00453508((s16 *)(vars + 0x7A)); + if (moby[0x2C] == 0xFF || (&D_002423C0[0] + moby[0x2C])->moby != moby) { + hit = NULL; + } else { + hit = func_00474DD0(moby, 0x1800, 0); + } + if (hit != NULL && *(s16 *)(vars + 0x7A) == 0) { + dmg = *(f32 *)(hit + 0x2C); + *(s16 *)(vars + 0x7A) = 0x5; + *(f32 *)(vars + 0x50) -= dmg; + func_00476F88(moby, 1, 0, 0); + } + moby[0x2C] = 0xFF; + return 0; +} diff --git a/src/overlays/shared/L01_004F2F20.c b/src/overlays/shared/L01_004F2F20.c new file mode 100644 index 00000000..c69bb673 --- /dev/null +++ b/src/overlays/shared/L01_004F2F20.c @@ -0,0 +1,67 @@ +#include "common.h" + +extern void func_L00_006BB8E8(s32); +extern void func_L00_006EF5C0(void *, u32, s32, s32); +extern s32 func_L01_004F3128(void *, s32, s32); + +typedef struct { + u8 pad0[0x2B8]; + s32 f2B8; + s32 f2BC; + u8 pad2C0[0x2D8 - 0x2C0]; + s32 f2D8; + u8 pad2DC[0x2E8 - 0x2DC]; + f32 f2E8; +} Target; + +typedef struct { + u8 pad0[0x8]; + Target *(*find)(s32); +} FinderVt; + +typedef struct { + u8 pad0[0x40]; + u8 f40; + u8 pad41[0x4C - 0x41]; + FinderVt *vt; +} Ctx; + +typedef struct { + u8 pad0[0xB8]; + s32 fB8; +} Self; + +void func_L01_004F2F20(Self *self, Ctx *ctx) { + Target *t = ctx->vt->find(self->fB8); + s32 n; + s32 i; + s32 flag; + + if (t == NULL || t->f2E8 <= 0.0f) { + return; + } + n = 0; + for (i = 0; i < 4; i++) { + if (func_L01_004F3128(ctx, i, 0) != 0) { + n++; + } + } + if (n < 3) { + return; + } + if (t->f2D8 & 4) { + flag = 1; + } else { + flag = 0; + } + if (t->f2B8 != 0) { + func_L00_006BB8E8(t->f2B8); + } + if (t->f2BC != 0) { + func_L00_006BB8E8(t->f2BC); + } + ctx->f40 = 1; + if (flag) { + func_L00_006EF5C0(t, 0xFFFFFFFF, 0xD, -1); + } +} diff --git a/src/overlays/shared/L01_00500548.c b/src/overlays/shared/L01_00500548.c new file mode 100644 index 00000000..8137f5ea --- /dev/null +++ b/src/overlays/shared/L01_00500548.c @@ -0,0 +1,89 @@ +#include "common.h" + +typedef struct { + u8 pad0[0x30]; + void (*func30)(void *, s32); +} Ops; + +typedef struct { + u8 pad0[0x1A]; + s16 unk1A; + s16 unk1C; + u8 pad1E[0x3E - 0x1E]; + u8 unk3E; + u8 pad3F; + s32 unk40; + f32 unk44; + f32 unk48; + f32 unk4C; +} Cfg; + +typedef struct { + u8 pad0[0xC]; + u8 *unkC; + u8 pad10[0x2C - 0x10]; + u8 *unk2C; + u8 pad30[0x7C - 0x30]; + s16 unk7C; +} Sub; + +extern u8 *func_00476690(void *); +extern void *func_0047BBD8(void *); +extern u8 *func_0053CC88(void *); +extern void func_L01_005A37B8(void *, s32, s32, s32, s32); + +void func_L01_00500548(u8 *arg0) { + u8 *vars = *(u8 **)(arg0 + 0xAC); + u8 *info; + u8 *other_info; + Cfg *cfg; + s32 n; + u8 *extra; + u8 *obj; + + info = func_00476690(*(void **)(vars + 0x1D8)); + obj = *(u8 **)(vars + 0x1D8); + if (*(s16 *)(obj + 0xBC) == 0x2722) { + Sub *p = *(Sub **)(obj + 0xAC); + p->unkC = (u8 *)p + 0xE0; + p->unk2C = (u8 *)p + 0x170; + p->unk7C = 8; + } + other_info = func_0047BBD8(*(void **)(vars + 0x1D8)); + (*(Ops **)(vars + 0x204))->func30(*(void **)(vars + 0x1D8), 0); + cfg = func_0047BBD8(*(void **)(vars + 0x1D8)); + cfg->unk40 = 1; + cfg->unk1C = 3; + cfg->unk48 = 30.0f; + cfg->unk1A = 7; + cfg->unk3E = 20; + cfg->unk44 = 1.0f; + cfg->unk4C = 15.0f; + if (*(s32 *)(vars + 0x1C4) == -1 && *(s32 *)(vars + 0x1C8) == -1 && + *(s32 *)(other_info + 0x30) != -1) { + *(s32 *)(vars + 0x1C4) = *(s32 *)(other_info + 0x30); + *(s32 *)(vars + 0x1C8) = *(s32 *)(other_info + 0x30); + } else if (*(s32 *)(vars + 0x1C4) == -1) { + if (*(s32 *)(vars + 0x1C8) != *(s32 *)(vars + 0x1C4)) { + *(s32 *)(vars + 0x1C4) = *(s32 *)(vars + 0x1C8); + } + } else if (*(s32 *)(vars + 0x1C8) == -1) { + *(s32 *)(vars + 0x1C8) = *(s32 *)(vars + 0x1C4); + } + func_L01_005A37B8(*(void **)(vars + 0x1D8), 4, 1, 1, 0); + extra = func_0053CC88(*(void **)(vars + 0x1D8)); + if (*(s32 *)(vars + 0x54) < 2) { + *(s32 *)(vars + 0x54) = 100; + } + n = *(s32 *)(vars + 0x54); + *(s32 *)(info + 4) = n; + *(f32 *)(info + 0) = n; + if (extra != NULL) { + *(f32 *)(extra + 0x2E8) = *(f32 *)(info + 0); + *(f32 *)(extra + 0x2EC) = *(s32 *)(info + 4); + } + info[8] = vars[0x58]; + info[9] = vars[0x59]; + info[10] = vars[0x5A]; + *(s32 *)(vars + 0x1EC) = *(s16 *)(vars + 0x1FA) * 60.0f; +} diff --git a/src/overlays/shared/L01_005008D8.c b/src/overlays/shared/L01_005008D8.c new file mode 100644 index 00000000..ac87b070 --- /dev/null +++ b/src/overlays/shared/L01_005008D8.c @@ -0,0 +1,81 @@ +#include "common.h" + +typedef int u128 __attribute__((mode(TI))); + +typedef struct { + u8 pad0[0x1C]; + f32 (*getA)(s32); + u8 pad20[0x18]; + f32 (*getB)(s32); +} Ops; + +extern s16 func_00472590(s32, s32); +extern void func_L01_00591C70(u8 *, s32); +extern void func_L01_00501078(u128 *, u8 *); +extern f32 func_00453B10(f32, f32); +extern f32 func_00453BF8(f32, f32); +extern s32 func_00453508(s16 *); +extern void func_L01_00500888(u8 *); + +void func_L01_005008D8(u8 *moby) { + u8 *vars = *(u8 **)(moby + 0xAC); + u128 v; + s32 first; + u8 f; + f32 a; + f32 b; + + f = moby[0xBE]; + if ((f ^ 1) & 1) { + moby[0xBE] = f | 1; + first = 1; + } else { + first = 0; + } + if (first) { + *(s32 *)(vars + 0x174) = 0; + *(s16 *)(vars + 0x1F6) = func_00472590(2, 4); + func_L01_00591C70(moby, 0); + } + switch (moby[0x67]) { + case 0: + f = moby[0xBE]; + if (!(f & 0x20)) { + moby[0xBE] = f | 0x20; + first = 1; + } else { + first = 0; + } + if (first) { + func_L01_00501078(&v, moby); + *(u128 *)(vars + 0x190) = v; + } + a = (*(Ops **)(vars + 0x204))->getA(*(s32 *)(vars + 0x1D8)); + if (func_00453BF8(a, func_00453B10(*(f32 *)(vars + 0x178), *(f32 *)(vars + 0x198))) < 0.034906585f) { + b = (*(Ops **)(vars + 0x204))->getB(*(s32 *)(vars + 0x1D8)); + if (func_00453BF8(b, func_00453B10(*(f32 *)(vars + 0x174), *(f32 *)(vars + 0x194))) < 0.034906585f) { + func_L01_00591C70(moby, 1); + } + } + break; + case 1: + f = moby[0xBE]; + if (!(f & 0x20)) { + moby[0xBE] = f | 0x20; + first = 1; + } else { + first = 0; + } + if (first) { + *(s16 *)(vars + 0x1F4) = func_00472590(0x14, 0x5A); + } + if (func_00453508((s16 *)(vars + 0x1F4)) != 0) { + if (func_00453508((s16 *)(vars + 0x1F6)) != 0) { + func_L01_00500888(moby); + } else { + func_L01_00591C70(moby, 0); + } + } + break; + } +} diff --git a/src/overlays/shared/L01_00501688.c b/src/overlays/shared/L01_00501688.c new file mode 100644 index 00000000..5facb7ab --- /dev/null +++ b/src/overlays/shared/L01_00501688.c @@ -0,0 +1,58 @@ +#include "common.h" + +typedef int Vec128 __attribute__((mode(TI))); + +typedef struct Obj Obj; +typedef struct ObjVt { + u8 pad0[0x3C]; + Vec128 (*f3C)(s32); +} ObjVt; +typedef struct Vars { + u8 pad0[0x1D8]; + s32 f1D8; + u8 pad1DC[0x204 - 0x1DC]; + ObjVt *f204; +} Vars; +typedef struct Info { + u8 pad0[0x10]; + s32 f10; +} Info; +typedef struct Type0 { + u8 pad0[0x18]; + s32 f18; + s32 f1C; +} Type0; + +extern s32 func_00596F28(s32); +extern Info *func_005A16E8(s32); +extern s32 func_L00_005A38F8(Vec128 *, u8 *, s32, s32, s32); +extern void func_L00_005F1778(s32, u8 *, s32); +extern Type0 D_00242340; +extern u8 *D_003660F8[10]; + +s32 func_L01_00501688(u8 *moby) { + u8 buf[16]; + Vec128 v; + Vars *vars; + Info *info; + u8 *p; + s32 i; + s32 found; + + found = 0; + vars = *(Vars **)(moby + 0xAC); + info = func_005A16E8(vars->f1D8); + func_L00_005F1778(info->f10, buf, 0); + v = vars->f204->f3C(vars->f1D8); + for (i = 0, p = D_003660F8[0]; i < 10; p = D_003660F8[++i]) { + if (p != NULL && *(s32 *)(p + 0x2EF0) == info->f10 && *(u8 **)(p + 0x2EF4) != NULL) { + found = *(s32 *)(*(u8 **)(p + 0x2EF4) + 0x2B0); + } + } + if (func_L00_005A38F8(&v, buf, 2, vars->f1D8, 0) == 0 || D_00242340.f1C == 0 || + (D_00242340.f18 != 0 && + (func_00596F28(D_00242340.f18) != 0 || (found != 0 && D_00242340.f18 == found)))) { + return 1; + } + return 0; +} diff --git a/src/overlays/shared/L01_00501B38.c b/src/overlays/shared/L01_00501B38.c new file mode 100644 index 00000000..4b6708d1 --- /dev/null +++ b/src/overlays/shared/L01_00501B38.c @@ -0,0 +1,36 @@ +#include "common.h" + +typedef unsigned int Quadword __attribute__((mode(TI))); +typedef union { + f32 f[4]; + Quadword q; +} Vector; +extern f32 func_00453B10(f32 angle, f32 delta); + +Vector *func_L01_00501B38(Vector *output, const u8 *object, f32 *factor) +{ + u8 *state = *(u8 **)(object + 0xAC); + + if (object[0x69] == 2 && object[0x20] == 5) { + Vector result; + f32 first; + f32 second; + + if (factor) + *factor = 0.5f; + first = func_00453B10(*(f32 *)(state + 0x174), *(f32 *)(state + 0x194)); + second = func_00453B10(*(f32 *)(state + 0x178), *(f32 *)(state + 0x198)); + result.f[1] = first; + result.f[2] = second; + result.f[0] = 0.0f; + result.f[3] = 0.0f; + output->q = result.q; + } else if (object[0x69] == 3 && object[0x20] == 6) { + if (factor) + *factor = 0.5f; + output->q = *(Quadword *)(state + 0x170); + } else { + output->q = *(Quadword *)(state + 0x170); + } + return output; +} diff --git a/src/overlays/shared/L01_00501C18.c b/src/overlays/shared/L01_00501C18.c new file mode 100644 index 00000000..f2c859db --- /dev/null +++ b/src/overlays/shared/L01_00501C18.c @@ -0,0 +1,26 @@ +#include "common.h" + +f32 *func_00595DA0(s32); +s32 func_L01_00501C18(void *arg0) +{ + s32 temp_a1; + s32 var_a0; + s32 var_v0; + u8 temp_v1; + var_v0 = 0; + if (!((*func_00595DA0(*((s32 *) (((s8 *) (*((void **) (((s8 *) arg0) + 0xAC)))) + 0x1D8)))) <= 0.0f)) + { + var_a0 = 0; + if ((*((u8 *) (((s8 *) arg0) + 0x69))) == 3) + { + temp_v1 = *((u8 *) (((s8 *) arg0) + 0x20)); + if ((temp_v1 ^ 6) != 0) + temp_a1 = 0; + else + temp_a1 = 0x28; + var_a0 = ((temp_v1 ^ 8) == 0) ? (temp_a1 | 0x84) : (temp_a1); + } + return var_a0; + } + return var_v0; +} diff --git a/src/overlays/shared/L01_0051D538.c b/src/overlays/shared/L01_0051D538.c new file mode 100644 index 00000000..113070f1 --- /dev/null +++ b/src/overlays/shared/L01_0051D538.c @@ -0,0 +1,28 @@ +#include "common.h" + +typedef struct { + u8 pad[80]; + u8 *p50; + u8 pad2[1036]; +} Entry_3E6C58; +extern u8 D_00231810[]; +extern Entry_3E6C58 D_00230280[]; + +void func_L01_0051D538(s32 idx, s32 flag, f32 a, f32 b) +{ + u8 *e = (u8 *)D_00230280 + idx * 0x470; + u8 *p = *(u8 **)(e + 0x50); + if (*(s16 *)(p + 134) == 0) { + u8 *q = *(u8 **)(p + 112); + u8 *r = q + 0x60; + *(s16 *)(r + 0xFA) = 1; + *(f32 *)(r + 0xD8) = b; + if (flag) { + u8 *f = (u8 *)D_00231810 + idx * 0xB0; + u8 *s = *(u8 **)(f + 0x70); + *(f32 *)(r + 0xD4) = *(f32 *)(s + 0x130) + a; + } else { + *(f32 *)(r + 0xD4) = a; + } + } +} diff --git a/src/overlays/shared/L01_0051D7F0.c b/src/overlays/shared/L01_0051D7F0.c new file mode 100644 index 00000000..bd322c72 --- /dev/null +++ b/src/overlays/shared/L01_0051D7F0.c @@ -0,0 +1,21 @@ +#include "common.h" + +typedef struct { + u8 pad[80]; + u8 *p50; + u8 pad2[1036]; +} Entry_3E6C58; +extern Entry_3E6C58 D_00230280[]; + +void func_L01_0051D7F0(s32 player, s32 axes) { + u8 *e = ((u8 *)&D_00230280) + player * 1136; + u8 *o = *(u8 **)(e + 80); + if (*(s16 *)(o + 134) == 0) { + u8 *p = *(u8 **)(o + 112) + 0x1E0; + if (axes == -1) { + *(u32 *)(p + 0x10) |= 3; + } else { + *(u32 *)(p + 0x10) |= axes; + } + } +} diff --git a/src/overlays/shared/L01_0055CBE0.c b/src/overlays/shared/L01_0055CBE0.c new file mode 100644 index 00000000..7803bfaa --- /dev/null +++ b/src/overlays/shared/L01_0055CBE0.c @@ -0,0 +1,8 @@ +/* cflags: -Wuninitialized */ +#include "common.h" +extern void func_0044DE80(u64, s64, s64, u64); +extern s32 D_00222B10; +void func_L01_0055CBE0(void) +{ + func_0044DE80((u64)&D_00222B10, 0x47, 0x513F1, 0U); +} diff --git a/src/overlays/shared/L01_0056D0C8.c b/src/overlays/shared/L01_0056D0C8.c new file mode 100644 index 00000000..cd583a83 --- /dev/null +++ b/src/overlays/shared/L01_0056D0C8.c @@ -0,0 +1,56 @@ +#include "common.h" + +extern s32 func_0056D480(void *, void *); +extern void func_0056E630(void *, s32); +extern s32 func_0056B748(void *); +extern s32 func_0056D560(void *); +extern s32 func_00569478(void *, void *); +extern s32 func_0055D148(void *); +extern void func_0056C878(void *, void *); +extern s32 func_0056B640(void *, s32); +extern u8 *D_00222D14; + +void func_L01_0056D0C8(u8 *arg0) { + u8 *n; + s32 idle = 1; + + if (arg0 == NULL) { + return; + } + for (n = *(u8 **)(arg0 + 0x3F0); n != NULL; n = *(u8 **)(n + 0x1AC)) { + if (n[0x1DA] == 0 && *(s32 *)(n + 0x1C8) != -1 && func_0056D480(arg0, n) != 0) { + func_0056E630(D_00222D14 + (*(s32 *)(n + 0x1C8) << 8), -1); + n[0x1DA] = 1; + } + if (func_0056B748(n) != 0) { + continue; + } + idle = 0; + if (func_0056D560(n) == 0) { + continue; + } + if (n[0x17C] == 0 && func_00569478(n, arg0 + 0xD0) == 0) { + continue; + } + if (func_0055D148(n + 0x19C) != 0) { + func_0056C878(arg0, n); + } + } + if (arg0[0] != 0 && idle != 0) { + for (n = *(u8 **)(arg0 + 0x3F0); n != NULL; n = *(u8 **)(n + 0x1AC)) { + s32 i; + u8 *slot; + *(s32 *)(n + 0x178) = 0; + for (i = 0, slot = n + 0x53; i < 8; i++, slot += 0x24) { + if (func_0056B640(n, i) != 0 && *(s32 *)(slot + 1) != -1) { + *(s32 *)(n + 0x178) |= 1 << slot[0]; + } + } + n[0x17C] = 0; + *(s16 *)(n + 0x1A2) = 0; + *(s16 *)(n + 0x17E) = 0; + n[0x1DB] = 0; + *(s32 *)(n + 0x19C) = *(f32 *)(n + 0x198) * 60.0f; + } + } +} diff --git a/src/overlays/shared/L01_0056F250.c b/src/overlays/shared/L01_0056F250.c new file mode 100644 index 00000000..6d7baca2 --- /dev/null +++ b/src/overlays/shared/L01_0056F250.c @@ -0,0 +1,14 @@ +#include "common.h" +typedef long long s128; +extern s32 func_0056EE18(s128, void *, s128, s128 *, s128 *, void *); + +s32 func_L01_0056F250(void *first, void *context, void *second, s128 *output, void *settings) +{ + s128 local; + if (!first || !second) + return 0; + local = *(s128 *)((u8 *)second + 0xF0); + return func_0056EE18(*(s128 *)((u8 *)first + 0x10), context, + *(s128 *)((u8 *)second + 0x10), &local, + output, settings); +} diff --git a/src/overlays/shared/L01_00585D40.c b/src/overlays/shared/L01_00585D40.c new file mode 100644 index 00000000..9d8c998c --- /dev/null +++ b/src/overlays/shared/L01_00585D40.c @@ -0,0 +1,11 @@ +#include "common.h" + +s32 func_L01_00585B78(void *arg0); + +s32 func_L01_00585D40(void *arg0) { + if ((*(u8 *)((s8 *)(func_L01_00585B78(arg0)) + (0x10))) != 0) { + (*(u16 *)((s8 *)(arg0) + (0x34))) = (u16) ((*(u16 *)((s8 *)(arg0) + (0x34))) | 2); + return 1; + } + return 0; +} diff --git a/src/overlays/shared/L01_005A37B8.c b/src/overlays/shared/L01_005A37B8.c new file mode 100644 index 00000000..e34b0f93 --- /dev/null +++ b/src/overlays/shared/L01_005A37B8.c @@ -0,0 +1,16 @@ +#include "common.h" +extern u8 *func_005A3780(const u8 *); +extern void *func_00476F50(void *); +extern s32 func_L01_005A4680(void *); +extern s32 func_L01_005A4648(const u8 *); +void func_L01_005A37B8(void *object,s32 mode,s32 enable) +{ + u8 *state=func_005A3780(object); + void *value=func_00476F50(object); + if(state){ + *(s16 *)(state+8)=mode; + *(void **)state=value; + if(enable)func_L01_005A4680(object); + else func_L01_005A4648(object); + } +} diff --git a/src/overlays/shared/L01_005B4EB0.c b/src/overlays/shared/L01_005B4EB0.c new file mode 100644 index 00000000..60b6f694 --- /dev/null +++ b/src/overlays/shared/L01_005B4EB0.c @@ -0,0 +1,12 @@ +#include "common.h" + +extern void *func_004765F0(void *); + +s32 func_L01_005B4EB0(void *arg0, s32 arg1) +{ + u8 *state = func_004765F0(arg0); + if (!state) + return 0; + *(s32 *)(state + 0x58) = arg1; + return 1; +} diff --git a/src/overlays/shared/L01_0063B1B8.c b/src/overlays/shared/L01_0063B1B8.c new file mode 100644 index 00000000..866e7582 --- /dev/null +++ b/src/overlays/shared/L01_0063B1B8.c @@ -0,0 +1,20 @@ +#include "common.h" + +extern int func_0011A930(int, void (*)(void), int); +typedef unsigned int Rac2Native_74a5d71aacb394c6_u32; +typedef struct { + Rac2Native_74a5d71aacb394c6_u32 first[64]; + Rac2Native_74a5d71aacb394c6_u32 second[64]; + unsigned char gap[0x20]; + int count; + Rac2Native_74a5d71aacb394c6_u32 current; +} Rac2Native_74a5d71aacb394c6_ExtraIndexState48; +extern int func_0011A930(int, void (*)(void), int); + +void func_L01_0063B1B8(Rac2Native_74a5d71aacb394c6_ExtraIndexState48 *state, int index) { + state->first[index] = 0; + state->second[index] = 0; + if (--state->count == 0) { + state->current = 0; + } +} diff --git a/src/overlays/shared/L02_004CB2E8.c b/src/overlays/shared/L02_004CB2E8.c new file mode 100644 index 00000000..a300bd27 --- /dev/null +++ b/src/overlays/shared/L02_004CB2E8.c @@ -0,0 +1,17 @@ +#include "common.h" + +extern void func_004C4D88(void *, void *); +extern void func_00638BF8(s32, s32, s32, s32, f32); +extern void func_005D7540(s32, s32, void *); +extern void func_00544188(void *, s32, s32); + +void func_L02_004CB2E8(u8 *arg0) { + u8 *vars = *(u8 **)(arg0 + 0xAC); + s32 target = *(s32 *)(*(u8 **)(vars + 0x170) + 0x2B8); + + func_004C4D88(arg0, vars); + func_00638BF8(target, 0x24, 0, 0, 10.0f); + *(f32 *)(vars + 0x1F8) = 1.0f; + func_005D7540(2, 0, arg0); + func_00544188(arg0, 4, -1); +} diff --git a/src/overlays/shared/L02_004E6370.c b/src/overlays/shared/L02_004E6370.c new file mode 100644 index 00000000..d848d326 --- /dev/null +++ b/src/overlays/shared/L02_004E6370.c @@ -0,0 +1,68 @@ +#include "common.h" + +typedef struct { + u8 pad0[0x70]; + s32 x70; + s32 x74; + u8 pad78[0xC]; + s16 n; + u8 pad86[0x16A]; + u8 *mobys[1]; +} Arena; + +extern Arena D_0023C180; +extern u8 *D_00362C78[]; +extern s32 D_0021DE10; +extern void func_L00_00596A28(s32, s32, s32, s32); +extern void func_L00_00598118(s32); +extern void func_L02_004E3270(void); + +void func_L02_004E6370(void) { + u8 *moby; + u8 *m; + u8 *q; + s32 i; + s32 j; + s32 id; + + for (i = 0; i < D_0023C180.n; i++) { + moby = D_0023C180.mobys[i]; + if (moby != NULL) { + id = *(s16 *)(moby + 0xBC); + if (id == 0x216A || id == 0x2691 || (id == 0x2429 && D_0021DE10 == 0x2574) || id == 0x20FD || id == 0x2703 || id == 0x2505) { + func_L00_00596A28(i, 0x96, 0, 0); + } + if (*(s16 *)(moby + 0xBC) == 0x216A || *(s16 *)(moby + 0xBC) == 0x2691) { + *(u16 *)(D_0023C180.mobys[i] + 0x74) |= 0x1000; + } + if (*(s16 *)(moby + 0xBC) == 0xA) { + m = D_0023C180.mobys[i]; + if (D_0023C180.x70 == 2) { + *(u16 *)(m + 0x74) |= 0x1000; + } else { + *(u16 *)(m + 0x74) |= 0x1002; + } + func_L00_00596A28(i, 0x6E, 0x80306629, 0x8058B856); + } + if (*(s16 *)(moby + 0xBC) == 0x243D) { + func_L00_00596A28(i, 0x168, 0xC0808080, 0x80505050); + } + if (*(s16 *)(moby + 0xBC) == 0x247F || *(s16 *)(moby + 0xBC) == 0x24D9 || *(s16 *)(moby + 0xBC) == 0x24D5) { + func_L00_00596A28(i, 0x5A, 0xFFC0C0C0, 0xB0505050); + } + } + } + func_L02_004E3270(); + if (D_0023C180.x70 == 0x1 && D_0023C180.x74 < 0xA0) { + func_L00_00598118(0); + } + if (D_0023C180.x70 == 0x2 && D_0023C180.x74 >= 0x65) { + func_L00_00598118(0); + } + func_L00_00598118(0); + for (j = 0, q = D_00362C78[0]; j < 10; q = D_00362C78[++j]) { + if (q != NULL) { + (*(u8 **)(q + 0x2EF0))[0x31] = 0; + } + } +} diff --git a/src/overlays/shared/L04_00497910.c b/src/overlays/shared/L04_00497910.c new file mode 100644 index 00000000..fb6d4327 --- /dev/null +++ b/src/overlays/shared/L04_00497910.c @@ -0,0 +1,20 @@ +/* cflags: -malign-jumps=3 */ +#include "common.h" + +void func_004E1A58(int, int); +void func_L04_00497910(void *arg0, s32 arg1) { + u16 temp_3; + void *temp_4; + + if (arg1 != 0) { + temp_4 = (*(void **)((u8 *)(arg0) + (0x24))); + temp_3 = (*(u16 *)((u8 *)(arg0) + (0x34))) & 0xFFBE; + (*(u16 *)((u8 *)(arg0) + (0x34))) = temp_3; + (*(u16 *)((u8 *)(arg0) + (0x34))) = (u16) (temp_3 | ((*(u16 *)((u8 *)(temp_4) + (0x44))) & 0x1000)); + (*(s32 *)((u8 *)(arg0) + (0x98))) = (s32) (*(s32 *)((u8 *)(temp_4) + (0x10))); + return; + } + (*(s32 *)((u8 *)(arg0) + (0x98))) = 0; + (*(u16 *)((u8 *)(arg0) + (0x34))) = (u16) (((*(u16 *)((u8 *)(arg0) + (0x34))) | 0x41) & 0xEFFF); + func_004E1A58((s32) arg0, 1); +} diff --git a/src/overlays/shared/L05_004EEEC8.c b/src/overlays/shared/L05_004EEEC8.c new file mode 100644 index 00000000..d1eaa2fc --- /dev/null +++ b/src/overlays/shared/L05_004EEEC8.c @@ -0,0 +1,41 @@ +#include "common.h" + +typedef struct { + u8 pad0[0x3C]; + u8 *moby; +} Target; + +extern Target D_0023F300[]; + +extern void func_0056D8F8(u8 *, u8 *); +extern s32 func_005340D0(s16 *); +extern u8 *func_0056AF78(u8 *, s32, s32); +extern void func_0056D6D0(u8 *, s32, s32, s32); +extern void func_005FD288(s32, s32, u8 *); +extern void func_00568B98(u8 *, s32, s32); + +s32 func_L05_004EEEC8(u8 *moby) { + u8 *vars = *(u8 **)(moby + 0xAC); + u8 *hit; + s32 dmg; + + func_0056D8F8(moby, vars + 0xE0); + func_005340D0((s16 *)(vars + 0x7A)); + if (moby[0x2C] == 0xFF || (&D_0023F300[0] + moby[0x2C])->moby != moby) { + hit = NULL; + } else { + hit = func_0056AF78(moby, 0x1800, 0); + } + if (hit != NULL && *(s16 *)(vars + 0x7A) == 0) { + dmg = *(f32 *)(hit + 0x2C); + *(s16 *)(vars + 0x7A) = 0xA; + *(f32 *)(vars + 0x50) -= dmg; + func_0056D6D0(moby, 1, 0, 0); + func_005FD288(1, 0, moby); + } + moby[0x2C] = 0xFF; + if (*(f32 *)(vars + 0x50) <= 0.0f) { + func_00568B98(moby, 5, -1); + } + return 0; +} diff --git a/src/overlays/shared/L06_0049AFE8.c b/src/overlays/shared/L06_0049AFE8.c new file mode 100644 index 00000000..e1c7d1bf --- /dev/null +++ b/src/overlays/shared/L06_0049AFE8.c @@ -0,0 +1,91 @@ +#include "common.h" + +typedef int u128 __attribute__((mode(TI))); + +typedef struct { + s32 area0; + s32 area1; + s16 secs; + s16 timer; + u8 *from; + u8 *to; + u8 busy; +} Vars; + +extern s32 D_0021E694; +extern s32 D_0021E698; +extern void func_0046BDD0(u8 *); +extern void func_00473A88(u8 *, s32, s32); +extern s32 func_00453538(s16 *); +extern s32 func_L06_0049B248(void); +extern u8 *func_00510BE8(s32); +extern s32 func_0047BA40(u128, s32); +extern s32 func_0046B5B8(u8 **, u8 *, s32); +extern void func_0051FDC0(u8 *, u8 *, u8 *, s32, s32, s32, s32, s32); + +void func_L06_0049AFE8(u8 *moby) { + Vars *v; + s32 mask; + s32 i; + u8 *p; + u8 *out; + + if (D_0021E694 != 0 || D_0021E698 != 1) { + func_0046BDD0(moby); + return; + } + v = *(Vars **)(moby + 0xAC); + if (moby[0x20] == 0) { + if (v->area0 == -1) { + func_0046BDD0(moby); + return; + } + v->busy = 0; + v->timer = 0; + func_00473A88(moby, 2, -1); + } + switch (moby[0x20]) { + case 1: + if (func_00453538(&v->timer)) { + func_00473A88(moby, 2, -1); + } + break; + case 2: + if (func_L06_0049B248() != 0) { + break; + } + mask = 0; + for (i = 0; i < 2; i++) { + if (func_0047BA40(*(u128 *)(func_00510BE8(i) + 0xA0), v->area0)) { + mask |= 1 << i; + } + } + if (mask == 0 || mask == 3) { + break; + } + i = mask & 1; + mask = 1; + p = func_00510BE8(i); + v->from = p; + if (v->area1 != -1 && func_0047BA40(*(u128 *)(p + 0xA0), v->area1)) { + break; + } + v->to = func_00510BE8(mask - i); + func_00473A88(moby, 3, -1); + break; + case 3: + if (func_L06_0049B248() != 0 || + (v->area1 != -1 && func_0047BA40(*(u128 *)(v->from + 0xA0), v->area1))) { + func_00473A88(moby, 2, -1); + break; + } + v->busy = 1; + if (func_0046B5B8(&out, v->to, 0)) { + func_0051FDC0(v->from, out, out + 0x10, -1, 1, 1, 0, 1); + v->timer = (s32)((f32)v->secs * 60.0f); + func_00473A88(moby, 1, -1); + } + v->busy = 0; + break; + } +} diff --git a/src/overlays/shared/L06_004C7378.c b/src/overlays/shared/L06_004C7378.c new file mode 100644 index 00000000..bb5bd53f --- /dev/null +++ b/src/overlays/shared/L06_004C7378.c @@ -0,0 +1,17 @@ +/* cflags: -O2 -G8 -Wuninitialized */ +#include "common.h" +extern void func_0053C1C8(void *, s32, s32); +extern void func_004C73F0(void *, s32, s32); +extern void func_004C75C0(void *); +void func_L06_004C7378(void *arg0) +{ + u8 *owner = *(u8 **)((u8 *)arg0 + 0xAC); + *(u16 *)((u8 *)arg0 + 0x34) |= 1; + *(s32 *)(owner + 0x54) = 1; + *(f32 *)(owner + 0x50) = 1.0f; + if (*(u8 *)(owner + 0xEC)) + *(u8 *)(owner + 0xED) = 0; + func_004C73F0(arg0, *(u8 *)(owner + 0xEC), *(u8 *)(owner + 0xED)); + func_004C75C0(arg0); + func_0053C1C8(arg0, 1, -1); +} diff --git a/src/overlays/shared/L06_004C8388.c b/src/overlays/shared/L06_004C8388.c new file mode 100644 index 00000000..0cc525e3 --- /dev/null +++ b/src/overlays/shared/L06_004C8388.c @@ -0,0 +1,12 @@ +#include "common.h" + +extern s32 func_L06_004C7210(u8 *); +extern s32 D_00222614; + +s32 func_L06_004C8388(void *arg0) +{ + u8 *state = *(u8 **)((u8 *)arg0 + 0xAC); + if (*(s16 *)(state + 0x8C) != -1 && *(s16 *)(state + 0x8E) == 0) + return 1; + return func_L06_004C7210((u8 *)(D_00222614 + (*(s32 *)(state + 0x6C) << 8))) != 0; +} diff --git a/src/overlays/shared/L10_004DCC58.c b/src/overlays/shared/L10_004DCC58.c new file mode 100644 index 00000000..0e22c5eb --- /dev/null +++ b/src/overlays/shared/L10_004DCC58.c @@ -0,0 +1,17 @@ +#include "common.h" + +extern void func_005444C8(void *); +extern void func_00473A88(void *, s32, s32); + +void func_L10_004DCC58(u8 *arg0) { + u8 *vars = *(u8 **)(arg0 + 0xAC); + + *(s16 *)(vars + 0x76) = (f32)*(s16 *)(vars + 0x74) * 60.0f; + func_005444C8(arg0); + arg0[0x30] = 0xFF; + if (*(s32 *)(vars + 0x78) != 0) { + func_00473A88(arg0, 1, -1); + } else { + func_00473A88(arg0, 2, -1); + } +} diff --git a/src/overlays/shared/L11_00492768.c b/src/overlays/shared/L11_00492768.c new file mode 100644 index 00000000..c52404d6 --- /dev/null +++ b/src/overlays/shared/L11_00492768.c @@ -0,0 +1,56 @@ +#include "common.h" + +typedef struct { + u8 pad0[0x3C]; + u8 *moby; +} Target; + +typedef struct { + u8 pad0[0x18]; + u8 *last; + u8 pad1C[8]; + s16 timer; +} Hits; + +extern Target D_0023EE80[]; + +extern void func_00541E10(u8 *, u8 *); +extern s32 func_00508988(s16 *); +extern u8 *func_0053F490(u8 *, s32, s32); +extern s32 func_00492888(u8 *); +extern void func_00541BE8(u8 *, s32, s32, s32); + +f32 func_L11_00492768(u8 *moby) { + u8 *vars = *(u8 **)(moby + 0xAC); + Hits *h; + u8 *hit; + + func_00541E10(moby, NULL); + h = (Hits *)(vars + 0x50); + if (h->last != NULL) { + if (h->last[0x20] == 0xFE) { + goto clear; + } + if (h->last[0x20] == 0xFD) { + goto clear; + } + } + if (func_00508988((s16 *)(vars + 0x74)) != 0) { + clear: + h->last = NULL; + } + if (moby[0x2C] == 0xFF || (&D_0023EE80[0] + moby[0x2C])->moby != moby) { + hit = NULL; + } else { + hit = func_0053F490(moby, 0x0FFFFFFF, 0); + } + moby[0x2C] = 0xFF; + if (hit != NULL && *(u8 **)(hit + 0x20) != NULL && func_00492888(*(u8 **)(hit + 0x20)) != 0 && + h->last != *(u8 **)(hit + 0x20)) { + h->last = *(u8 **)(hit + 0x20); + h->timer = 0x78; + func_00541BE8(moby, 1, 0, 0); + return *(f32 *)(hit + 0x2C); + } + return 0.0f; +} diff --git a/src/overlays/shared/L13_004BD628.c b/src/overlays/shared/L13_004BD628.c new file mode 100644 index 00000000..279a5da1 --- /dev/null +++ b/src/overlays/shared/L13_004BD628.c @@ -0,0 +1,46 @@ +#include "common.h" + +extern s32 func_0054B220(u8 *); +extern void func_00556700(u8 *, s32, s32, f32, s32); +extern void func_00556808(u8 *, s32, s32); +extern void func_0054B1C0(u8 *, s32); +extern void func_005EABA8(s32, s32, u8 *); + +void func_L13_004BD628(u8 *moby) { + switch (moby[0x20]) { + case 0: + if (func_0054B220(moby) != 0) { + func_00556700(moby, 2, 0, 0.0f, 0); + func_00556808(moby, 4, -1); + } else { + func_00556700(moby, 0, 0, 0.0f, 0); + func_00556808(moby, 1, -1); + } + break; + case 1: + if (moby[0xBE] & 4) { + func_0054B1C0(moby, 1); + func_00556808(moby, 2, -1); + } + break; + case 2: + if (++*(u16 *)(moby + 0x6A) == 0x5A) { + func_005EABA8(0, 0x130, moby); + func_00556700(moby, 1, 0, 0.0f, 0); + func_00556808(moby, 3, -1); + } + break; + case 3: + moby[0x55] |= 0x10; + if (moby[0x55] & 2) { + func_00556700(moby, 2, 0, 0.0f, 0); + *(f32 *)(moby + 0x48) = 0.0f; + func_00556808(moby, 4, -1); + } + break; + case 4: + *(s32 *)(moby + 0x98) = 0; + *(u16 *)(moby + 0x34) |= 2; + break; + } +} diff --git a/src/overlays/shared/L41_004484C8.c b/src/overlays/shared/L41_004484C8.c new file mode 100644 index 00000000..9fb05b54 --- /dev/null +++ b/src/overlays/shared/L41_004484C8.c @@ -0,0 +1,85 @@ +#include "common.h" + +typedef struct C_004484C8 { + u8 pad0[0x24]; + f32 unk24; +} C_004484C8; + +typedef struct M_004484C8 { + u8 pad0[0x24]; + C_004484C8 *unk24; + u8 pad28[0x38 - 0x28]; + s64 unk38; + u8 pad40[0x64 - 0x40]; + u8 unk64; + u8 unk65; + u8 pad66[0x70 - 0x66]; + f32 unk70; + u8 pad74[0xAC - 0x74]; + void *unkAC; + u8 padB0[0xBC - 0xB0]; + s16 unkBC; +} M_004484C8; + +typedef struct V_004484C8 { + u8 pad0[0x10]; + s32 unk10; + u8 pad14[0x18 - 0x14]; + M_004484C8 *unk18; + M_004484C8 *unk1C; +} V_004484C8; + +typedef struct W_004484C8 { + u8 pad0[0x33C]; + M_004484C8 *unk33C; +} W_004484C8; + +typedef struct A_004484C8 { + u8 pad0[0xAC]; + V_004484C8 *unkAC; +} A_004484C8; + +extern s32 func_00446418(s32); +extern M_004484C8 *func_L00_005DD000(s32, s32); +extern void func_L00_005DD4A0(M_004484C8 *); +extern void func_L00_005EEA48(M_004484C8 *, M_004484C8 *, s32, s32); +extern void func_L00_005F1180(M_004484C8 *, M_004484C8 *); +extern void func_L00_007011A8(M_004484C8 *, s32, s32); + +void func_L41_004484C8(A_004484C8 *arg0) { + V_004484C8 *v; + M_004484C8 *target; + M_004484C8 *m; + W_004484C8 *w; + s32 r; + + v = arg0->unkAC; + target = v->unk18; + if (target == NULL) { + return; + } + r = func_00446418(v->unk10); + if (r == 0) { + return; + } + if (target->unkBC == 0x2106) { + if (v->unk1C != NULL) { + func_L00_005DD4A0(v->unk1C); + } + v->unk1C = func_L00_005DD000(0x210B, 0); + if (v->unk1C != NULL) { + v->unk1C->unk64 = 0; + v->unk1C->unk65 = 10; + func_L00_005F1180(v->unk1C, target); + v->unk1C->unk38 = target->unk38; + w = target->unkAC; + if (w != NULL) { + w->unk33C = v->unk1C; + } + m = v->unk1C; + m->unk70 = m->unk24->unk24 * 1.6500001f; + func_L00_005EEA48(target, v->unk1C, 1, 0); + } + } + func_L00_007011A8(target, r, 0); +} diff --git a/src/pal/game/004DA960.c b/src/pal/game/004DA960.c deleted file mode 100644 index 34644a14..00000000 --- a/src/pal/game/004DA960.c +++ /dev/null @@ -1,44 +0,0 @@ -#include "common.h" -typedef struct { - s32 a, b; - void *data; - char tail[12]; -} Item; -typedef struct { - char pad[0x34]; - Item *items; - char gap[0x18]; - s32 count, index; -} List; -typedef struct { - s32 a, b, flags; - char pad[0xA8]; - List list; - char gap[0x14]; - s32 handle; -} State; -extern State D_00321650[]; -extern char D_001CE230[]; -extern s32 D_00221C68; -extern s32 func_00506BB8(void), func_0049A9D8(void *, s32), func_004A2798(s32 *, s32), func_005071B8(s32, s32); -extern void func_0049AA18(s32); -static inline Item *selected(List *l) -{ - if (l->index < 0) - return 0; - return l->items + l->index; -} -void func_004DA960(void) -{ - State *p = D_00321650 + func_00506BB8(); - List *l = &p->list; - if (l->count > 0) { - if (p->handle) { - func_0049AA18(p->handle); - p->handle = 0; - } - p->handle = func_0049A9D8(D_001CE230 + *(s32 *)selected(l)->data * 8, -1); - func_005071B8(func_004A2798(&D_00221C68, 4), p->handle); - } - p->flags &= ~2; -} diff --git a/src/pal/game/0054C250.c b/src/pal/game/0054C250.c deleted file mode 100644 index 474af761..00000000 --- a/src/pal/game/0054C250.c +++ /dev/null @@ -1,40 +0,0 @@ -#include "common.h" -typedef struct { - s32 time; - s32 type; - s32 subtype; - s32 level; - s32 id; - s32 bit; -} State; -extern s32 func_0054C330(const State *state); -extern s32 func_0054C100(s32 id, s32 *row); -extern s32 D_00171BCC[]; -extern u8 D_00171C88[]; -typedef struct { - u8 unknown0[9]; - u8 unlocked; - u8 unknownA[2]; -} Record; -extern Record D_001F8878[]; -s32 func_0054C250(State *state) -{ - if (!func_0054C330(state)) - return 0; - if (D_00171BCC[0] < state->time) - return 0; - if ((u32)state->id + 1 >= 2) { - s32 row; - s32 index = func_0054C100(state->id, &row); - u32 offset = (u32)index * 12 + (u32)((s32)((u32)row - 1) % 20) * 0x304; - Record *record = (Record *)((u32)D_001F8878 + offset); - if (!record->unlocked) - return 0; - } - if (state->bit != -1) { - u32 word = *(u32 *)((u32)D_00171C88 + (((u32)state->bit >> 5) << 2)); - if (!(word & (1u << (state->bit & 31)))) - return 0; - } - return 1; -} diff --git a/src/pal/net/01ED66B0.c b/src/pal/net/01ED66B0.c deleted file mode 100644 index c810886a..00000000 --- a/src/pal/net/01ED66B0.c +++ /dev/null @@ -1,16 +0,0 @@ -/* cflags: @ee296 -O2 -G0 */ -#include "common.h" - -s32 func_0011D5D8(void *); -s32 func_01ED5DD0(s32, s32, s32, void *); -extern s32 D_00169D50; -extern s32 D_00169D54; -extern s32 D_001984F8[]; -extern s32 D_001B78F8[]; - -s32 func_01ED66B0(void) { - func_0011D5D8(D_001984F8); - if (D_00169D50 != 1) return -0xF; - if (D_00169D54 == 0) return -0x10; - return (func_01ED5DD0(1, 0x7, 0x66, D_001B78F8) == 0) ? 0 : -5; -} diff --git a/src/pal/net/01EEE13C.c b/src/pal/net/01EEE13C.c deleted file mode 100644 index 072d9759..00000000 --- a/src/pal/net/01EEE13C.c +++ /dev/null @@ -1,22 +0,0 @@ -/* cflags: -Os -G8 -mno-split-addresses -mips3 -mcpu=r4000 */ -#include "common.h" - -typedef struct Type1 Type1; -struct Type1 { - char _p0[0x84]; - s32 f84; -}; - -s32 func_01F0C090(void *, s32); -extern Type1 *D_0016E430[]; -extern s32 D_0019C400[]; - -s32 func_01EEE13C(void) { - if (D_0016E430[0] == NULL) { - func_01F0C090(D_0019C400, 0x6D); - } - if (D_0016E430[0]->f84 == 0) { - func_01F0C090(D_0019C400, 0x6E); - } - return D_0016E430[0]->f84; -} diff --git a/src/pal/net/01EF2CC4.c b/src/pal/net/01EF2CC4.c deleted file mode 100644 index 0a6e9d64..00000000 --- a/src/pal/net/01EF2CC4.c +++ /dev/null @@ -1,17 +0,0 @@ -/* cflags: @ee296 -O2 -G0 -falign-jumps=1 -mno-split-addresses */ -#include "common.h" - -s32 func_01F07750(s32); -s32 func_01F07C80(s32); -extern s32 D_0016E658[]; - -s32 func_01EF2CC4(void) { - s32 temp_v0; - - if (D_0016E658[0] == 0) { - temp_v0 = func_01F07C80(0x204); - func_01F07750(temp_v0); - D_0016E658[0] = temp_v0; - } - return D_0016E658[0]; -} diff --git a/src/pal/net/01F04C2C.c b/src/pal/net/01F04C2C.c deleted file mode 100644 index dc73cd46..00000000 --- a/src/pal/net/01F04C2C.c +++ /dev/null @@ -1,8 +0,0 @@ -/* cflags: @ee296 -O2 -G0 -falign-jumps=1 -mno-split-addresses */ -#include "common.h" - -s32 func_01F04C40(); - -void func_01F04C2C(void) { - func_01F04C40(); -} diff --git a/src/pal/net/01F07100.c b/src/pal/net/01F07100.c deleted file mode 100644 index 62e651dc..00000000 --- a/src/pal/net/01F07100.c +++ /dev/null @@ -1,17 +0,0 @@ -/* cflags: @ee296 -O2 -G0 -falign-jumps=1 -mno-split-addresses */ -#include "common.h" - -void func_0011EAD0(void *); -void func_01F07154(void *); -extern s32 D_0016E6D4[]; -extern s32 D_001B8020[]; -void func_01F075D0(); - -void *func_01F07100(void) { - if (D_0016E6D4[0] == 0) { - func_01F07154(D_001B8020); - D_0016E6D4[0] = 1; - func_0011EAD0(func_01F075D0); - } - return D_001B8020; -} diff --git a/src/pal/overlays/shared/L01_0045BF60.c b/src/pal/overlays/shared/L01_0045BF60.c deleted file mode 100644 index 5d3a632b..00000000 --- a/src/pal/overlays/shared/L01_0045BF60.c +++ /dev/null @@ -1,26 +0,0 @@ -#include "common.h" - -typedef int u128 __attribute__((mode(TI))); - -extern s32 func_L01_00429658(u128 *, u128 *, void *, s32, s32 *, s32, u32, f32, f32); -extern void func_L01_00429818(s32, s32); -extern void func_L01_00429858(s32, s32); -extern void func_L01_004425F0(s32, u128, s32, s32, u32, u32, f32, f32, f32); - -// Calls func_L01_00429658 with copies of arg1 and arg2, a word set to 0x80000000, 10.0 and the -// linked byte at +0x28B as a float; when it returns non-zero, calls func_L01_00429818(r, 4), -// func_L01_00429858(r, 25) and func_L01_004425F0 on the linked word at +0x5F0 with arg1. -void func_L01_0045BF60(u8 *arg0, u128 arg1, u128 arg2) { - u8 *vars = *(u8 **)(arg0 + 0xAC); - u128 pos = arg1; - u128 dir = arg2; - s32 mask = 0x80000000; - s32 shot; - - shot = func_L01_00429658(&pos, &dir, arg0, 1, &mask, -1, 0xFFFFFFFF, 10.0f, (f32)vars[0x28B]); - if (shot != 0) { - func_L01_00429818(shot, 4); - func_L01_00429858(shot, 0x19); - func_L01_004425F0(*(s32 *)(vars + 0x5F0), pos, 0, -1, 0x84204080, 0x84204080, 0.5f, 1.0f, 1.25f); - } -} From 2102d4b37824892cec9b7c486feeb84c5842a425 Mon Sep 17 00:00:00 2001 From: Adrien Girardeau Date: Tue, 10 Nov 2026 20:51:02 +0000 Subject: [PATCH 4/4] fix: callee and global names of 32 shape twins audit_relocs does not cover 78 of the new US functions are not in config/functions.tsv, so audit_relocs.py does not check their relocations. Checked them against the retail words (calls, HI16/LO16 and GPREL16 with gp 0x22597F): 32 files still named the twin callees or globals. Renamed to what the disc reaches; the built bytes do not change. Co-Authored-By: Claude --- src/core/00159258.c | 4 +- src/game/0041E280.c | 16 +++---- src/game/00429BE8.c | 20 ++++---- src/game/00430D08.c | 24 +++++----- src/game/00430E80.c | 36 +++++++-------- src/game/004331B0.c | 28 +++++------ src/game/004363D0.c | 20 ++++---- src/game/004473C0.c | 4 +- src/game/00448D98.c | 46 +++++++++---------- src/game/0044A410.c | 22 ++++----- src/game/0044AA58.c | 24 +++++----- src/game/0044D6D0.c | 38 +++++++-------- src/game/0044DF08.c | 6 +-- src/game/00454600.c | 10 ++-- src/game/004597B8.c | 36 +++++++-------- src/game/0045D108.c | 32 ++++++------- src/game/0045E860.c | 20 ++++---- src/game/00462D68.c | 8 ++-- src/game/004653A8.c | 26 +++++------ src/game/004655A0.c | 32 ++++++------- src/game/00465F38.c | 34 +++++++------- src/game/004660F8.c | 18 ++++---- .../l00_multiplayer_menu/L00_0069DA50.c | 4 +- .../l00_multiplayer_menu/L00_00734928.c | 12 ++--- src/overlays/shared/L00_00602AA0.c | 16 +++---- src/overlays/shared/L00_00602E10.c | 16 +++---- src/overlays/shared/L00_0069C6A8.c | 4 +- src/overlays/shared/L00_0069C890.c | 24 +++++----- src/overlays/shared/L00_0069D7A8.c | 4 +- src/overlays/shared/L00_006A06A0.c | 36 +++++++-------- src/overlays/shared/L00_006E8D78.c | 12 ++--- src/overlays/shared/L01_004B3FE8.c | 4 +- 32 files changed, 318 insertions(+), 318 deletions(-) diff --git a/src/core/00159258.c b/src/core/00159258.c index a9f8f573..981c244b 100644 --- a/src/core/00159258.c +++ b/src/core/00159258.c @@ -1,6 +1,6 @@ #include "common.h" -extern void func_00158C70(s32 a0, s32 a1, void *a2, s32 a3, s64 t0); +extern void func_00158C60(s32 a0, s32 a1, void *a2, s32 a3, s64 t0); void func_00159258(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 arg10, s64 arg11) { s32 buf[8]; @@ -16,5 +16,5 @@ void func_00159258(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s buf[5] = arg7; buf[6] = arg8; buf[7] = arg9; - func_00158C70(0x2C, 0x20, buf, arg10, arg11); + func_00158C60(0x2C, 0x20, buf, arg10, arg11); } diff --git a/src/game/0041E280.c b/src/game/0041E280.c index b426e4b9..c45c31e7 100644 --- a/src/game/0041E280.c +++ b/src/game/0041E280.c @@ -1,10 +1,10 @@ #include "common.h" -extern void func_00549560(s32, s32, s32); +extern void func_00547FF8(s32, s32, s32); extern void func_00415F40(s32, u8 *, s32); -extern u8 *func_0054A290(s32, s32); -extern s32 func_0054BCF0(s32, s32, s32); -extern void func_00474368(u8 *, s32, s32); +extern u8 *func_00548D28(s32, s32); +extern s32 func_0054A788(s32, s32, s32); +extern void func_00473A88(u8 *, s32, s32); void func_0041E280(u8 *moby) { u8 *vars = *(u8 **)(moby + 0xAC); @@ -15,11 +15,11 @@ void func_0041E280(u8 *moby) { if (*(u8 **)(vars + 0xC) != NULL) { id = *(s32 *)(vars + 0); - func_00549560(*(s32 *)(*(u8 **)(vars + 0xC) + 0x26E4), 6, 1); + func_00547FF8(*(s32 *)(*(u8 **)(vars + 0xC) + 0x26E4), 6, 1); func_00415F40(id, *(u8 **)(vars + 0xC), 1); v = *(u8 **)(moby + 0xAC); - speed = *(f32 *)(func_0054A290(6, 0) + 0x4C); - n = func_0054BCF0(*(s32 *)(*(u8 **)(v + 0xC) + 0x26E4), 6, 1); + speed = *(f32 *)(func_00548D28(6, 0) + 0x4C); + n = func_0054A788(*(s32 *)(*(u8 **)(v + 0xC) + 0x26E4), 6, 1); if (n != 0) { speed *= 1.0f - n * 0.05f; } @@ -27,6 +27,6 @@ void func_0041E280(u8 *moby) { *(s16 *)(v + 6) = (*(s16 *)(v + 4) = speed * 60.0f) * 0.85f; *(f32 *)(*(u8 **)(v + 0xC) + 0x3EC) = speed; *(s32 *)(vars + 0) = 0; - func_00474368(moby, 6, -1); + func_00473A88(moby, 6, -1); } } diff --git a/src/game/00429BE8.c b/src/game/00429BE8.c index 42e4eac9..664fadda 100644 --- a/src/game/00429BE8.c +++ b/src/game/00429BE8.c @@ -12,27 +12,27 @@ typedef struct Row80 { u8 unknown48[8]; } Row80; -extern Row48 D_00224FD0[]; -extern Row80 D_00225210[]; -extern u8 *func_0046C1F0(s32 classId, s32 flags); -extern void func_00474368(void *object, s32 state, s32 animation); -extern s32 func_00461970(const void *position, f32 x, f32 y, f32 z, f32 w, f32 size); +extern Row48 D_00224ED0[]; +extern Row80 D_00225110[]; +extern u8 *func_0046B930(s32 classId, s32 flags); +extern void func_00473A88(void *object, s32 state, s32 animation); +extern s32 func_00461130(const void *position, f32 x, f32 y, f32 z, f32 w, f32 size); void func_00429BE8(u8 *entity, void *data) { - u8 *object = func_0046C1F0(0x24EE, 0x80); + u8 *object = func_0046B930(0x24EE, 0x80); if (object && entity && data) { u8 *state; s32 i; object[0x30] = 0xFF; *(u16 *)(object + 0x32) = 0xFF; state = *(u8 **)(object + 0xAC); - func_00474368(object, 0, -1); + func_00473A88(object, 0, -1); for (i = 11; i >= 0; i--) - D_00224FD0[i].active = 0; + D_00224ED0[i].active = 0; for (i = 127; i >= 0; i--) - D_00225210[i].active = 0; - *(s32 *)(state + 0x10) = func_00461970(object + 0x10, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); + D_00225110[i].active = 0; + *(s32 *)(state + 0x10) = func_00461130(object + 0x10, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); *(u8 **)(state + 0x18) = entity; *(s32 *)(state + 0x14) = *(s16 *)(entity + 0xBC); *(void **)(state + 0x1C) = data; diff --git a/src/game/00430D08.c b/src/game/00430D08.c index 6ad8fd2c..9faf26fc 100644 --- a/src/game/00430D08.c +++ b/src/game/00430D08.c @@ -1,32 +1,32 @@ #include "common.h" -extern s32 D_0021DE3C; +extern s32 D_0021DDB4; -s32 func_00506BB8(void); -s32 func_00506B70(s32 arg0); -s32 func_00507C40(s32 arg0); -s32 func_005064A8(s32 arg0, f32 arg1); +s32 func_00505B20(void); +s32 func_00505AD8(s32 arg0); +s32 func_00506BA8(s32 arg0); +s32 func_00505410(s32 arg0, f32 arg1); void func_00430D08(s32 arg0, f32 arg1) { s32 index; s32 i; - index = func_00506BB8(); - func_00506B70(arg0); - if (func_00507C40(0x1D0000) == 0) { - func_00506B70(index); + index = func_00505B20(); + func_00505AD8(arg0); + if (func_00506BA8(0x1D0000) == 0) { + func_00505AD8(index); return; } - if (D_0021DE3C == 0) { + if (D_0021DDB4 == 0) { for (i = 0; i < 0x14; i++) { if (arg1 <= 0.0f) { continue; } if (arg1 < 1.0f) { - func_005064A8(0x1D0001 + i, arg1); + func_00505410(0x1D0001 + i, arg1); } } } - func_00506B70(index); + func_00505AD8(index); } diff --git a/src/game/00430E80.c b/src/game/00430E80.c index 0b296fa5..b924fe36 100644 --- a/src/game/00430E80.c +++ b/src/game/00430E80.c @@ -25,23 +25,23 @@ struct Object { u8 unknownC[0x50]; }; -extern Manager D_00222138[]; -extern Manager *func_00502150(void); -extern Allocator *func_00502218(Manager *, s32); -extern void func_005052C0(s32); -extern s32 func_005052C8(void); -extern s32 func_00500980(void *, u32); -extern void *func_0015DB90(u32, void *); -extern Object *func_0050EB78(void *); -extern s32 func_00501618(void *, Object *, u32); +extern Manager D_00222038[]; +extern Manager *func_005010E0(void); +extern Allocator *func_005011A8(Manager *, s32); +extern void func_00504228(s32); +extern s32 func_00504230(void); +extern s32 func_004FF910(void *, u32); +extern void *func_0015DB80(u32, void *); +extern Object *func_0050DAE0(void *); +extern s32 func_005005A8(void *, Object *, u32); static inline Manager *get_manager(void) { - Manager *manager = D_00222138; + Manager *manager = D_00222038; if (manager->table) { return manager; } - return func_00502150(); + return func_005010E0(); } s32 func_00430E80(u32 key) @@ -60,17 +60,17 @@ s32 func_00430E80(u32 key) entry = state != NULL ? *(void **)((u32)state + ((u32) * (s32 *)(state + 0x14) << 2)) : NULL; - func_005052C0(0x5C); - size = func_005052C8(); - if (entry != NULL && func_00500980(entry, key) == 0) { - allocator = func_00502218(get_manager(), 1); + func_00504228(0x5C); + size = func_00504230(); + if (entry != NULL && func_004FF910(entry, key) == 0) { + allocator = func_005011A8(get_manager(), 1); block = allocator->vtable->allocate(allocator, size); if (block != NULL) { - object = func_0050EB78(func_0015DB90(0x5C, block)); - result = func_00501618(entry, object, key) != 0; + object = func_0050DAE0(func_0015DB80(0x5C, block)); + result = func_005005A8(entry, object, key) != 0; if (!result) { object->vtable->destroy(object, 2); - allocator = func_00502218(get_manager(), 1); + allocator = func_005011A8(get_manager(), 1); allocator->vtable->release(allocator, block); } } diff --git a/src/game/004331B0.c b/src/game/004331B0.c index 7f6d15e7..430abe63 100644 --- a/src/game/004331B0.c +++ b/src/game/004331B0.c @@ -5,34 +5,34 @@ typedef struct HeroVtable { s32 (*identifier)(void *); } HeroVtable; -extern s32 D_0021EE54; -extern u8 *func_00511CC0(s32 context); -extern u8 *func_00511CF0(s32 context); -extern s32 func_0054BCF0(void *inventory, s32 slot, s32 kind); -extern f32 func_00472EB8(f32 first, f32 last); -extern s32 func_00549710(void *inventory, s32 slot, s32 amount); -extern void func_0054A668(void *inventory, s32 slot, void *object, +extern s32 D_0021EDD4; +extern u8 *func_00510BE8(s32 context); +extern u8 *func_00510C18(s32 context); +extern s32 func_0054A788(void *inventory, s32 slot, s32 kind); +extern f32 func_004725D8(f32 first, f32 last); +extern s32 func_005481A8(void *inventory, s32 slot, s32 amount); +extern void func_00549100(void *inventory, s32 slot, void *object, void *data, s32 identifier, s32 notify); void func_004331B0(void *object, s32 amount) { f32 value = (f32)amount; u8 *data = *(u8 **)((u8 *)object + 0xAC); - u8 *hero = func_00511CC0(0); + u8 *hero = func_00510BE8(0); s32 result; if (hero) { - result = func_0054BCF0(*(void **)(hero + 0x26E4), 8, 6); + result = func_0054A788(*(void **)(hero + 0x26E4), 8, 6); value += (f32)result * 0.5f * value; } - value += func_00472EB8(0.0f, 1.0f); - hero = func_00511CF0(data[0x16]); - if (D_0021EE54 != 1) { - result = func_00549710(*(void **)(hero + 0x26E4), 8, (s32)value); + value += func_004725D8(0.0f, 1.0f); + hero = func_00510C18(data[0x16]); + if (D_0021EDD4 != 1) { + result = func_005481A8(*(void **)(hero + 0x26E4), 8, (s32)value); if (result) { void *entity = *(void **)(hero + 0x22F0); HeroVtable *vtable = *(HeroVtable **)(hero + 0x14); s32 id = vtable->identifier(hero); - func_0054A668(*(void **)(hero + 0x26E4), 8, entity, + func_00549100(*(void **)(hero + 0x26E4), 8, entity, hero + 0x2ED2, id, 1); } } diff --git a/src/game/004363D0.c b/src/game/004363D0.c index 52cae265..ffdeba59 100644 --- a/src/game/004363D0.c +++ b/src/game/004363D0.c @@ -1,8 +1,8 @@ #include "common.h" -void func_004536B8(const f32 *position,s32 texture,u32 color,s32 style,f32 size,f32 depth,f32 rotation); -f32 func_00454328(f32 angle,f32 change); -f32 func_00472F70(void); +void func_00452E98(const f32 *position,s32 texture,u32 color,s32 style,f32 size,f32 depth,f32 rotation); +f32 func_00453B10(f32 angle,f32 change); +f32 func_00472690(void); void func_004363D0(void *arg0) { f32 *temp_s0; @@ -11,12 +11,12 @@ void func_004363D0(void *arg0) { temp_s1 = (*(void **)((s8 *)(arg0) + (0xAC))); temp_s0 = arg0; - temp_f0 = func_00454328((*(f32 *)((s8 *)(temp_s1) + (0x10))), 0.017453292f); + temp_f0 = func_00453B10((*(f32 *)((s8 *)(temp_s1) + (0x10))), 0.017453292f); (*(f32 *)((s8 *)(temp_s1) + (0x10))) = temp_f0; - func_004536B8(temp_s0 + 4, 0x39, 0x40505050U, 1, 0.5f, 0.08f, func_00454328(temp_f0 * 2.5f, 0.0f)); - func_004536B8(temp_s0 + 4, 0x2A, 0x207F2040U, 1, 0.5f, 0.08f, func_00454328(-(*(f32 *)((s8 *)(temp_s1) + (0x10))) * 1.5f, 0.0f)); - func_004536B8(temp_s0 + 4, 0x2C, 0x207F2040U, 1, 0.5f, 0.08f, func_00454328((*(f32 *)((s8 *)(temp_s1) + (0x10))), 0.0f)); - func_004536B8(temp_s0 + 4, 0x31, 0x20FF7F00U, 1, 0.36f, 0.08f, (*(f32 *)((s8 *)(temp_s1) + (0x10))) * 0.5f); - func_004536B8(temp_s0 + 4, 0x31, 0x20FF7FU, 1, 0.36f, 0.08f, (*(f32 *)((s8 *)(temp_s1) + (0x10))) * -0.5f); - func_004536B8(temp_s0 + 4, 0x2F, 0x507F7F7FU, 1, 0.11f, 0.08f, func_00472F70()); + func_00452E98(temp_s0 + 4, 0x39, 0x40505050U, 1, 0.5f, 0.08f, func_00453B10(temp_f0 * 2.5f, 0.0f)); + func_00452E98(temp_s0 + 4, 0x2A, 0x207F2040U, 1, 0.5f, 0.08f, func_00453B10(-(*(f32 *)((s8 *)(temp_s1) + (0x10))) * 1.5f, 0.0f)); + func_00452E98(temp_s0 + 4, 0x2C, 0x207F2040U, 1, 0.5f, 0.08f, func_00453B10((*(f32 *)((s8 *)(temp_s1) + (0x10))), 0.0f)); + func_00452E98(temp_s0 + 4, 0x31, 0x20FF7F00U, 1, 0.36f, 0.08f, (*(f32 *)((s8 *)(temp_s1) + (0x10))) * 0.5f); + func_00452E98(temp_s0 + 4, 0x31, 0x20FF7FU, 1, 0.36f, 0.08f, (*(f32 *)((s8 *)(temp_s1) + (0x10))) * -0.5f); + func_00452E98(temp_s0 + 4, 0x2F, 0x507F7F7FU, 1, 0.11f, 0.08f, func_00472690()); } diff --git a/src/game/004473C0.c b/src/game/004473C0.c index b2e751c7..a14005e8 100644 --- a/src/game/004473C0.c +++ b/src/game/004473C0.c @@ -1,10 +1,10 @@ #include "common.h" -extern u8 *D_0022141C; +extern u8 *D_0022131C; u8 *func_004473C0(s32 x, s32 y, s32 z) { - u8 *base = D_0022141C; + u8 *base = D_0022131C; u8 *data = base + *(s32 *)base; u16 *node = (u16 *)(base + 4); s32 iz; diff --git a/src/game/00448D98.c b/src/game/00448D98.c index 2e76a4ac..a91a6504 100644 --- a/src/game/00448D98.c +++ b/src/game/00448D98.c @@ -1,34 +1,34 @@ /* cflags: -fno-schedule-insns */ #include "common.h" -extern u8 *D_00221F20; -extern u8 *D_00221300; -extern u8 *D_002212FC; -extern void func_0046A228(void); -extern u8 *func_004E8AB0(void); +extern u8 *D_00221E20; +extern u8 *D_00221200; +extern u8 *D_002211FC; +extern void func_00469968(void); +extern u8 *func_004E7B88(void); void func_00448D98(void) { s32 tag; u8 *packet; - D_00221300 = D_00221F20; + D_00221200 = D_00221E20; tag = 0x20000000; - D_00221F20 += 16; - *(s32 *)D_002212FC = tag; - packet = D_002212FC; - *(u8 **)(packet + 4) = D_00221F20; - *(s32 *)(D_002212FC + 8) = 0; - *(s32 *)(D_002212FC + 12) = 0; - func_0046A228(); - func_004E8AB0(); - *(s32 *)D_00221F20 = tag; - *(u8 **)(D_00221F20 + 4) = D_002212FC + 16; - *(s32 *)(D_00221F20 + 8) = 0; - *(s32 *)(D_00221F20 + 12) = 0; - D_00221F20 += 16; - *(s32 *)D_00221300 = tag; - *(u8 **)(D_00221300 + 4) = D_00221F20; - *(s32 *)(D_00221300 + 8) = 0; - *(s32 *)(D_00221300 + 12) = 0; + D_00221E20 += 16; + *(s32 *)D_002211FC = tag; + packet = D_002211FC; + *(u8 **)(packet + 4) = D_00221E20; + *(s32 *)(D_002211FC + 8) = 0; + *(s32 *)(D_002211FC + 12) = 0; + func_00469968(); + func_004E7B88(); + *(s32 *)D_00221E20 = tag; + *(u8 **)(D_00221E20 + 4) = D_002211FC + 16; + *(s32 *)(D_00221E20 + 8) = 0; + *(s32 *)(D_00221E20 + 12) = 0; + D_00221E20 += 16; + *(s32 *)D_00221200 = tag; + *(u8 **)(D_00221200 + 4) = D_00221E20; + *(s32 *)(D_00221200 + 8) = 0; + *(s32 *)(D_00221200 + 12) = 0; } diff --git a/src/game/0044A410.c b/src/game/0044A410.c index 9f8fcd57..0a90583d 100644 --- a/src/game/0044A410.c +++ b/src/game/0044A410.c @@ -1,9 +1,9 @@ #include "common.h" -extern s32 D_001D3FC0[]; -extern s32 D_00221F20; -extern s32 D_00221370; -extern s32 func_0044E5B0(s32, u32, s64); +extern s32 D_001D3F40[]; +extern s32 D_00221E20; +extern s32 D_00221270; +extern s32 func_0044DF08(s32, u32, s64); s32 func_0044A410(s32 arg0, s32 arg1, s32 arg2, s32 arg3, u64 arg4, u64 arg5, s32 arg6, f32 f12, f32 f13, f32 f14, f32 f15) { s32 x0; @@ -24,10 +24,10 @@ s32 func_0044A410(s32 arg0, s32 arg1, s32 arg2, s32 arg3, u64 arg4, u64 arg5, s3 f15 = (f13 + f15) * scale; f12 *= scale; f13 *= scale; - x0 = (s32)f14 + D_001D3FC0[4] - 8; - x1 = (s32)f12 + D_001D3FC0[4] - 8; - y0 = (s32)f13 + D_001D3FC0[5] - 8; - y1 = (s32)f15 + D_001D3FC0[5] - 8; + x0 = (s32)f14 + D_001D3F40[4] - 8; + x1 = (s32)f12 + D_001D3F40[4] - 8; + y0 = (s32)f13 + D_001D3F40[5] - 8; + y1 = (s32)f15 + D_001D3F40[5] - 8; if (x1 > 0x9000 || x0 < 0x7000 || y0 > 0x9000 || y1 < 0x7000) { return 0; } @@ -45,7 +45,7 @@ s32 func_0044A410(s32 arg0, s32 arg1, s32 arg2, s32 arg3, u64 arg4, u64 arg5, s3 packet3 = (u64)x1 | ((u64)y0 << 16); packet4 = (u64)(end1 << 20) | (u64)((arg0 + arg2) << 4); packet1 = (u64)x0 | ((u64)y1 << 16); - buffer = D_00221F20; + buffer = D_00221E20; *(u64 *)(buffer + 0x38) = packet1; *(u64 *)(buffer + 0x10) = packet0; *(u64 *)(buffer + 8) = 0x156; @@ -54,7 +54,7 @@ s32 func_0044A410(s32 arg0, s32 arg1, s32 arg2, s32 arg3, u64 arg4, u64 arg5, s3 *(u64 *)(buffer + 0x28) = packet3; *(u64 *)(buffer + 0x30) = packet4; *(u64 *)buffer = (u64)arg5; - D_00221F20 += 0x40; - func_0044E5B0((s32)&D_00221370, 6, arg5); + D_00221E20 += 0x40; + func_0044DF08((s32)&D_00221270, 6, arg5); return 1; } diff --git a/src/game/0044AA58.c b/src/game/0044AA58.c index 2b72f590..f48ec640 100644 --- a/src/game/0044AA58.c +++ b/src/game/0044AA58.c @@ -1,21 +1,21 @@ #include "common.h" typedef int Quad __attribute__((mode(TI))); -extern u8 *D_00221F20; -extern Quad D_00220000; +extern u8 *D_00221E20; +extern Quad D_0021FF60; void func_0044AA58(const u64 *coordinates, const s32 *values) { u8 *first, *next, *cursor; - *(u32 *)(D_00221F20 + 0) = 0x10000005; - *(u32 *)(D_00221F20 + 4) = 0; - *(u32 *)(D_00221F20 + 8) = 0; - *(u32 *)(D_00221F20 + 12) = 0x50000005; - cursor = (u8 *)D_00221F20; - D_00221F20 = cursor + 16; - *(Quad *)(cursor + 16) = D_00220000; - first = (u8 *)D_00221F20; + *(u32 *)(D_00221E20 + 0) = 0x10000005; + *(u32 *)(D_00221E20 + 4) = 0; + *(u32 *)(D_00221E20 + 8) = 0; + *(u32 *)(D_00221E20 + 12) = 0x50000005; + cursor = (u8 *)D_00221E20; + D_00221E20 = cursor + 16; + *(Quad *)(cursor + 16) = D_0021FF60; + first = (u8 *)D_00221E20; next = first + 16; - D_00221F20 = next; + D_00221E20 = next; *(u64 *)(first + 16) = 0x4C; *(u64 *)(next + 8) = (s64)values[0]; *(u64 *)(next + 16) = coordinates[0]; @@ -24,5 +24,5 @@ void func_0044AA58(const u64 *coordinates, const s32 *values) *(u64 *)(next + 40) = coordinates[1]; *(u64 *)(next + 48) = coordinates[3]; *(u64 *)(next + 56) = 0; - D_00221F20 += 64; + D_00221E20 += 64; } diff --git a/src/game/0044D6D0.c b/src/game/0044D6D0.c index feafa82f..913bd6c1 100644 --- a/src/game/0044D6D0.c +++ b/src/game/0044D6D0.c @@ -20,34 +20,34 @@ typedef struct Entry { u64 value; u8 tail[8]; } Entry; -extern State D_00239640; -extern Entry D_003D7B40[]; -extern u32 *D_00221F20; +extern State D_00239540; +extern Entry D_003D7B00[]; +extern u32 *D_00221E20; void func_0044D6D0(void *unused, s32 id) { - if (D_00239640.enabled == 0) { + if (D_00239540.enabled == 0) { if (id == 0) return; - D_00221F20[0] = 0x30000002; - D_00221F20[1] = (u32)&D_003D7B40[id]; - D_00221F20[2] = 0; - D_00221F20[3] = 0x50000002; - D_00221F20 += 4; + D_00221E20[0] = 0x30000002; + D_00221E20[1] = (u32)&D_003D7B00[id]; + D_00221E20[2] = 0; + D_00221E20[3] = 0x50000002; + D_00221E20 += 4; return; } if (id == 0) return; - if (D_00239640.selected != id && D_00239640.current == D_003D7B40[id].value) { - D_00239640.selected = id; + if (D_00239540.selected != id && D_00239540.current == D_003D7B00[id].value) { + D_00239540.selected = id; return; } - if (D_00239640.current == D_003D7B40[id].value) + if (D_00239540.current == D_003D7B00[id].value) return; - D_00221F20[0] = 0x30000002; - D_00221F20[1] = (u32)&D_003D7B40[id]; - D_00221F20[2] = 0; - D_00221F20[3] = 0x50000002; - D_00239640.selected = id; - D_00239640.current = D_003D7B40[id].value; - D_00221F20 += 4; + D_00221E20[0] = 0x30000002; + D_00221E20[1] = (u32)&D_003D7B00[id]; + D_00221E20[2] = 0; + D_00221E20[3] = 0x50000002; + D_00239540.selected = id; + D_00239540.current = D_003D7B00[id].value; + D_00221E20 += 4; } diff --git a/src/game/0044DF08.c b/src/game/0044DF08.c index ab6e06c7..b9f9fcdd 100644 --- a/src/game/0044DF08.c +++ b/src/game/0044DF08.c @@ -1,13 +1,13 @@ #include "common.h" -extern u8 D_00239640[]; +extern u8 D_00239540[]; s32 func_0044DF08(s32 arg0, u32 arg1, s64 arg2) { - s32 base = (s32)D_00239640; + s32 base = (s32)D_00239540; s32 result; s64 value; - if (D_00239640[0] != 0) { + if (D_00239540[0] != 0) { goto dispatch; } return 1; diff --git a/src/game/00454600.c b/src/game/00454600.c index b4104582..17998e9f 100644 --- a/src/game/00454600.c +++ b/src/game/00454600.c @@ -5,8 +5,8 @@ typedef struct { u32 first; u32 metrics; } Glyph; -extern Glyph *D_0021DF14[]; -extern s32 func_00454A70(const u8 *, s32, s32 *); +extern Glyph *D_0021DE8C[]; +extern s32 func_00454258(const u8 *, s32, s32 *); s32 func_00454600(const u8 *text, s32 length, f32 scale) { s32 offset = 0; @@ -18,9 +18,9 @@ s32 func_00454600(const u8 *text, s32 length, f32 scale) running = 0; } else { f32 width, height, value; - offset += func_00454A70(text, offset, &glyph); - width = (f32)((D_0021DF14[0][glyph].metrics >> 17) & 0x3F) * scale; - height = (f32)((D_0021DF14[0][glyph].metrics >> 9) & 0xFF) * scale; + offset += func_00454258(text, offset, &glyph); + width = (f32)((D_0021DE8C[0][glyph].metrics >> 17) & 0x3F) * scale; + height = (f32)((D_0021DE8C[0][glyph].metrics >> 9) & 0xFF) * scale; value = width + height * 0.25f; if (maximum < value) maximum = value; diff --git a/src/game/004597B8.c b/src/game/004597B8.c index e254cacd..3626eb34 100644 --- a/src/game/004597B8.c +++ b/src/game/004597B8.c @@ -1,25 +1,25 @@ #include "common.h" -extern u32 *D_00221F20; -extern u8 D_003D9FF0[], D_003DA010[], D_0020BF90[], D_003D9F80[]; +extern u32 *D_00221E20; +extern u8 D_003D9FB0[], D_003D9FD0[], D_0020BF10[], D_003D9F40[]; void func_004597B8(s32 alternate) { - D_00221F20[0] = 0x30000002; + D_00221E20[0] = 0x30000002; if (alternate) - D_00221F20[1] = (u32)D_003D9FF0; + D_00221E20[1] = (u32)D_003D9FB0; else - D_00221F20[1] = (u32)D_003DA010; - D_00221F20[2] = 0; - D_00221F20[3] = 0x50000002; - D_00221F20 += 4; - D_00221F20[0] = 0x30000029; - D_00221F20[1] = (u32)D_0020BF90; - D_00221F20[2] = 0; - D_00221F20[3] = 0x50000029; - D_00221F20 += 4; - D_00221F20[0] = 0x30000003; - D_00221F20[1] = (u32)D_003D9F80; - D_00221F20[2] = 0; - D_00221F20[3] = 0x50000003; - D_00221F20 += 4; + D_00221E20[1] = (u32)D_003D9FD0; + D_00221E20[2] = 0; + D_00221E20[3] = 0x50000002; + D_00221E20 += 4; + D_00221E20[0] = 0x30000029; + D_00221E20[1] = (u32)D_0020BF10; + D_00221E20[2] = 0; + D_00221E20[3] = 0x50000029; + D_00221E20 += 4; + D_00221E20[0] = 0x30000003; + D_00221E20[1] = (u32)D_003D9F40; + D_00221E20[2] = 0; + D_00221E20[3] = 0x50000003; + D_00221E20 += 4; } diff --git a/src/game/0045D108.c b/src/game/0045D108.c index 07a6ef4b..c2efdc01 100644 --- a/src/game/0045D108.c +++ b/src/game/0045D108.c @@ -5,22 +5,22 @@ typedef struct { short f20, f22, f24; unsigned char f26, f27; } State; -extern State D_0023F380[]; -extern short D_0023F3A8[]; +extern State D_0023F280[]; +extern short D_0023F2A8[]; void func_0045D108(void) { - D_0023F380[0].f0 = 0; - D_0023F380[0].f4 = 0; - D_0023F380[0].f8 = -1; - D_0023F380[0].fC = -1; - D_0023F380[0].f14 = -1; - D_0023F380[0].f1C = 0xFFFFFFFFu; - D_0023F380[0].f20 = 0x78; - D_0023F380[0].f26 = 0; - D_0023F380[0].f27 = 0; - D_0023F380[0].f24 = 0; - D_0023F380[0].f22 = 0; - D_0023F3A8[0] = 0; - D_0023F3A8[1] = 0; - D_0023F3A8[2] = 0; + D_0023F280[0].f0 = 0; + D_0023F280[0].f4 = 0; + D_0023F280[0].f8 = -1; + D_0023F280[0].fC = -1; + D_0023F280[0].f14 = -1; + D_0023F280[0].f1C = 0xFFFFFFFFu; + D_0023F280[0].f20 = 0x78; + D_0023F280[0].f26 = 0; + D_0023F280[0].f27 = 0; + D_0023F280[0].f24 = 0; + D_0023F280[0].f22 = 0; + D_0023F2A8[0] = 0; + D_0023F2A8[1] = 0; + D_0023F2A8[2] = 0; } diff --git a/src/game/0045E860.c b/src/game/0045E860.c index 6bb17f30..12ea8468 100644 --- a/src/game/0045E860.c +++ b/src/game/0045E860.c @@ -23,7 +23,7 @@ typedef struct { s32 limits[0]; } HudLimits2; -extern HudState D_0023F530; +extern HudState D_0023F430; void func_0045E860(s32 bank, u32 address) { @@ -33,7 +33,7 @@ void func_0045E860(s32 bank, u32 address) s32 limit; s32 i; - banks = (u32 *)(D_0023F530.header + 0x74); + banks = (u32 *)(D_0023F430.header + 0x74); slot = &banks[bank]; if (*slot != 0) { return; @@ -41,23 +41,23 @@ void func_0045E860(s32 bank, u32 address) address = (address + 15) & 0xFFFFFFF0; *slot = address; if (bank != 0) { - first = ((HudLimits1 *)D_0023F530.header)->limits[bank - 1]; + first = ((HudLimits1 *)D_0023F430.header)->limits[bank - 1]; } else { first = 0; } - limit = ((HudLimits1 *)D_0023F530.header)->limits[bank]; + limit = ((HudLimits1 *)D_0023F430.header)->limits[bank]; for (i = first; i < limit; i++) { - D_0023F530.table1[i].address &= 0x7FFFFFFF; - D_0023F530.table1[i].address += address; + D_0023F430.table1[i].address &= 0x7FFFFFFF; + D_0023F430.table1[i].address += address; } if (bank != 0) { - first = ((HudLimits2 *)D_0023F530.header)->limits[bank - 1]; + first = ((HudLimits2 *)D_0023F430.header)->limits[bank - 1]; } else { first = 0; } - limit = ((HudLimits2 *)D_0023F530.header)->limits[bank]; + limit = ((HudLimits2 *)D_0023F430.header)->limits[bank]; for (i = first; i < limit; i++) { - D_0023F530.table2[i].address &= 0x7FFFFFFF; - D_0023F530.table2[i].address += address; + D_0023F430.table2[i].address &= 0x7FFFFFFF; + D_0023F430.table2[i].address += address; } } diff --git a/src/game/00462D68.c b/src/game/00462D68.c index 69f0b279..7c4cb6fd 100644 --- a/src/game/00462D68.c +++ b/src/game/00462D68.c @@ -5,8 +5,8 @@ typedef struct { s32 packed_count; s32 reserved[2]; } Group; -extern void func_00462E48(void *, const void *, s32, s32, s32, s32, s32); -extern void func_00463150(void *, s32, s32, s32, s32, s32); +extern void func_00462608(void *, const void *, s32, s32, s32, s32, s32); +extern void func_00462910(void *, s32, s32, s32, s32, s32); void func_00462D68(Group *groups, const u8 *palette, const u8 *mapping, s32 count) { s32 i, j, group_count, offset, index; @@ -24,10 +24,10 @@ void func_00462D68(Group *groups, const u8 *palette, const u8 *mapping, s32 coun if (index >= 0) index = mapping[index]; if (palette) { - func_00462E48(entry, (const void *)((u32)palette + (u32)(index * 16)), + func_00462608(entry, (const void *)((u32)palette + (u32)(index * 16)), entry[0], entry[1], entry[4], entry[5], index); } else { - func_00463150(entry, entry[0], entry[1], entry[4], entry[5], index); + func_00462910(entry, entry[0], entry[1], entry[4], entry[5], index); } entry += 16; } diff --git a/src/game/004653A8.c b/src/game/004653A8.c index 08a73423..0e032b17 100644 --- a/src/game/004653A8.c +++ b/src/game/004653A8.c @@ -1,31 +1,31 @@ #include "common.h" -extern s32 func_00465338(s32); -extern s32 D_001719C8[]; -extern s32 D_0021DB64; +extern s32 func_00464AF8(s32); +extern s32 D_00171948[]; +extern s32 D_0021DAE4; s32 D_0021F1D0 = -1; void (*D_0021F1E8)(void) = 0; void func_004653A8(void) { - if (D_001719C8[113] != 2) { + if (D_00171948[113] != 2) { return; } - if (D_001719C8[115] >= 0) { + if (D_00171948[115] >= 0) { return; } - if (D_001719C8[117] != 0) { - func_00465338(20); + if (D_00171948[117] != 0) { + func_00464AF8(20); } else { - D_001719C8[108] = 0; - ((u16 *)D_001719C8)[12] = 0; - if (D_0021DB64 & 0x1000) { - ((u16 *)D_001719C8)[12] = D_0021F1D0; - D_0021DB64 &= -0x1001; + D_00171948[108] = 0; + ((u16 *)D_00171948)[12] = 0; + if (D_0021DAE4 & 0x1000) { + ((u16 *)D_00171948)[12] = D_0021F1D0; + D_0021DAE4 &= -0x1001; D_0021F1D0 = -1; } - func_00465338(18); + func_00464AF8(18); } if (D_0021F1E8 != 0) { D_0021F1E8(); diff --git a/src/game/004655A0.c b/src/game/004655A0.c index 0cce9c40..bd730131 100644 --- a/src/game/004655A0.c +++ b/src/game/004655A0.c @@ -9,24 +9,24 @@ typedef struct State { s32 pending; } State; -extern State D_001719C8[]; -extern s32 D_0021EE54; -extern u32 D_0021DB64; -extern void func_00465338(s32 state); +extern State D_00171948[]; +extern s32 D_0021EDD4; +extern u32 D_0021DAE4; +extern void func_00464AF8(s32 state); void func_004655A0(void) { - if (D_001719C8[0].mode != 2) { - func_00465338(4); - } else if (!D_0021EE54 && D_001719C8[0].pending) { - func_00465338(1); - } else if (D_0021DB64 & 4) { - func_00465338(30); - } else if (D_0021DB64 & 2) { - func_00465338(29); - } else if (D_0021DB64 & 0x800) { - func_00465338(12); - } else if (D_001719C8[0].mode == 2 && D_001719C8[0].active) { - func_00465338(5); + if (D_00171948[0].mode != 2) { + func_00464AF8(4); + } else if (!D_0021EDD4 && D_00171948[0].pending) { + func_00464AF8(1); + } else if (D_0021DAE4 & 4) { + func_00464AF8(30); + } else if (D_0021DAE4 & 2) { + func_00464AF8(29); + } else if (D_0021DAE4 & 0x800) { + func_00464AF8(12); + } else if (D_00171948[0].mode == 2 && D_00171948[0].active) { + func_00464AF8(5); } } diff --git a/src/game/00465F38.c b/src/game/00465F38.c index 33738734..9a7c99d7 100644 --- a/src/game/00465F38.c +++ b/src/game/00465F38.c @@ -1,31 +1,31 @@ #include "common.h" -extern char D_001718B0[], D_001718C8[], D_001718E0[], D_001718F8[], D_00171918[]; -extern char D_00171938[], D_00171968[], D_00171988[], D_001719A8[]; +extern char D_00171830[], D_00171848[], D_00171860[], D_00171878[], D_00171898[]; +extern char D_001718B8[], D_001718E8[], D_00171908[], D_00171928[]; extern char *func_0011AFC8(char *, const char *, u32); void func_00465F38(const u8 *header) { s32 i; u8 region; - func_0011AFC8(D_001718B0, (const char *)header + 8, 21); + func_0011AFC8(D_00171830, (const char *)header + 8, 21); region = header[0x12]; if (region == 'E') - D_001718C8[2] = region; + D_00171848[2] = region; else if (region == 'P') - D_001718C8[2] = 'I'; + D_00171848[2] = 'I'; else if (region == 'K') - D_001718C8[2] = region; + D_00171848[2] = region; for (i = 3; i < 7; ++i) - D_001718C8[i] = header[i + 0xD]; + D_00171848[i] = header[i + 0xD]; for (i = 8; i < 11; ++i) - D_001718C8[i] = header[i + 0xD]; + D_00171848[i] = header[i + 0xD]; for (i = 11; i < 13; ++i) - D_001718C8[i] = header[i + 0xE]; - func_0011AFC8(D_001718E0, D_001718C8, 13); - func_0011AFC8(D_001718F8, D_001718C8, 13); - func_0011AFC8(D_00171918, D_001718C8, 13); - func_0011AFC8(D_00171938, D_001718C8, 13); - func_0011AFC8(D_00171938 + 20, D_001718C8, 13); - func_0011AFC8(D_00171968, D_001718C8, 13); - func_0011AFC8(D_001719A8, D_001718C8, 13); - func_0011AFC8(D_00171988, D_001718C8, 13); + D_00171848[i] = header[i + 0xE]; + func_0011AFC8(D_00171860, D_00171848, 13); + func_0011AFC8(D_00171878, D_00171848, 13); + func_0011AFC8(D_00171898, D_00171848, 13); + func_0011AFC8(D_001718B8, D_00171848, 13); + func_0011AFC8(D_001718B8 + 20, D_00171848, 13); + func_0011AFC8(D_001718E8, D_00171848, 13); + func_0011AFC8(D_00171928, D_00171848, 13); + func_0011AFC8(D_00171908, D_00171848, 13); } diff --git a/src/game/004660F8.c b/src/game/004660F8.c index c4368361..b3d751e3 100644 --- a/src/game/004660F8.c +++ b/src/game/004660F8.c @@ -3,29 +3,29 @@ typedef struct { s32 type, size, offset, state; } Descriptor; -extern Descriptor D_003D8130[], D_003D8310[]; -extern s32 func_004693D0(const Descriptor *); -extern s32 func_004696E8(const u8 *, const u8 *, s32, Descriptor *); -extern void func_00469D68(void); +extern Descriptor D_003D80F0[], D_003D82D0[]; +extern s32 func_00468B40(const Descriptor *); +extern s32 func_00468E58(const u8 *, const u8 *, s32, Descriptor *); +extern void func_004694B0(void); void func_004660F8(const u8 *packet) { - s32 first = func_004693D0(D_003D8130); - s32 second = func_004693D0(D_003D8310); + s32 first = func_00468B40(D_003D80F0); + s32 second = func_00468B40(D_003D82D0); s32 index; const u8 *next; s32 storedFirst = *(const s32 *)packet; if (storedFirst == first && *(const s32 *)(packet + 4) == second) { packet += 8; next = packet + storedFirst; - func_004696E8(packet, next, 0, D_003D8130); + func_00468E58(packet, next, 0, D_003D80F0); packet = next; index = 0; do { const u8 *end = packet + second; - func_004696E8(packet, end, index, D_003D8310); + func_00468E58(packet, end, index, D_003D82D0); index++; packet = end; } while (index < 15); - func_00469D68(); + func_004694B0(); } } diff --git a/src/overlays/l00_multiplayer_menu/L00_0069DA50.c b/src/overlays/l00_multiplayer_menu/L00_0069DA50.c index af8e4288..44841149 100644 --- a/src/overlays/l00_multiplayer_menu/L00_0069DA50.c +++ b/src/overlays/l00_multiplayer_menu/L00_0069DA50.c @@ -17,7 +17,7 @@ typedef struct { extern Manager D_00223148[]; extern Manager *func_005010E0(void); extern Object *func_005005E8(void *, s32); -extern u32 D_00220B50; +extern u32 D_002203D0; static inline Object *resolve(s32 handle) { Manager *m; @@ -31,7 +31,7 @@ static inline Object *resolve(s32 handle) if (m->context) world = *(void **)((u32)m->context + ((u32) * (s32 *)((char *)m->context + 0x14) << 2)); obj = func_005005E8(world, handle); - if (obj && obj->vtable->supports(obj, D_00220B50)) + if (obj && obj->vtable->supports(obj, D_002203D0)) return obj; return 0; } diff --git a/src/overlays/l00_multiplayer_menu/L00_00734928.c b/src/overlays/l00_multiplayer_menu/L00_00734928.c index 839c623c..526f9170 100644 --- a/src/overlays/l00_multiplayer_menu/L00_00734928.c +++ b/src/overlays/l00_multiplayer_menu/L00_00734928.c @@ -1,12 +1,12 @@ #include "common.h" -extern s32 func_L00_0071EDF0(void *, s32); -extern void func_L00_00710200(void *, s32); -extern u8 D_004BBE20[]; +extern s32 func_L00_0071AF88(void *, s32); +extern void func_L00_0070C3E0(void *, s32); +extern u8 D_004BC898[]; s32 func_L00_00734928(void *arg0, s32 arg1) { - *(void **)((u8 *)arg0 + 88) = D_004BBE20; - func_L00_00710200((u8 *)arg0 + 0x260, 2); - return func_L00_0071EDF0(arg0, arg1); + *(void **)((u8 *)arg0 + 88) = D_004BC898; + func_L00_0070C3E0((u8 *)arg0 + 0x260, 2); + return func_L00_0071AF88(arg0, arg1); } diff --git a/src/overlays/shared/L00_00602AA0.c b/src/overlays/shared/L00_00602AA0.c index 5ad2205c..5c06ea6a 100644 --- a/src/overlays/shared/L00_00602AA0.c +++ b/src/overlays/shared/L00_00602AA0.c @@ -1,25 +1,25 @@ #include "common.h" -extern u8 *D_002215D8; -extern void func_00453F30(void *, const void *, u32); -extern void *func_0048C2D0(u32, u8 **, const u8 *); +extern u8 *D_00222550; +extern void func_00453718(void *, const void *, u32); +extern void *func_0048B818(u32, u8 **, const u8 *); static inline s32 count(void) { - return *(s32 *)(D_002215D8 + 0x3044); + return *(s32 *)(D_00222550 + 0x3044); } static inline u8 *values(void) { - return (u8 *)*(u32 *)(D_002215D8 + 0x3048); + return (u8 *)*(u32 *)(D_00222550 + 0x3048); } s32 func_L00_00602AA0(const u8 *input, u8 **cursor, const u8 *end) { s32 i; - func_00453F30(D_002215D8 + 0x3044, input, 4); + func_00453718(D_00222550 + 0x3044, input, 4); input += 4; - *(u32 *)(D_002215D8 + 0x3048) = (u32)func_0048C2D0((u32)count() << 3, cursor, end); + *(u32 *)(D_00222550 + 0x3048) = (u32)func_0048B818((u32)count() << 3, cursor, end); if (!values()) return 1; for (i = 0; i < count(); i++) { - func_00453F30(values() + ((u32)i << 3), input, 8); + func_00453718(values() + ((u32)i << 3), input, 8); input += 8; } return 0; diff --git a/src/overlays/shared/L00_00602E10.c b/src/overlays/shared/L00_00602E10.c index 0aa61ada..d9288ca7 100644 --- a/src/overlays/shared/L00_00602E10.c +++ b/src/overlays/shared/L00_00602E10.c @@ -1,25 +1,25 @@ #include "common.h" -extern u8 *D_002215D8; -extern void func_00453F30(void *, const void *, u32); -extern void *func_0048C2D0(u32, u8 **, const u8 *); +extern u8 *D_00222550; +extern void func_00453718(void *, const void *, u32); +extern void *func_0048B818(u32, u8 **, const u8 *); static inline s32 count(void) { - return *(s32 *)(D_002215D8 + 0x3064); + return *(s32 *)(D_00222550 + 0x3064); } static inline u8 *values(void) { - return (u8 *)*(u32 *)(D_002215D8 + 0x3068); + return (u8 *)*(u32 *)(D_00222550 + 0x3068); } s32 func_L00_00602E10(const u8 *input, u8 **cursor, const u8 *end) { s32 i; - func_00453F30(D_002215D8 + 0x3064, input, 4); + func_00453718(D_00222550 + 0x3064, input, 4); input += 4; - *(u32 *)(D_002215D8 + 0x3068) = (u32)func_0048C2D0((u32)count() * 4u, cursor, end); + *(u32 *)(D_00222550 + 0x3068) = (u32)func_0048B818((u32)count() * 4u, cursor, end); if (!values()) return 1; for (i = 0; i < count(); i++) { - func_00453F30(values() + ((u32)i * 4u), input, 4); + func_00453718(values() + ((u32)i * 4u), input, 4); input += 4; } return 0; diff --git a/src/overlays/shared/L00_0069C6A8.c b/src/overlays/shared/L00_0069C6A8.c index d6c4f60c..a4124674 100644 --- a/src/overlays/shared/L00_0069C6A8.c +++ b/src/overlays/shared/L00_0069C6A8.c @@ -17,7 +17,7 @@ typedef struct { extern Manager D_00223148[]; extern Manager *func_005010E0(void); extern Object *func_005005E8(void *, s32); -extern u32 D_00220B50; +extern u32 D_002203D0; static inline Object *resolve(s32 handle) { Manager *m; @@ -31,7 +31,7 @@ static inline Object *resolve(s32 handle) if (m->context) world = *(void **)((u32)m->context + ((u32) * (s32 *)((char *)m->context + 0x14) << 2)); obj = func_005005E8(world, handle); - if (obj && obj->vtable->supports(obj, D_00220B50)) + if (obj && obj->vtable->supports(obj, D_002203D0)) return obj; return 0; } diff --git a/src/overlays/shared/L00_0069C890.c b/src/overlays/shared/L00_0069C890.c index 9888707b..d5e3fe5e 100644 --- a/src/overlays/shared/L00_0069C890.c +++ b/src/overlays/shared/L00_0069C890.c @@ -14,37 +14,37 @@ typedef struct { s32 f0; void *context; } Manager; -extern Manager D_00222138[]; -extern Manager *func_00502150(void); -extern Object *func_00501658(void *, s32); -extern u32 D_00220B50; +extern Manager D_00223148[]; +extern Manager *func_005010E0(void); +extern Object *func_005005E8(void *, s32); +extern u32 D_002203D0; static inline Object *resolve(s32 handle) { Manager *m; Object *obj; void *world; - if (D_00222138[0].context) - m = D_00222138; + if (D_00223148[0].context) + m = D_00223148; else - m = func_00502150(); + m = func_005010E0(); world = 0; if (m->context) world = *(void **)((u32)m->context + ((u32) * (s32 *)((char *)m->context + 0x14) << 2)); - obj = func_00501658(world, handle); - if (obj && obj->vtable->supports(obj, D_00220B50)) + obj = func_005005E8(world, handle); + if (obj && obj->vtable->supports(obj, D_002203D0)) return obj; return 0; } typedef s32 (*Callback)(Object *, f32, f32); -extern char D_00335F60[]; -extern Callback func_00508A38(void *, u32); +extern char D_00343DB8[]; +extern Callback func_L00_0069FF70(void *, u32); s32 func_L00_0069C890(s32 handle, f32 a, f32 b) { s32 result = 0; Object *obj = resolve(handle); if (obj) { u32 type = obj->vtable->type(obj); - Callback callback = func_00508A38(D_00335F60, type); + Callback callback = func_L00_0069FF70(D_00343DB8, type); if (callback) result = callback(obj, a, b); } diff --git a/src/overlays/shared/L00_0069D7A8.c b/src/overlays/shared/L00_0069D7A8.c index 165fbc75..47d6b6fd 100644 --- a/src/overlays/shared/L00_0069D7A8.c +++ b/src/overlays/shared/L00_0069D7A8.c @@ -16,7 +16,7 @@ typedef struct { char *table; } Manager; extern Manager D_00223148[]; -extern u32 D_00220B50; +extern u32 D_002203D0; extern Manager *func_005010E0(void); extern Object *func_005005E8(void *, u32); typedef s32 (*Callback)(Object *, s32, s32, s32, s32); @@ -30,7 +30,7 @@ static inline Manager *getManager(void) } static inline Object *valid(Object *p) { - if (p && p->vtable->isType(p, D_00220B50)) + if (p && p->vtable->isType(p, D_002203D0)) return p; return 0; } diff --git a/src/overlays/shared/L00_006A06A0.c b/src/overlays/shared/L00_006A06A0.c index 0fbac507..c3ecc555 100644 --- a/src/overlays/shared/L00_006A06A0.c +++ b/src/overlays/shared/L00_006A06A0.c @@ -25,23 +25,23 @@ struct Object { u8 unknownC[0x50]; }; -extern Manager D_00222138[]; -extern Manager *func_00502150(void); -extern Allocator *func_00502218(Manager *, s32); -extern void func_005052C0(s32); -extern s32 func_005052C8(void); -extern s32 func_00500980(void *, u32); -extern void *func_0015DB90(u32, void *); -extern Object *func_0050EB78(void *); -extern s32 func_00501618(void *, Object *, u32); +extern Manager D_00223148[]; +extern Manager *func_005010E0(void); +extern Allocator *func_005011A8(Manager *, s32); +extern void func_L00_0069BEC8(s32); +extern s32 func_L00_0069BED0(void); +extern s32 func_004FF910(void *, u32); +extern void *func_0015DB80(u32, void *); +extern Object *func_005105A0(void *); +extern s32 func_005005A8(void *, Object *, u32); static inline Manager *get_manager(void) { - Manager *manager = D_00222138; + Manager *manager = D_00223148; if (manager->table) { return manager; } - return func_00502150(); + return func_005010E0(); } s32 func_L00_006A06A0(u32 key) @@ -60,17 +60,17 @@ s32 func_L00_006A06A0(u32 key) entry = state != NULL ? *(void **)((u32)state + ((u32) * (s32 *)(state + 0x14) << 2)) : NULL; - func_005052C0(0x50); - size = func_005052C8(); - if (entry != NULL && func_00500980(entry, key) == 0) { - allocator = func_00502218(get_manager(), 1); + func_L00_0069BEC8(0x50); + size = func_L00_0069BED0(); + if (entry != NULL && func_004FF910(entry, key) == 0) { + allocator = func_005011A8(get_manager(), 1); block = allocator->vtable->allocate(allocator, size); if (block != NULL) { - object = func_0050EB78(func_0015DB90(0x50, block)); - result = func_00501618(entry, object, key) != 0; + object = func_005105A0(func_0015DB80(0x50, block)); + result = func_005005A8(entry, object, key) != 0; if (!result) { object->vtable->destroy(object, 2); - allocator = func_00502218(get_manager(), 1); + allocator = func_005011A8(get_manager(), 1); allocator->vtable->release(allocator, block); } } diff --git a/src/overlays/shared/L00_006E8D78.c b/src/overlays/shared/L00_006E8D78.c index 5612c466..6602602e 100644 --- a/src/overlays/shared/L00_006E8D78.c +++ b/src/overlays/shared/L00_006E8D78.c @@ -1,13 +1,13 @@ #include "common.h" -extern void func_00453E20(void *, s32, s32); -extern void *func_L00_006EF740(u8 *p); -extern u8 D_004B5A50[]; +extern void func_00453608(void *, s32, s32); +extern void *func_L00_006EBB80(u8 *p); +extern u8 D_004B5A10[]; void func_L00_006E8D78(u8 *p) { - func_00453E20(p, 0, 0x31f0); - func_L00_006EF740(p); - *(u8 **)(p + 0x14) = D_004B5A50; + func_00453608(p, 0, 0x31f0); + func_L00_006EBB80(p); + *(u8 **)(p + 0x14) = D_004B5A10; *(u8 *)(p + 0x266d) = 1; *(u8 *)(p + 0x31cf) = 5; } diff --git a/src/overlays/shared/L01_004B3FE8.c b/src/overlays/shared/L01_004B3FE8.c index ba7a3c33..2a8275cb 100644 --- a/src/overlays/shared/L01_004B3FE8.c +++ b/src/overlays/shared/L01_004B3FE8.c @@ -1,7 +1,7 @@ /* cflags: -O2 -G8 -Wuninitialized */ #include "common.h" -extern s64 func_L01_0045D380(void *object); +extern s64 func_L01_004B3D18(void *object); u32 func_L01_004B3FE8(void *object) { @@ -13,7 +13,7 @@ u32 func_L01_004B3FE8(void *object) disabled = ((u8 *)value)[0x458]; result = 0; if (disabled == 0) { - value = func_L01_0045D380(object) != 0; + value = func_L01_004B3D18(object) != 0; result = value; } value = result;