From 62042f65caffbeda0ea31821b7c27d5b37cb77b2 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Mon, 3 Aug 2026 23:53:50 -0600 Subject: [PATCH] fix(phase-30 S11): multi-line-comment blindness in dedup_propagate; func_8012A598 x138 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fleet 96.06 -> 96.10% fn-count / 93.7% instr / 88.0% distinct; dedup 1907 -> 1908 groups, 0 failed, C1 240807/240807. R22 clean-fleet: 140 passed, 0 failed of 140. func_8012A598 (3,288 templatable ins) was being written off as CARRY-FIXABLE. It took TWO fixes; either alone leaves it skipped. 1. TOOL (R33) — find_site's preamble backscan. The SESSION-18 fix handled blank, `//`, and SINGLE-LINE `/* … */` lines, but a MULTI-LINE block comment still halted the walk: its middle lines start with `*` and its last line ends `*/` without starting `/*`. So the three externs above the body were dropped and the body then failed compiles_standalone on now-undeclared data. This is the §134 multi-line-blindness class — S6b fixed the identical shape three times in family_remap (D1/D2/D5) and this copy was never reached. Fixed by deciding skippability on `cdecl._mask` — the project's ONE masking oracle — instead of on line syntax: it subsumes every comment form at once and cannot be fooled by a `/*` inside a string, with an R32 assertion on the length-preservation invariant it rests on. Strictly monotone (it can only carry MORE preamble), and dedup_propagate is a byte-gate feeder, so a bug here can fail to bank but never falsely bank. 2. EXEMPLAR — the body also declared a draft-local `struct BigCopy164` tag, which the tool refuses by design (two macros defining one tag would redefine it in a single TU). The shared `struct BigCopy` (engine_types.h L312) is the identical layout and is ALREADY used this exact way at engine_core.h:16158, so switching the exemplar to it is byte-neutral and drops the alias too. Probed on ONE member before scaling (R37/S29): byte-identical 9052dc0e first try; then 138 overlays byte-identical. PROPAGATE head accounting after this: 7,398 of 18,545 ins banked (func_80147364 4,110 + func_8012A598 3,288). Still open, each with a NAMED cause and none yet diagnosed against a build: func_8012f274 (3,973, dropped), func_8016ba68 (3,886, 4/138), func_801466f0 (3,288, the S6b D4 wrapped-alias gap). --- config/dedup.us.yaml | 7 + docs/progress.fleet.md | 286 ++++++++++++++++---------------- phase-ends/CURRENT_PHASE.md | 18 ++ src/ov_SC01_000/ov_SC01_000.c | 2 +- src/ov_SC01_001/ov_SC01_001.c | 2 +- src/ov_SC01_004/ov_SC01_004.c | 2 +- src/ov_SC01_005/ov_SC01_005.c | 2 +- src/ov_SC01_006/ov_SC01_006.c | 2 +- src/ov_SC01_008/ov_SC01_008.c | 2 +- src/ov_SC01_009/ov_SC01_009.c | 2 +- src/ov_SC01_074/ov_SC01_074.c | 2 +- src/ov_SC01_077/ov_SC01_077_a.c | 21 +-- src/ov_SC01_080/ov_SC01_080.c | 2 +- src/ov_SC01_084/ov_SC01_084.c | 2 +- src/ov_SC02_000/ov_SC02_000.c | 2 +- src/ov_SC02_003/ov_SC02_003.c | 2 +- src/ov_SC02_004/ov_SC02_004.c | 2 +- src/ov_SC02_005/ov_SC02_005.c | 2 +- src/ov_SC02_011/ov_SC02_011.c | 2 +- src/ov_SC02_015/ov_SC02_015.c | 2 +- src/ov_SC02_016/ov_SC02_016.c | 2 +- src/ov_SC02_017/ov_SC02_017.c | 2 +- src/ov_SC02_021/ov_SC02_021.c | 2 +- src/ov_SC02_026/ov_SC02_026.c | 2 +- src/ov_SC02_027/ov_SC02_027.c | 2 +- src/ov_SC02_028/ov_SC02_028.c | 2 +- src/ov_SC02_031/ov_SC02_031.c | 2 +- src/ov_SC02_035/ov_SC02_035.c | 2 +- src/ov_SC02_039/ov_SC02_039.c | 2 +- src/ov_SC02_041/ov_SC02_041.c | 2 +- src/ov_SC03_001/ov_SC03_001.c | 2 +- src/ov_SC03_002/ov_SC03_002.c | 2 +- src/ov_SC03_003/ov_SC03_003.c | 2 +- src/ov_SC03_006/ov_SC03_006.c | 2 +- src/ov_SC03_007/ov_SC03_007.c | 2 +- src/ov_SC03_010/ov_SC03_010.c | 2 +- src/ov_SC03_011/ov_SC03_011.c | 2 +- src/ov_SC03_012/ov_SC03_012.c | 2 +- src/ov_SC03_013/ov_SC03_013.c | 2 +- src/ov_SC03_014/ov_SC03_014.c | 2 +- src/ov_SC03_015/ov_SC03_015.c | 2 +- src/ov_SC03_023/ov_SC03_023.c | 2 +- src/ov_SC03_024/ov_SC03_024.c | 2 +- src/ov_SC03_028/ov_SC03_028.c | 2 +- src/ov_SC03_029/ov_SC03_029.c | 2 +- src/ov_SC03_030/ov_SC03_030.c | 2 +- src/ov_SC03_031/ov_SC03_031.c | 2 +- src/ov_SC03_089/ov_SC03_089.c | 2 +- src/ov_SC03_090/ov_SC03_090.c | 2 +- src/ov_SC03_091/ov_SC03_091.c | 2 +- src/ov_SC03_092/ov_SC03_092.c | 2 +- src/ov_SC03_093/ov_SC03_093.c | 2 +- src/ov_SC03_094/ov_SC03_094.c | 2 +- src/ov_SC03_095/ov_SC03_095.c | 2 +- src/ov_SC03_096/ov_SC03_096.c | 2 +- src/ov_SC03_097/ov_SC03_097.c | 2 +- src/ov_SC03_098/ov_SC03_098.c | 2 +- src/ov_SC03_099/ov_SC03_099.c | 2 +- src/ov_SC03_100/ov_SC03_100.c | 2 +- src/ov_SC03_101/ov_SC03_101.c | 2 +- src/ov_SC03_102/ov_SC03_102.c | 2 +- src/ov_SC03_103/ov_SC03_103.c | 2 +- src/ov_SC03_104/ov_SC03_104.c | 2 +- src/ov_SC03_105/ov_SC03_105.c | 2 +- src/ov_SC03_108/ov_SC03_108.c | 2 +- src/ov_SC03_109/ov_SC03_109.c | 2 +- src/ov_SC03_110/ov_SC03_110.c | 2 +- src/ov_SC03_111/ov_SC03_111.c | 2 +- src/ov_SC03_112/ov_SC03_112.c | 2 +- src/ov_SC03_113/ov_SC03_113.c | 2 +- src/ov_SC03_114/ov_SC03_114.c | 2 +- src/ov_SC03_115/ov_SC03_115.c | 2 +- src/ov_SC03_116/ov_SC03_116.c | 2 +- src/ov_SC03_117/ov_SC03_117.c | 2 +- src/ov_SC03_118/ov_SC03_118.c | 2 +- src/ov_SC03_119/ov_SC03_119.c | 2 +- src/ov_SC03_121/ov_SC03_121.c | 2 +- src/ov_SC03_124/ov_SC03_124.c | 2 +- src/ov_SC03_125/ov_SC03_125.c | 2 +- src/ov_SC03_126/ov_SC03_126.c | 2 +- src/ov_SC04_000/ov_SC04_000.c | 2 +- src/ov_SC04_002/ov_SC04_002.c | 2 +- src/ov_SC04_003/ov_SC04_003.c | 2 +- src/ov_SC04_004/ov_SC04_004.c | 2 +- src/ov_SC04_005/ov_SC04_005.c | 2 +- src/ov_SC04_006/ov_SC04_006.c | 2 +- src/ov_SC04_007/ov_SC04_007.c | 2 +- src/ov_SC04_008/ov_SC04_008.c | 2 +- src/ov_SC04_009/ov_SC04_009.c | 2 +- src/ov_SC04_010/ov_SC04_010.c | 2 +- src/ov_SC04_011/ov_SC04_011.c | 2 +- src/ov_SC04_012/ov_SC04_012.c | 2 +- src/ov_SC04_015/ov_SC04_015.c | 2 +- src/ov_SC04_016/ov_SC04_016.c | 2 +- src/ov_SC04_018/ov_SC04_018.c | 2 +- src/ov_SC04_019/ov_SC04_019.c | 2 +- src/ov_SC04_020/ov_SC04_020.c | 2 +- src/ov_SC04_021/ov_SC04_021.c | 2 +- src/ov_SC05_000/ov_SC05_000.c | 2 +- src/ov_SC05_001/ov_SC05_001.c | 2 +- src/ov_SC05_002/ov_SC05_002.c | 2 +- src/ov_SC05_003/ov_SC05_003.c | 2 +- src/ov_SC05_004/ov_SC05_004.c | 2 +- src/ov_SC05_005/ov_SC05_005.c | 2 +- src/ov_SC05_006/ov_SC05_006.c | 2 +- src/ov_SC05_007/ov_SC05_007.c | 2 +- src/ov_SC05_008/ov_SC05_008.c | 2 +- src/ov_SC05_009/ov_SC05_009.c | 2 +- src/ov_SC05_010/ov_SC05_010.c | 2 +- src/ov_SC05_011/ov_SC05_011.c | 2 +- src/ov_SC05_017/ov_SC05_017.c | 2 +- src/ov_SC05_018/ov_SC05_018.c | 2 +- src/ov_SC05_019/ov_SC05_019.c | 2 +- src/ov_SC06_000/ov_SC06_000.c | 2 +- src/ov_SC06_006/ov_SC06_006.c | 2 +- src/ov_SC06_008/ov_SC06_008.c | 2 +- src/ov_SC06_010/ov_SC06_010.c | 2 +- src/ov_SC06_011/ov_SC06_011.c | 2 +- src/ov_SC06_013/ov_SC06_013.c | 2 +- src/ov_SC06_014/ov_SC06_014.c | 2 +- src/ov_SC06_015/ov_SC06_015.c | 2 +- src/ov_SC06_016/ov_SC06_016.c | 2 +- src/ov_SC06_018/ov_SC06_018.c | 2 +- src/ov_SC06_020/ov_SC06_020.c | 2 +- src/ov_SC06_022/ov_SC06_022.c | 2 +- src/ov_SC06_024/ov_SC06_024.c | 2 +- src/ov_SC06_025/ov_SC06_025.c | 2 +- src/ov_SC06_027/ov_SC06_027.c | 2 +- src/ov_SC06_029/ov_SC06_029.c | 2 +- src/ov_SC06_030/ov_SC06_030.c | 2 +- src/ov_SC06_032/ov_SC06_032.c | 2 +- src/ov_SC06_033/ov_SC06_033.c | 2 +- src/ov_SC07_000/ov_SC07_000.c | 2 +- src/ov_SC07_001/ov_SC07_001.c | 2 +- src/ov_SC07_002/ov_SC07_002.c | 2 +- src/ov_SC07_006/ov_SC07_006.c | 2 +- src/ov_SC07_007/ov_SC07_007.c | 2 +- src/ov_SC07_008/ov_SC07_008.c | 2 +- src/ov_SC07_009/ov_SC07_009.c | 2 +- src/ov_SC07_010/ov_SC07_010.c | 2 +- src/ov_SC07_011/ov_SC07_011.c | 2 +- src/shared/engine_core.h | 19 +++ tools/dedup_propagate.py | 26 ++- 143 files changed, 350 insertions(+), 301 deletions(-) diff --git a/config/dedup.us.yaml b/config/dedup.us.yaml index 83c07e6d0..e11e2b6af 100644 --- a/config/dedup.us.yaml +++ b/config/dedup.us.yaml @@ -13473,3 +13473,10 @@ groups: func: DEFINE_func_8016BA68 vram: 0x8016BA68 binaries: [ov_SC07_006, ov_SC07_007, ov_SC07_010, ov_SC07_011] + - id: E_func_8012A598 + tier: h_exact + hash: 1bfd8874d4bd16914b5a68760b8039e83c8c59d8 + source: src/shared/engine_core.h + func: DEFINE_func_8012A598 + vram: 0x8012A598 + binaries: [ov_SC01_077, ov_SC01_005, ov_SC01_006, ov_SC03_001, ov_SC01_000, ov_SC01_001, ov_SC02_000, ov_SC02_003, ov_SC03_002, ov_SC03_006, ov_SC04_000, ov_SC04_018, ov_SC04_019, ov_SC05_000, ov_SC06_000, ov_SC07_000, ov_SC01_004, ov_SC01_008, ov_SC01_009, ov_SC01_074, ov_SC01_080, ov_SC01_084, ov_SC02_004, ov_SC02_005, ov_SC02_011, ov_SC02_015, ov_SC02_016, ov_SC02_017, ov_SC02_021, ov_SC02_026, ov_SC02_027, ov_SC02_028, ov_SC02_031, ov_SC02_035, ov_SC02_039, ov_SC02_041, ov_SC03_003, ov_SC03_007, ov_SC03_010, ov_SC03_011, ov_SC03_012, ov_SC03_013, ov_SC03_014, ov_SC03_015, ov_SC03_023, ov_SC03_024, ov_SC03_028, ov_SC03_029, ov_SC03_030, ov_SC03_031, ov_SC03_089, ov_SC03_090, ov_SC03_091, ov_SC03_092, ov_SC03_093, ov_SC03_094, ov_SC03_095, ov_SC03_096, ov_SC03_097, ov_SC03_098, ov_SC03_099, ov_SC03_100, ov_SC03_101, ov_SC03_102, ov_SC03_103, ov_SC03_104, ov_SC03_105, ov_SC03_108, ov_SC03_109, ov_SC03_110, ov_SC03_111, ov_SC03_112, ov_SC03_113, ov_SC03_114, ov_SC03_115, ov_SC03_116, ov_SC03_117, ov_SC03_118, ov_SC03_119, ov_SC03_121, ov_SC03_124, ov_SC03_125, ov_SC03_126, ov_SC04_002, ov_SC04_003, ov_SC04_004, ov_SC04_005, ov_SC04_006, ov_SC04_007, ov_SC04_008, ov_SC04_009, ov_SC04_010, ov_SC04_011, ov_SC04_012, ov_SC04_015, ov_SC04_016, ov_SC04_020, ov_SC04_021, ov_SC05_001, ov_SC05_002, ov_SC05_003, ov_SC05_004, ov_SC05_005, ov_SC05_006, ov_SC05_007, ov_SC05_008, ov_SC05_009, ov_SC05_010, ov_SC05_011, ov_SC05_017, ov_SC05_018, ov_SC05_019, ov_SC06_006, ov_SC06_008, ov_SC06_010, ov_SC06_011, ov_SC06_013, ov_SC06_014, ov_SC06_015, ov_SC06_016, ov_SC06_018, ov_SC06_020, ov_SC06_022, ov_SC06_024, ov_SC06_025, ov_SC06_027, ov_SC06_029, ov_SC06_030, ov_SC06_032, ov_SC06_033, ov_SC07_001, ov_SC07_002, ov_SC07_008, ov_SC07_009, ov_SC07_006, ov_SC07_007, ov_SC07_010, ov_SC07_011] diff --git a/docs/progress.fleet.md b/docs/progress.fleet.md index 12fd20dec..800d7aee0 100644 --- a/docs/progress.fleet.md +++ b/docs/progress.fleet.md @@ -4,157 +4,157 @@ # cross-binary collapsible-byte leverage: docs/duplicates.cross.md. # THREE progress metrics (all matter — see the labels): -FLEET fn-count byte-ident: 339777 / 353721 = 96.06% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) -FLEET instr-weighted : 12311280 / 13141652 = 93.7% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number) +FLEET fn-count byte-ident: 339914 / 353721 = 96.10% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) +FLEET instr-weighted : 12314568 / 13141652 = 93.7% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 4961017 / 5634875 = 88.0% (77550/87459 unique fns; the DISTINCT-RE number) MAIN game-code weighted : 436 / 60201 = 0.7% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; LINKED-excluding Ghidra sig dated 2026-06-14; 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: 12310844 / 13081451 = 94.1%) + (fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 12314132 / 13081451 = 94.1%) -FLEET REAL substantive : 337922 (of which dedup-shared 240595 via 1907 groups / 240669 instances) +FLEET REAL substantive : 338059 (of which dedup-shared 240733 via 1908 groups / 240807 instances) FLEET LINKED PsyQ objs : 959 FLEET NON_MATCHING : 7 (0 in any default build — G4) -FLEET INCLUDE_ASM stubs : 13937 +FLEET INCLUDE_ASM stubs : 13800 FLEET matchable : 353721 | binary | REAL | shared | LINKED | byte-ident | matchable | byte-ident % | |---|---:|---:|---:|---:|---:|---:| | main | 54 | 2 | 959 | 1055 | 2096 | 50.3% | | resident | 129 | 0 | 0 | 131 | 145 | 90.3% | -| ov_SC01_000 | 2378 | 1749 | 0 | 2378 | 2403 | 99.0% | -| ov_SC01_001 | 2386 | 1750 | 0 | 2388 | 2466 | 96.8% | -| ov_SC01_004 | 2380 | 1741 | 0 | 2381 | 2414 | 98.6% | -| ov_SC01_005 | 2410 | 1764 | 0 | 2410 | 2503 | 96.3% | -| ov_SC01_006 | 2410 | 1764 | 0 | 2410 | 2503 | 96.3% | -| ov_SC01_008 | 2380 | 1741 | 0 | 2382 | 2426 | 98.2% | -| ov_SC01_009 | 2406 | 1742 | 0 | 2407 | 2507 | 96.0% | -| ov_SC01_074 | 2385 | 1742 | 0 | 2387 | 2425 | 98.4% | -| ov_SC01_077 | 2537 | 1708 | 0 | 2539 | 2586 | 98.2% | -| ov_SC01_080 | 2413 | 1745 | 0 | 2413 | 2512 | 96.1% | -| ov_SC01_084 | 2438 | 1750 | 0 | 2443 | 2579 | 94.7% | -| ov_SC02_000 | 2503 | 1789 | 0 | 2503 | 2683 | 93.3% | -| ov_SC02_003 | 2503 | 1789 | 0 | 2503 | 2683 | 93.3% | -| ov_SC02_004 | 2378 | 1745 | 0 | 2378 | 2401 | 99.0% | -| ov_SC02_005 | 2525 | 1741 | 0 | 2535 | 2927 | 86.6% | -| ov_SC02_011 | 2608 | 1748 | 0 | 2619 | 2893 | 90.5% | -| ov_SC02_015 | 2389 | 1747 | 0 | 2389 | 2414 | 99.0% | -| ov_SC02_016 | 2470 | 1747 | 0 | 2473 | 2545 | 97.2% | -| ov_SC02_017 | 2538 | 1747 | 0 | 2546 | 2732 | 93.2% | -| ov_SC02_021 | 2394 | 1747 | 0 | 2394 | 2437 | 98.2% | -| ov_SC02_026 | 2485 | 1745 | 0 | 2491 | 2572 | 96.9% | -| ov_SC02_027 | 2542 | 1745 | 0 | 2551 | 2692 | 94.8% | -| ov_SC02_028 | 2547 | 1745 | 0 | 2557 | 2701 | 94.7% | -| ov_SC02_031 | 2481 | 1746 | 0 | 2486 | 2562 | 97.0% | -| ov_SC02_035 | 2469 | 1745 | 0 | 2472 | 2520 | 98.1% | -| ov_SC02_039 | 2383 | 1745 | 0 | 2383 | 2416 | 98.6% | -| ov_SC02_041 | 2460 | 1745 | 0 | 2463 | 2561 | 96.2% | -| ov_SC03_001 | 2646 | 1746 | 0 | 2663 | 2869 | 92.8% | -| ov_SC03_002 | 2522 | 1750 | 0 | 2537 | 2631 | 96.4% | -| ov_SC03_003 | 2387 | 1745 | 0 | 2388 | 2423 | 98.6% | -| ov_SC03_006 | 2536 | 1751 | 0 | 2545 | 2767 | 92.0% | -| ov_SC03_007 | 2450 | 1745 | 0 | 2454 | 2623 | 93.6% | -| ov_SC03_010 | 2403 | 1745 | 0 | 2403 | 2471 | 97.2% | -| ov_SC03_011 | 2405 | 1745 | 0 | 2411 | 2527 | 95.4% | -| ov_SC03_012 | 2377 | 1745 | 0 | 2378 | 2406 | 98.8% | -| ov_SC03_013 | 2409 | 1745 | 0 | 2409 | 2493 | 96.6% | -| ov_SC03_014 | 2556 | 1773 | 0 | 2556 | 2685 | 95.2% | -| ov_SC03_015 | 2556 | 1773 | 0 | 2556 | 2685 | 95.2% | -| ov_SC03_023 | 2389 | 1745 | 0 | 2390 | 2435 | 98.2% | -| ov_SC03_024 | 2498 | 1750 | 0 | 2505 | 2641 | 94.9% | -| ov_SC03_028 | 2446 | 1745 | 0 | 2450 | 2664 | 92.0% | -| ov_SC03_029 | 2489 | 1747 | 0 | 2499 | 2644 | 94.5% | -| ov_SC03_030 | 2407 | 1750 | 0 | 2409 | 2495 | 96.6% | -| ov_SC03_031 | 2436 | 1745 | 0 | 2439 | 2514 | 97.0% | -| ov_SC03_089 | 2494 | 1750 | 0 | 2501 | 2581 | 96.9% | -| ov_SC03_090 | 2504 | 1750 | 0 | 2512 | 2625 | 95.7% | -| ov_SC03_091 | 2518 | 1745 | 0 | 2526 | 2640 | 95.7% | -| ov_SC03_092 | 2487 | 1750 | 0 | 2499 | 2587 | 96.6% | -| ov_SC03_093 | 2501 | 1745 | 0 | 2505 | 2563 | 97.7% | -| ov_SC03_094 | 2485 | 1745 | 0 | 2491 | 2577 | 96.7% | -| ov_SC03_095 | 2417 | 1745 | 0 | 2420 | 2474 | 97.8% | -| ov_SC03_096 | 2414 | 1745 | 0 | 2417 | 2465 | 98.1% | -| ov_SC03_097 | 2508 | 1745 | 0 | 2515 | 2603 | 96.6% | -| ov_SC03_098 | 2490 | 1745 | 0 | 2493 | 2541 | 98.1% | -| ov_SC03_099 | 2471 | 1745 | 0 | 2474 | 2504 | 98.8% | -| ov_SC03_100 | 2506 | 1745 | 0 | 2510 | 2539 | 98.9% | -| ov_SC03_101 | 2466 | 1750 | 0 | 2470 | 2528 | 97.7% | -| ov_SC03_102 | 2455 | 1745 | 0 | 2458 | 2492 | 98.6% | -| ov_SC03_103 | 2478 | 1747 | 0 | 2481 | 2510 | 98.8% | -| ov_SC03_104 | 2523 | 1750 | 0 | 2530 | 2616 | 96.7% | -| ov_SC03_105 | 2431 | 1745 | 0 | 2438 | 2597 | 93.9% | -| ov_SC03_108 | 2386 | 1745 | 0 | 2386 | 2443 | 97.7% | -| ov_SC03_109 | 2396 | 1745 | 0 | 2398 | 2424 | 98.9% | -| ov_SC03_110 | 2428 | 1745 | 0 | 2428 | 2468 | 98.4% | -| ov_SC03_111 | 2458 | 1745 | 0 | 2461 | 2510 | 98.0% | -| ov_SC03_112 | 2419 | 1747 | 0 | 2421 | 2526 | 95.8% | -| ov_SC03_113 | 2420 | 1747 | 0 | 2423 | 2468 | 98.2% | -| ov_SC03_114 | 2378 | 1745 | 0 | 2380 | 2415 | 98.6% | -| ov_SC03_115 | 2419 | 1745 | 0 | 2421 | 2472 | 97.9% | -| ov_SC03_116 | 2386 | 1745 | 0 | 2389 | 2438 | 98.0% | -| ov_SC03_117 | 2454 | 1745 | 0 | 2460 | 2557 | 96.2% | -| ov_SC03_118 | 2524 | 1769 | 0 | 2525 | 2685 | 94.0% | -| ov_SC03_119 | 2520 | 1769 | 0 | 2521 | 2685 | 93.9% | -| ov_SC03_121 | 2392 | 1745 | 0 | 2395 | 2459 | 97.4% | -| ov_SC03_124 | 2556 | 1741 | 0 | 2576 | 2741 | 94.0% | -| ov_SC03_125 | 2509 | 1745 | 0 | 2521 | 2588 | 97.4% | -| ov_SC03_126 | 2388 | 1747 | 0 | 2388 | 2423 | 98.6% | -| ov_SC04_000 | 2461 | 1749 | 0 | 2470 | 2546 | 97.0% | -| ov_SC04_002 | 2488 | 1745 | 0 | 2492 | 2636 | 94.5% | -| ov_SC04_003 | 2425 | 1745 | 0 | 2429 | 2502 | 97.1% | -| ov_SC04_004 | 2458 | 1745 | 0 | 2460 | 2558 | 96.2% | -| ov_SC04_005 | 2482 | 1745 | 0 | 2488 | 2612 | 95.3% | -| ov_SC04_006 | 2418 | 1745 | 0 | 2420 | 2454 | 98.6% | -| ov_SC04_007 | 2476 | 1745 | 0 | 2480 | 2569 | 96.5% | -| ov_SC04_008 | 2389 | 1745 | 0 | 2389 | 2415 | 98.9% | -| ov_SC04_009 | 2415 | 1745 | 0 | 2418 | 2441 | 99.1% | -| ov_SC04_010 | 2391 | 1745 | 0 | 2392 | 2419 | 98.9% | -| ov_SC04_011 | 2502 | 1750 | 0 | 2508 | 2803 | 89.5% | -| ov_SC04_012 | 2386 | 1745 | 0 | 2387 | 2420 | 98.6% | -| ov_SC04_015 | 2514 | 1746 | 0 | 2525 | 2611 | 96.7% | -| ov_SC04_016 | 2389 | 1745 | 0 | 2391 | 2440 | 98.0% | -| ov_SC04_018 | 2658 | 1781 | 0 | 2658 | 2857 | 93.0% | -| ov_SC04_019 | 2650 | 1781 | 0 | 2650 | 2857 | 92.8% | -| ov_SC04_020 | 2496 | 1745 | 0 | 2508 | 2567 | 97.7% | -| ov_SC04_021 | 2388 | 1747 | 0 | 2388 | 2423 | 98.6% | -| ov_SC05_000 | 2395 | 1749 | 0 | 2398 | 2422 | 99.0% | -| ov_SC05_001 | 2463 | 1745 | 0 | 2468 | 2574 | 95.9% | -| ov_SC05_002 | 2418 | 1745 | 0 | 2421 | 2442 | 99.1% | -| ov_SC05_003 | 2399 | 1745 | 0 | 2400 | 2481 | 96.7% | -| ov_SC05_004 | 2409 | 1745 | 0 | 2411 | 2464 | 97.8% | -| ov_SC05_005 | 2425 | 1750 | 0 | 2426 | 2491 | 97.4% | -| ov_SC05_006 | 2411 | 1745 | 0 | 2411 | 2430 | 99.2% | -| ov_SC05_007 | 2418 | 1745 | 0 | 2423 | 2482 | 97.6% | -| ov_SC05_008 | 2431 | 1745 | 0 | 2433 | 2543 | 95.7% | -| ov_SC05_009 | 2396 | 1745 | 0 | 2400 | 2438 | 98.4% | -| ov_SC05_010 | 2434 | 1745 | 0 | 2438 | 2588 | 94.2% | -| ov_SC05_011 | 2385 | 1745 | 0 | 2386 | 2409 | 99.0% | -| ov_SC05_017 | 2629 | 1742 | 0 | 2640 | 2842 | 92.9% | -| ov_SC05_018 | 2525 | 1745 | 0 | 2538 | 2673 | 94.9% | -| ov_SC05_019 | 2388 | 1747 | 0 | 2388 | 2423 | 98.6% | -| ov_SC06_000 | 2512 | 1754 | 0 | 2515 | 2691 | 93.5% | -| ov_SC06_006 | 2410 | 1745 | 0 | 2411 | 2511 | 96.0% | -| ov_SC06_008 | 2464 | 1747 | 0 | 2470 | 2542 | 97.2% | -| ov_SC06_010 | 2438 | 1745 | 0 | 2443 | 2517 | 97.1% | -| ov_SC06_011 | 2402 | 1745 | 0 | 2406 | 2468 | 97.5% | -| ov_SC06_013 | 2392 | 1745 | 0 | 2393 | 2425 | 98.7% | -| ov_SC06_014 | 2403 | 1745 | 0 | 2405 | 2453 | 98.0% | -| ov_SC06_015 | 2397 | 1745 | 0 | 2397 | 2421 | 99.0% | -| ov_SC06_016 | 2439 | 1745 | 0 | 2441 | 2549 | 95.8% | -| ov_SC06_018 | 2465 | 1747 | 0 | 2472 | 2665 | 92.8% | -| ov_SC06_020 | 2426 | 1747 | 0 | 2427 | 2518 | 96.4% | -| ov_SC06_022 | 2452 | 1745 | 0 | 2460 | 2642 | 93.1% | -| ov_SC06_024 | 2471 | 1745 | 0 | 2477 | 2667 | 92.9% | -| ov_SC06_025 | 2440 | 1745 | 0 | 2445 | 2572 | 95.1% | -| ov_SC06_027 | 2380 | 1745 | 0 | 2381 | 2408 | 98.9% | -| ov_SC06_029 | 2461 | 1745 | 0 | 2473 | 2662 | 92.9% | -| ov_SC06_030 | 2400 | 1745 | 0 | 2400 | 2456 | 97.7% | -| ov_SC06_032 | 2458 | 1746 | 0 | 2465 | 2658 | 92.7% | -| ov_SC06_033 | 2457 | 1746 | 0 | 2464 | 2631 | 93.7% | -| ov_SC07_000 | 2420 | 1749 | 0 | 2422 | 2521 | 96.1% | -| ov_SC07_001 | 2392 | 1745 | 0 | 2394 | 2454 | 97.6% | -| ov_SC07_002 | 2445 | 1745 | 0 | 2449 | 2579 | 95.0% | -| ov_SC07_006 | 2304 | 1570 | 0 | 2384 | 2456 | 97.1% | -| ov_SC07_007 | 2322 | 1602 | 0 | 2406 | 2613 | 92.1% | -| ov_SC07_008 | 2374 | 1745 | 0 | 2374 | 2386 | 99.5% | -| ov_SC07_009 | 2386 | 1745 | 0 | 2388 | 2430 | 98.3% | -| ov_SC07_010 | 2303 | 1623 | 0 | 2386 | 2524 | 94.5% | -| ov_SC07_011 | 2323 | 1601 | 0 | 2403 | 2449 | 98.1% | +| ov_SC01_000 | 2379 | 1750 | 0 | 2379 | 2403 | 99.0% | +| ov_SC01_001 | 2387 | 1751 | 0 | 2389 | 2466 | 96.9% | +| ov_SC01_004 | 2381 | 1742 | 0 | 2382 | 2414 | 98.7% | +| ov_SC01_005 | 2411 | 1765 | 0 | 2411 | 2503 | 96.3% | +| ov_SC01_006 | 2411 | 1765 | 0 | 2411 | 2503 | 96.3% | +| ov_SC01_008 | 2381 | 1742 | 0 | 2383 | 2426 | 98.2% | +| ov_SC01_009 | 2407 | 1743 | 0 | 2408 | 2507 | 96.1% | +| ov_SC01_074 | 2386 | 1743 | 0 | 2388 | 2425 | 98.5% | +| ov_SC01_077 | 2537 | 1709 | 0 | 2539 | 2586 | 98.2% | +| ov_SC01_080 | 2414 | 1746 | 0 | 2414 | 2512 | 96.1% | +| ov_SC01_084 | 2439 | 1751 | 0 | 2444 | 2579 | 94.8% | +| ov_SC02_000 | 2504 | 1790 | 0 | 2504 | 2683 | 93.3% | +| ov_SC02_003 | 2504 | 1790 | 0 | 2504 | 2683 | 93.3% | +| ov_SC02_004 | 2379 | 1746 | 0 | 2379 | 2401 | 99.1% | +| ov_SC02_005 | 2526 | 1742 | 0 | 2536 | 2927 | 86.6% | +| ov_SC02_011 | 2609 | 1749 | 0 | 2620 | 2893 | 90.6% | +| ov_SC02_015 | 2390 | 1748 | 0 | 2390 | 2414 | 99.0% | +| ov_SC02_016 | 2471 | 1748 | 0 | 2474 | 2545 | 97.2% | +| ov_SC02_017 | 2539 | 1748 | 0 | 2547 | 2732 | 93.2% | +| ov_SC02_021 | 2395 | 1748 | 0 | 2395 | 2437 | 98.3% | +| ov_SC02_026 | 2486 | 1746 | 0 | 2492 | 2572 | 96.9% | +| ov_SC02_027 | 2543 | 1746 | 0 | 2552 | 2692 | 94.8% | +| ov_SC02_028 | 2548 | 1746 | 0 | 2558 | 2701 | 94.7% | +| ov_SC02_031 | 2482 | 1747 | 0 | 2487 | 2562 | 97.1% | +| ov_SC02_035 | 2470 | 1746 | 0 | 2473 | 2520 | 98.1% | +| ov_SC02_039 | 2384 | 1746 | 0 | 2384 | 2416 | 98.7% | +| ov_SC02_041 | 2461 | 1746 | 0 | 2464 | 2561 | 96.2% | +| ov_SC03_001 | 2647 | 1747 | 0 | 2664 | 2869 | 92.9% | +| ov_SC03_002 | 2523 | 1751 | 0 | 2538 | 2631 | 96.5% | +| ov_SC03_003 | 2388 | 1746 | 0 | 2389 | 2423 | 98.6% | +| ov_SC03_006 | 2537 | 1752 | 0 | 2546 | 2767 | 92.0% | +| ov_SC03_007 | 2451 | 1746 | 0 | 2455 | 2623 | 93.6% | +| ov_SC03_010 | 2404 | 1746 | 0 | 2404 | 2471 | 97.3% | +| ov_SC03_011 | 2406 | 1746 | 0 | 2412 | 2527 | 95.4% | +| ov_SC03_012 | 2378 | 1746 | 0 | 2379 | 2406 | 98.9% | +| ov_SC03_013 | 2410 | 1746 | 0 | 2410 | 2493 | 96.7% | +| ov_SC03_014 | 2557 | 1774 | 0 | 2557 | 2685 | 95.2% | +| ov_SC03_015 | 2557 | 1774 | 0 | 2557 | 2685 | 95.2% | +| ov_SC03_023 | 2390 | 1746 | 0 | 2391 | 2435 | 98.2% | +| ov_SC03_024 | 2499 | 1751 | 0 | 2506 | 2641 | 94.9% | +| ov_SC03_028 | 2447 | 1746 | 0 | 2451 | 2664 | 92.0% | +| ov_SC03_029 | 2490 | 1748 | 0 | 2500 | 2644 | 94.6% | +| ov_SC03_030 | 2408 | 1751 | 0 | 2410 | 2495 | 96.6% | +| ov_SC03_031 | 2437 | 1746 | 0 | 2440 | 2514 | 97.1% | +| ov_SC03_089 | 2495 | 1751 | 0 | 2502 | 2581 | 96.9% | +| ov_SC03_090 | 2505 | 1751 | 0 | 2513 | 2625 | 95.7% | +| ov_SC03_091 | 2519 | 1746 | 0 | 2527 | 2640 | 95.7% | +| ov_SC03_092 | 2488 | 1751 | 0 | 2500 | 2587 | 96.6% | +| ov_SC03_093 | 2502 | 1746 | 0 | 2506 | 2563 | 97.8% | +| ov_SC03_094 | 2486 | 1746 | 0 | 2492 | 2577 | 96.7% | +| ov_SC03_095 | 2418 | 1746 | 0 | 2421 | 2474 | 97.9% | +| ov_SC03_096 | 2415 | 1746 | 0 | 2418 | 2465 | 98.1% | +| ov_SC03_097 | 2509 | 1746 | 0 | 2516 | 2603 | 96.7% | +| ov_SC03_098 | 2491 | 1746 | 0 | 2494 | 2541 | 98.2% | +| ov_SC03_099 | 2472 | 1746 | 0 | 2475 | 2504 | 98.8% | +| ov_SC03_100 | 2507 | 1746 | 0 | 2511 | 2539 | 98.9% | +| ov_SC03_101 | 2467 | 1751 | 0 | 2471 | 2528 | 97.7% | +| ov_SC03_102 | 2456 | 1746 | 0 | 2459 | 2492 | 98.7% | +| ov_SC03_103 | 2479 | 1748 | 0 | 2482 | 2510 | 98.9% | +| ov_SC03_104 | 2524 | 1751 | 0 | 2531 | 2616 | 96.8% | +| ov_SC03_105 | 2432 | 1746 | 0 | 2439 | 2597 | 93.9% | +| ov_SC03_108 | 2387 | 1746 | 0 | 2387 | 2443 | 97.7% | +| ov_SC03_109 | 2397 | 1746 | 0 | 2399 | 2424 | 99.0% | +| ov_SC03_110 | 2429 | 1746 | 0 | 2429 | 2468 | 98.4% | +| ov_SC03_111 | 2459 | 1746 | 0 | 2462 | 2510 | 98.1% | +| ov_SC03_112 | 2420 | 1748 | 0 | 2422 | 2526 | 95.9% | +| ov_SC03_113 | 2421 | 1748 | 0 | 2424 | 2468 | 98.2% | +| ov_SC03_114 | 2379 | 1746 | 0 | 2381 | 2415 | 98.6% | +| ov_SC03_115 | 2420 | 1746 | 0 | 2422 | 2472 | 98.0% | +| ov_SC03_116 | 2387 | 1746 | 0 | 2390 | 2438 | 98.0% | +| ov_SC03_117 | 2455 | 1746 | 0 | 2461 | 2557 | 96.2% | +| ov_SC03_118 | 2525 | 1770 | 0 | 2526 | 2685 | 94.1% | +| ov_SC03_119 | 2521 | 1770 | 0 | 2522 | 2685 | 93.9% | +| ov_SC03_121 | 2393 | 1746 | 0 | 2396 | 2459 | 97.4% | +| ov_SC03_124 | 2557 | 1742 | 0 | 2577 | 2741 | 94.0% | +| ov_SC03_125 | 2510 | 1746 | 0 | 2522 | 2588 | 97.4% | +| ov_SC03_126 | 2389 | 1748 | 0 | 2389 | 2423 | 98.6% | +| ov_SC04_000 | 2462 | 1750 | 0 | 2471 | 2546 | 97.1% | +| ov_SC04_002 | 2489 | 1746 | 0 | 2493 | 2636 | 94.6% | +| ov_SC04_003 | 2426 | 1746 | 0 | 2430 | 2502 | 97.1% | +| ov_SC04_004 | 2459 | 1746 | 0 | 2461 | 2558 | 96.2% | +| ov_SC04_005 | 2483 | 1746 | 0 | 2489 | 2612 | 95.3% | +| ov_SC04_006 | 2419 | 1746 | 0 | 2421 | 2454 | 98.7% | +| ov_SC04_007 | 2477 | 1746 | 0 | 2481 | 2569 | 96.6% | +| ov_SC04_008 | 2390 | 1746 | 0 | 2390 | 2415 | 99.0% | +| ov_SC04_009 | 2416 | 1746 | 0 | 2419 | 2441 | 99.1% | +| ov_SC04_010 | 2392 | 1746 | 0 | 2393 | 2419 | 98.9% | +| ov_SC04_011 | 2503 | 1751 | 0 | 2509 | 2803 | 89.5% | +| ov_SC04_012 | 2387 | 1746 | 0 | 2388 | 2420 | 98.7% | +| ov_SC04_015 | 2515 | 1747 | 0 | 2526 | 2611 | 96.7% | +| ov_SC04_016 | 2390 | 1746 | 0 | 2392 | 2440 | 98.0% | +| ov_SC04_018 | 2659 | 1782 | 0 | 2659 | 2857 | 93.1% | +| ov_SC04_019 | 2651 | 1782 | 0 | 2651 | 2857 | 92.8% | +| ov_SC04_020 | 2497 | 1746 | 0 | 2509 | 2567 | 97.7% | +| ov_SC04_021 | 2389 | 1748 | 0 | 2389 | 2423 | 98.6% | +| ov_SC05_000 | 2396 | 1750 | 0 | 2399 | 2422 | 99.1% | +| ov_SC05_001 | 2464 | 1746 | 0 | 2469 | 2574 | 95.9% | +| ov_SC05_002 | 2419 | 1746 | 0 | 2422 | 2442 | 99.2% | +| ov_SC05_003 | 2400 | 1746 | 0 | 2401 | 2481 | 96.8% | +| ov_SC05_004 | 2410 | 1746 | 0 | 2412 | 2464 | 97.9% | +| ov_SC05_005 | 2426 | 1751 | 0 | 2427 | 2491 | 97.4% | +| ov_SC05_006 | 2412 | 1746 | 0 | 2412 | 2430 | 99.3% | +| ov_SC05_007 | 2419 | 1746 | 0 | 2424 | 2482 | 97.7% | +| ov_SC05_008 | 2432 | 1746 | 0 | 2434 | 2543 | 95.7% | +| ov_SC05_009 | 2397 | 1746 | 0 | 2401 | 2438 | 98.5% | +| ov_SC05_010 | 2435 | 1746 | 0 | 2439 | 2588 | 94.2% | +| ov_SC05_011 | 2386 | 1746 | 0 | 2387 | 2409 | 99.1% | +| ov_SC05_017 | 2630 | 1743 | 0 | 2641 | 2842 | 92.9% | +| ov_SC05_018 | 2526 | 1746 | 0 | 2539 | 2673 | 95.0% | +| ov_SC05_019 | 2389 | 1748 | 0 | 2389 | 2423 | 98.6% | +| ov_SC06_000 | 2513 | 1755 | 0 | 2516 | 2691 | 93.5% | +| ov_SC06_006 | 2411 | 1746 | 0 | 2412 | 2511 | 96.1% | +| ov_SC06_008 | 2465 | 1748 | 0 | 2471 | 2542 | 97.2% | +| ov_SC06_010 | 2439 | 1746 | 0 | 2444 | 2517 | 97.1% | +| ov_SC06_011 | 2403 | 1746 | 0 | 2407 | 2468 | 97.5% | +| ov_SC06_013 | 2393 | 1746 | 0 | 2394 | 2425 | 98.7% | +| ov_SC06_014 | 2404 | 1746 | 0 | 2406 | 2453 | 98.1% | +| ov_SC06_015 | 2398 | 1746 | 0 | 2398 | 2421 | 99.0% | +| ov_SC06_016 | 2440 | 1746 | 0 | 2442 | 2549 | 95.8% | +| ov_SC06_018 | 2466 | 1748 | 0 | 2473 | 2665 | 92.8% | +| ov_SC06_020 | 2427 | 1748 | 0 | 2428 | 2518 | 96.4% | +| ov_SC06_022 | 2453 | 1746 | 0 | 2461 | 2642 | 93.1% | +| ov_SC06_024 | 2472 | 1746 | 0 | 2478 | 2667 | 92.9% | +| ov_SC06_025 | 2441 | 1746 | 0 | 2446 | 2572 | 95.1% | +| ov_SC06_027 | 2381 | 1746 | 0 | 2382 | 2408 | 98.9% | +| ov_SC06_029 | 2462 | 1746 | 0 | 2474 | 2662 | 92.9% | +| ov_SC06_030 | 2401 | 1746 | 0 | 2401 | 2456 | 97.8% | +| ov_SC06_032 | 2459 | 1747 | 0 | 2466 | 2658 | 92.8% | +| ov_SC06_033 | 2458 | 1747 | 0 | 2465 | 2631 | 93.7% | +| ov_SC07_000 | 2421 | 1750 | 0 | 2423 | 2521 | 96.1% | +| ov_SC07_001 | 2393 | 1746 | 0 | 2395 | 2454 | 97.6% | +| ov_SC07_002 | 2446 | 1746 | 0 | 2450 | 2579 | 95.0% | +| ov_SC07_006 | 2305 | 1571 | 0 | 2385 | 2456 | 97.1% | +| ov_SC07_007 | 2323 | 1603 | 0 | 2407 | 2613 | 92.1% | +| ov_SC07_008 | 2375 | 1746 | 0 | 2375 | 2386 | 99.5% | +| ov_SC07_009 | 2387 | 1746 | 0 | 2389 | 2430 | 98.3% | +| ov_SC07_010 | 2304 | 1624 | 0 | 2387 | 2524 | 94.6% | +| ov_SC07_011 | 2324 | 1602 | 0 | 2404 | 2449 | 98.2% | diff --git a/phase-ends/CURRENT_PHASE.md b/phase-ends/CURRENT_PHASE.md index f8c40fa0c..b78d97af5 100644 --- a/phase-ends/CURRENT_PHASE.md +++ b/phase-ends/CURRENT_PHASE.md @@ -735,6 +735,24 @@ impossible. Both halves resolved against the bytes: `dedup_extend` should refuse-and-name the class per R32. And `func_80149954` x1, blocked behind `func_80147364`'s u16 params. +**`func_8012A598` banked x138 (3,288 ins) — and it took TWO fixes, either alone insufficient.** +The tool skipped it as `missing file-scope extern (CARRY-FIXABLE): D_801151D4, D_80126DB8_a, +D_80127504`. +1. **TOOL (R33):** `find_site`'s preamble backscan had the SESSION-18 fix for blank / `//` / + SINGLE-LINE `/* … */` lines, but a **MULTI-LINE block comment** still halted it — its middle + lines start with `*` and its last line ends `*/` without starting `/*`. The §134 + multi-line-blindness class, which S6b already fixed three times in `family_remap`. Replaced the + line-syntax test with a decision on **`cdecl._mask`** (the project's ONE masking oracle) — it + subsumes every comment form and cannot be fooled by a `/*` inside a string — plus an R32 + assertion on the length-preservation invariant it rests on. Strictly monotone: it can only carry + MORE preamble, and dedup_propagate is a byte-gate feeder (a bug here can fail to bank, never + falsely bank). +2. **EXEMPLAR:** the body also declared a draft-local `struct BigCopy164` tag, which the tool + refuses by design (two macros defining one tag redefine it in a TU). The shared + `struct BigCopy` (engine_types.h L312) is the identical layout and is **already used this exact + way at engine_core.h:16158**, so switching the exemplar to it is byte-neutral. Probed on ONE + member first: byte-identical `9052dc0e…`; then **138 overlays byte-identical**. + **PROPAGATE shape — the head is 5 classes, not 45.** `.run/s8_lag.json` re-split: EXTEND 13 classes / 45 stubs / 5,145 ins; PROPAGATE 46 / 783 / 20,861 — but **5 classes carry 18,545 ins (89%)** and the other 41 carry 2,316. Ranked: `func_80147364` 30x137=4,110 · `func_8012f274` 29x137=3,973 · diff --git a/src/ov_SC01_000/ov_SC01_000.c b/src/ov_SC01_000/ov_SC01_000.c index f2c99d896..c6302d951 100644 --- a/src/ov_SC01_000/ov_SC01_000.c +++ b/src/ov_SC01_000/ov_SC01_000.c @@ -796,7 +796,7 @@ DEFINE_func_8012A4BC() /* dedup: shared engine-core @0x8012A4BC (src/shared) */ DEFINE_func_8012A568() /* dedup: shared engine-core @0x8012A568 (src/shared) */ -INCLUDE_ASM("asm/ov_SC01_000/nonmatchings/ov_SC01_000", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC01_001/ov_SC01_001.c b/src/ov_SC01_001/ov_SC01_001.c index 2c01a9609..1b5d0fc83 100644 --- a/src/ov_SC01_001/ov_SC01_001.c +++ b/src/ov_SC01_001/ov_SC01_001.c @@ -798,7 +798,7 @@ DEFINE_func_8012A4BC() /* dedup: shared engine-core @0x8012A4BC (src/shared) */ DEFINE_func_8012A568() /* dedup: shared engine-core @0x8012A568 (src/shared) */ -INCLUDE_ASM("asm/ov_SC01_001/nonmatchings/ov_SC01_001", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC01_004/ov_SC01_004.c b/src/ov_SC01_004/ov_SC01_004.c index 2d4a2c8d7..e59869a03 100644 --- a/src/ov_SC01_004/ov_SC01_004.c +++ b/src/ov_SC01_004/ov_SC01_004.c @@ -804,7 +804,7 @@ extern void func_8012A598(void *a0); } -INCLUDE_ASM("asm/ov_SC01_004/nonmatchings/ov_SC01_004", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC01_005/ov_SC01_005.c b/src/ov_SC01_005/ov_SC01_005.c index 6674e2541..f267f59f2 100644 --- a/src/ov_SC01_005/ov_SC01_005.c +++ b/src/ov_SC01_005/ov_SC01_005.c @@ -799,7 +799,7 @@ DEFINE_func_8012A4BC() /* dedup: shared engine-core @0x8012A4BC (src/shared) */ DEFINE_func_8012A568() /* dedup: shared engine-core @0x8012A568 (src/shared) */ -INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC01_006/ov_SC01_006.c b/src/ov_SC01_006/ov_SC01_006.c index cbb3d9a71..d71550eb9 100644 --- a/src/ov_SC01_006/ov_SC01_006.c +++ b/src/ov_SC01_006/ov_SC01_006.c @@ -799,7 +799,7 @@ DEFINE_func_8012A4BC() /* dedup: shared engine-core @0x8012A4BC (src/shared) */ DEFINE_func_8012A568() /* dedup: shared engine-core @0x8012A568 (src/shared) */ -INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC01_008/ov_SC01_008.c b/src/ov_SC01_008/ov_SC01_008.c index 8f58a2d01..db67b45ce 100644 --- a/src/ov_SC01_008/ov_SC01_008.c +++ b/src/ov_SC01_008/ov_SC01_008.c @@ -804,7 +804,7 @@ extern void func_8012A598(void *a0); } -INCLUDE_ASM("asm/ov_SC01_008/nonmatchings/ov_SC01_008", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC01_009/ov_SC01_009.c b/src/ov_SC01_009/ov_SC01_009.c index 33f2013b3..4a5e4d2ad 100644 --- a/src/ov_SC01_009/ov_SC01_009.c +++ b/src/ov_SC01_009/ov_SC01_009.c @@ -804,7 +804,7 @@ extern void func_8012A598(void *a0); } -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC01_074/ov_SC01_074.c b/src/ov_SC01_074/ov_SC01_074.c index eb4fc02a7..6128f2675 100644 --- a/src/ov_SC01_074/ov_SC01_074.c +++ b/src/ov_SC01_074/ov_SC01_074.c @@ -804,7 +804,7 @@ extern void func_8012A598(void *a0); } -INCLUDE_ASM("asm/ov_SC01_074/nonmatchings/ov_SC01_074", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC01_077/ov_SC01_077_a.c b/src/ov_SC01_077/ov_SC01_077_a.c index 1568cbe9a..fe8f6a006 100644 --- a/src/ov_SC01_077/ov_SC01_077_a.c +++ b/src/ov_SC01_077/ov_SC01_077_a.c @@ -897,21 +897,12 @@ DEFINE_func_8012A568() /* dedup: shared engine-core @0x8012A568 (src/shared) */ * `struct BigCopy` when this body is spliced into the real TU (which already includes * engine_core.h -> engine_types.h and declares `extern struct BigCopy D_80126DB8;`). */ -struct BigCopy164 { s32 words[41]; }; - -extern s32 D_801151D4; /* canonical (10 siblings): scalar s32 — cast at use */ -extern struct BigCopy164 D_80126DB8_a __asm__("D_80126DB8"); -extern u8 D_80127504; - -/* §73 PARAMS axis (T0, draft-only): the fleet canon is - * `extern void func_8012A598(void *a0);` (src/shared/engine_core.h L199). Keep the - * canonical param in the signature — the target never reads $a0, so the unused arg - * is byte-neutral and no fleet edit (R22) is needed. */ -void func_8012A598(void *a0) -{ - D_80126DB8_a = *(struct BigCopy164 *)D_801151D4; - D_80127504 = 0x30; -} +/* S11: was a draft-local `struct BigCopy164` tag + an asm-label alias, which made this body + * UNEXTRACTABLE (dedup_propagate refuses any body declaring an inline named struct, since two + * macros defining the same tag would redefine it in one TU). The SHARED `struct BigCopy` + * (src/shared/engine_types.h L312) is the identical layout and is already used this exact way at + * engine_core.h:16158, so using it is byte-neutral and lets the fn propagate x137. */ +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC01_080/ov_SC01_080.c b/src/ov_SC01_080/ov_SC01_080.c index 0ee686dbb..f0a3ccd26 100644 --- a/src/ov_SC01_080/ov_SC01_080.c +++ b/src/ov_SC01_080/ov_SC01_080.c @@ -804,7 +804,7 @@ extern void func_8012A598(void *a0); } -INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC01_084/ov_SC01_084.c b/src/ov_SC01_084/ov_SC01_084.c index 35f50e013..1c5c616e1 100644 --- a/src/ov_SC01_084/ov_SC01_084.c +++ b/src/ov_SC01_084/ov_SC01_084.c @@ -804,7 +804,7 @@ extern void func_8012A598(void *a0); } -INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC02_000/ov_SC02_000.c b/src/ov_SC02_000/ov_SC02_000.c index 020c22df1..b6605f539 100644 --- a/src/ov_SC02_000/ov_SC02_000.c +++ b/src/ov_SC02_000/ov_SC02_000.c @@ -798,7 +798,7 @@ DEFINE_func_8012A4BC() /* dedup: shared engine-core @0x8012A4BC (src/shared) */ DEFINE_func_8012A568() /* dedup: shared engine-core @0x8012A568 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC02_003/ov_SC02_003.c b/src/ov_SC02_003/ov_SC02_003.c index 4cd277839..21411ecad 100644 --- a/src/ov_SC02_003/ov_SC02_003.c +++ b/src/ov_SC02_003/ov_SC02_003.c @@ -798,7 +798,7 @@ DEFINE_func_8012A4BC() /* dedup: shared engine-core @0x8012A4BC (src/shared) */ DEFINE_func_8012A568() /* dedup: shared engine-core @0x8012A568 (src/shared) */ -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC02_004/ov_SC02_004.c b/src/ov_SC02_004/ov_SC02_004.c index 9b94fa289..ceb143237 100644 --- a/src/ov_SC02_004/ov_SC02_004.c +++ b/src/ov_SC02_004/ov_SC02_004.c @@ -804,7 +804,7 @@ extern void func_8012A598(void *a0); } -INCLUDE_ASM("asm/ov_SC02_004/nonmatchings/ov_SC02_004", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC02_005/ov_SC02_005.c b/src/ov_SC02_005/ov_SC02_005.c index 5c8985be2..2f55b90a9 100644 --- a/src/ov_SC02_005/ov_SC02_005.c +++ b/src/ov_SC02_005/ov_SC02_005.c @@ -804,7 +804,7 @@ extern void func_8012A598(void *a0); } -INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC02_011/ov_SC02_011.c b/src/ov_SC02_011/ov_SC02_011.c index 9ed24011c..bf465e51c 100644 --- a/src/ov_SC02_011/ov_SC02_011.c +++ b/src/ov_SC02_011/ov_SC02_011.c @@ -804,7 +804,7 @@ extern void func_8012A598(void *a0); } -INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC02_015/ov_SC02_015.c b/src/ov_SC02_015/ov_SC02_015.c index c9b68f900..fda61cde6 100644 --- a/src/ov_SC02_015/ov_SC02_015.c +++ b/src/ov_SC02_015/ov_SC02_015.c @@ -804,7 +804,7 @@ extern void func_8012A598(void *a0); } -INCLUDE_ASM("asm/ov_SC02_015/nonmatchings/ov_SC02_015", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC02_016/ov_SC02_016.c b/src/ov_SC02_016/ov_SC02_016.c index 2c469cf40..09aae4806 100644 --- a/src/ov_SC02_016/ov_SC02_016.c +++ b/src/ov_SC02_016/ov_SC02_016.c @@ -804,7 +804,7 @@ extern void func_8012A598(void *a0); } -INCLUDE_ASM("asm/ov_SC02_016/nonmatchings/ov_SC02_016", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC02_017/ov_SC02_017.c b/src/ov_SC02_017/ov_SC02_017.c index d1bcad9aa..8a1d39587 100644 --- a/src/ov_SC02_017/ov_SC02_017.c +++ b/src/ov_SC02_017/ov_SC02_017.c @@ -804,7 +804,7 @@ extern void func_8012A598(void *a0); } -INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC02_021/ov_SC02_021.c b/src/ov_SC02_021/ov_SC02_021.c index 406119d56..4bdf149b8 100644 --- a/src/ov_SC02_021/ov_SC02_021.c +++ b/src/ov_SC02_021/ov_SC02_021.c @@ -804,7 +804,7 @@ extern void func_8012A598(void *a0); } -INCLUDE_ASM("asm/ov_SC02_021/nonmatchings/ov_SC02_021", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC02_026/ov_SC02_026.c b/src/ov_SC02_026/ov_SC02_026.c index 190d12846..16b7ac21b 100644 --- a/src/ov_SC02_026/ov_SC02_026.c +++ b/src/ov_SC02_026/ov_SC02_026.c @@ -804,7 +804,7 @@ extern void func_8012A598(void *a0); } -INCLUDE_ASM("asm/ov_SC02_026/nonmatchings/ov_SC02_026", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC02_027/ov_SC02_027.c b/src/ov_SC02_027/ov_SC02_027.c index 2ff870dfc..cf5fe549b 100644 --- a/src/ov_SC02_027/ov_SC02_027.c +++ b/src/ov_SC02_027/ov_SC02_027.c @@ -804,7 +804,7 @@ extern void func_8012A598(void *a0); } -INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC02_028/ov_SC02_028.c b/src/ov_SC02_028/ov_SC02_028.c index 0d254c346..5858ba6ae 100644 --- a/src/ov_SC02_028/ov_SC02_028.c +++ b/src/ov_SC02_028/ov_SC02_028.c @@ -804,7 +804,7 @@ extern void func_8012A598(void *a0); } -INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC02_031/ov_SC02_031.c b/src/ov_SC02_031/ov_SC02_031.c index d3a86cde8..239fc9e4d 100644 --- a/src/ov_SC02_031/ov_SC02_031.c +++ b/src/ov_SC02_031/ov_SC02_031.c @@ -804,7 +804,7 @@ extern void func_8012A598(void *a0); } -INCLUDE_ASM("asm/ov_SC02_031/nonmatchings/ov_SC02_031", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC02_035/ov_SC02_035.c b/src/ov_SC02_035/ov_SC02_035.c index a188dfe91..e3c582b2d 100644 --- a/src/ov_SC02_035/ov_SC02_035.c +++ b/src/ov_SC02_035/ov_SC02_035.c @@ -804,7 +804,7 @@ extern void func_8012A598(void *a0); } -INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC02_039/ov_SC02_039.c b/src/ov_SC02_039/ov_SC02_039.c index 947c67efd..983365dc4 100644 --- a/src/ov_SC02_039/ov_SC02_039.c +++ b/src/ov_SC02_039/ov_SC02_039.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC02_039/nonmatchings/ov_SC02_039", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC02_041/ov_SC02_041.c b/src/ov_SC02_041/ov_SC02_041.c index c9f0f5a93..2caf1af86 100644 --- a/src/ov_SC02_041/ov_SC02_041.c +++ b/src/ov_SC02_041/ov_SC02_041.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC02_041/nonmatchings/ov_SC02_041", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_001/ov_SC03_001.c b/src/ov_SC03_001/ov_SC03_001.c index 03a3d2e82..874fa2f7e 100644 --- a/src/ov_SC03_001/ov_SC03_001.c +++ b/src/ov_SC03_001/ov_SC03_001.c @@ -798,7 +798,7 @@ DEFINE_func_8012A4BC() /* dedup: shared engine-core @0x8012A4BC (src/shared) */ DEFINE_func_8012A568() /* dedup: shared engine-core @0x8012A568 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_002/ov_SC03_002.c b/src/ov_SC03_002/ov_SC03_002.c index ece2e2f81..be1f29e54 100644 --- a/src/ov_SC03_002/ov_SC03_002.c +++ b/src/ov_SC03_002/ov_SC03_002.c @@ -798,7 +798,7 @@ DEFINE_func_8012A4BC() /* dedup: shared engine-core @0x8012A4BC (src/shared) */ DEFINE_func_8012A568() /* dedup: shared engine-core @0x8012A568 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_003/ov_SC03_003.c b/src/ov_SC03_003/ov_SC03_003.c index 2e3b8444f..b1a80ed22 100644 --- a/src/ov_SC03_003/ov_SC03_003.c +++ b/src/ov_SC03_003/ov_SC03_003.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_003/nonmatchings/ov_SC03_003", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_006/ov_SC03_006.c b/src/ov_SC03_006/ov_SC03_006.c index e3aeae279..0651a9cd1 100644 --- a/src/ov_SC03_006/ov_SC03_006.c +++ b/src/ov_SC03_006/ov_SC03_006.c @@ -798,7 +798,7 @@ DEFINE_func_8012A4BC() /* dedup: shared engine-core @0x8012A4BC (src/shared) */ DEFINE_func_8012A568() /* dedup: shared engine-core @0x8012A568 (src/shared) */ -INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_007/ov_SC03_007.c b/src/ov_SC03_007/ov_SC03_007.c index adcbe83da..7b44e37c2 100644 --- a/src/ov_SC03_007/ov_SC03_007.c +++ b/src/ov_SC03_007/ov_SC03_007.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_010/ov_SC03_010.c b/src/ov_SC03_010/ov_SC03_010.c index e7203c2ae..aee19f50b 100644 --- a/src/ov_SC03_010/ov_SC03_010.c +++ b/src/ov_SC03_010/ov_SC03_010.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_010/nonmatchings/ov_SC03_010", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_011/ov_SC03_011.c b/src/ov_SC03_011/ov_SC03_011.c index c50bd04e2..d048a8ef4 100644 --- a/src/ov_SC03_011/ov_SC03_011.c +++ b/src/ov_SC03_011/ov_SC03_011.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_012/ov_SC03_012.c b/src/ov_SC03_012/ov_SC03_012.c index 8679a5543..22708af4d 100644 --- a/src/ov_SC03_012/ov_SC03_012.c +++ b/src/ov_SC03_012/ov_SC03_012.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_012/nonmatchings/ov_SC03_012", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_013/ov_SC03_013.c b/src/ov_SC03_013/ov_SC03_013.c index b4142df20..2925aa6cb 100644 --- a/src/ov_SC03_013/ov_SC03_013.c +++ b/src/ov_SC03_013/ov_SC03_013.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_013/nonmatchings/ov_SC03_013", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_014/ov_SC03_014.c b/src/ov_SC03_014/ov_SC03_014.c index fa5e33d89..474764948 100644 --- a/src/ov_SC03_014/ov_SC03_014.c +++ b/src/ov_SC03_014/ov_SC03_014.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_015/ov_SC03_015.c b/src/ov_SC03_015/ov_SC03_015.c index b47375d28..41ce2001c 100644 --- a/src/ov_SC03_015/ov_SC03_015.c +++ b/src/ov_SC03_015/ov_SC03_015.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_023/ov_SC03_023.c b/src/ov_SC03_023/ov_SC03_023.c index 984000a70..575e4c6ed 100644 --- a/src/ov_SC03_023/ov_SC03_023.c +++ b/src/ov_SC03_023/ov_SC03_023.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_024/ov_SC03_024.c b/src/ov_SC03_024/ov_SC03_024.c index 2c498c215..21cf37372 100644 --- a/src/ov_SC03_024/ov_SC03_024.c +++ b/src/ov_SC03_024/ov_SC03_024.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_028/ov_SC03_028.c b/src/ov_SC03_028/ov_SC03_028.c index e2ea0ab69..48b224bc0 100644 --- a/src/ov_SC03_028/ov_SC03_028.c +++ b/src/ov_SC03_028/ov_SC03_028.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_029/ov_SC03_029.c b/src/ov_SC03_029/ov_SC03_029.c index b1b06f8e9..d4f1aa018 100644 --- a/src/ov_SC03_029/ov_SC03_029.c +++ b/src/ov_SC03_029/ov_SC03_029.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_030/ov_SC03_030.c b/src/ov_SC03_030/ov_SC03_030.c index a7dd5823c..5e5786fae 100644 --- a/src/ov_SC03_030/ov_SC03_030.c +++ b/src/ov_SC03_030/ov_SC03_030.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_030/nonmatchings/ov_SC03_030", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_031/ov_SC03_031.c b/src/ov_SC03_031/ov_SC03_031.c index 40b7b3118..4f0d4aa49 100644 --- a/src/ov_SC03_031/ov_SC03_031.c +++ b/src/ov_SC03_031/ov_SC03_031.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_031/nonmatchings/ov_SC03_031", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_089/ov_SC03_089.c b/src/ov_SC03_089/ov_SC03_089.c index 540e7d362..f3ab8257b 100644 --- a/src/ov_SC03_089/ov_SC03_089.c +++ b/src/ov_SC03_089/ov_SC03_089.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_090/ov_SC03_090.c b/src/ov_SC03_090/ov_SC03_090.c index 1d244180d..7a05f99f8 100644 --- a/src/ov_SC03_090/ov_SC03_090.c +++ b/src/ov_SC03_090/ov_SC03_090.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_091/ov_SC03_091.c b/src/ov_SC03_091/ov_SC03_091.c index 2810d2abc..ae2000056 100644 --- a/src/ov_SC03_091/ov_SC03_091.c +++ b/src/ov_SC03_091/ov_SC03_091.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_092/ov_SC03_092.c b/src/ov_SC03_092/ov_SC03_092.c index 9ae3c2dc9..3dbbd6aaf 100644 --- a/src/ov_SC03_092/ov_SC03_092.c +++ b/src/ov_SC03_092/ov_SC03_092.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_093/ov_SC03_093.c b/src/ov_SC03_093/ov_SC03_093.c index 357a71883..74da318ad 100644 --- a/src/ov_SC03_093/ov_SC03_093.c +++ b/src/ov_SC03_093/ov_SC03_093.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_093/nonmatchings/ov_SC03_093", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_094/ov_SC03_094.c b/src/ov_SC03_094/ov_SC03_094.c index 69d94fc97..0ac1d42ca 100644 --- a/src/ov_SC03_094/ov_SC03_094.c +++ b/src/ov_SC03_094/ov_SC03_094.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_094/nonmatchings/ov_SC03_094", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_095/ov_SC03_095.c b/src/ov_SC03_095/ov_SC03_095.c index 4cd388716..a23e0d1a8 100644 --- a/src/ov_SC03_095/ov_SC03_095.c +++ b/src/ov_SC03_095/ov_SC03_095.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_095/nonmatchings/ov_SC03_095", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_096/ov_SC03_096.c b/src/ov_SC03_096/ov_SC03_096.c index 37637fe6e..f6ea381c7 100644 --- a/src/ov_SC03_096/ov_SC03_096.c +++ b/src/ov_SC03_096/ov_SC03_096.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_096/nonmatchings/ov_SC03_096", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_097/ov_SC03_097.c b/src/ov_SC03_097/ov_SC03_097.c index 3afdc6104..5a2b0e5c7 100644 --- a/src/ov_SC03_097/ov_SC03_097.c +++ b/src/ov_SC03_097/ov_SC03_097.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_097/nonmatchings/ov_SC03_097", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_098/ov_SC03_098.c b/src/ov_SC03_098/ov_SC03_098.c index 47a020ff4..89b3c9630 100644 --- a/src/ov_SC03_098/ov_SC03_098.c +++ b/src/ov_SC03_098/ov_SC03_098.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_098/nonmatchings/ov_SC03_098", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_099/ov_SC03_099.c b/src/ov_SC03_099/ov_SC03_099.c index e6b7dd172..e31282e04 100644 --- a/src/ov_SC03_099/ov_SC03_099.c +++ b/src/ov_SC03_099/ov_SC03_099.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_099/nonmatchings/ov_SC03_099", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_100/ov_SC03_100.c b/src/ov_SC03_100/ov_SC03_100.c index 4939b2189..f0d049068 100644 --- a/src/ov_SC03_100/ov_SC03_100.c +++ b/src/ov_SC03_100/ov_SC03_100.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_100/nonmatchings/ov_SC03_100", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_101/ov_SC03_101.c b/src/ov_SC03_101/ov_SC03_101.c index a54273a76..9806598c3 100644 --- a/src/ov_SC03_101/ov_SC03_101.c +++ b/src/ov_SC03_101/ov_SC03_101.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_101/nonmatchings/ov_SC03_101", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_102/ov_SC03_102.c b/src/ov_SC03_102/ov_SC03_102.c index 99048a4dd..1f449f959 100644 --- a/src/ov_SC03_102/ov_SC03_102.c +++ b/src/ov_SC03_102/ov_SC03_102.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_102/nonmatchings/ov_SC03_102", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_103/ov_SC03_103.c b/src/ov_SC03_103/ov_SC03_103.c index f223cd72b..84625a071 100644 --- a/src/ov_SC03_103/ov_SC03_103.c +++ b/src/ov_SC03_103/ov_SC03_103.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_103/nonmatchings/ov_SC03_103", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_104/ov_SC03_104.c b/src/ov_SC03_104/ov_SC03_104.c index 1d6758b7a..a0e43109c 100644 --- a/src/ov_SC03_104/ov_SC03_104.c +++ b/src/ov_SC03_104/ov_SC03_104.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_105/ov_SC03_105.c b/src/ov_SC03_105/ov_SC03_105.c index 3685998c0..60193c34f 100644 --- a/src/ov_SC03_105/ov_SC03_105.c +++ b/src/ov_SC03_105/ov_SC03_105.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_108/ov_SC03_108.c b/src/ov_SC03_108/ov_SC03_108.c index 58a9c2e45..f74919a58 100644 --- a/src/ov_SC03_108/ov_SC03_108.c +++ b/src/ov_SC03_108/ov_SC03_108.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_108/nonmatchings/ov_SC03_108", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_109/ov_SC03_109.c b/src/ov_SC03_109/ov_SC03_109.c index 13829a381..94ff9717a 100644 --- a/src/ov_SC03_109/ov_SC03_109.c +++ b/src/ov_SC03_109/ov_SC03_109.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_109/nonmatchings/ov_SC03_109", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_110/ov_SC03_110.c b/src/ov_SC03_110/ov_SC03_110.c index 996f5dc0f..39eaf3c9e 100644 --- a/src/ov_SC03_110/ov_SC03_110.c +++ b/src/ov_SC03_110/ov_SC03_110.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_110/nonmatchings/ov_SC03_110", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_111/ov_SC03_111.c b/src/ov_SC03_111/ov_SC03_111.c index 6f7745e22..34931973c 100644 --- a/src/ov_SC03_111/ov_SC03_111.c +++ b/src/ov_SC03_111/ov_SC03_111.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_112/ov_SC03_112.c b/src/ov_SC03_112/ov_SC03_112.c index 74526dc21..c7a637091 100644 --- a/src/ov_SC03_112/ov_SC03_112.c +++ b/src/ov_SC03_112/ov_SC03_112.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_113/ov_SC03_113.c b/src/ov_SC03_113/ov_SC03_113.c index 6d8ecb28a..b87d13c81 100644 --- a/src/ov_SC03_113/ov_SC03_113.c +++ b/src/ov_SC03_113/ov_SC03_113.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_113/nonmatchings/ov_SC03_113", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_114/ov_SC03_114.c b/src/ov_SC03_114/ov_SC03_114.c index ad27ebf70..6f2c4953f 100644 --- a/src/ov_SC03_114/ov_SC03_114.c +++ b/src/ov_SC03_114/ov_SC03_114.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_114/nonmatchings/ov_SC03_114", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_115/ov_SC03_115.c b/src/ov_SC03_115/ov_SC03_115.c index 3ed79ac90..a29ce266c 100644 --- a/src/ov_SC03_115/ov_SC03_115.c +++ b/src/ov_SC03_115/ov_SC03_115.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_116/ov_SC03_116.c b/src/ov_SC03_116/ov_SC03_116.c index 258a41455..50aeec9e9 100644 --- a/src/ov_SC03_116/ov_SC03_116.c +++ b/src/ov_SC03_116/ov_SC03_116.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_116/nonmatchings/ov_SC03_116", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_117/ov_SC03_117.c b/src/ov_SC03_117/ov_SC03_117.c index 2a2112ed5..187442c3e 100644 --- a/src/ov_SC03_117/ov_SC03_117.c +++ b/src/ov_SC03_117/ov_SC03_117.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_118/ov_SC03_118.c b/src/ov_SC03_118/ov_SC03_118.c index bc8a247c1..7002a0e21 100644 --- a/src/ov_SC03_118/ov_SC03_118.c +++ b/src/ov_SC03_118/ov_SC03_118.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_119/ov_SC03_119.c b/src/ov_SC03_119/ov_SC03_119.c index 4ebd5c879..04bbf10f1 100644 --- a/src/ov_SC03_119/ov_SC03_119.c +++ b/src/ov_SC03_119/ov_SC03_119.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_121/ov_SC03_121.c b/src/ov_SC03_121/ov_SC03_121.c index 6f8be55eb..b9b5932a4 100644 --- a/src/ov_SC03_121/ov_SC03_121.c +++ b/src/ov_SC03_121/ov_SC03_121.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_121/nonmatchings/ov_SC03_121", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_124/ov_SC03_124.c b/src/ov_SC03_124/ov_SC03_124.c index e7cb01164..cf1fded69 100644 --- a/src/ov_SC03_124/ov_SC03_124.c +++ b/src/ov_SC03_124/ov_SC03_124.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_125/ov_SC03_125.c b/src/ov_SC03_125/ov_SC03_125.c index e2a5a57f3..e34e9f815 100644 --- a/src/ov_SC03_125/ov_SC03_125.c +++ b/src/ov_SC03_125/ov_SC03_125.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC03_126/ov_SC03_126.c b/src/ov_SC03_126/ov_SC03_126.c index 42003eb14..8d24c6554 100644 --- a/src/ov_SC03_126/ov_SC03_126.c +++ b/src/ov_SC03_126/ov_SC03_126.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC03_126/nonmatchings/ov_SC03_126", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC04_000/ov_SC04_000.c b/src/ov_SC04_000/ov_SC04_000.c index 30072f73a..7b6cea55f 100644 --- a/src/ov_SC04_000/ov_SC04_000.c +++ b/src/ov_SC04_000/ov_SC04_000.c @@ -798,7 +798,7 @@ DEFINE_func_8012A4BC() /* dedup: shared engine-core @0x8012A4BC (src/shared) */ DEFINE_func_8012A568() /* dedup: shared engine-core @0x8012A568 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC04_002/ov_SC04_002.c b/src/ov_SC04_002/ov_SC04_002.c index 7b2b9db4f..d1ce4a334 100644 --- a/src/ov_SC04_002/ov_SC04_002.c +++ b/src/ov_SC04_002/ov_SC04_002.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC04_003/ov_SC04_003.c b/src/ov_SC04_003/ov_SC04_003.c index 73bce80ba..ac96373c7 100644 --- a/src/ov_SC04_003/ov_SC04_003.c +++ b/src/ov_SC04_003/ov_SC04_003.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC04_003/nonmatchings/ov_SC04_003", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC04_004/ov_SC04_004.c b/src/ov_SC04_004/ov_SC04_004.c index d42156826..6910a7c5d 100644 --- a/src/ov_SC04_004/ov_SC04_004.c +++ b/src/ov_SC04_004/ov_SC04_004.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC04_005/ov_SC04_005.c b/src/ov_SC04_005/ov_SC04_005.c index ef2fd34d2..9f15ad761 100644 --- a/src/ov_SC04_005/ov_SC04_005.c +++ b/src/ov_SC04_005/ov_SC04_005.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC04_006/ov_SC04_006.c b/src/ov_SC04_006/ov_SC04_006.c index 9647a70f2..0889b1e8b 100644 --- a/src/ov_SC04_006/ov_SC04_006.c +++ b/src/ov_SC04_006/ov_SC04_006.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC04_006/nonmatchings/ov_SC04_006", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC04_007/ov_SC04_007.c b/src/ov_SC04_007/ov_SC04_007.c index 9b11bb090..cdb832673 100644 --- a/src/ov_SC04_007/ov_SC04_007.c +++ b/src/ov_SC04_007/ov_SC04_007.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC04_008/ov_SC04_008.c b/src/ov_SC04_008/ov_SC04_008.c index 2f9d5a60e..f7da34bbc 100644 --- a/src/ov_SC04_008/ov_SC04_008.c +++ b/src/ov_SC04_008/ov_SC04_008.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC04_008/nonmatchings/ov_SC04_008", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC04_009/ov_SC04_009.c b/src/ov_SC04_009/ov_SC04_009.c index 9e5a46a79..a92e4c980 100644 --- a/src/ov_SC04_009/ov_SC04_009.c +++ b/src/ov_SC04_009/ov_SC04_009.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC04_009/nonmatchings/ov_SC04_009", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC04_010/ov_SC04_010.c b/src/ov_SC04_010/ov_SC04_010.c index 9a5c2948d..c617190f3 100644 --- a/src/ov_SC04_010/ov_SC04_010.c +++ b/src/ov_SC04_010/ov_SC04_010.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC04_010/nonmatchings/ov_SC04_010", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC04_011/ov_SC04_011.c b/src/ov_SC04_011/ov_SC04_011.c index a2af41292..e7dcc247a 100644 --- a/src/ov_SC04_011/ov_SC04_011.c +++ b/src/ov_SC04_011/ov_SC04_011.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC04_012/ov_SC04_012.c b/src/ov_SC04_012/ov_SC04_012.c index aacb899fb..93455d3c5 100644 --- a/src/ov_SC04_012/ov_SC04_012.c +++ b/src/ov_SC04_012/ov_SC04_012.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC04_012/nonmatchings/ov_SC04_012", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC04_015/ov_SC04_015.c b/src/ov_SC04_015/ov_SC04_015.c index 86d95de59..c1d0d6808 100644 --- a/src/ov_SC04_015/ov_SC04_015.c +++ b/src/ov_SC04_015/ov_SC04_015.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC04_016/ov_SC04_016.c b/src/ov_SC04_016/ov_SC04_016.c index 048b4c67c..e77fb60f4 100644 --- a/src/ov_SC04_016/ov_SC04_016.c +++ b/src/ov_SC04_016/ov_SC04_016.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC04_016/nonmatchings/ov_SC04_016", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC04_018/ov_SC04_018.c b/src/ov_SC04_018/ov_SC04_018.c index 8d9c23ad3..0879841f5 100644 --- a/src/ov_SC04_018/ov_SC04_018.c +++ b/src/ov_SC04_018/ov_SC04_018.c @@ -798,7 +798,7 @@ DEFINE_func_8012A4BC() /* dedup: shared engine-core @0x8012A4BC (src/shared) */ DEFINE_func_8012A568() /* dedup: shared engine-core @0x8012A568 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC04_019/ov_SC04_019.c b/src/ov_SC04_019/ov_SC04_019.c index 5bd45bd13..6bd44b6dd 100644 --- a/src/ov_SC04_019/ov_SC04_019.c +++ b/src/ov_SC04_019/ov_SC04_019.c @@ -798,7 +798,7 @@ DEFINE_func_8012A4BC() /* dedup: shared engine-core @0x8012A4BC (src/shared) */ DEFINE_func_8012A568() /* dedup: shared engine-core @0x8012A568 (src/shared) */ -INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC04_020/ov_SC04_020.c b/src/ov_SC04_020/ov_SC04_020.c index 1f638281c..6280119df 100644 --- a/src/ov_SC04_020/ov_SC04_020.c +++ b/src/ov_SC04_020/ov_SC04_020.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC04_020/nonmatchings/ov_SC04_020", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC04_021/ov_SC04_021.c b/src/ov_SC04_021/ov_SC04_021.c index ddba561af..6a138f33f 100644 --- a/src/ov_SC04_021/ov_SC04_021.c +++ b/src/ov_SC04_021/ov_SC04_021.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC04_021/nonmatchings/ov_SC04_021", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC05_000/ov_SC05_000.c b/src/ov_SC05_000/ov_SC05_000.c index c477346ff..c7b9794d8 100644 --- a/src/ov_SC05_000/ov_SC05_000.c +++ b/src/ov_SC05_000/ov_SC05_000.c @@ -798,7 +798,7 @@ DEFINE_func_8012A4BC() /* dedup: shared engine-core @0x8012A4BC (src/shared) */ DEFINE_func_8012A568() /* dedup: shared engine-core @0x8012A568 (src/shared) */ -INCLUDE_ASM("asm/ov_SC05_000/nonmatchings/ov_SC05_000", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC05_001/ov_SC05_001.c b/src/ov_SC05_001/ov_SC05_001.c index a110cad85..cb4816677 100644 --- a/src/ov_SC05_001/ov_SC05_001.c +++ b/src/ov_SC05_001/ov_SC05_001.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC05_002/ov_SC05_002.c b/src/ov_SC05_002/ov_SC05_002.c index 228345b40..f4db6fcc8 100644 --- a/src/ov_SC05_002/ov_SC05_002.c +++ b/src/ov_SC05_002/ov_SC05_002.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC05_002/nonmatchings/ov_SC05_002", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC05_003/ov_SC05_003.c b/src/ov_SC05_003/ov_SC05_003.c index 52be814cf..8709a74d8 100644 --- a/src/ov_SC05_003/ov_SC05_003.c +++ b/src/ov_SC05_003/ov_SC05_003.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC05_003/nonmatchings/ov_SC05_003", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC05_004/ov_SC05_004.c b/src/ov_SC05_004/ov_SC05_004.c index 7fe0329f2..2855c1f45 100644 --- a/src/ov_SC05_004/ov_SC05_004.c +++ b/src/ov_SC05_004/ov_SC05_004.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC05_004/nonmatchings/ov_SC05_004", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC05_005/ov_SC05_005.c b/src/ov_SC05_005/ov_SC05_005.c index 70406a91c..1d5167001 100644 --- a/src/ov_SC05_005/ov_SC05_005.c +++ b/src/ov_SC05_005/ov_SC05_005.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC05_005/nonmatchings/ov_SC05_005", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC05_006/ov_SC05_006.c b/src/ov_SC05_006/ov_SC05_006.c index 899d64984..cb057a094 100644 --- a/src/ov_SC05_006/ov_SC05_006.c +++ b/src/ov_SC05_006/ov_SC05_006.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC05_006/nonmatchings/ov_SC05_006", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC05_007/ov_SC05_007.c b/src/ov_SC05_007/ov_SC05_007.c index 598b3588c..9c2cf5a53 100644 --- a/src/ov_SC05_007/ov_SC05_007.c +++ b/src/ov_SC05_007/ov_SC05_007.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC05_007/nonmatchings/ov_SC05_007", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC05_008/ov_SC05_008.c b/src/ov_SC05_008/ov_SC05_008.c index 8560c18f7..9aaac0597 100644 --- a/src/ov_SC05_008/ov_SC05_008.c +++ b/src/ov_SC05_008/ov_SC05_008.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC05_009/ov_SC05_009.c b/src/ov_SC05_009/ov_SC05_009.c index bd4ea55a6..8af43f16a 100644 --- a/src/ov_SC05_009/ov_SC05_009.c +++ b/src/ov_SC05_009/ov_SC05_009.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC05_009/nonmatchings/ov_SC05_009", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC05_010/ov_SC05_010.c b/src/ov_SC05_010/ov_SC05_010.c index 4c09c46dc..b46928736 100644 --- a/src/ov_SC05_010/ov_SC05_010.c +++ b/src/ov_SC05_010/ov_SC05_010.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC05_011/ov_SC05_011.c b/src/ov_SC05_011/ov_SC05_011.c index 5c41f1b13..5c356e5a3 100644 --- a/src/ov_SC05_011/ov_SC05_011.c +++ b/src/ov_SC05_011/ov_SC05_011.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC05_011/nonmatchings/ov_SC05_011", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC05_017/ov_SC05_017.c b/src/ov_SC05_017/ov_SC05_017.c index b3f704c24..f58f3698f 100644 --- a/src/ov_SC05_017/ov_SC05_017.c +++ b/src/ov_SC05_017/ov_SC05_017.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC05_018/ov_SC05_018.c b/src/ov_SC05_018/ov_SC05_018.c index 2ddff624a..9cccebe2f 100644 --- a/src/ov_SC05_018/ov_SC05_018.c +++ b/src/ov_SC05_018/ov_SC05_018.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC05_019/ov_SC05_019.c b/src/ov_SC05_019/ov_SC05_019.c index 7d1588f0b..830a143a1 100644 --- a/src/ov_SC05_019/ov_SC05_019.c +++ b/src/ov_SC05_019/ov_SC05_019.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC05_019/nonmatchings/ov_SC05_019", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC06_000/ov_SC06_000.c b/src/ov_SC06_000/ov_SC06_000.c index 03e49ac38..a0c555a7f 100644 --- a/src/ov_SC06_000/ov_SC06_000.c +++ b/src/ov_SC06_000/ov_SC06_000.c @@ -798,7 +798,7 @@ DEFINE_func_8012A4BC() /* dedup: shared engine-core @0x8012A4BC (src/shared) */ DEFINE_func_8012A568() /* dedup: shared engine-core @0x8012A568 (src/shared) */ -INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC06_006/ov_SC06_006.c b/src/ov_SC06_006/ov_SC06_006.c index 5eb55086e..1e2d11371 100644 --- a/src/ov_SC06_006/ov_SC06_006.c +++ b/src/ov_SC06_006/ov_SC06_006.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC06_008/ov_SC06_008.c b/src/ov_SC06_008/ov_SC06_008.c index e4ba80f40..581f9bcd0 100644 --- a/src/ov_SC06_008/ov_SC06_008.c +++ b/src/ov_SC06_008/ov_SC06_008.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC06_008/nonmatchings/ov_SC06_008", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC06_010/ov_SC06_010.c b/src/ov_SC06_010/ov_SC06_010.c index 0ce33e1a3..9f76e448b 100644 --- a/src/ov_SC06_010/ov_SC06_010.c +++ b/src/ov_SC06_010/ov_SC06_010.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC06_011/ov_SC06_011.c b/src/ov_SC06_011/ov_SC06_011.c index 2f820d91a..659606873 100644 --- a/src/ov_SC06_011/ov_SC06_011.c +++ b/src/ov_SC06_011/ov_SC06_011.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC06_013/ov_SC06_013.c b/src/ov_SC06_013/ov_SC06_013.c index 573545097..ad0be708c 100644 --- a/src/ov_SC06_013/ov_SC06_013.c +++ b/src/ov_SC06_013/ov_SC06_013.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC06_013/nonmatchings/ov_SC06_013", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC06_014/ov_SC06_014.c b/src/ov_SC06_014/ov_SC06_014.c index dd24e93fb..b4d60adfb 100644 --- a/src/ov_SC06_014/ov_SC06_014.c +++ b/src/ov_SC06_014/ov_SC06_014.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC06_014/nonmatchings/ov_SC06_014", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC06_015/ov_SC06_015.c b/src/ov_SC06_015/ov_SC06_015.c index 4012007ad..87971d0f3 100644 --- a/src/ov_SC06_015/ov_SC06_015.c +++ b/src/ov_SC06_015/ov_SC06_015.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC06_015/nonmatchings/ov_SC06_015", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC06_016/ov_SC06_016.c b/src/ov_SC06_016/ov_SC06_016.c index 49c54f585..8aaaefe4a 100644 --- a/src/ov_SC06_016/ov_SC06_016.c +++ b/src/ov_SC06_016/ov_SC06_016.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC06_018/ov_SC06_018.c b/src/ov_SC06_018/ov_SC06_018.c index 3ebcfe448..314c3c951 100644 --- a/src/ov_SC06_018/ov_SC06_018.c +++ b/src/ov_SC06_018/ov_SC06_018.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC06_020/ov_SC06_020.c b/src/ov_SC06_020/ov_SC06_020.c index 68f0878e6..5d80b848d 100644 --- a/src/ov_SC06_020/ov_SC06_020.c +++ b/src/ov_SC06_020/ov_SC06_020.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC06_020/nonmatchings/ov_SC06_020", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC06_022/ov_SC06_022.c b/src/ov_SC06_022/ov_SC06_022.c index 1a71ba9b5..c382e9a45 100644 --- a/src/ov_SC06_022/ov_SC06_022.c +++ b/src/ov_SC06_022/ov_SC06_022.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC06_024/ov_SC06_024.c b/src/ov_SC06_024/ov_SC06_024.c index 185b0ab7a..395c18c5d 100644 --- a/src/ov_SC06_024/ov_SC06_024.c +++ b/src/ov_SC06_024/ov_SC06_024.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC06_025/ov_SC06_025.c b/src/ov_SC06_025/ov_SC06_025.c index 662e89eb7..a48072a22 100644 --- a/src/ov_SC06_025/ov_SC06_025.c +++ b/src/ov_SC06_025/ov_SC06_025.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC06_025/nonmatchings/ov_SC06_025", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC06_027/ov_SC06_027.c b/src/ov_SC06_027/ov_SC06_027.c index 82b1e203f..97400eff1 100644 --- a/src/ov_SC06_027/ov_SC06_027.c +++ b/src/ov_SC06_027/ov_SC06_027.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC06_027/nonmatchings/ov_SC06_027", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC06_029/ov_SC06_029.c b/src/ov_SC06_029/ov_SC06_029.c index bd6d133b2..70abc473d 100644 --- a/src/ov_SC06_029/ov_SC06_029.c +++ b/src/ov_SC06_029/ov_SC06_029.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC06_030/ov_SC06_030.c b/src/ov_SC06_030/ov_SC06_030.c index 928018bad..b5d824035 100644 --- a/src/ov_SC06_030/ov_SC06_030.c +++ b/src/ov_SC06_030/ov_SC06_030.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC06_030/nonmatchings/ov_SC06_030", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC06_032/ov_SC06_032.c b/src/ov_SC06_032/ov_SC06_032.c index 4c7e2251b..93fb1bb7c 100644 --- a/src/ov_SC06_032/ov_SC06_032.c +++ b/src/ov_SC06_032/ov_SC06_032.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC06_032/nonmatchings/ov_SC06_032", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC06_033/ov_SC06_033.c b/src/ov_SC06_033/ov_SC06_033.c index daa4cbb35..26c262fe3 100644 --- a/src/ov_SC06_033/ov_SC06_033.c +++ b/src/ov_SC06_033/ov_SC06_033.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC07_000/ov_SC07_000.c b/src/ov_SC07_000/ov_SC07_000.c index d5108bd91..cbadccc72 100644 --- a/src/ov_SC07_000/ov_SC07_000.c +++ b/src/ov_SC07_000/ov_SC07_000.c @@ -798,7 +798,7 @@ DEFINE_func_8012A4BC() /* dedup: shared engine-core @0x8012A4BC (src/shared) */ DEFINE_func_8012A568() /* dedup: shared engine-core @0x8012A568 (src/shared) */ -INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC07_001/ov_SC07_001.c b/src/ov_SC07_001/ov_SC07_001.c index fbf02b3f5..677f23e97 100644 --- a/src/ov_SC07_001/ov_SC07_001.c +++ b/src/ov_SC07_001/ov_SC07_001.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC07_001/nonmatchings/ov_SC07_001", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC07_002/ov_SC07_002.c b/src/ov_SC07_002/ov_SC07_002.c index d8d839599..f199c9e5e 100644 --- a/src/ov_SC07_002/ov_SC07_002.c +++ b/src/ov_SC07_002/ov_SC07_002.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC07_006/ov_SC07_006.c b/src/ov_SC07_006/ov_SC07_006.c index d002046a2..e47eb4714 100644 --- a/src/ov_SC07_006/ov_SC07_006.c +++ b/src/ov_SC07_006/ov_SC07_006.c @@ -859,7 +859,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC07_006/nonmatchings/ov_SC07_006", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012a5f8 (src/shared) */ diff --git a/src/ov_SC07_007/ov_SC07_007.c b/src/ov_SC07_007/ov_SC07_007.c index 9f894a589..f96807c28 100644 --- a/src/ov_SC07_007/ov_SC07_007.c +++ b/src/ov_SC07_007/ov_SC07_007.c @@ -869,7 +869,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC07_007/nonmatchings/ov_SC07_007", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012a5f8 (src/shared) */ diff --git a/src/ov_SC07_008/ov_SC07_008.c b/src/ov_SC07_008/ov_SC07_008.c index b479da92d..ca8eeed95 100644 --- a/src/ov_SC07_008/ov_SC07_008.c +++ b/src/ov_SC07_008/ov_SC07_008.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC07_008/nonmatchings/ov_SC07_008", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC07_009/ov_SC07_009.c b/src/ov_SC07_009/ov_SC07_009.c index c35f382c1..2d05c428f 100644 --- a/src/ov_SC07_009/ov_SC07_009.c +++ b/src/ov_SC07_009/ov_SC07_009.c @@ -803,7 +803,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */ diff --git a/src/ov_SC07_010/ov_SC07_010.c b/src/ov_SC07_010/ov_SC07_010.c index 493cae176..6af75a4b1 100644 --- a/src/ov_SC07_010/ov_SC07_010.c +++ b/src/ov_SC07_010/ov_SC07_010.c @@ -869,7 +869,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012a5f8 (src/shared) */ diff --git a/src/ov_SC07_011/ov_SC07_011.c b/src/ov_SC07_011/ov_SC07_011.c index 545311272..4cc14ce04 100644 --- a/src/ov_SC07_011/ov_SC07_011.c +++ b/src/ov_SC07_011/ov_SC07_011.c @@ -869,7 +869,7 @@ void func_8012A568(void (*a0)(void)) { } -INCLUDE_ASM("asm/ov_SC07_011/nonmatchings/ov_SC07_011", func_8012A598); +DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */ DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012a5f8 (src/shared) */ diff --git a/src/shared/engine_core.h b/src/shared/engine_core.h index eeffbd95a..1d4cb07cd 100644 --- a/src/shared/engine_core.h +++ b/src/shared/engine_core.h @@ -30200,4 +30200,23 @@ func_80146A6C(0x56, arg0, M2C_FIELD(arg0, s16 *, 0x7C), M2C_FIELD(arg0, s16 *, 0x7E), (s32) M2C_FIELD(arg0, s16 *, 0x80), arg1, 0); \ } + +/* PROPAGATE-lane: func_8012A598 (2 statements, matched in ov_SC01_077_a, stub in 137 overlays). + dedup_propagate SKIPPED this as `missing file-scope extern (CARRY-FIXABLE)` — its preamble + backscan stops at a standalone comment line, so the three externs above the body were dropped + (the SESSION-18 class). Hand-authored here with the SHARED `struct BigCopy` (engine_types.h + L312) instead of the exemplar's draft-local `BigCopy164` tag + asm-label alias: the shared type + is identical (`s32 words[41]`) and already used this exact way at engine_core.h:16158, so no + local type travels and no alias is needed. The fleet canon decl is `void func_8012A598(void*)`, + which the definition matches — no self-axis conflict. */ +#define DEFINE_func_8012A598() \ + extern s32 D_801151D4; \ + extern struct BigCopy D_80126DB8; \ + extern u8 D_80127504; \ + void func_8012A598(void *a0) \ + { \ + D_80126DB8 = *(struct BigCopy *)D_801151D4; \ + D_80127504 = 0x30; \ + } + #endif diff --git a/tools/dedup_propagate.py b/tools/dedup_propagate.py index a7057c2e0..3a4aac46a 100644 --- a/tools/dedup_propagate.py +++ b/tools/dedup_propagate.py @@ -32,6 +32,9 @@ Options: --no-gate skip the per-overlay build gate (CI / batch re-gate later) """ import argparse, collections, json, pathlib, re, subprocess, sys +import os as _os +sys.path.insert(0, _os.path.dirname(_os.path.abspath(__file__))) +import cdecl # the comment/string masking oracle (Phase 26-A) — see _skippable below ROOT = pathlib.Path(__file__).resolve().parent.parent @@ -128,6 +131,11 @@ def find_site(text, ov, addr): kind 'macro' -> already a DEFINE_func_() instantiation (already propagated) None -> not present / matched in some other form.""" lines = text.splitlines() + # Comments blanked ONCE by the project's single masking oracle (R33). Length-preserving, so + # index i into mlines is index i into lines. This is what makes _skippable MULTI-LINE aware. + mlines = cdecl._mask(text).splitlines() + if len(mlines) != len(lines): # R32: the invariant this rests on, asserted not assumed + mlines = lines s = sym(addr) stub = stub_line(ov, addr) for i, l in enumerate(lines): @@ -219,19 +227,25 @@ def find_site(text, ov, addr): # (T6.4 had already fixed the TRAILING-comment case, `extern u8 D_x[]; /* note */`; this # is the standalone-LINE case it did not reach.) Skip comment-only lines exactly like # blanks, and drop them from the emitted body so make_macro never sees a `//`. - def _skippable(ln): - t = ln.strip() - return t == "" or t.startswith("//") or (t.startswith("/*") and t.endswith("*/")) + # S11: the SESSION-18 fix handled BLANK, `//`, and SINGLE-LINE `/* … */` lines, but a + # MULTI-LINE block comment still halted the walk — its middle lines start with `*` and + # its last line ends `*/` without starting `/*`. That is the §134 multi-line-blindness + # class (S6b fixed the same shape three times in family_remap). Deciding on the MASK + # instead of on line syntax subsumes every comment form in one oracle and cannot be + # fooled by a `/*` inside a string. Byte-measured: this is the whole CARRY-FIXABLE + # bucket for func_8012A598 (3,288 templatable ins that were being written off). + def _skippable(idx): + return mlines[idx].strip() == "" start = i k = i - 1 - while k >= 0 and _skippable(lines[k]): + while k >= 0 and _skippable(k): k -= 1 while k >= 0 and re.match(r"^\s*extern\b.*;\s*(/\*.*\*/\s*)?$", lines[k]): start = k k -= 1 - while k >= 0 and _skippable(lines[k]): + while k >= 0 and _skippable(k): k -= 1 - body = [ln for ln in lines[start:end + 1] if not _skippable(ln)] + body = [lines[j] for j in range(start, end + 1) if not _skippable(j)] return ("def", start, end, body) return None