feat(phase-30 S47-P): propagation sweep banks 1,419 member-matches for ~0 agent tokens

family_sweep --hseq --band all -j 8 over every matched-exemplar family: 553 families /
203 overlays / 1,419 banked / 1,023 failed (58%). R22 clean-fleet 213 passed / 0 failed of 213.
tools-health OK, dedup-check 1949 validated / 0 failed.

Fleet: 93.9 -> 94.2% instr / 87.2 -> 87.8% distinct / 95.72 -> 96.11% fn-count.
Second oracle (R34): INCLUDE_ASM stubs 15,542 -> 14,120 = -1,422, equal to the diff-derived net
(1,451 removed - 29 re-added = 1,422 = 1,419 sweep + 3 probe). Three independent counts agree.

B -> C -> P IS ONE CHAIN, NOT THREE WINS. 1,102 of the 1,422 landed in ov_SC02_037 (409),
ov_SC03_107 (364), ov_MAIN_012 (329) — the three newly-onboarded binaries from C, which had never
been wired into the shared-body ecosystem, so every matched exemplar was unreachable from them.
B fixed the declarations, C wired the include, P poured through the opening. A repeat sweep will
NOT pay like this; the opening was one-time.

S47 total: 1,481 functions banked with zero agent drafting, all from removing plumbing.

Two findings recorded, neither fixed (deliberate, costed):
- --band defaults to `substantial`: the first probe returned a confident {"families": 0,
  "banked": 0} on a real 135-member `mid` family. Always pass --band all.
- The alias-gather defect: probe on 0x80132018 banked 3/135, all 132 failures classified
  CC1-FAIL(no-diagnostic) because gcc-2.7.2 emits no `error:` prefix. Real error is
  `tbl_D_80187044' undeclared` — the exemplar declares TWO §37 asm-label aliases and uses both,
  family_remap carried one. T7-S1's "gather" class. Measured as an OUTLIER (aggregate 58%),
  which is why the sweep ran before the fix.

Refused by design, all named: 50 jr families / 183 member-slots (§53 interlock — it printed its
own coverage and reason), 264 STRUCT, 112 unresolved immediates, 3 not-stub.
This commit is contained in:
Drew T
2026-08-10 17:59:35 -06:00
parent 5f001a9392
commit 57e345fcce
58 changed files with 34930 additions and 2396 deletions
+868 -885
View File
File diff suppressed because it is too large Load Diff
+60 -60
View File
@@ -4,16 +4,16 @@
# cross-binary collapsible-byte leverage: docs/duplicates.cross.md.
# THREE progress metrics (all matter — see the labels):
FLEET fn-count byte-ident: 347830 / 363379 = 95.72% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 12692709 / 13523856 = 93.9% (shipped .text across main + resident + 211 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 5104760 / 5851963 = 87.2% (78622/90928 unique fns; the DISTINCT-RE number)
FLEET fn-count byte-ident: 349252 / 363379 = 96.11% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 12733946 / 13523856 = 94.2% (shipped .text across main + resident + 211 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 5137648 / 5851963 = 87.8% (79749/90928 unique fns; the DISTINCT-RE number)
MAIN game-code weighted : 436 / 79510 = 0.5% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; LINKED-excluding Ghidra sig dated 2026-08-05; caveat is R34: no independent second oracle for a PS-X EXE, NOT drift)
(fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 12692273 / 13444346 = 94.4%)
(fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 12733510 / 13444346 = 94.7%)
FLEET REAL substantive : 345648 (of which dedup-shared 249221 via 1949 groups / 249295 instances)
FLEET REAL substantive : 347070 (of which dedup-shared 249221 via 1949 groups / 249295 instances)
FLEET LINKED PsyQ objs : 959
FLEET NON_MATCHING : 7 (0 in any default build — G4)
FLEET INCLUDE_ASM stubs : 15542
FLEET INCLUDE_ASM stubs : 14120
FLEET matchable : 363379
| binary | REAL | shared | LINKED | byte-ident | matchable | byte-ident % |
@@ -21,7 +21,7 @@ FLEET matchable : 363379
| main | 54 | 2 | 959 | 1055 | 2096 | 50.3% |
| resident | 129 | 0 | 0 | 131 | 145 | 90.3% |
| md_MAIN_001 | 1 | 0 | 0 | 1 | 11 | 9.1% |
| md_MAIN_003 | 1 | 0 | 0 | 1 | 60 | 1.7% |
| md_MAIN_003 | 3 | 0 | 0 | 3 | 60 | 5.0% |
| md_MAIN_008 | 0 | 0 | 0 | 0 | 6 | 0.0% |
| md_MAIN_011 | 0 | 0 | 0 | 0 | 21 | 0.0% |
| md_MAIN_013 | 3 | 0 | 0 | 3 | 16 | 18.8% |
@@ -31,14 +31,14 @@ FLEET matchable : 363379
| md_MAIN_017 | 3 | 0 | 0 | 3 | 10 | 30.0% |
| md_MAIN_018 | 3 | 0 | 0 | 4 | 11 | 36.4% |
| md_MAIN_019 | 3 | 0 | 0 | 3 | 22 | 13.6% |
| md_MAIN_020 | 5 | 0 | 0 | 6 | 14 | 42.9% |
| md_MAIN_020 | 6 | 0 | 0 | 7 | 14 | 50.0% |
| md_MAIN_021 | 3 | 0 | 0 | 4 | 11 | 36.4% |
| md_MAIN_022 | 11 | 0 | 0 | 13 | 33 | 39.4% |
| md_MAIN_022 | 12 | 0 | 0 | 14 | 33 | 42.4% |
| md_MAIN_023 | 2 | 0 | 0 | 3 | 6 | 50.0% |
| md_MAIN_024 | 2 | 0 | 0 | 4 | 6 | 66.7% |
| md_MAIN_025 | 3 | 0 | 0 | 3 | 30 | 10.0% |
| md_MAIN_026 | 3 | 0 | 0 | 3 | 24 | 12.5% |
| md_MAIN_027 | 6 | 0 | 0 | 8 | 29 | 27.6% |
| md_MAIN_027 | 7 | 0 | 0 | 9 | 29 | 31.0% |
| md_MAIN_028 | 3 | 0 | 0 | 3 | 22 | 13.6% |
| md_MAIN_029 | 3 | 0 | 0 | 4 | 11 | 36.4% |
| md_MAIN_030 | 3 | 0 | 0 | 3 | 10 | 30.0% |
@@ -57,40 +57,40 @@ FLEET matchable : 363379
| md_MAIN_043 | 2 | 0 | 0 | 3 | 23 | 13.0% |
| md_MAIN_044 | 7 | 0 | 0 | 8 | 44 | 18.2% |
| md_MAIN_045 | 0 | 0 | 0 | 1 | 21 | 4.8% |
| md_MAIN_046 | 4 | 0 | 0 | 5 | 39 | 12.8% |
| md_MAIN_046 | 5 | 0 | 0 | 6 | 39 | 15.4% |
| md_MAIN_047 | 3 | 0 | 0 | 4 | 12 | 33.3% |
| md_SC02_009 | 0 | 0 | 0 | 0 | 40 | 0.0% |
| md_SC03_073 | 0 | 0 | 0 | 2 | 28 | 7.1% |
| md_SC03_074 | 0 | 0 | 0 | 2 | 29 | 6.9% |
| md_SC03_075 | 0 | 0 | 0 | 2 | 41 | 4.9% |
| md_SC03_076 | 0 | 0 | 0 | 2 | 66 | 3.0% |
| md_SC03_077 | 0 | 0 | 0 | 2 | 35 | 5.7% |
| md_SC03_078 | 0 | 0 | 0 | 2 | 27 | 7.4% |
| md_SC03_079 | 0 | 0 | 0 | 2 | 29 | 6.9% |
| md_SC03_132 | 0 | 0 | 0 | 2 | 28 | 7.1% |
| md_SC03_133 | 0 | 0 | 0 | 2 | 29 | 6.9% |
| md_SC03_134 | 0 | 0 | 0 | 2 | 41 | 4.9% |
| md_SC03_135 | 0 | 0 | 0 | 2 | 66 | 3.0% |
| md_SC03_136 | 0 | 0 | 0 | 2 | 35 | 5.7% |
| md_SC03_137 | 0 | 0 | 0 | 2 | 27 | 7.4% |
| md_SC03_138 | 0 | 0 | 0 | 4 | 37 | 10.8% |
| md_SC04_024 | 0 | 0 | 0 | 2 | 28 | 7.1% |
| md_SC04_025 | 0 | 0 | 0 | 2 | 29 | 6.9% |
| md_SC04_026 | 0 | 0 | 0 | 2 | 41 | 4.9% |
| md_SC04_027 | 0 | 0 | 0 | 2 | 66 | 3.0% |
| md_SC04_028 | 0 | 0 | 0 | 2 | 35 | 5.7% |
| md_SC04_029 | 0 | 0 | 0 | 2 | 27 | 7.4% |
| md_SC04_030 | 0 | 0 | 0 | 4 | 31 | 12.9% |
| md_SC05_023 | 0 | 0 | 0 | 2 | 28 | 7.1% |
| md_SC05_024 | 0 | 0 | 0 | 2 | 29 | 6.9% |
| md_SC05_025 | 0 | 0 | 0 | 2 | 41 | 4.9% |
| md_SC05_026 | 0 | 0 | 0 | 2 | 66 | 3.0% |
| md_SC05_027 | 0 | 0 | 0 | 2 | 35 | 5.7% |
| md_SC05_028 | 0 | 0 | 0 | 2 | 27 | 7.4% |
| md_SC05_029 | 0 | 0 | 0 | 4 | 31 | 12.9% |
| md_SC02_009 | 4 | 0 | 0 | 4 | 40 | 10.0% |
| md_SC03_073 | 10 | 0 | 0 | 12 | 28 | 42.9% |
| md_SC03_074 | 11 | 0 | 0 | 13 | 29 | 44.8% |
| md_SC03_075 | 13 | 0 | 0 | 15 | 41 | 36.6% |
| md_SC03_076 | 13 | 0 | 0 | 15 | 66 | 22.7% |
| md_SC03_077 | 11 | 0 | 0 | 13 | 35 | 37.1% |
| md_SC03_078 | 9 | 0 | 0 | 11 | 27 | 40.7% |
| md_SC03_079 | 11 | 0 | 0 | 13 | 29 | 44.8% |
| md_SC03_132 | 11 | 0 | 0 | 13 | 28 | 46.4% |
| md_SC03_133 | 12 | 0 | 0 | 14 | 29 | 48.3% |
| md_SC03_134 | 14 | 0 | 0 | 16 | 41 | 39.0% |
| md_SC03_135 | 14 | 0 | 0 | 16 | 66 | 24.2% |
| md_SC03_136 | 12 | 0 | 0 | 14 | 35 | 40.0% |
| md_SC03_137 | 10 | 0 | 0 | 12 | 27 | 44.4% |
| md_SC03_138 | 14 | 0 | 0 | 18 | 37 | 48.6% |
| md_SC04_024 | 10 | 0 | 0 | 12 | 28 | 42.9% |
| md_SC04_025 | 11 | 0 | 0 | 13 | 29 | 44.8% |
| md_SC04_026 | 13 | 0 | 0 | 15 | 41 | 36.6% |
| md_SC04_027 | 13 | 0 | 0 | 15 | 66 | 22.7% |
| md_SC04_028 | 11 | 0 | 0 | 13 | 35 | 37.1% |
| md_SC04_029 | 9 | 0 | 0 | 11 | 27 | 40.7% |
| md_SC04_030 | 11 | 0 | 0 | 15 | 31 | 48.4% |
| md_SC05_023 | 10 | 0 | 0 | 12 | 28 | 42.9% |
| md_SC05_024 | 11 | 0 | 0 | 13 | 29 | 44.8% |
| md_SC05_025 | 13 | 0 | 0 | 15 | 41 | 36.6% |
| md_SC05_026 | 13 | 0 | 0 | 15 | 66 | 22.7% |
| md_SC05_027 | 11 | 0 | 0 | 13 | 35 | 37.1% |
| md_SC05_028 | 9 | 0 | 0 | 11 | 27 | 40.7% |
| md_SC05_029 | 11 | 0 | 0 | 15 | 31 | 48.4% |
| md_SC07_003 | 12 | 0 | 0 | 12 | 100 | 12.0% |
| md_SC07_004 | 40 | 0 | 0 | 40 | 315 | 12.7% |
| ov_MAIN_012 | 1824 | 1658 | 0 | 1903 | 2403 | 79.2% |
| ov_MAIN_012 | 2152 | 1658 | 0 | 2231 | 2403 | 92.8% |
| ov_SC01_000 | 2389 | 1775 | 0 | 2389 | 2403 | 99.4% |
| ov_SC01_001 | 2396 | 1776 | 0 | 2398 | 2466 | 97.2% |
| ov_SC01_004 | 2393 | 1767 | 0 | 2394 | 2414 | 99.2% |
@@ -109,25 +109,25 @@ FLEET matchable : 363379
| ov_SC02_011 | 2626 | 1774 | 0 | 2637 | 2893 | 91.2% |
| ov_SC02_015 | 2399 | 1773 | 0 | 2399 | 2414 | 99.4% |
| ov_SC02_016 | 2482 | 1774 | 0 | 2485 | 2545 | 97.6% |
| ov_SC02_017 | 2550 | 1774 | 0 | 2558 | 2732 | 93.6% |
| ov_SC02_017 | 2551 | 1774 | 0 | 2559 | 2732 | 93.7% |
| ov_SC02_021 | 2404 | 1773 | 0 | 2404 | 2437 | 98.6% |
| ov_SC02_026 | 2502 | 1771 | 0 | 2508 | 2572 | 97.5% |
| ov_SC02_027 | 2558 | 1776 | 0 | 2567 | 2692 | 95.4% |
| ov_SC02_028 | 2563 | 1776 | 0 | 2573 | 2701 | 95.3% |
| ov_SC02_031 | 2493 | 1772 | 0 | 2498 | 2562 | 97.5% |
| ov_SC02_035 | 2487 | 1771 | 0 | 2490 | 2520 | 98.8% |
| ov_SC02_037 | 1877 | 1658 | 0 | 1959 | 2516 | 77.9% |
| ov_SC02_037 | 2265 | 1658 | 0 | 2347 | 2516 | 93.3% |
| ov_SC02_039 | 2394 | 1771 | 0 | 2394 | 2416 | 99.1% |
| ov_SC02_041 | 2475 | 1771 | 0 | 2478 | 2561 | 96.8% |
| ov_SC03_001 | 2669 | 1772 | 0 | 2686 | 2869 | 93.6% |
| ov_SC03_002 | 2541 | 1776 | 0 | 2556 | 2631 | 97.1% |
| ov_SC03_001 | 2670 | 1772 | 0 | 2687 | 2869 | 93.7% |
| ov_SC03_002 | 2542 | 1776 | 0 | 2557 | 2631 | 97.2% |
| ov_SC03_003 | 2398 | 1771 | 0 | 2399 | 2423 | 99.0% |
| ov_SC03_006 | 2553 | 1778 | 0 | 2562 | 2767 | 92.6% |
| ov_SC03_006 | 2554 | 1778 | 0 | 2563 | 2767 | 92.6% |
| ov_SC03_007 | 2462 | 1771 | 0 | 2466 | 2623 | 94.0% |
| ov_SC03_010 | 2415 | 1771 | 0 | 2415 | 2471 | 97.7% |
| ov_SC03_011 | 2415 | 1771 | 0 | 2421 | 2527 | 95.8% |
| ov_SC03_011 | 2416 | 1771 | 0 | 2422 | 2527 | 95.8% |
| ov_SC03_012 | 2388 | 1771 | 0 | 2389 | 2406 | 99.3% |
| ov_SC03_013 | 2420 | 1771 | 0 | 2420 | 2493 | 97.1% |
| ov_SC03_013 | 2421 | 1771 | 0 | 2421 | 2493 | 97.1% |
| ov_SC03_014 | 2573 | 1802 | 0 | 2573 | 2685 | 95.8% |
| ov_SC03_015 | 2572 | 1802 | 0 | 2572 | 2685 | 95.8% |
| ov_SC03_023 | 2400 | 1771 | 0 | 2401 | 2435 | 98.6% |
@@ -153,22 +153,22 @@ FLEET matchable : 363379
| ov_SC03_103 | 2493 | 1773 | 0 | 2496 | 2510 | 99.4% |
| ov_SC03_104 | 2541 | 1776 | 0 | 2548 | 2616 | 97.4% |
| ov_SC03_105 | 2448 | 1772 | 0 | 2455 | 2597 | 94.5% |
| ov_SC03_107 | 1833 | 1658 | 0 | 1916 | 2497 | 76.7% |
| ov_SC03_107 | 2190 | 1658 | 0 | 2273 | 2497 | 91.0% |
| ov_SC03_108 | 2399 | 1771 | 0 | 2399 | 2443 | 98.2% |
| ov_SC03_109 | 2407 | 1771 | 0 | 2409 | 2424 | 99.4% |
| ov_SC03_110 | 2440 | 1778 | 0 | 2440 | 2468 | 98.9% |
| ov_SC03_111 | 2471 | 1771 | 0 | 2474 | 2510 | 98.6% |
| ov_SC03_112 | 2436 | 1773 | 0 | 2438 | 2526 | 96.5% |
| ov_SC03_112 | 2437 | 1773 | 0 | 2439 | 2526 | 96.6% |
| ov_SC03_113 | 2434 | 1773 | 0 | 2437 | 2468 | 98.7% |
| ov_SC03_114 | 2389 | 1771 | 0 | 2391 | 2415 | 99.0% |
| ov_SC03_115 | 2430 | 1771 | 0 | 2432 | 2472 | 98.4% |
| ov_SC03_115 | 2431 | 1771 | 0 | 2433 | 2472 | 98.4% |
| ov_SC03_116 | 2399 | 1771 | 0 | 2402 | 2438 | 98.5% |
| ov_SC03_117 | 2467 | 1771 | 0 | 2473 | 2557 | 96.7% |
| ov_SC03_118 | 2542 | 1796 | 0 | 2543 | 2685 | 94.7% |
| ov_SC03_119 | 2539 | 1796 | 0 | 2540 | 2685 | 94.6% |
| ov_SC03_121 | 2402 | 1771 | 0 | 2405 | 2459 | 97.8% |
| ov_SC03_124 | 2576 | 1767 | 0 | 2596 | 2741 | 94.7% |
| ov_SC03_125 | 2527 | 1771 | 0 | 2539 | 2588 | 98.1% |
| ov_SC03_124 | 2578 | 1767 | 0 | 2598 | 2741 | 94.8% |
| ov_SC03_125 | 2528 | 1771 | 0 | 2540 | 2588 | 98.1% |
| ov_SC03_126 | 2399 | 1773 | 0 | 2399 | 2423 | 99.0% |
| ov_SC04_000 | 2473 | 1775 | 0 | 2482 | 2546 | 97.5% |
| ov_SC04_002 | 2503 | 1771 | 0 | 2507 | 2636 | 95.1% |
@@ -182,26 +182,26 @@ FLEET matchable : 363379
| ov_SC04_010 | 2401 | 1771 | 0 | 2402 | 2419 | 99.3% |
| ov_SC04_011 | 2515 | 1776 | 0 | 2521 | 2803 | 89.9% |
| ov_SC04_012 | 2396 | 1771 | 0 | 2397 | 2420 | 99.0% |
| ov_SC04_015 | 2532 | 1772 | 0 | 2543 | 2611 | 97.4% |
| ov_SC04_015 | 2533 | 1772 | 0 | 2544 | 2611 | 97.4% |
| ov_SC04_016 | 2400 | 1771 | 0 | 2402 | 2440 | 98.4% |
| ov_SC04_018 | 2674 | 1808 | 0 | 2674 | 2857 | 93.6% |
| ov_SC04_019 | 2672 | 1808 | 0 | 2672 | 2857 | 93.5% |
| ov_SC04_020 | 2513 | 1771 | 0 | 2525 | 2567 | 98.4% |
| ov_SC04_020 | 2514 | 1771 | 0 | 2526 | 2567 | 98.4% |
| ov_SC04_021 | 2399 | 1773 | 0 | 2399 | 2423 | 99.0% |
| ov_SC05_000 | 2405 | 1775 | 0 | 2408 | 2422 | 99.4% |
| ov_SC05_001 | 2477 | 1772 | 0 | 2482 | 2574 | 96.4% |
| ov_SC05_001 | 2478 | 1772 | 0 | 2483 | 2574 | 96.5% |
| ov_SC05_002 | 2429 | 1771 | 0 | 2432 | 2442 | 99.6% |
| ov_SC05_003 | 2412 | 1771 | 0 | 2413 | 2481 | 97.3% |
| ov_SC05_004 | 2422 | 1771 | 0 | 2424 | 2464 | 98.4% |
| ov_SC05_005 | 2437 | 1777 | 0 | 2438 | 2491 | 97.9% |
| ov_SC05_006 | 2421 | 1772 | 0 | 2421 | 2430 | 99.6% |
| ov_SC05_007 | 2430 | 1771 | 0 | 2435 | 2482 | 98.1% |
| ov_SC05_007 | 2431 | 1771 | 0 | 2436 | 2482 | 98.1% |
| ov_SC05_008 | 2441 | 1771 | 0 | 2443 | 2543 | 96.1% |
| ov_SC05_009 | 2408 | 1771 | 0 | 2412 | 2438 | 98.9% |
| ov_SC05_010 | 2448 | 1772 | 0 | 2452 | 2588 | 94.7% |
| ov_SC05_011 | 2395 | 1771 | 0 | 2396 | 2409 | 99.5% |
| ov_SC05_017 | 2648 | 1768 | 0 | 2659 | 2842 | 93.6% |
| ov_SC05_018 | 2545 | 1771 | 0 | 2558 | 2673 | 95.7% |
| ov_SC05_017 | 2649 | 1768 | 0 | 2660 | 2842 | 93.6% |
| ov_SC05_018 | 2546 | 1771 | 0 | 2559 | 2673 | 95.7% |
| ov_SC05_019 | 2399 | 1773 | 0 | 2399 | 2423 | 99.0% |
| ov_SC06_000 | 2528 | 1780 | 0 | 2531 | 2691 | 94.1% |
| ov_SC06_006 | 2422 | 1771 | 0 | 2423 | 2511 | 96.5% |
@@ -222,7 +222,7 @@ FLEET matchable : 363379
| ov_SC06_030 | 2412 | 1772 | 0 | 2412 | 2456 | 98.2% |
| ov_SC06_032 | 2487 | 1772 | 0 | 2494 | 2658 | 93.8% |
| ov_SC06_033 | 2488 | 1772 | 0 | 2495 | 2631 | 94.8% |
| ov_SC07_000 | 2431 | 1775 | 0 | 2433 | 2521 | 96.5% |
| ov_SC07_000 | 2432 | 1775 | 0 | 2434 | 2521 | 96.5% |
| ov_SC07_001 | 2403 | 1771 | 0 | 2405 | 2454 | 98.0% |
| ov_SC07_002 | 2459 | 1772 | 0 | 2463 | 2579 | 95.5% |
| ov_SC07_006 | 2323 | 1595 | 0 | 2403 | 2455 | 97.9% |
+38 -4
View File
@@ -183,10 +183,12 @@ stub on a named wall/behemoth/queue ledger** — 140/140 byte-identical througho
# 🛑 SESSION S47 CHECKPOINT (2026-08-10) — FRESH SESSION SAFE HERE
> **Tree CLEAN** but for R23 `db.*.gbf` churn — never stage. **Nothing running.**
> Gates at this commit: **`check-all` 213 passed / 0 failed of 213** (R22 clean-fleet, run twice —
> once for B, once for C); **`tools-health` OK**; **dedup-check 1949 validated / 0 failed, C1
> coverage 249,295**; cookbook index 467 sections, `--check` OK. The S46 carry is CLOSED.
> **Fleet: 93.9% instr / 87.2% distinct / 95.72% fn-count.**
> Gates at this commit: **`check-all` 213 passed / 0 failed of 213** (R22 clean-fleet, run THREE
> times — B, C, and the propagation sweep); **`tools-health` OK**; **dedup-check 1949 validated /
> 0 failed, C1 coverage 249,295**; cookbook index 467 sections, `--check` OK. S46 carry CLOSED.
> **Fleet: 94.2% instr / 87.8% distinct / 96.11% fn-count · INCLUDE_ASM stubs 14,120.**
> **S47 total: 1,481 functions banked with ZERO agent drafting** (62 dedup_extend + 1,419
> propagation) — all of it from removing plumbing, not from cracking code.
> **Attribution, so nobody misreads it:** task **B banks zero functions by design** (declaration
> plumbing); the **+62 came from C**, which B unblocked. B and C land as ONE result, not two.
> **NO phase close** — T5 unopened, needs Drew's gate-2.
@@ -266,6 +268,38 @@ printed `BANKED 0 / 46`, and took its `if not banked:` branch.
- **NOT separated (honest gap):** how much of the 62 is B's conform vs the ladder's own recovery
rungs. Establishing it needs a re-run against the pre-B tree; not worth a fleet build.
## ✅ TASK P (propagation sweep) — **1,419 member-matches banked for ~0 agent tokens**
`family_sweep.py --hseq --band all -j 8` over every matched-exemplar family: **553 families /
203 overlays / 1,419 banked / 1,023 failed (58%)**. R22 **213 passed / 0 failed of 213**,
`tools-health` OK, dedup-check 1949/0.
**Fleet moved: 93.9 → 94.2% instr · 87.2 → 87.8% distinct · 95.72 → 96.11% fn-count.**
**Second oracle (R34):** `INCLUDE_ASM stubs 15,542 → 14,120 = −1,422`, which equals the diff-derived
net (1,451 removed − 29 re-added = 1,422 = 1,419 sweep + 3 probe). Three independent counts agree.
**⚠ B → C → P IS ONE CHAIN, NOT THREE WINS.** 1,102 of the 1,422 landed in `ov_SC02_037` (409),
`ov_SC03_107` (364), `ov_MAIN_012` (329) — the three newly-onboarded binaries from C, which had
never been wired into the shared-body ecosystem, so every matched exemplar in the fleet was
unreachable from them. B fixed the declarations, C wired the include, P poured through the opening.
**Do not expect a repeat sweep to pay like this** — the opening was one-time.
**⚠ `--band` DEFAULTS TO `substantial`.** The first probe returned a confident
`{"families": 0, "banked": 0}` on a real 135-member family purely because it is band `mid`.
**Always pass `--band all`** unless you mean otherwise.
**The alias-gather defect (found, measured, NOT fixed — deliberate).** The 135-member probe on
`0x80132018` banked only 3/135; all 132 failures were `CC1-FAIL(no-diagnostic)`. The real error
(gcc-2.7.2 emits no `error:` prefix — the classifier is still blind to it, cf. T0(b)) is
`tbl_D_80187044' undeclared`: the ov_SC01_077 exemplar declares TWO §37 asm-label aliases
(`tbl_D_80187044` + `tbl_D_80187048`) and uses both, but `family_remap` carried only ONE into the
remapped draft. **This is T7-S1's "gather" class.** It is an OUTLIER, not the norm — the aggregate
rate is 58%, which is why the sweep was run before the fix. Costing it is now worthwhile against
the 1,023 failures (unclassified).
**Refused by design, all named:** 50 jr families / 183 member-slots (§53 interlock — the tool
PRINTED its own coverage and the reason, the one guard today that did) · 264 STRUCT members ·
112 unresolved immediates · 3 not-stub. The jr set routes to `tools/jtbl_family_bank.py`.
## ▶ RESUME HERE — D (and the leftovers below)
**C is DONE.** For reference, the command was:
`.venv/bin/python tools/dedup_extend.py --binaries ov_SC03_107,ov_MAIN_012,ov_SC02_037`
+9 -2
View File
@@ -111,11 +111,18 @@ INCLUDE_ASM("asm/md_MAIN_003/nonmatchings/md_MAIN_003", func_800D2AD8);
INCLUDE_ASM("asm/md_MAIN_003/nonmatchings/md_MAIN_003", func_800D2B64);
INCLUDE_ASM("asm/md_MAIN_003/nonmatchings/md_MAIN_003", func_800D2C00);
u16 func_800D2C00(s32 *a0) {
return *(u16*)((s32)a0 + 0x0);
}
INCLUDE_ASM("asm/md_MAIN_003/nonmatchings/md_MAIN_003", func_800D2C0C);
INCLUDE_ASM("asm/md_MAIN_003/nonmatchings/md_MAIN_003", func_800D2C88);
extern void func_800D2EF8(void);
void func_800D2C88(void) {
func_800D2EF8();
}
INCLUDE_ASM("asm/md_MAIN_003/nonmatchings/md_MAIN_003", func_800D2CA8);
+7 -1
View File
@@ -26,7 +26,13 @@ void func_800CAF10(void) {
INCLUDE_ASM("asm/md_MAIN_020/nonmatchings/md_MAIN_020", func_800CAF18);
INCLUDE_ASM("asm/md_MAIN_020/nonmatchings/md_MAIN_020", func_800CAF38);
extern void func_80147078(s32 *a0, s16 a1);
extern void func_800CAFFC(void);
void func_800CAF38(s32 *a0) {
func_80147078(a0, 31);
((void (*)(void *))func_800CAFFC)(a0);
}
extern void func_80147078(s32 *a0, s16 a1);
extern void func_800CAFA0(void *a0);
+7 -1
View File
@@ -26,7 +26,13 @@ INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CAEE8);
void func_800CAF3C(void) {
}
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CAF44);
extern void func_80147078(s32 *a0, s16 a1);
extern void func_800CB008(void);
void func_800CAF44(s32 *a0) {
func_80147078(a0, 34);
((void (*)(void *))func_800CB008)(a0);
}
extern void func_80147078(s32 *a0, s16 a1);
extern void func_800CAFAC(void *a0);
+7 -1
View File
@@ -27,7 +27,13 @@ void func_800CAF18(void) {
void func_800CAF20(void) {
}
INCLUDE_ASM("asm/md_MAIN_027/nonmatchings/md_MAIN_027", func_800CAF28);
extern void func_80147078(s32 *a0, s16 a1);
extern void func_800CAFEC(void);
void func_800CAF28(s32 *a0) {
func_80147078(a0, 32);
((void (*)(void *))func_800CAFEC)(a0);
}
extern void func_80147078(s32 *a0, s16 a1);
extern void func_800CAF90(void *a0);
+7 -1
View File
@@ -7,7 +7,13 @@ INCLUDE_ASM("asm/md_MAIN_046/nonmatchings/md_MAIN_046", func_800CCB28);
INCLUDE_ASM("asm/md_MAIN_046/nonmatchings/md_MAIN_046", func_800CCB78);
INCLUDE_ASM("asm/md_MAIN_046/nonmatchings/md_MAIN_046", func_800CCC8C);
extern void func_80147078(s32 *a0, s16 a1);
extern void func_800CCD50(void);
void func_800CCC8C(s32 *a0) {
func_80147078(a0, 33);
((void (*)(void *))func_800CCD50)(a0);
}
extern void func_80147078(s32 *a0, s16 a1);
extern void func_800CCCF4(void *a0);
+32 -4
View File
@@ -1,6 +1,13 @@
#include "common.h"
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E4C64);
void func_801E4C64(void *a0) {
extern void (*D_801E663C[])(void);
D_801E663C[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E4CA0);
@@ -38,7 +45,14 @@ INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E53A8);
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E53E0);
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E5450);
void func_801E5450(void *a0) {
extern void (*D_801E6680[])(void);
D_801E6680[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E548C);
@@ -66,7 +80,14 @@ INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E58C0);
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E590C);
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E5968);
void func_801E5968(void *a0) {
extern void (*D_801E66B0[])(void);
D_801E66B0[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E59A4);
@@ -76,7 +97,14 @@ INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E5B0C);
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E5B3C);
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E5C6C);
void func_801E5C6C(void *a0) {
extern void (*D_801E66BC[])(void);
D_801E66BC[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E5CA8);
+82 -10
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF47C);
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF4D4);
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF4F8);
extern s32 func_800167F0(s32 a0);
s32 func_801EF4D4(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801EF798(void *arg0);
s32 func_801EF4F8(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801EF798, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF544);
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF5D4);
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF5F4);
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF630);
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF66C);
void func_801EF5F4(void *a0) {
extern void (*D_801EFE90[])(void);
D_801EFE90[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EF630(void *a0) {
extern void (*D_801EFE98[])(void);
D_801EFE98[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EF66C(void *a0) {
extern void (*D_801EFF1C[])(void);
D_801EFF1C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF6A8);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF738);
void func_801EF790(void) {
}
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF798);
void func_801EF798(void *a0) {
extern void (*D_801EFF2C[])(void);
D_801EFF2C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF7D4);
@@ -38,19 +82,47 @@ void func_801EF85C(void) {
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF864);
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF928);
void func_801EF928(void *a0) {
extern void (*D_801EFF38[])(void);
D_801EFF38[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF964);
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF98C);
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EFB84);
void func_801EFB84(void *a0) {
extern void (*D_801F0040[])(void);
D_801F0040[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EFBC0);
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EFBD0);
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EFBE4);
void func_801EFBD0(void) {
extern s32 D_801F661C;
D_801F661C = 1;
}
s32 func_801EFBE4(void) {
extern s32 D_801F661C;
return D_801F661C;
}
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EFBF4);
+95 -11
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF47C);
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF4D4);
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF4F8);
extern s32 func_800167F0(s32 a0);
s32 func_801EF4D4(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801EF798(void *arg0);
s32 func_801EF4F8(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801EF798, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF544);
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF5D4);
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF5F4);
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF630);
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF66C);
void func_801EF5F4(void *a0) {
extern void (*D_801EFF38[])(void);
D_801EFF38[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EF630(void *a0) {
extern void (*D_801EFF40[])(void);
D_801EFF40[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EF66C(void *a0) {
extern void (*D_801EFFC4[])(void);
D_801EFFC4[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF6A8);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF738);
void func_801EF790(void) {
}
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF798);
void func_801EF798(void *a0) {
extern void (*D_801EFFD4[])(void);
D_801EFFD4[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF7D4);
@@ -38,21 +82,61 @@ void func_801EF85C(void) {
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF864);
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF928);
void func_801EF928(void *a0) {
extern void (*D_801EFFE0[])(void);
D_801EFFE0[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF964);
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF98C);
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EFB84);
void func_801EFB84(void *a0) {
extern void (*D_801F0120[])(void);
D_801F0120[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EFBC0);
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EFC0C);
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EFC20);
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EFC30);
void func_801EFC0C(void) {
extern s32 D_801F5F04;
D_801F5F04 = 1;
}
s32 func_801EFC20(void) {
extern s32 D_801F5F04;
return D_801F5F04;
}
extern s32 func_80029178(s32 arg);
extern void func_80029124(s32, s32);
s32 func_801EFC30(void) {
if ((func_80029178(0x10e) & 0xFF) == 0) {
((void (*)(void *, s32))func_80029124)((void *)0x10e, 1);
return 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EFC6C);
+111 -13
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF47C);
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF4D4);
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF4F8);
extern s32 func_800167F0(s32 a0);
s32 func_801EF4D4(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801EF798(void *arg0);
s32 func_801EF4F8(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801EF798, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF544);
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF5D4);
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF5F4);
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF630);
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF66C);
void func_801EF5F4(void *a0) {
extern void (*D_801F0400[])(void);
D_801F0400[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EF630(void *a0) {
extern void (*D_801F0408[])(void);
D_801F0408[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EF66C(void *a0) {
extern void (*D_801F048C[])(void);
D_801F048C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF6A8);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF738);
void func_801EF790(void) {
}
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF798);
void func_801EF798(void *a0) {
extern void (*D_801F049C[])(void);
D_801F049C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF7D4);
@@ -38,23 +82,63 @@ void func_801EF85C(void) {
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF864);
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF928);
void func_801EF928(void *a0) {
extern void (*D_801F04A8[])(void);
D_801F04A8[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF964);
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF98C);
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EFB84);
void func_801EFB84(void *a0) {
extern void (*D_801F0620[])(void);
D_801F0620[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EFBC0);
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EFC0C);
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EFC20);
void func_801EFC0C(void) {
extern s32 D_801F6CA4;
D_801F6CA4 = 1;
}
s32 func_801EFC20(void) {
extern s32 D_801F6CA4;
return D_801F6CA4;
}
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EFC30);
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EFC94);
extern s32 func_80029178(s32 arg);
extern void func_80029124(s32, s32);
s32 func_801EFC94(void) {
if ((func_80029178(0x10f) & 0xFF) == 0) {
((void (*)(void *, s32))func_80029124)((void *)0x10f, 1);
return 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EFCD0);
@@ -66,7 +150,14 @@ INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EFF54);
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801F00F8);
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801F0250);
void func_801F0250(void *a0) {
extern void (*D_801F081C[])(void);
D_801F081C[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801F028C);
@@ -82,6 +173,13 @@ INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801F033C);
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801F0364);
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801F03A0);
extern void func_80029124(s32 arg0, s32 arg1);
void func_801F03A0(void) {
func_80029124(0xF5, 1);
func_80029124(0xFB, 1);
}
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801F03D0);
+150 -13
View File
@@ -6,9 +6,19 @@ INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801EF70C);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801EF750);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801EF7DC);
void func_801EF7DC(void) {
extern s16 D_801F96BA;
D_801F96BA = -1;
}
s16 func_801EF7F0(void) {
extern s16 D_801F9AB4;
return D_801F9AB4;
}
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801EF7F0);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801EF800);
@@ -18,11 +28,67 @@ INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801EF8D4);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801EF918);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801EFA44);
typedef struct { s8 c[8]; } Blk8_8012C890_801EFA44;
/* func_801EFA44 @ 0x8017C24C -- ov_MAIN_012 (7 ins).
*
* NOTE ON TARGET IDENTITY (tier-2): the dispatched entry ("483 ins, ov_SC06_032") does not
* exist. ov_SC06_032's func_801EFA44 is a 952-ins renderer, already MATCHED/closed in
* src/ov_SC06_032/ov_SC06_032_jr_8017C24C.c -- and "ov_SC06_032_jr_8017C24C" is a CARVE-REGION
* name, not a member function (that region holds only func_801902EC/func_80191070).
* The only genuinely unmatched func_801EFA44 in the tree is this ov_MAIN_012 one -- a
* distinct 7-ins function that merely shares the VRAM address (overlay collision).
*
* Codegen note (§31 cse_expr): the target materialises the symbol address ONCE
* (lui+addiu -> $v1) and does both the lhu and the sh off that base. Writing the global
* directly (D_80115112 = D_80115112 + 1) instead emits TWO luis (%hi for the load, %hi for
* the store) -> 8 ins, LENGTH-DRIFT. Taking the address into a pointer local forces the
* single-base form. The nop at idx3 is the lhu load-delay slot (maspsx).
*
* D_80115112: u16 frame/state counter (same symbol used in ov_SC03_099_jr_80140608).
*/
void func_801EFA44(void)
{
extern unsigned short D_80115112;
unsigned short *p = &D_80115112;
*p = *p + 1;
}
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801EFA60);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801EFB40);
typedef struct { s8 c[8]; } Blk8_8012C890_801EFB40;
/* func_801EFB40 @ 0x8017C24C -- ov_MAIN_012 (7 ins).
*
* NOTE ON TARGET IDENTITY (tier-2): the dispatched entry ("483 ins, ov_SC06_032") does not
* exist. ov_SC06_032's func_801EFB40 is a 952-ins renderer, already MATCHED/closed in
* src/ov_SC06_032/ov_SC06_032_jr_8017C24C.c -- and "ov_SC06_032_jr_8017C24C" is a CARVE-REGION
* name, not a member function (that region holds only func_801902EC/func_80191070).
* The only genuinely unmatched func_801EFB40 in the tree is this ov_MAIN_012 one -- a
* distinct 7-ins function that merely shares the VRAM address (overlay collision).
*
* Codegen note (§31 cse_expr): the target materialises the symbol address ONCE
* (lui+addiu -> $v1) and does both the lhu and the sh off that base. Writing the global
* directly (D_80115112 = D_80115112 + 1) instead emits TWO luis (%hi for the load, %hi for
* the store) -> 8 ins, LENGTH-DRIFT. Taking the address into a pointer local forces the
* single-base form. The nop at idx3 is the lhu load-delay slot (maspsx).
*
* D_80115112: u16 frame/state counter (same symbol used in ov_SC03_099_jr_80140608).
*/
void func_801EFB40(void)
{
extern unsigned short D_80115112;
unsigned short *p = &D_80115112;
*p = *p + 1;
}
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801EFB5C);
@@ -44,7 +110,23 @@ INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F0A9C);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F0F28);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1440);
u32 func_801F1440(s32 a0, s32 a1) {
s32 t0;
s32 a2;
s32 a3;
t0 = 0;
a2 = a0;
a3 = 0;
while (a2 >= 10) {
a0 = a0 / 10;
t0 = t0 | ((a2 - (a0 * 2 + a0 * 8)) << a3);
a2 = a0;
a3 += 4;
}
t0 = t0 | (a2 << a3);
return t0 << a1;
}
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F14A8);
@@ -58,7 +140,13 @@ INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1A24);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1A4C);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1AA4);
extern s32 func_800167F0(s32 a0);
s32 func_801F1AA4(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1AC8);
@@ -66,11 +154,25 @@ INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1B1C);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1BAC);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1BCC);
void func_801F1BCC(void *a0) {
extern void (*D_801F3480[])(void);
D_801F3480[*(u8 *)((s32)a0 + 0x15)]();
}
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1C08);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1C74);
void func_801F1C74(void *a0) {
extern void (*D_801F350C[])(void);
D_801F350C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1CB0);
@@ -81,7 +183,14 @@ INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1D40);
void func_801F1D98(void) {
}
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1DA0);
void func_801F1DA0(void *a0) {
extern void (*D_801F351C[])(void);
D_801F351C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1DDC);
@@ -92,7 +201,14 @@ void func_801F1E64(void) {
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1E6C);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1F30);
void func_801F1F30(void *a0) {
extern void (*D_801F3528[])(void);
D_801F3528[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1F6C);
@@ -100,13 +216,34 @@ INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1F94);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F218C);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F22D8);
void func_801F22D8(void *a0) {
extern void (*D_801F3678[])(void);
D_801F3678[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F2314);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F2324);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F2338);
void func_801F2324(void) {
extern s32 D_801F9DD0;
D_801F9DD0 = 1;
}
s32 func_801F2338(void) {
extern s32 D_801F9DD0;
return D_801F9DD0;
}
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F2348);
+95 -11
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF490);
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF4E8);
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF50C);
extern s32 func_800167F0(s32 a0);
s32 func_801EF4E8(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801EF7CC(void *arg0);
s32 func_801EF50C(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801EF7CC, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF558);
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF608);
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF628);
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF664);
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF6A0);
void func_801EF628(void *a0) {
extern void (*D_801F008C[])(void);
D_801F008C[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EF664(void *a0) {
extern void (*D_801F0094[])(void);
D_801F0094[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EF6A0(void *a0) {
extern void (*D_801F0118[])(void);
D_801F0118[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF6DC);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF76C);
void func_801EF7C4(void) {
}
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF7CC);
void func_801EF7CC(void *a0) {
extern void (*D_801F0128[])(void);
D_801F0128[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF808);
@@ -38,7 +82,14 @@ void func_801EF890(void) {
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF898);
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF95C);
void func_801EF95C(void *a0) {
extern void (*D_801F0134[])(void);
D_801F0134[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF998);
@@ -46,15 +97,48 @@ INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF9C0);
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EFB58);
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EFCB4);
void func_801EFCB4(void *a0) {
extern void (*D_801F0450[])(void);
D_801F0450[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EFCF0);
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EFD00);
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EFD14);
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EFD24);
void func_801EFD00(void) {
extern s32 D_801F7464;
D_801F7464 = 1;
}
s32 func_801EFD14(void) {
extern s32 D_801F7464;
return D_801F7464;
}
extern s32 func_80029178(s32 arg);
extern void func_80029124(s32, s32);
s32 func_801EFD24(void) {
if ((func_80029178(0x111) & 0xFF) == 0) {
((void (*)(void *, s32))func_80029124)((void *)0x111, 1);
return 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EFD60);
+77 -9
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF47C);
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF4D4);
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF4F8);
extern s32 func_800167F0(s32 a0);
s32 func_801EF4D4(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801EF798(void *arg0);
s32 func_801EF4F8(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801EF798, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF544);
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF5D4);
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF5F4);
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF630);
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF66C);
void func_801EF5F4(void *a0) {
extern void (*D_801EFDE0[])(void);
D_801EFDE0[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EF630(void *a0) {
extern void (*D_801EFDE8[])(void);
D_801EFDE8[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EF66C(void *a0) {
extern void (*D_801EFE6C[])(void);
D_801EFE6C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF6A8);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF738);
void func_801EF790(void) {
}
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF798);
void func_801EF798(void *a0) {
extern void (*D_801EFE7C[])(void);
D_801EFE7C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF7D4);
@@ -38,19 +82,43 @@ void func_801EF85C(void) {
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF864);
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF928);
void func_801EF928(void *a0) {
extern void (*D_801EFE88[])(void);
D_801EFE88[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF964);
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF98C);
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EFB84);
void func_801EFB84(void *a0) {
extern void (*D_801EFF94[])(void);
D_801EFF94[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EFBC0);
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EFC60);
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EFC80);
extern void func_8014B2A8(void);
extern void func_8002D4C8(s32 a0, s32 a1);
void func_801EFC80(void) {
func_8014B2A8();
((s32 (*)(s32, s32))func_8002D4C8)(0x464, 0);
}
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EFCAC);
+95 -11
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF48C);
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF4E4);
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF508);
extern s32 func_800167F0(s32 a0);
s32 func_801EF4E4(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801EF7A8(void *arg0);
s32 func_801EF508(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801EF7A8, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF554);
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF5E4);
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF604);
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF640);
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF67C);
void func_801EF604(void *a0) {
extern void (*D_801EFF04[])(void);
D_801EFF04[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EF640(void *a0) {
extern void (*D_801EFF0C[])(void);
D_801EFF0C[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EF67C(void *a0) {
extern void (*D_801EFF90[])(void);
D_801EFF90[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF6B8);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF748);
void func_801EF7A0(void) {
}
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF7A8);
void func_801EF7A8(void *a0) {
extern void (*D_801EFFA0[])(void);
D_801EFFA0[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF7E4);
@@ -38,7 +82,14 @@ void func_801EF86C(void) {
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF874);
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF938);
void func_801EF938(void *a0) {
extern void (*D_801EFFAC[])(void);
D_801EFFAC[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF974);
@@ -46,15 +97,48 @@ INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF99C);
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EFB94);
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EFCF0);
void func_801EFCF0(void *a0) {
extern void (*D_801F00F4[])(void);
D_801F00F4[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EFD2C);
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EFD3C);
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EFD50);
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EFD60);
void func_801EFD3C(void) {
extern s32 D_801F8E10;
D_801F8E10 = 1;
}
s32 func_801EFD50(void) {
extern s32 D_801F8E10;
return D_801F8E10;
}
extern s32 func_80029178(s32 arg);
extern void func_80029124(s32, s32);
s32 func_801EFD60(void) {
if ((func_80029178(0x112) & 0xFF) == 0) {
((void (*)(void *, s32))func_80029124)((void *)0x112, 1);
return 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EFD9C);
+87 -11
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E25F4);
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E264C);
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2670);
extern s32 func_800167F0(s32 a0);
s32 func_801E264C(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801E2920(void *arg0);
s32 func_801E2670(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801E2920, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E26BC);
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E275C);
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E277C);
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E27B8);
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E27F4);
void func_801E277C(void *a0) {
extern void (*D_801E2FF0[])(void);
D_801E2FF0[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E27B8(void *a0) {
extern void (*D_801E2FF8[])(void);
D_801E2FF8[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E27F4(void *a0) {
extern void (*D_801E307C[])(void);
D_801E307C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2830);
@@ -25,7 +62,14 @@ INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E28C0);
void func_801E2918(void) {
}
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2920);
void func_801E2920(void *a0) {
extern void (*D_801E308C[])(void);
D_801E308C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E295C);
@@ -36,21 +80,53 @@ void func_801E29E4(void) {
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E29EC);
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2AB0);
void func_801E2AB0(void *a0) {
extern void (*D_801E3098[])(void);
D_801E3098[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2AEC);
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2B14);
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2D0C);
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2D14);
s32 func_801E2D0C(void) {
return 39;
}
void func_801E2D14(void *a0) {
extern void (*D_801E31A0[])(void);
D_801E31A0[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2D50);
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2D60);
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2D74);
void func_801E2D60(void) {
extern s32 D_801E977C;
D_801E977C = 1;
}
s32 func_801E2D74(void) {
extern s32 D_801E977C;
return D_801E977C;
}
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2D84);
+100 -12
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E25FC);
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2654);
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2678);
extern s32 func_800167F0(s32 a0);
s32 func_801E2654(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801E2928(void *arg0);
s32 func_801E2678(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801E2928, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E26C4);
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2764);
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2784);
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E27C0);
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E27FC);
void func_801E2784(void *a0) {
extern void (*D_801E30A0[])(void);
D_801E30A0[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E27C0(void *a0) {
extern void (*D_801E30A8[])(void);
D_801E30A8[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E27FC(void *a0) {
extern void (*D_801E312C[])(void);
D_801E312C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2838);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E28C8);
void func_801E2920(void) {
}
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2928);
void func_801E2928(void *a0) {
extern void (*D_801E313C[])(void);
D_801E313C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2964);
@@ -38,23 +82,67 @@ void func_801E29EC(void) {
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E29F4);
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2AB8);
void func_801E2AB8(void *a0) {
extern void (*D_801E3148[])(void);
D_801E3148[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2AF4);
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2B1C);
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2D14);
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2D1C);
s32 func_801E2D14(void) {
return 39;
}
void func_801E2D1C(void *a0) {
extern void (*D_801E3288[])(void);
D_801E3288[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2D58);
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2DA4);
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2DB8);
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2DC8);
void func_801E2DA4(void) {
extern s32 D_801E906C;
D_801E906C = 1;
}
s32 func_801E2DB8(void) {
extern s32 D_801E906C;
return D_801E906C;
}
extern s32 func_80029178(s32 arg);
extern void func_80029124(s32, s32);
s32 func_801E2DC8(void) {
if ((func_80029178(0x10e) & 0xFF) == 0) {
((void (*)(void *, s32))func_80029124)((void *)0x10e, 1);
return 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2E04);
+116 -14
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E25FC);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2654);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2678);
extern s32 func_800167F0(s32 a0);
s32 func_801E2654(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801E2928(void *arg0);
s32 func_801E2678(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801E2928, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E26C4);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2764);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2784);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E27C0);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E27FC);
void func_801E2784(void *a0) {
extern void (*D_801E3568[])(void);
D_801E3568[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E27C0(void *a0) {
extern void (*D_801E3570[])(void);
D_801E3570[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E27FC(void *a0) {
extern void (*D_801E361C[])(void);
D_801E361C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2838);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E28C8);
void func_801E2920(void) {
}
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2928);
void func_801E2928(void *a0) {
extern void (*D_801E362C[])(void);
D_801E362C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2964);
@@ -38,25 +82,69 @@ void func_801E29EC(void) {
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E29F4);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2AB8);
void func_801E2AB8(void *a0) {
extern void (*D_801E3638[])(void);
D_801E3638[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2AF4);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2B1C);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2D14);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2D1C);
s32 func_801E2D14(void) {
return 39;
}
void func_801E2D1C(void *a0) {
extern void (*D_801E37B0[])(void);
D_801E37B0[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2D58);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2DA4);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2DB8);
void func_801E2DA4(void) {
extern s32 D_801E9E34;
D_801E9E34 = 1;
}
s32 func_801E2DB8(void) {
extern s32 D_801E9E34;
return D_801E9E34;
}
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2DC8);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2E2C);
extern s32 func_80029178(s32 arg);
extern void func_80029124(s32, s32);
s32 func_801E2E2C(void) {
if ((func_80029178(0x10f) & 0xFF) == 0) {
((void (*)(void *, s32))func_80029124)((void *)0x10f, 1);
return 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2E68);
@@ -68,7 +156,14 @@ INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E30EC);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E3290);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E33E8);
void func_801E33E8(void *a0) {
extern void (*D_801E39AC[])(void);
D_801E39AC[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E3424);
@@ -84,4 +179,11 @@ INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E34D4);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E34FC);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E3538);
extern void func_80029124(s32 arg0, s32 arg1);
void func_801E3538(void) {
func_80029124(0xF5, 1);
func_80029124(0xFB, 1);
}
+155 -14
View File
@@ -6,9 +6,19 @@ INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E288C);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E28D0);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E295C);
void func_801E295C(void) {
extern s16 D_801EA556;
D_801EA556 = -1;
}
s16 func_801E2970(void) {
extern s16 D_801EA950;
return D_801EA950;
}
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E2970);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E2980);
@@ -18,11 +28,67 @@ INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E2A54);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E2A98);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E2BC4);
typedef struct { s8 c[8]; } Blk8_8012C890_801E2BC4;
/* func_801E2BC4 @ 0x8017C24C -- ov_MAIN_012 (7 ins).
*
* NOTE ON TARGET IDENTITY (tier-2): the dispatched entry ("483 ins, ov_SC06_032") does not
* exist. ov_SC06_032's func_801E2BC4 is a 952-ins renderer, already MATCHED/closed in
* src/ov_SC06_032/ov_SC06_032_jr_8017C24C.c -- and "ov_SC06_032_jr_8017C24C" is a CARVE-REGION
* name, not a member function (that region holds only func_801902EC/func_80191070).
* The only genuinely unmatched func_801E2BC4 in the tree is this ov_MAIN_012 one -- a
* distinct 7-ins function that merely shares the VRAM address (overlay collision).
*
* Codegen note (§31 cse_expr): the target materialises the symbol address ONCE
* (lui+addiu -> $v1) and does both the lhu and the sh off that base. Writing the global
* directly (D_80115112 = D_80115112 + 1) instead emits TWO luis (%hi for the load, %hi for
* the store) -> 8 ins, LENGTH-DRIFT. Taking the address into a pointer local forces the
* single-base form. The nop at idx3 is the lhu load-delay slot (maspsx).
*
* D_80115112: u16 frame/state counter (same symbol used in ov_SC03_099_jr_80140608).
*/
void func_801E2BC4(void)
{
extern unsigned short D_80115112;
unsigned short *p = &D_80115112;
*p = *p + 1;
}
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E2BE0);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E2CC0);
typedef struct { s8 c[8]; } Blk8_8012C890_801E2CC0;
/* func_801E2CC0 @ 0x8017C24C -- ov_MAIN_012 (7 ins).
*
* NOTE ON TARGET IDENTITY (tier-2): the dispatched entry ("483 ins, ov_SC06_032") does not
* exist. ov_SC06_032's func_801E2CC0 is a 952-ins renderer, already MATCHED/closed in
* src/ov_SC06_032/ov_SC06_032_jr_8017C24C.c -- and "ov_SC06_032_jr_8017C24C" is a CARVE-REGION
* name, not a member function (that region holds only func_801902EC/func_80191070).
* The only genuinely unmatched func_801E2CC0 in the tree is this ov_MAIN_012 one -- a
* distinct 7-ins function that merely shares the VRAM address (overlay collision).
*
* Codegen note (§31 cse_expr): the target materialises the symbol address ONCE
* (lui+addiu -> $v1) and does both the lhu and the sh off that base. Writing the global
* directly (D_80115112 = D_80115112 + 1) instead emits TWO luis (%hi for the load, %hi for
* the store) -> 8 ins, LENGTH-DRIFT. Taking the address into a pointer local forces the
* single-base form. The nop at idx3 is the lhu load-delay slot (maspsx).
*
* D_80115112: u16 frame/state counter (same symbol used in ov_SC03_099_jr_80140608).
*/
void func_801E2CC0(void)
{
extern unsigned short D_80115112;
unsigned short *p = &D_80115112;
*p = *p + 1;
}
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E2CDC);
@@ -44,7 +110,23 @@ INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E3C1C);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E40A8);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E45C0);
u32 func_801E45C0(s32 a0, s32 a1) {
s32 t0;
s32 a2;
s32 a3;
t0 = 0;
a2 = a0;
a3 = 0;
while (a2 >= 10) {
a0 = a0 / 10;
t0 = t0 | ((a2 - (a0 * 2 + a0 * 8)) << a3);
a2 = a0;
a3 += 4;
}
t0 = t0 | (a2 << a3);
return t0 << a1;
}
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4628);
@@ -58,7 +140,13 @@ INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4BA4);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4BCC);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4C24);
extern s32 func_800167F0(s32 a0);
s32 func_801E4C24(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4C48);
@@ -66,11 +154,25 @@ INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4C9C);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4D3C);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4D5C);
void func_801E4D5C(void *a0) {
extern void (*D_801E65E8[])(void);
D_801E65E8[*(u8 *)((s32)a0 + 0x15)]();
}
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4D98);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4E04);
void func_801E4E04(void *a0) {
extern void (*D_801E6674[])(void);
D_801E6674[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4E40);
@@ -81,7 +183,14 @@ INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4ED0);
void func_801E4F28(void) {
}
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4F30);
void func_801E4F30(void *a0) {
extern void (*D_801E6684[])(void);
D_801E6684[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4F6C);
@@ -92,25 +201,57 @@ void func_801E4FF4(void) {
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4FFC);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E50C0);
void func_801E50C0(void *a0) {
extern void (*D_801E6690[])(void);
D_801E6690[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E50FC);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E5124);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E531C);
s32 func_801E531C(void) {
return 39;
}
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E5324);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E5358);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E54A4);
void func_801E54A4(void *a0) {
extern void (*D_801E67E0[])(void);
D_801E67E0[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E54E0);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E54F0);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E5504);
void func_801E54F0(void) {
extern s32 D_801EAC6C;
D_801EAC6C = 1;
}
s32 func_801E5504(void) {
extern s32 D_801EAC6C;
return D_801EAC6C;
}
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E5514);
+100 -12
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2610);
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2668);
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E268C);
extern s32 func_800167F0(s32 a0);
s32 func_801E2668(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801E293C(void *arg0);
s32 func_801E268C(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801E293C, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E26D8);
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2778);
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2798);
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E27D4);
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2810);
void func_801E2798(void *a0) {
extern void (*D_801E31D4[])(void);
D_801E31D4[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E27D4(void *a0) {
extern void (*D_801E31DC[])(void);
D_801E31DC[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E2810(void *a0) {
extern void (*D_801E3260[])(void);
D_801E3260[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E284C);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E28DC);
void func_801E2934(void) {
}
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E293C);
void func_801E293C(void *a0) {
extern void (*D_801E3270[])(void);
D_801E3270[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2978);
@@ -38,25 +82,69 @@ void func_801E2A00(void) {
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2A08);
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2ACC);
void func_801E2ACC(void *a0) {
extern void (*D_801E327C[])(void);
D_801E327C[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2B08);
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2B30);
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2CC8);
s32 func_801E2CC8(void) {
return 39;
}
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2CD0);
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2E2C);
void func_801E2E2C(void *a0) {
extern void (*D_801E3598[])(void);
D_801E3598[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2E68);
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2E78);
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2E8C);
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2E9C);
void func_801E2E78(void) {
extern s32 D_801EA5AC;
D_801EA5AC = 1;
}
s32 func_801E2E8C(void) {
extern s32 D_801EA5AC;
return D_801EA5AC;
}
extern s32 func_80029178(s32 arg);
extern void func_80029124(s32, s32);
s32 func_801E2E9C(void) {
if ((func_80029178(0x111) & 0xFF) == 0) {
((void (*)(void *, s32))func_80029124)((void *)0x111, 1);
return 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2ED8);
+82 -10
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E25FC);
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2654);
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2678);
extern s32 func_800167F0(s32 a0);
s32 func_801E2654(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801E2928(void *arg0);
s32 func_801E2678(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801E2928, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E26C4);
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2764);
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2784);
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E27C0);
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E27FC);
void func_801E2784(void *a0) {
extern void (*D_801E2F48[])(void);
D_801E2F48[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E27C0(void *a0) {
extern void (*D_801E2F50[])(void);
D_801E2F50[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E27FC(void *a0) {
extern void (*D_801E2FD4[])(void);
D_801E2FD4[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2838);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E28C8);
void func_801E2920(void) {
}
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2928);
void func_801E2928(void *a0) {
extern void (*D_801E2FE4[])(void);
D_801E2FE4[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2964);
@@ -38,21 +82,49 @@ void func_801E29EC(void) {
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E29F4);
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2AB8);
void func_801E2AB8(void *a0) {
extern void (*D_801E2FF0[])(void);
D_801E2FF0[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2AF4);
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2B1C);
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2D14);
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2D1C);
s32 func_801E2D14(void) {
return 39;
}
void func_801E2D1C(void *a0) {
extern void (*D_801E30FC[])(void);
D_801E30FC[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2D58);
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2DF8);
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2E18);
extern void func_8014B2A8(void);
extern void func_8002D4C8(s32 a0, s32 a1);
void func_801E2E18(void) {
func_8014B2A8();
((s32 (*)(s32, s32))func_8002D4C8)(0x464, 0);
}
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2E44);
+117 -14
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E25FC);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2654);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2678);
extern s32 func_800167F0(s32 a0);
s32 func_801E2654(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801E2928(void *arg0);
s32 func_801E2678(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801E2928, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E26C4);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2764);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2784);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E27C0);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E27FC);
void func_801E2784(void *a0) {
extern void (*D_801E32F0[])(void);
D_801E32F0[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E27C0(void *a0) {
extern void (*D_801E32F8[])(void);
D_801E32F8[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E27FC(void *a0) {
extern void (*D_801E337C[])(void);
D_801E337C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2838);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E28C8);
void func_801E2920(void) {
}
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2928);
void func_801E2928(void *a0) {
extern void (*D_801E338C[])(void);
D_801E338C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2964);
@@ -38,25 +82,51 @@ void func_801E29EC(void) {
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E29F4);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2AB8);
void func_801E2AB8(void *a0) {
extern void (*D_801E3398[])(void);
D_801E3398[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2AF4);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2B1C);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2D14);
void func_801E2D14(void *a0) {
extern void (*D_801E3464[])(void);
D_801E3464[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2D50);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2D9C);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2DE8);
void func_801E2DE8(void) {
extern s32 D_801EC2C4;
extern s32 D_801E2460;
D_801E2460 = D_801EC2C4;
}
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2E00);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2EC4);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2F98);
s32 func_801E2F98(void) {
return 39;
}
void func_801E2FA0(void) {
}
@@ -66,15 +136,48 @@ void func_801E2FA8(void) {
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2FB0);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E310C);
void func_801E310C(void *a0) {
extern void (*D_801E35A8[])(void);
D_801E35A8[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E3148);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E3158);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E316C);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E317C);
void func_801E3158(void) {
extern s32 D_801EC2C8;
D_801EC2C8 = 1;
}
s32 func_801E316C(void) {
extern s32 D_801EC2C8;
return D_801EC2C8;
}
extern s32 func_80029178(s32 arg);
extern void func_80029124(s32, s32);
s32 func_801E317C(void) {
if ((func_80029178(0x112) & 0xFF) == 0) {
((void (*)(void *, s32))func_80029124)((void *)0x112, 1);
return 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E31B8);
+82 -10
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7B34);
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7B8C);
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7BB0);
extern s32 func_800167F0(s32 a0);
s32 func_801E7B8C(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801E7E60(void *arg0);
s32 func_801E7BB0(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801E7E60, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7BFC);
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7C9C);
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7CBC);
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7CF8);
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7D34);
void func_801E7CBC(void *a0) {
extern void (*D_801E8558[])(void);
D_801E8558[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E7CF8(void *a0) {
extern void (*D_801E8560[])(void);
D_801E8560[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E7D34(void *a0) {
extern void (*D_801E85E4[])(void);
D_801E85E4[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7D70);
@@ -25,7 +62,14 @@ INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7E00);
void func_801E7E58(void) {
}
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7E60);
void func_801E7E60(void *a0) {
extern void (*D_801E85F4[])(void);
D_801E85F4[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7E9C);
@@ -36,7 +80,14 @@ void func_801E7F24(void) {
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7F2C);
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7FF0);
void func_801E7FF0(void *a0) {
extern void (*D_801E8600[])(void);
D_801E8600[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E802C);
@@ -44,13 +95,34 @@ INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E8054);
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E824C);
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E827C);
void func_801E827C(void *a0) {
extern void (*D_801E8708[])(void);
D_801E8708[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E82B8);
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E82C8);
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E82DC);
void func_801E82C8(void) {
extern s32 D_801EECE4;
D_801EECE4 = 1;
}
s32 func_801E82DC(void) {
extern s32 D_801EECE4;
return D_801EECE4;
}
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E82EC);
+95 -11
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7B3C);
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7B94);
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7BB8);
extern s32 func_800167F0(s32 a0);
s32 func_801E7B94(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801E7E68(void *arg0);
s32 func_801E7BB8(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801E7E68, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7C04);
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7CA4);
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7CC4);
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7D00);
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7D3C);
void func_801E7CC4(void *a0) {
extern void (*D_801E8608[])(void);
D_801E8608[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E7D00(void *a0) {
extern void (*D_801E8610[])(void);
D_801E8610[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E7D3C(void *a0) {
extern void (*D_801E8694[])(void);
D_801E8694[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7D78);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7E08);
void func_801E7E60(void) {
}
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7E68);
void func_801E7E68(void *a0) {
extern void (*D_801E86A4[])(void);
D_801E86A4[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7EA4);
@@ -38,7 +82,14 @@ void func_801E7F2C(void) {
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7F34);
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7FF8);
void func_801E7FF8(void *a0) {
extern void (*D_801E86B0[])(void);
D_801E86B0[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E8034);
@@ -46,15 +97,48 @@ INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E805C);
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E8254);
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E8284);
void func_801E8284(void *a0) {
extern void (*D_801E87F0[])(void);
D_801E87F0[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E82C0);
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E830C);
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E8320);
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E8330);
void func_801E830C(void) {
extern s32 D_801EE5D4;
D_801EE5D4 = 1;
}
s32 func_801E8320(void) {
extern s32 D_801EE5D4;
return D_801EE5D4;
}
extern s32 func_80029178(s32 arg);
extern void func_80029124(s32, s32);
s32 func_801E8330(void) {
if ((func_80029178(0x10e) & 0xFF) == 0) {
((void (*)(void *, s32))func_80029124)((void *)0x10e, 1);
return 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E836C);
+111 -13
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7B3C);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7B94);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7BB8);
extern s32 func_800167F0(s32 a0);
s32 func_801E7B94(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801E7E68(void *arg0);
s32 func_801E7BB8(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801E7E68, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7C04);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7CA4);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7CC4);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7D00);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7D3C);
void func_801E7CC4(void *a0) {
extern void (*D_801E8AD0[])(void);
D_801E8AD0[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E7D00(void *a0) {
extern void (*D_801E8AD8[])(void);
D_801E8AD8[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E7D3C(void *a0) {
extern void (*D_801E8B5C[])(void);
D_801E8B5C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7D78);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7E08);
void func_801E7E60(void) {
}
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7E68);
void func_801E7E68(void *a0) {
extern void (*D_801E8B6C[])(void);
D_801E8B6C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7EA4);
@@ -38,7 +82,14 @@ void func_801E7F2C(void) {
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7F34);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7FF8);
void func_801E7FF8(void *a0) {
extern void (*D_801E8B78[])(void);
D_801E8B78[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E8034);
@@ -46,17 +97,50 @@ INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E805C);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E8254);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E8284);
void func_801E8284(void *a0) {
extern void (*D_801E8CF0[])(void);
D_801E8CF0[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E82C0);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E830C);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E8320);
void func_801E830C(void) {
extern s32 D_801EF374;
D_801EF374 = 1;
}
s32 func_801E8320(void) {
extern s32 D_801EF374;
return D_801EF374;
}
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E8330);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E8394);
extern s32 func_80029178(s32 arg);
extern void func_80029124(s32, s32);
s32 func_801E8394(void) {
if ((func_80029178(0x10f) & 0xFF) == 0) {
((void (*)(void *, s32))func_80029124)((void *)0x10f, 1);
return 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E83D0);
@@ -68,7 +152,14 @@ INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E8654);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E87F8);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E8950);
void func_801E8950(void *a0) {
extern void (*D_801E8EEC[])(void);
D_801E8EEC[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E898C);
@@ -84,4 +175,11 @@ INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E8A3C);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E8A64);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E8AA0);
extern void func_80029124(s32 arg0, s32 arg1);
void func_801E8AA0(void) {
func_80029124(0xF5, 1);
func_80029124(0xFB, 1);
}
+150 -13
View File
@@ -6,9 +6,19 @@ INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801E7DCC);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801E7E10);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801E7E9C);
void func_801E7E9C(void) {
extern s16 D_801F1D8A;
D_801F1D8A = -1;
}
s16 func_801E7EB0(void) {
extern s16 D_801F2184;
return D_801F2184;
}
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801E7EB0);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801E7EC0);
@@ -18,11 +28,67 @@ INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801E7F94);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801E7FD8);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801E8104);
typedef struct { s8 c[8]; } Blk8_8012C890_801E8104;
/* func_801E8104 @ 0x8017C24C -- ov_MAIN_012 (7 ins).
*
* NOTE ON TARGET IDENTITY (tier-2): the dispatched entry ("483 ins, ov_SC06_032") does not
* exist. ov_SC06_032's func_801E8104 is a 952-ins renderer, already MATCHED/closed in
* src/ov_SC06_032/ov_SC06_032_jr_8017C24C.c -- and "ov_SC06_032_jr_8017C24C" is a CARVE-REGION
* name, not a member function (that region holds only func_801902EC/func_80191070).
* The only genuinely unmatched func_801E8104 in the tree is this ov_MAIN_012 one -- a
* distinct 7-ins function that merely shares the VRAM address (overlay collision).
*
* Codegen note (§31 cse_expr): the target materialises the symbol address ONCE
* (lui+addiu -> $v1) and does both the lhu and the sh off that base. Writing the global
* directly (D_80115112 = D_80115112 + 1) instead emits TWO luis (%hi for the load, %hi for
* the store) -> 8 ins, LENGTH-DRIFT. Taking the address into a pointer local forces the
* single-base form. The nop at idx3 is the lhu load-delay slot (maspsx).
*
* D_80115112: u16 frame/state counter (same symbol used in ov_SC03_099_jr_80140608).
*/
void func_801E8104(void)
{
extern unsigned short D_80115112;
unsigned short *p = &D_80115112;
*p = *p + 1;
}
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801E8120);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801E8200);
typedef struct { s8 c[8]; } Blk8_8012C890_801E8200;
/* func_801E8200 @ 0x8017C24C -- ov_MAIN_012 (7 ins).
*
* NOTE ON TARGET IDENTITY (tier-2): the dispatched entry ("483 ins, ov_SC06_032") does not
* exist. ov_SC06_032's func_801E8200 is a 952-ins renderer, already MATCHED/closed in
* src/ov_SC06_032/ov_SC06_032_jr_8017C24C.c -- and "ov_SC06_032_jr_8017C24C" is a CARVE-REGION
* name, not a member function (that region holds only func_801902EC/func_80191070).
* The only genuinely unmatched func_801E8200 in the tree is this ov_MAIN_012 one -- a
* distinct 7-ins function that merely shares the VRAM address (overlay collision).
*
* Codegen note (§31 cse_expr): the target materialises the symbol address ONCE
* (lui+addiu -> $v1) and does both the lhu and the sh off that base. Writing the global
* directly (D_80115112 = D_80115112 + 1) instead emits TWO luis (%hi for the load, %hi for
* the store) -> 8 ins, LENGTH-DRIFT. Taking the address into a pointer local forces the
* single-base form. The nop at idx3 is the lhu load-delay slot (maspsx).
*
* D_80115112: u16 frame/state counter (same symbol used in ov_SC03_099_jr_80140608).
*/
void func_801E8200(void)
{
extern unsigned short D_80115112;
unsigned short *p = &D_80115112;
*p = *p + 1;
}
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801E821C);
@@ -44,7 +110,23 @@ INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801E915C);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801E95E8);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801E9B00);
u32 func_801E9B00(s32 a0, s32 a1) {
s32 t0;
s32 a2;
s32 a3;
t0 = 0;
a2 = a0;
a3 = 0;
while (a2 >= 10) {
a0 = a0 / 10;
t0 = t0 | ((a2 - (a0 * 2 + a0 * 8)) << a3);
a2 = a0;
a3 += 4;
}
t0 = t0 | (a2 << a3);
return t0 << a1;
}
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801E9B68);
@@ -58,7 +140,13 @@ INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA0E4);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA10C);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA164);
extern s32 func_800167F0(s32 a0);
s32 func_801EA164(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA188);
@@ -66,11 +154,25 @@ INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA1DC);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA27C);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA29C);
void func_801EA29C(void *a0) {
extern void (*D_801EBB50[])(void);
D_801EBB50[*(u8 *)((s32)a0 + 0x15)]();
}
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA2D8);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA344);
void func_801EA344(void *a0) {
extern void (*D_801EBBDC[])(void);
D_801EBBDC[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA380);
@@ -81,7 +183,14 @@ INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA410);
void func_801EA468(void) {
}
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA470);
void func_801EA470(void *a0) {
extern void (*D_801EBBEC[])(void);
D_801EBBEC[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA4AC);
@@ -92,7 +201,14 @@ void func_801EA534(void) {
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA53C);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA600);
void func_801EA600(void *a0) {
extern void (*D_801EBBF8[])(void);
D_801EBBF8[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA63C);
@@ -104,13 +220,34 @@ INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA88C);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA8C0);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EAA0C);
void func_801EAA0C(void *a0) {
extern void (*D_801EBD48[])(void);
D_801EBD48[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EAA48);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EAA58);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EAA6C);
void func_801EAA58(void) {
extern s32 D_801F24A0;
D_801F24A0 = 1;
}
s32 func_801EAA6C(void) {
extern s32 D_801F24A0;
return D_801F24A0;
}
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EAA7C);
+95 -11
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7B50);
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7BA8);
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7BCC);
extern s32 func_800167F0(s32 a0);
s32 func_801E7BA8(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801E7E7C(void *arg0);
s32 func_801E7BCC(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801E7E7C, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7C18);
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7CB8);
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7CD8);
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7D14);
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7D50);
void func_801E7CD8(void *a0) {
extern void (*D_801E873C[])(void);
D_801E873C[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E7D14(void *a0) {
extern void (*D_801E8744[])(void);
D_801E8744[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E7D50(void *a0) {
extern void (*D_801E87C8[])(void);
D_801E87C8[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7D8C);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7E1C);
void func_801E7E74(void) {
}
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7E7C);
void func_801E7E7C(void *a0) {
extern void (*D_801E87D8[])(void);
D_801E87D8[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7EB8);
@@ -38,7 +82,14 @@ void func_801E7F40(void) {
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7F48);
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E800C);
void func_801E800C(void *a0) {
extern void (*D_801E87E4[])(void);
D_801E87E4[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E8048);
@@ -48,15 +99,48 @@ INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E8208);
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E8238);
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E8394);
void func_801E8394(void *a0) {
extern void (*D_801E8B00[])(void);
D_801E8B00[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E83D0);
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E83E0);
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E83F4);
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E8404);
void func_801E83E0(void) {
extern s32 D_801EFB14;
D_801EFB14 = 1;
}
s32 func_801E83F4(void) {
extern s32 D_801EFB14;
return D_801EFB14;
}
extern s32 func_80029178(s32 arg);
extern void func_80029124(s32, s32);
s32 func_801E8404(void) {
if ((func_80029178(0x111) & 0xFF) == 0) {
((void (*)(void *, s32))func_80029124)((void *)0x111, 1);
return 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E8440);
+77 -9
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7B3C);
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7B94);
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7BB8);
extern s32 func_800167F0(s32 a0);
s32 func_801E7B94(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801E7E68(void *arg0);
s32 func_801E7BB8(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801E7E68, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7C04);
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7CA4);
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7CC4);
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7D00);
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7D3C);
void func_801E7CC4(void *a0) {
extern void (*D_801E84B0[])(void);
D_801E84B0[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E7D00(void *a0) {
extern void (*D_801E84B8[])(void);
D_801E84B8[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E7D3C(void *a0) {
extern void (*D_801E853C[])(void);
D_801E853C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7D78);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7E08);
void func_801E7E60(void) {
}
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7E68);
void func_801E7E68(void *a0) {
extern void (*D_801E854C[])(void);
D_801E854C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7EA4);
@@ -38,7 +82,14 @@ void func_801E7F2C(void) {
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7F34);
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7FF8);
void func_801E7FF8(void *a0) {
extern void (*D_801E8558[])(void);
D_801E8558[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E8034);
@@ -46,13 +97,30 @@ INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E805C);
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E8254);
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E8284);
void func_801E8284(void *a0) {
extern void (*D_801E8664[])(void);
D_801E8664[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E82C0);
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E8360);
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E8380);
extern void func_8014B2A8(void);
extern void func_8002D4C8(s32 a0, s32 a1);
void func_801E8380(void) {
func_8014B2A8();
((s32 (*)(s32, s32))func_8002D4C8)(0x464, 0);
}
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E83AC);
+95 -11
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7B3C);
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7B94);
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7BB8);
extern s32 func_800167F0(s32 a0);
s32 func_801E7B94(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801E7E68(void *arg0);
s32 func_801E7BB8(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801E7E68, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7C04);
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7CA4);
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7CC4);
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7D00);
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7D3C);
void func_801E7CC4(void *a0) {
extern void (*D_801E85D4[])(void);
D_801E85D4[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E7D00(void *a0) {
extern void (*D_801E85DC[])(void);
D_801E85DC[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801E7D3C(void *a0) {
extern void (*D_801E8660[])(void);
D_801E8660[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7D78);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7E08);
void func_801E7E60(void) {
}
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7E68);
void func_801E7E68(void *a0) {
extern void (*D_801E8670[])(void);
D_801E8670[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7EA4);
@@ -38,7 +82,14 @@ void func_801E7F2C(void) {
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7F34);
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7FF8);
void func_801E7FF8(void *a0) {
extern void (*D_801E867C[])(void);
D_801E867C[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E8034);
@@ -54,15 +105,48 @@ void func_801E828C(void) {
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E8294);
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E83F0);
void func_801E83F0(void *a0) {
extern void (*D_801E87C4[])(void);
D_801E87C4[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E842C);
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E843C);
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E8450);
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E8460);
void func_801E843C(void) {
extern s32 D_801F14E0;
D_801F14E0 = 1;
}
s32 func_801E8450(void) {
extern s32 D_801F14E0;
return D_801F14E0;
}
extern s32 func_80029178(s32 arg);
extern void func_80029124(s32, s32);
s32 func_801E8460(void) {
if ((func_80029178(0x112) & 0xFF) == 0) {
((void (*)(void *, s32))func_80029124)((void *)0x112, 1);
return 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E849C);
+82 -10
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801ED99C);
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801ED9F4);
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EDA18);
extern s32 func_800167F0(s32 a0);
s32 func_801ED9F4(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801EDCE0(void *arg0);
s32 func_801EDA18(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801EDCE0, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EDA64);
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EDB1C);
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EDB3C);
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EDB78);
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EDBB4);
void func_801EDB3C(void *a0) {
extern void (*D_801EE3E8[])(void);
D_801EE3E8[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EDB78(void *a0) {
extern void (*D_801EE3F0[])(void);
D_801EE3F0[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EDBB4(void *a0) {
extern void (*D_801EE474[])(void);
D_801EE474[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EDBF0);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EDC80);
void func_801EDCD8(void) {
}
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EDCE0);
void func_801EDCE0(void *a0) {
extern void (*D_801EE484[])(void);
D_801EE484[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EDD1C);
@@ -38,7 +82,14 @@ void func_801EDDA4(void) {
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EDDAC);
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EDE70);
void func_801EDE70(void *a0) {
extern void (*D_801EE490[])(void);
D_801EE490[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EDEAC);
@@ -46,13 +97,34 @@ INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EDED4);
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EE0CC);
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EE10C);
void func_801EE10C(void *a0) {
extern void (*D_801EE598[])(void);
D_801EE598[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EE148);
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EE158);
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EE16C);
void func_801EE158(void) {
extern s32 D_801F4B74;
D_801F4B74 = 1;
}
s32 func_801EE16C(void) {
extern s32 D_801F4B74;
return D_801F4B74;
}
INCLUDE_ASM("asm/md_SC05_023/nonmatchings/md_SC05_023", func_801EE17C);
+95 -11
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801ED99C);
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801ED9F4);
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDA18);
extern s32 func_800167F0(s32 a0);
s32 func_801ED9F4(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801EDCE0(void *arg0);
s32 func_801EDA18(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801EDCE0, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDA64);
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDB1C);
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDB3C);
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDB78);
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDBB4);
void func_801EDB3C(void *a0) {
extern void (*D_801EE490[])(void);
D_801EE490[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EDB78(void *a0) {
extern void (*D_801EE498[])(void);
D_801EE498[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EDBB4(void *a0) {
extern void (*D_801EE51C[])(void);
D_801EE51C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDBF0);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDC80);
void func_801EDCD8(void) {
}
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDCE0);
void func_801EDCE0(void *a0) {
extern void (*D_801EE52C[])(void);
D_801EE52C[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDD1C);
@@ -38,7 +82,14 @@ void func_801EDDA4(void) {
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDDAC);
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDE70);
void func_801EDE70(void *a0) {
extern void (*D_801EE538[])(void);
D_801EE538[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDEAC);
@@ -46,15 +97,48 @@ INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDED4);
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EE0CC);
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EE10C);
void func_801EE10C(void *a0) {
extern void (*D_801EE678[])(void);
D_801EE678[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EE148);
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EE194);
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EE1A8);
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EE1B8);
void func_801EE194(void) {
extern s32 D_801F445C;
D_801F445C = 1;
}
s32 func_801EE1A8(void) {
extern s32 D_801F445C;
return D_801F445C;
}
extern s32 func_80029178(s32 arg);
extern void func_80029124(s32, s32);
s32 func_801EE1B8(void) {
if ((func_80029178(0x10e) & 0xFF) == 0) {
((void (*)(void *, s32))func_80029124)((void *)0x10e, 1);
return 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EE1F4);
+111 -13
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801ED99C);
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801ED9F4);
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDA18);
extern s32 func_800167F0(s32 a0);
s32 func_801ED9F4(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801EDCE0(void *arg0);
s32 func_801EDA18(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801EDCE0, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDA64);
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDB1C);
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDB3C);
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDB78);
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDBB4);
void func_801EDB3C(void *a0) {
extern void (*D_801EE958[])(void);
D_801EE958[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EDB78(void *a0) {
extern void (*D_801EE960[])(void);
D_801EE960[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EDBB4(void *a0) {
extern void (*D_801EE9E4[])(void);
D_801EE9E4[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDBF0);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDC80);
void func_801EDCD8(void) {
}
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDCE0);
void func_801EDCE0(void *a0) {
extern void (*D_801EE9F4[])(void);
D_801EE9F4[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDD1C);
@@ -38,7 +82,14 @@ void func_801EDDA4(void) {
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDDAC);
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDE70);
void func_801EDE70(void *a0) {
extern void (*D_801EEA00[])(void);
D_801EEA00[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDEAC);
@@ -46,17 +97,50 @@ INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDED4);
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EE0CC);
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EE10C);
void func_801EE10C(void *a0) {
extern void (*D_801EEB78[])(void);
D_801EEB78[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EE148);
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EE194);
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EE1A8);
void func_801EE194(void) {
extern s32 D_801F51FC;
D_801F51FC = 1;
}
s32 func_801EE1A8(void) {
extern s32 D_801F51FC;
return D_801F51FC;
}
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EE1B8);
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EE21C);
extern s32 func_80029178(s32 arg);
extern void func_80029124(s32, s32);
s32 func_801EE21C(void) {
if ((func_80029178(0x10f) & 0xFF) == 0) {
((void (*)(void *, s32))func_80029124)((void *)0x10f, 1);
return 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EE258);
@@ -68,7 +152,14 @@ INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EE4DC);
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EE680);
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EE7D8);
void func_801EE7D8(void *a0) {
extern void (*D_801EED74[])(void);
D_801EED74[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EE814);
@@ -84,4 +175,11 @@ INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EE8C4);
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EE8EC);
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EE928);
extern void func_80029124(s32 arg0, s32 arg1);
void func_801EE928(void) {
func_80029124(0xF5, 1);
func_80029124(0xFB, 1);
}
+150 -13
View File
@@ -6,9 +6,19 @@ INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EDC2C);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EDC70);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EDCFC);
void func_801EDCFC(void) {
extern s16 D_801F7C12;
D_801F7C12 = -1;
}
s16 func_801EDD10(void) {
extern s16 D_801F800C;
return D_801F800C;
}
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EDD10);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EDD20);
@@ -18,11 +28,67 @@ INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EDDF4);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EDE38);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EDF64);
typedef struct { s8 c[8]; } Blk8_8012C890_801EDF64;
/* func_801EDF64 @ 0x8017C24C -- ov_MAIN_012 (7 ins).
*
* NOTE ON TARGET IDENTITY (tier-2): the dispatched entry ("483 ins, ov_SC06_032") does not
* exist. ov_SC06_032's func_801EDF64 is a 952-ins renderer, already MATCHED/closed in
* src/ov_SC06_032/ov_SC06_032_jr_8017C24C.c -- and "ov_SC06_032_jr_8017C24C" is a CARVE-REGION
* name, not a member function (that region holds only func_801902EC/func_80191070).
* The only genuinely unmatched func_801EDF64 in the tree is this ov_MAIN_012 one -- a
* distinct 7-ins function that merely shares the VRAM address (overlay collision).
*
* Codegen note (§31 cse_expr): the target materialises the symbol address ONCE
* (lui+addiu -> $v1) and does both the lhu and the sh off that base. Writing the global
* directly (D_80115112 = D_80115112 + 1) instead emits TWO luis (%hi for the load, %hi for
* the store) -> 8 ins, LENGTH-DRIFT. Taking the address into a pointer local forces the
* single-base form. The nop at idx3 is the lhu load-delay slot (maspsx).
*
* D_80115112: u16 frame/state counter (same symbol used in ov_SC03_099_jr_80140608).
*/
void func_801EDF64(void)
{
extern unsigned short D_80115112;
unsigned short *p = &D_80115112;
*p = *p + 1;
}
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EDF80);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EE060);
typedef struct { s8 c[8]; } Blk8_8012C890_801EE060;
/* func_801EE060 @ 0x8017C24C -- ov_MAIN_012 (7 ins).
*
* NOTE ON TARGET IDENTITY (tier-2): the dispatched entry ("483 ins, ov_SC06_032") does not
* exist. ov_SC06_032's func_801EE060 is a 952-ins renderer, already MATCHED/closed in
* src/ov_SC06_032/ov_SC06_032_jr_8017C24C.c -- and "ov_SC06_032_jr_8017C24C" is a CARVE-REGION
* name, not a member function (that region holds only func_801902EC/func_80191070).
* The only genuinely unmatched func_801EE060 in the tree is this ov_MAIN_012 one -- a
* distinct 7-ins function that merely shares the VRAM address (overlay collision).
*
* Codegen note (§31 cse_expr): the target materialises the symbol address ONCE
* (lui+addiu -> $v1) and does both the lhu and the sh off that base. Writing the global
* directly (D_80115112 = D_80115112 + 1) instead emits TWO luis (%hi for the load, %hi for
* the store) -> 8 ins, LENGTH-DRIFT. Taking the address into a pointer local forces the
* single-base form. The nop at idx3 is the lhu load-delay slot (maspsx).
*
* D_80115112: u16 frame/state counter (same symbol used in ov_SC03_099_jr_80140608).
*/
void func_801EE060(void)
{
extern unsigned short D_80115112;
unsigned short *p = &D_80115112;
*p = *p + 1;
}
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EE07C);
@@ -44,7 +110,23 @@ INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EEFBC);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EF448);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EF960);
u32 func_801EF960(s32 a0, s32 a1) {
s32 t0;
s32 a2;
s32 a3;
t0 = 0;
a2 = a0;
a3 = 0;
while (a2 >= 10) {
a0 = a0 / 10;
t0 = t0 | ((a2 - (a0 * 2 + a0 * 8)) << a3);
a2 = a0;
a3 += 4;
}
t0 = t0 | (a2 << a3);
return t0 << a1;
}
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EF9C8);
@@ -58,7 +140,13 @@ INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EFF44);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EFF6C);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EFFC4);
extern s32 func_800167F0(s32 a0);
s32 func_801EFFC4(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EFFE8);
@@ -66,11 +154,25 @@ INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F003C);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F00F4);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F0114);
void func_801F0114(void *a0) {
extern void (*D_801F19D8[])(void);
D_801F19D8[*(u8 *)((s32)a0 + 0x15)]();
}
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F0150);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F01BC);
void func_801F01BC(void *a0) {
extern void (*D_801F1A64[])(void);
D_801F1A64[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F01F8);
@@ -81,7 +183,14 @@ INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F0288);
void func_801F02E0(void) {
}
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F02E8);
void func_801F02E8(void *a0) {
extern void (*D_801F1A74[])(void);
D_801F1A74[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F0324);
@@ -92,7 +201,14 @@ void func_801F03AC(void) {
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F03B4);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F0478);
void func_801F0478(void *a0) {
extern void (*D_801F1A80[])(void);
D_801F1A80[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F04B4);
@@ -104,13 +220,34 @@ INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F0714);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F0748);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F0894);
void func_801F0894(void *a0) {
extern void (*D_801F1BD0[])(void);
D_801F1BD0[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F08D0);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F08E0);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F08F4);
void func_801F08E0(void) {
extern s32 D_801F8328;
D_801F8328 = 1;
}
s32 func_801F08F4(void) {
extern s32 D_801F8328;
return D_801F8328;
}
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F0904);
+95 -11
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801ED9B0);
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EDA08);
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EDA2C);
extern s32 func_800167F0(s32 a0);
s32 func_801EDA08(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801EDCF4(void *arg0);
s32 func_801EDA2C(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801EDCF4, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EDA78);
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EDB30);
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EDB50);
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EDB8C);
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EDBC8);
void func_801EDB50(void *a0) {
extern void (*D_801EE5C4[])(void);
D_801EE5C4[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EDB8C(void *a0) {
extern void (*D_801EE5CC[])(void);
D_801EE5CC[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EDBC8(void *a0) {
extern void (*D_801EE650[])(void);
D_801EE650[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EDC04);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EDC94);
void func_801EDCEC(void) {
}
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EDCF4);
void func_801EDCF4(void *a0) {
extern void (*D_801EE660[])(void);
D_801EE660[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EDD30);
@@ -38,7 +82,14 @@ void func_801EDDB8(void) {
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EDDC0);
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EDE84);
void func_801EDE84(void *a0) {
extern void (*D_801EE66C[])(void);
D_801EE66C[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EDEC0);
@@ -48,15 +99,48 @@ INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EE080);
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EE0C0);
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EE21C);
void func_801EE21C(void *a0) {
extern void (*D_801EE988[])(void);
D_801EE988[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EE258);
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EE268);
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EE27C);
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EE28C);
void func_801EE268(void) {
extern s32 D_801F599C;
D_801F599C = 1;
}
s32 func_801EE27C(void) {
extern s32 D_801F599C;
return D_801F599C;
}
extern s32 func_80029178(s32 arg);
extern void func_80029124(s32, s32);
s32 func_801EE28C(void) {
if ((func_80029178(0x111) & 0xFF) == 0) {
((void (*)(void *, s32))func_80029124)((void *)0x111, 1);
return 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EE2C8);
+77 -9
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801ED99C);
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801ED9F4);
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDA18);
extern s32 func_800167F0(s32 a0);
s32 func_801ED9F4(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801EDCE0(void *arg0);
s32 func_801EDA18(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801EDCE0, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDA64);
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDB1C);
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDB3C);
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDB78);
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDBB4);
void func_801EDB3C(void *a0) {
extern void (*D_801EE338[])(void);
D_801EE338[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EDB78(void *a0) {
extern void (*D_801EE340[])(void);
D_801EE340[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EDBB4(void *a0) {
extern void (*D_801EE3C4[])(void);
D_801EE3C4[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDBF0);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDC80);
void func_801EDCD8(void) {
}
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDCE0);
void func_801EDCE0(void *a0) {
extern void (*D_801EE3D4[])(void);
D_801EE3D4[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDD1C);
@@ -38,7 +82,14 @@ void func_801EDDA4(void) {
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDDAC);
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDE70);
void func_801EDE70(void *a0) {
extern void (*D_801EE3E0[])(void);
D_801EE3E0[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDEAC);
@@ -46,13 +97,30 @@ INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDED4);
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EE0CC);
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EE10C);
void func_801EE10C(void *a0) {
extern void (*D_801EE4EC[])(void);
D_801EE4EC[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EE148);
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EE1E8);
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EE208);
extern void func_8014B2A8(void);
extern void func_8002D4C8(s32 a0, s32 a1);
void func_801EE208(void) {
func_8014B2A8();
((s32 (*)(s32, s32))func_8002D4C8)(0x464, 0);
}
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EE234);
+95 -11
View File
@@ -2,19 +2,56 @@
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801ED99C);
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801ED9F4);
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDA18);
extern s32 func_800167F0(s32 a0);
s32 func_801ED9F4(void) {
return (func_800167F0(0) & 0xffff) != 0;
}
extern void func_8016EDEC(s32 a0, s32 a1, s32 a2);
extern void func_801EDCE0(void *arg0);
s32 func_801EDA18(s32 param_1) {
((void (*)(void *, s32))func_8016EDEC)((void *)func_801EDCE0, 0x1000000);
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
*(s32 *)(param_1 + 0x28) = 16;
return 0;
}
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDA64);
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDB1C);
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDB3C);
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDB78);
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDBB4);
void func_801EDB3C(void *a0) {
extern void (*D_801EE45C[])(void);
D_801EE45C[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EDB78(void *a0) {
extern void (*D_801EE464[])(void);
D_801EE464[*(u8 *)((s32)a0 + 0x15)]();
}
void func_801EDBB4(void *a0) {
extern void (*D_801EE4E8[])(void);
D_801EE4E8[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDBF0);
@@ -27,7 +64,14 @@ INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDC80);
void func_801EDCD8(void) {
}
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDCE0);
void func_801EDCE0(void *a0) {
extern void (*D_801EE4F8[])(void);
D_801EE4F8[*(u8 *)((s32)a0 + 0x214)]();
}
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDD1C);
@@ -38,7 +82,14 @@ void func_801EDDA4(void) {
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDDAC);
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDE70);
void func_801EDE70(void *a0) {
extern void (*D_801EE504[])(void);
D_801EE504[*(u8 *)((s32)a0 + 0x4)]();
}
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDEAC);
@@ -54,15 +105,48 @@ void func_801EE114(void) {
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EE11C);
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EE278);
void func_801EE278(void *a0) {
extern void (*D_801EE64C[])(void);
D_801EE64C[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EE2B4);
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EE2C4);
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EE2D8);
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EE2E8);
void func_801EE2C4(void) {
extern s32 D_801F7368;
D_801F7368 = 1;
}
s32 func_801EE2D8(void) {
extern s32 D_801F7368;
return D_801F7368;
}
extern s32 func_80029178(s32 arg);
extern void func_80029124(s32, s32);
s32 func_801EE2E8(void) {
if ((func_80029178(0x112) & 0xFF) == 0) {
((void (*)(void *, s32))func_80029124)((void *)0x112, 1);
return 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EE324);
File diff suppressed because it is too large Load Diff
+14 -1
View File
@@ -4258,7 +4258,20 @@ INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017_jr_8017DF34", func_80184E3
INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017_jr_8017DF34", func_80184F4C);
INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017_jr_8017DF34", func_8018501C);
extern void func_8012A828(s32 a0, void * a1);
extern void func_80185CA4(s32 a0);
void func_8018501C(s32 a0)
{
extern char D_801D5C84[];
*(short *)(a0 + 0x2) = 0x9;
func_8012A828(a0, &D_801D5C84);
*(s32 *)(a0 + 0x1C) = 0x1E;
func_80185CA4(a0);
}
INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017_jr_8017DF34", func_80185064);
+11094 -393
View File
File diff suppressed because it is too large Load Diff
+12 -1
View File
@@ -9262,7 +9262,18 @@ void func_80188BFC(void *a0)
}
INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001_jr_8017AE2C", func_80188D1C);
extern s32 func_80188D68(void *a0);
s32 func_80188D1C(void *a0) {
a0 = *(void **)((char *)a0 + 0xCC);
if (a0 == 0) {
return 0;
}
if (*(u16 *)a0 != 0x61) {
return 0;
}
return func_80188D68(a0);
}
/* func_80188D68 — scan the 96-entry / 0x10C-stride D_801202A0 actor table for
+12 -1
View File
@@ -5854,7 +5854,18 @@ void func_801846E8(void *a0)
}
INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002_jr_8017D604", func_80184808);
extern s32 func_80184854(void *a0);
s32 func_80184808(void *a0) {
a0 = *(void **)((char *)a0 + 0xCC);
if (a0 == 0) {
return 0;
}
if (*(u16 *)a0 != 0x61) {
return 0;
}
return func_80184854(a0);
}
/* func_80184854 — scan the 96-entry / 0x10C-stride D_801202A0 actor table for
+14 -1
View File
@@ -8007,7 +8007,20 @@ INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_jr_8017AE2C", func_80188FB
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_jr_8017AE2C", func_801890C4);
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_jr_8017AE2C", func_80189194);
extern void func_8012A828(s32 a0, void * a1);
extern void func_80189E1C(s32 a0);
void func_80189194(s32 a0)
{
extern char D_801D7A58[];
*(short *)(a0 + 0x2) = 0x9;
func_8012A828(a0, &D_801D7A58);
*(s32 *)(a0 + 0x1C) = 0x1E;
func_80189E1C(a0);
}
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_jr_8017AE2C", func_801891DC);
+33 -1
View File
@@ -3360,5 +3360,37 @@ INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017AE2C", func_8017C67
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017AE2C", func_8017C6B8);
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017AE2C", func_8017C6F4);
/* func_8017C6F4 — 15 ins, ov_SC03_010 / ov_SC03_011 / ov_SC03_013
* (jr_8017AE2C switch-case body: "stat bump + clamp to 0x60")
*
* NOTE ON DISPATCH: the tier-2 brief named ov_SC05_017 / 548 ins / an asm path
* that does not exist. That tuple is not real (see report). This is the ONLY
* unmatched func_8017C6F4 in the tree — the 15-ins body — cracked here.
*
* Codegen shape (why this exact C):
* lbu $v1, %lo(D_80184DA0)($at) -> D_80184DA0 is u8[] (zero-extending byte load)
* lhu $v0, 0x20C($a0) -> the field is read as u16 (zero-extending)
* addu / sh -> sum stored back truncated
* sll 16 / sra 16 / slti 0x61 -> the SAME $v0 is then sign-extended for the
* compare, i.e. the sum lives in an s16 local
* that is stored FIRST and compared AFTER.
* So: u16 field read, s16 local, store, then `if (local > 0x60)` re-store 0x60.
* The store-before-compare order is load-bearing; hoisting the clamp above the
* store re-orders sh/sll and breaks the match.
*/
void func_8017C6F4(s32 arg0, s32 arg1) {
extern u8 D_80184DA0[];
s16 temp;
temp = *(u16 *)(arg0 + 0x20C) + D_80184DA0[arg1];
*(s16 *)(arg0 + 0x20C) = temp;
if (temp > 0x60) {
*(s16 *)(arg0 + 0x20C) = 0x60;
}
}
+33 -1
View File
@@ -3360,4 +3360,36 @@ INCLUDE_ASM("asm/ov_SC03_013/nonmatchings/ov_SC03_013_jr_8017AE2C", func_8017C67
INCLUDE_ASM("asm/ov_SC03_013/nonmatchings/ov_SC03_013_jr_8017AE2C", func_8017C6B8);
INCLUDE_ASM("asm/ov_SC03_013/nonmatchings/ov_SC03_013_jr_8017AE2C", func_8017C6F4);
/* func_8017C6F4 — 15 ins, ov_SC03_010 / ov_SC03_011 / ov_SC03_013
* (jr_8017AE2C switch-case body: "stat bump + clamp to 0x60")
*
* NOTE ON DISPATCH: the tier-2 brief named ov_SC05_017 / 548 ins / an asm path
* that does not exist. That tuple is not real (see report). This is the ONLY
* unmatched func_8017C6F4 in the tree — the 15-ins body — cracked here.
*
* Codegen shape (why this exact C):
* lbu $v1, %lo(D_80184A68)($at) -> D_80184A68 is u8[] (zero-extending byte load)
* lhu $v0, 0x20C($a0) -> the field is read as u16 (zero-extending)
* addu / sh -> sum stored back truncated
* sll 16 / sra 16 / slti 0x61 -> the SAME $v0 is then sign-extended for the
* compare, i.e. the sum lives in an s16 local
* that is stored FIRST and compared AFTER.
* So: u16 field read, s16 local, store, then `if (local > 0x60)` re-store 0x60.
* The store-before-compare order is load-bearing; hoisting the clamp above the
* store re-orders sh/sll and breaks the match.
*/
void func_8017C6F4(s32 arg0, s32 arg1) {
extern u8 D_80184A68[];
s16 temp;
temp = *(u16 *)(arg0 + 0x20C) + D_80184A68[arg1];
*(s16 *)(arg0 + 0x20C) = temp;
if (temp > 0x60) {
*(s16 *)(arg0 + 0x20C) = 0x60;
}
}
+10072 -362
View File
File diff suppressed because it is too large Load Diff
+14 -1
View File
@@ -4292,7 +4292,20 @@ INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112_jr_8017C294", func_8017FDB
INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112_jr_8017C294", func_8017FE90);
INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112_jr_8017C294", func_8017FF70);
extern void func_8012A828(s32*, s32);
extern void func_80180C1C(s32 a0);
void func_8017FF70(s32 a0)
{
extern char D_801A7E44[];
*(short *)(a0 + 0x2) = 0x9;
((void (*)(s32, void *))func_8012A828)(a0, &D_801A7E44);
*(s32 *)(a0 + 0x1C) = 0x1E;
func_80180C1C(a0);
}
INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112_jr_8017C294", func_8017FFB8);
+14 -1
View File
@@ -3547,7 +3547,20 @@ INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115_jr_8017BEBC", func_8017DDB
INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115_jr_8017BEBC", func_8017DE88);
INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115_jr_8017BEBC", func_8017DF68);
extern void func_8012A828(s32*, s32);
extern void func_8017EC14(s32 a0);
void func_8017DF68(s32 a0)
{
extern char D_8018FAB4[];
*(short *)(a0 + 0x2) = 0x9;
((void (*)(s32, void *))func_8012A828)(a0, &D_8018FAB4);
*(s32 *)(a0 + 0x1C) = 0x1E;
func_8017EC14(a0);
}
INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115_jr_8017BEBC", func_8017DFB0);
+12 -1
View File
@@ -7614,7 +7614,18 @@ void func_80185864(void *a0)
}
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_jr_8017AE2C", func_80185984);
extern s32 func_801859D0(void *a0);
s32 func_80185984(void *a0) {
a0 = *(void **)((char *)a0 + 0xCC);
if (a0 == 0) {
return 0;
}
if (*(u16 *)a0 != 0x61) {
return 0;
}
return func_801859D0(a0);
}
/* func_801859D0 — scan the 96-entry / 0x10C-stride D_801202A0 actor table for
+28 -10
View File
@@ -2983,17 +2983,9 @@ extern void func_80185BD4(void);
extern s16 D_800B9A02;
extern u8 D_801151C8[];
extern u16 D_80115112;
extern u8 D_80115138[];
extern u8 D_80115148[];
extern s32 D_80115130;
extern u8 D_800B9A15;
extern s16 D_801E2360;
extern s32 D_801E2358;
extern s32 D_801E235C;
extern s16 D_801E23E8;
extern s16 D_801E23F0;
extern s16 D_801E23F4;
extern s16 D_801E23F8;
@@ -3006,7 +2998,6 @@ extern s16 D_801E1C88;
extern s32 D_801E73C0;
extern s32 D_801E40F0;
extern s32 D_801E474C;
extern s32 D_801BCB58;
extern u8 D_801BCBEC[];
extern s32 D_801BCBB4[];
extern s32 resLoad_lastId;
@@ -3028,6 +3019,18 @@ extern s32 func_80188C68(s32 a0, s16 a1);
extern s16 func_8018957C(s32 a0);
void func_80187010(void) {
/* [T51] scoped in from file scope: a file-scope decl of these symbols constrains every
LATER function in this TU, which blocks a byte-true decl of a different type.
Declaration-only move (cookbook §103); the whole-binary byte-gate is the arbiter. */
extern u8 D_801151C8[];
extern s16 D_801E2360;
extern u8 D_800B9A15;
extern u16 D_80115112;
extern s32 D_801E2358;
extern s32 D_80115130;
extern s32 D_801BCB58;
extern s16 D_801E23E8;
extern s32 D_801E235C;
/* [T51] scoped in from file scope: a file-scope decl of these symbols constrains every
LATER function in this TU, which blocks a byte-true decl of a different type.
Declaration-only move (cookbook §103); the whole-binary byte-gate is the arbiter. */
@@ -4001,7 +4004,22 @@ INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_jr_80187010", func_8018A25
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_jr_80187010", func_8018A3C8);
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_jr_80187010", func_8018A470);
extern void func_8012E8E0(s32 a0, s32 a1);
void func_8018A470(s32 arg0)
{
extern s32 D_801DE4EC;
s32 v1;
*(short *)(arg0 + 0x2) = 3;
*(short *)(arg0 + 0x34) = 0;
func_8012E8E0(arg0, (s32)&D_801DE4EC);
v1 = *(s32 *)(arg0 + 0x68);
*(short *)(v1 + 0xC) = 0x7FFF;
}
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_jr_80187010", func_8018A4B8);
+12 -1
View File
@@ -5633,7 +5633,18 @@ void func_80182F6C(void *a0)
}
INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125_jr_8017D604", func_8018308C);
extern s32 func_801830D8(void *a0);
s32 func_8018308C(void *a0) {
a0 = *(void **)((char *)a0 + 0xCC);
if (a0 == 0) {
return 0;
}
if (*(u16 *)a0 != 0x61) {
return 0;
}
return func_801830D8(a0);
}
/* func_801830D8 — scan the 96-entry / 0x10C-stride D_801202A0 actor table for
+12 -1
View File
@@ -6515,7 +6515,18 @@ void func_801824A8(void *a0)
}
INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015_jr_8017AE2C", func_801825C8);
extern s32 func_80182614(void *a0);
s32 func_801825C8(void *a0) {
a0 = *(void **)((char *)a0 + 0xCC);
if (a0 == 0) {
return 0;
}
if (*(u16 *)a0 != 0x61) {
return 0;
}
return func_80182614(a0);
}
/* func_80182614 — scan the 96-entry / 0x10C-stride D_801202A0 actor table for
+12 -1
View File
@@ -5485,7 +5485,18 @@ void func_80182918(void *a0)
}
INCLUDE_ASM("asm/ov_SC04_020/nonmatchings/ov_SC04_020_jr_8017D604", func_80182A38);
extern s32 func_80182A84(void *a0);
s32 func_80182A38(void *a0) {
a0 = *(void **)((char *)a0 + 0xCC);
if (a0 == 0) {
return 0;
}
if (*(u16 *)a0 != 0x61) {
return 0;
}
return func_80182A84(a0);
}
/* func_80182A84 — scan the 96-entry / 0x10C-stride D_801202A0 actor table for
+14 -1
View File
@@ -5186,7 +5186,20 @@ INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001_jr_8017BEBC", func_80181AE
INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001_jr_8017BEBC", func_80181BB8);
INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001_jr_8017BEBC", func_80181C98);
extern void func_8012A828(s32*, s32);
extern void func_80182944(s32 a0);
void func_80181C98(s32 a0)
{
extern char D_801ADEAC[];
*(short *)(a0 + 0x2) = 0x9;
((void (*)(s32, void *))func_8012A828)(a0, &D_801ADEAC);
*(s32 *)(a0 + 0x1C) = 0x1E;
func_80182944(a0);
}
INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001_jr_8017BEBC", func_80181CE0);
+14 -1
View File
@@ -3584,7 +3584,20 @@ INCLUDE_ASM("asm/ov_SC05_007/nonmatchings/ov_SC05_007_jr_8017BEBC", func_8017E36
INCLUDE_ASM("asm/ov_SC05_007/nonmatchings/ov_SC05_007_jr_8017BEBC", func_8017E438);
INCLUDE_ASM("asm/ov_SC05_007/nonmatchings/ov_SC05_007_jr_8017BEBC", func_8017E518);
extern void func_8012A828(s32*, s32);
extern void func_8017F1C4(s32 a0);
void func_8017E518(s32 a0)
{
extern char D_80197830[];
*(short *)(a0 + 0x2) = 0x9;
((void (*)(s32, void *))func_8012A828)(a0, &D_80197830);
*(s32 *)(a0 + 0x1C) = 0x1E;
func_8017F1C4(a0);
}
INCLUDE_ASM("asm/ov_SC05_007/nonmatchings/ov_SC05_007_jr_8017BEBC", func_8017E560);
+12 -1
View File
@@ -7999,7 +7999,18 @@ void func_80185E3C(void *a0)
}
INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_jr_8017AE2C", func_80185F5C);
extern s32 func_80185FA8(void *a0);
s32 func_80185F5C(void *a0) {
a0 = *(void **)((char *)a0 + 0xCC);
if (a0 == 0) {
return 0;
}
if (*(u16 *)a0 != 0x61) {
return 0;
}
return func_80185FA8(a0);
}
/* func_80185FA8 — scan the 96-entry / 0x10C-stride D_801202A0 actor table for
+12 -1
View File
@@ -5840,7 +5840,18 @@ void func_80185B20(void *a0)
}
INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018_jr_8017D604", func_80185C40);
extern s32 func_80185C8C(void *a0);
s32 func_80185C40(void *a0) {
a0 = *(void **)((char *)a0 + 0xCC);
if (a0 == 0) {
return 0;
}
if (*(u16 *)a0 != 0x61) {
return 0;
}
return func_80185C8C(a0);
}
/* func_80185C8C — scan the 96-entry / 0x10C-stride D_801202A0 actor table for
+8 -1
View File
@@ -3752,7 +3752,14 @@ void func_8017DFFC(void)
INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000_jr_8017BEBC", func_8017E01C);
INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000_jr_8017BEBC", func_8017E040);
s32 func_8017E040(void) {
extern u16 D_801D0B7C;
return D_801D0B7C == 1;
}
extern s16 D_801D0B7C;
void func_8017E058(void) {