feat(phase-30 S47-W1s): the reach-15 wave templates to 140 members (81% conversion)

The 10 exemplars from W1 flipped modal -> matched in the regenerated map, so family_sweep could
template them. 9 non-jr families swept: BANKED 140 member-matches / 32 failed across 50 overlays.
Derived net = report = 140 (no untracked carve files this time, so the two counts agree).
R22 clean-fleet: check-all 213 passed / 0 failed of 213.

Fleet 94.3 -> 94.4% instr / 88.2 -> 88.3% distinct / 96.22 -> 96.27% fn-count; stubs 13,713 -> 13,563.

WAVE ONE, FULLY ACCOUNTED: 10 agent cracks + 140 templated members = 150 functions for 1.36M
tokens (~9k tokens/function). Still owed from this wave: 73 member-slots in 2 NEAR families,
34 in 3 rate-limited targets, 9 in the jr family (routes to jtbl_family_bank, §53).

TWO MEASUREMENTS THAT CORRECT MY OWN FORECASTS (R14):
 1. Conversion was 81%, not the 58% I projected from this morning's propagation run. Today's
    plumbing fixes (alias-drop, cpp-derived TU type map, group-level draft-vs-draft aliasing) are
    paying off in a population they were not tuned for.
 2. The effective multiplier was 15x, not the 2-3.5x I predicted. That estimate used the MEAN
    family size across the whole zero-crack pool (3.55); this wave deliberately targeted the TOP of
    the reach distribution, where families run 10-28 members. Ordering waves by reach is what
    produced the difference — the mean was the wrong statistic for a wave that selects on the tail.

The regen step is load-bearing and now byte-proven twice: a fresh crack reads as `modal` until sigs
+ family_hseq are rebuilt, and family_sweep templates only from `matched`. Skipping it sweeps a
stale map and the multiplier evaporates (the Phase-26 finding, whose surviving qualifier is that
remap works BEHIND a fresh crack).
This commit is contained in:
Drew T
2026-08-11 11:41:13 -06:00
parent 49f50ec7d2
commit ff11fc556c
53 changed files with 4233 additions and 738 deletions
+523 -526
View File
File diff suppressed because it is too large Load Diff
+13 -13
View File
@@ -2,13 +2,13 @@
> Generated by `tools/family_hseq.py` from the 212 overlay sigs + per-overlay src stubs. Ranked by TEMPLATABLE byte-weight (PURE+IMM members × nins × 4). The byte-gate is the arbiter.
>
> **Scope: the 212 OVERLAYS only** (no main, no resident) · generated at HEAD `commit:1565` · stub set derived from `corpus.stubs` — the same oracle `progress.py` counts, so same-tree overlay totals agree by construction; compare digests only at the same HEAD.
> **Scope: the 212 OVERLAYS only** (no main, no resident) · generated at HEAD `commit:1567` · stub set derived from `corpus.stubs` — the same oracle `progress.py` counts, so same-tree overlay totals agree by construction; compare digests only at the same HEAD.
**Fleet (overlays):** 96.5% fn / 94.9% instr / 89.4% distinct-code matched. Unmatched: 12,679 instances / 685,757 ins (10,822 distinct classes).
**Fleet (overlays):** 96.5% fn / 94.9% instr / 89.4% distinct-code matched. Unmatched: 12,669 instances / 685,333 ins (10,812 distinct classes).
**Tail cross-check (Phase-25 close):** 8,064 tail fns / 435,320 ins → 519 h_seq families ≥2, **139 substantial (nins≥80) / 82,937 ins**.
**Tail cross-check (Phase-25 close):** 8,047 tail fns / 435,036 ins → 519 h_seq families ≥2, **139 substantial (nins≥80) / 82,716 ins**.
**Full frontier (all unmatched by h_seq):** 2188 target families (≥2 members or a matched sibling) + 4513 singletons (Step-D residue). Substantial: **383 families / 179,081 templatable ins**, 70 with a matched sibling (zero-crack). Substantial member classes: 1,154 PURE · 33 IMM · 6 STRUCT-excluded.
**Full frontier (all unmatched by h_seq):** 2188 target families (≥2 members or a matched sibling) + 4513 singletons (Step-D residue). Substantial: **383 families / 178,860 templatable ins**, 72 with a matched sibling (zero-crack). Substantial member classes: 1,152 PURE · 33 IMM · 6 STRUCT-excluded.
## Top substantial families (by templatable byte-weight)
@@ -16,7 +16,7 @@
| # | nins | members (P/I/S) | #addr/#ov | tag | class | matched | jr | exemplar | templ. ins |
|--:|--:|--|--|--|--|--:|:-:|--|--:|
| 1 | 246 | 16 (16/0/0) | 6/16 | cross-address | PURE | 0 | · | 0x8017c294 draft-ov077 | 3,936 |
| 2 | 126 | 24 (24/0/0) | 11/24 | scattered | PURE | 0 | · | 0x801eded4 modal | 3,024 |
| 2 | 126 | 23 (23/0/0) | 11/23 | scattered | PURE | 1 | · | 0x801eded4 matched | 2,898 |
| 3 | 551 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x80189540 modal | 2,755 |
| 4 | 611 | 4 (4/0/0) | 4/4 | cross-address | PURE | 1 | · | 0x80186e24 matched | 2,444 |
| 5 | 770 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x80144b9c matched-ov077 | 2,310 |
@@ -45,14 +45,14 @@
| 28 | 337 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x80159c84 matched-ov077 | 1,011 |
| 29 | 329 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8013c414 matched-ov077 | 987 |
| 30 | 324 | 3 (3/0/0) | 2/3 | cross-address | PURE | 0 | Y | 0x80183324 draft-ov077 | 972 |
| 31 | 95 | 10 (10/0/0) | 9/10 | scattered | PURE | 0 | Y | 0x80185d70 modal | 950 |
| 32 | 188 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | · | 0x8017cbc8 modal | 940 |
| 33 | 312 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x8013faf8 matched-ov077 | 936 |
| 34 | 187 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | · | 0x8017df40 modal | 935 |
| 35 | 231 | 4 (4/0/0) | 4/4 | cross-address | PURE | 0 | Y | 0x8017f83c modal | 924 |
| 36 | 890 | 1 (1/0/0) | 1/1 | per-location | PURE | 140 | Y | 0x80178d40 matched-ov077 | 890 |
| 37 | 127 | 7 (7/0/0) | 1/7 | per-location | PURE | 134 | · | 0x80145cec matched-ov077 | 889 |
| 38 | 289 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x80135eb0 matched-ov077 | 867 |
| 31 | 188 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | · | 0x8017cbc8 modal | 940 |
| 32 | 312 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x8013faf8 matched-ov077 | 936 |
| 33 | 187 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | · | 0x8017df40 modal | 935 |
| 34 | 231 | 4 (4/0/0) | 4/4 | cross-address | PURE | 0 | Y | 0x8017f83c modal | 924 |
| 35 | 890 | 1 (1/0/0) | 1/1 | per-location | PURE | 140 | Y | 0x80178d40 matched-ov077 | 890 |
| 36 | 127 | 7 (7/0/0) | 1/7 | per-location | PURE | 134 | · | 0x80145cec matched-ov077 | 889 |
| 37 | 289 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x80135eb0 matched-ov077 | 867 |
| 38 | 95 | 9 (9/0/0) | 9/9 | scattered | PURE | 1 | Y | 0x80185d70 matched | 855 |
| 39 | 213 | 4 (4/0/0) | 1/4 | per-location | PURE | 137 | Y | 0x8013ffd8 matched-ov077 | 852 |
| 40 | 166 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x80188b84 modal | 830 |
| 41 | 165 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | Y | 0x801818f0 modal | 825 |
+59 -59
View File
@@ -4,16 +4,16 @@
# cross-binary collapsible-byte leverage: docs/duplicates.cross.md.
# THREE progress metrics (all matter — see the labels):
FLEET fn-count byte-ident: 349659 / 363379 = 96.22% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 12759025 / 13523856 = 94.3% (shipped .text across main + resident + 211 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 5159257 / 5851963 = 88.2% (80106/90928 unique fns; the DISTINCT-RE number)
FLEET fn-count byte-ident: 349809 / 363379 = 96.27% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 12765551 / 13523856 = 94.4% (shipped .text across main + resident + 211 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 5164593 / 5851963 = 88.3% (80226/90928 unique fns; the DISTINCT-RE number)
MAIN game-code weighted : 436 / 79510 = 0.5% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; LINKED-excluding Ghidra sig dated 2026-08-05; caveat is R34: no independent second oracle for a PS-X EXE, NOT drift)
(fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 12758589 / 13444346 = 94.9%)
(fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 12765115 / 13444346 = 94.9%)
FLEET REAL substantive : 347477 (of which dedup-shared 249221 via 1949 groups / 249295 instances)
FLEET REAL substantive : 347627 (of which dedup-shared 249221 via 1949 groups / 249295 instances)
FLEET LINKED PsyQ objs : 959
FLEET NON_MATCHING : 7 (0 in any default build — G4)
FLEET INCLUDE_ASM stubs : 13713
FLEET INCLUDE_ASM stubs : 13563
FLEET matchable : 363379
| binary | REAL | shared | LINKED | byte-ident | matchable | byte-ident % |
@@ -24,34 +24,34 @@ FLEET matchable : 363379
| md_MAIN_003 | 3 | 0 | 0 | 3 | 60 | 5.0% |
| md_MAIN_008 | 0 | 0 | 0 | 0 | 6 | 0.0% |
| md_MAIN_011 | 0 | 0 | 0 | 0 | 21 | 0.0% |
| md_MAIN_013 | 3 | 0 | 0 | 3 | 16 | 18.8% |
| md_MAIN_013 | 5 | 0 | 0 | 5 | 16 | 31.2% |
| md_MAIN_014 | 3 | 0 | 0 | 4 | 13 | 30.8% |
| md_MAIN_015 | 3 | 0 | 0 | 3 | 20 | 15.0% |
| md_MAIN_016 | 2 | 0 | 0 | 3 | 13 | 23.1% |
| md_MAIN_015 | 6 | 0 | 0 | 6 | 20 | 30.0% |
| md_MAIN_016 | 3 | 0 | 0 | 4 | 13 | 30.8% |
| md_MAIN_017 | 3 | 0 | 0 | 3 | 10 | 30.0% |
| md_MAIN_018 | 3 | 0 | 0 | 4 | 11 | 36.4% |
| md_MAIN_019 | 3 | 0 | 0 | 3 | 22 | 13.6% |
| md_MAIN_019 | 4 | 0 | 0 | 4 | 22 | 18.2% |
| md_MAIN_020 | 6 | 0 | 0 | 7 | 14 | 50.0% |
| md_MAIN_021 | 3 | 0 | 0 | 4 | 11 | 36.4% |
| md_MAIN_022 | 12 | 0 | 0 | 14 | 33 | 42.4% |
| md_MAIN_022 | 13 | 0 | 0 | 15 | 33 | 45.5% |
| md_MAIN_023 | 2 | 0 | 0 | 3 | 6 | 50.0% |
| md_MAIN_024 | 2 | 0 | 0 | 4 | 6 | 66.7% |
| md_MAIN_025 | 3 | 0 | 0 | 3 | 30 | 10.0% |
| md_MAIN_026 | 3 | 0 | 0 | 3 | 24 | 12.5% |
| md_MAIN_026 | 5 | 0 | 0 | 5 | 24 | 20.8% |
| md_MAIN_027 | 7 | 0 | 0 | 9 | 29 | 31.0% |
| md_MAIN_028 | 3 | 0 | 0 | 3 | 22 | 13.6% |
| md_MAIN_029 | 3 | 0 | 0 | 4 | 11 | 36.4% |
| md_MAIN_030 | 3 | 0 | 0 | 3 | 10 | 30.0% |
| md_MAIN_031 | 2 | 0 | 0 | 2 | 18 | 11.1% |
| md_MAIN_032 | 2 | 0 | 0 | 2 | 10 | 20.0% |
| md_MAIN_033 | 2 | 0 | 0 | 2 | 19 | 10.5% |
| md_MAIN_031 | 3 | 0 | 0 | 3 | 18 | 16.7% |
| md_MAIN_032 | 3 | 0 | 0 | 3 | 10 | 30.0% |
| md_MAIN_033 | 3 | 0 | 0 | 3 | 19 | 15.8% |
| md_MAIN_034 | 2 | 0 | 0 | 3 | 28 | 10.7% |
| md_MAIN_035 | 7 | 0 | 0 | 8 | 16 | 50.0% |
| md_MAIN_036 | 2 | 0 | 0 | 3 | 28 | 10.7% |
| md_MAIN_037 | 2 | 0 | 0 | 2 | 17 | 11.8% |
| md_MAIN_038 | 3 | 0 | 0 | 3 | 20 | 15.0% |
| md_MAIN_039 | 2 | 0 | 0 | 2 | 26 | 7.7% |
| md_MAIN_040 | 2 | 0 | 0 | 2 | 19 | 10.5% |
| md_MAIN_036 | 5 | 0 | 0 | 6 | 28 | 21.4% |
| md_MAIN_037 | 3 | 0 | 0 | 3 | 17 | 17.6% |
| md_MAIN_038 | 6 | 0 | 0 | 6 | 20 | 30.0% |
| md_MAIN_039 | 4 | 0 | 0 | 4 | 26 | 15.4% |
| md_MAIN_040 | 3 | 0 | 0 | 3 | 19 | 15.8% |
| md_MAIN_041 | 3 | 0 | 0 | 3 | 15 | 20.0% |
| md_MAIN_042 | 0 | 0 | 0 | 0 | 4 | 0.0% |
| md_MAIN_043 | 2 | 0 | 0 | 3 | 23 | 13.0% |
@@ -60,44 +60,44 @@ FLEET matchable : 363379
| md_MAIN_046 | 5 | 0 | 0 | 6 | 39 | 15.4% |
| md_MAIN_047 | 3 | 0 | 0 | 4 | 12 | 33.3% |
| md_SC02_009 | 4 | 0 | 0 | 4 | 40 | 10.0% |
| md_SC03_073 | 10 | 0 | 0 | 12 | 28 | 42.9% |
| md_SC03_074 | 11 | 0 | 0 | 13 | 29 | 44.8% |
| md_SC03_075 | 13 | 0 | 0 | 15 | 41 | 36.6% |
| md_SC03_076 | 13 | 0 | 0 | 15 | 66 | 22.7% |
| md_SC03_077 | 11 | 0 | 0 | 13 | 35 | 37.1% |
| md_SC03_078 | 9 | 0 | 0 | 11 | 27 | 40.7% |
| md_SC03_079 | 11 | 0 | 0 | 13 | 29 | 44.8% |
| md_SC03_132 | 11 | 0 | 0 | 13 | 28 | 46.4% |
| md_SC03_133 | 12 | 0 | 0 | 14 | 29 | 48.3% |
| md_SC03_134 | 14 | 0 | 0 | 16 | 41 | 39.0% |
| md_SC03_135 | 14 | 0 | 0 | 16 | 66 | 24.2% |
| md_SC03_136 | 12 | 0 | 0 | 14 | 35 | 40.0% |
| md_SC03_137 | 10 | 0 | 0 | 12 | 27 | 44.4% |
| md_SC03_138 | 14 | 0 | 0 | 18 | 37 | 48.6% |
| md_SC04_024 | 10 | 0 | 0 | 12 | 28 | 42.9% |
| md_SC04_025 | 11 | 0 | 0 | 13 | 29 | 44.8% |
| md_SC04_026 | 13 | 0 | 0 | 15 | 41 | 36.6% |
| md_SC04_027 | 13 | 0 | 0 | 15 | 66 | 22.7% |
| md_SC04_028 | 11 | 0 | 0 | 13 | 35 | 37.1% |
| md_SC04_029 | 9 | 0 | 0 | 11 | 27 | 40.7% |
| md_SC04_030 | 11 | 0 | 0 | 15 | 31 | 48.4% |
| md_SC05_023 | 10 | 0 | 0 | 12 | 28 | 42.9% |
| md_SC05_024 | 11 | 0 | 0 | 13 | 29 | 44.8% |
| md_SC05_025 | 13 | 0 | 0 | 15 | 41 | 36.6% |
| md_SC05_026 | 13 | 0 | 0 | 15 | 66 | 22.7% |
| md_SC05_027 | 11 | 0 | 0 | 13 | 35 | 37.1% |
| md_SC05_028 | 9 | 0 | 0 | 11 | 27 | 40.7% |
| md_SC05_029 | 11 | 0 | 0 | 15 | 31 | 48.4% |
| md_SC03_073 | 14 | 0 | 0 | 16 | 28 | 57.1% |
| md_SC03_074 | 15 | 0 | 0 | 17 | 29 | 58.6% |
| md_SC03_075 | 17 | 0 | 0 | 19 | 41 | 46.3% |
| md_SC03_076 | 19 | 0 | 0 | 21 | 66 | 31.8% |
| md_SC03_077 | 13 | 0 | 0 | 15 | 35 | 42.9% |
| md_SC03_078 | 13 | 0 | 0 | 15 | 27 | 55.6% |
| md_SC03_079 | 15 | 0 | 0 | 17 | 29 | 58.6% |
| md_SC03_132 | 15 | 0 | 0 | 17 | 28 | 60.7% |
| md_SC03_133 | 16 | 0 | 0 | 18 | 29 | 62.1% |
| md_SC03_134 | 18 | 0 | 0 | 20 | 41 | 48.8% |
| md_SC03_135 | 20 | 0 | 0 | 22 | 66 | 33.3% |
| md_SC03_136 | 14 | 0 | 0 | 16 | 35 | 45.7% |
| md_SC03_137 | 14 | 0 | 0 | 16 | 27 | 59.3% |
| md_SC03_138 | 17 | 0 | 0 | 21 | 37 | 56.8% |
| md_SC04_024 | 15 | 0 | 0 | 17 | 28 | 60.7% |
| md_SC04_025 | 16 | 0 | 0 | 18 | 29 | 62.1% |
| md_SC04_026 | 18 | 0 | 0 | 20 | 41 | 48.8% |
| md_SC04_027 | 20 | 0 | 0 | 22 | 66 | 33.3% |
| md_SC04_028 | 14 | 0 | 0 | 16 | 35 | 45.7% |
| md_SC04_029 | 14 | 0 | 0 | 16 | 27 | 59.3% |
| md_SC04_030 | 16 | 0 | 0 | 20 | 31 | 64.5% |
| md_SC05_023 | 14 | 0 | 0 | 16 | 28 | 57.1% |
| md_SC05_024 | 14 | 0 | 0 | 16 | 29 | 55.2% |
| md_SC05_025 | 16 | 0 | 0 | 18 | 41 | 43.9% |
| md_SC05_026 | 18 | 0 | 0 | 20 | 66 | 30.3% |
| md_SC05_027 | 12 | 0 | 0 | 14 | 35 | 40.0% |
| md_SC05_028 | 12 | 0 | 0 | 14 | 27 | 51.9% |
| md_SC05_029 | 14 | 0 | 0 | 18 | 31 | 58.1% |
| md_SC07_003 | 12 | 0 | 0 | 12 | 100 | 12.0% |
| md_SC07_004 | 40 | 0 | 0 | 40 | 315 | 12.7% |
| ov_MAIN_012 | 2176 | 1658 | 0 | 2255 | 2403 | 93.8% |
| ov_MAIN_012 | 2177 | 1658 | 0 | 2256 | 2403 | 93.9% |
| ov_SC01_000 | 2390 | 1775 | 0 | 2390 | 2403 | 99.5% |
| ov_SC01_001 | 2398 | 1776 | 0 | 2400 | 2466 | 97.3% |
| ov_SC01_004 | 2395 | 1767 | 0 | 2396 | 2414 | 99.3% |
| ov_SC01_005 | 2427 | 1790 | 0 | 2427 | 2503 | 97.0% |
| ov_SC01_006 | 2427 | 1790 | 0 | 2427 | 2503 | 97.0% |
| ov_SC01_008 | 2395 | 1767 | 0 | 2397 | 2426 | 98.8% |
| ov_SC01_009 | 2422 | 1768 | 0 | 2423 | 2507 | 96.6% |
| ov_SC01_004 | 2396 | 1767 | 0 | 2397 | 2414 | 99.3% |
| ov_SC01_005 | 2428 | 1790 | 0 | 2428 | 2503 | 97.0% |
| ov_SC01_006 | 2428 | 1790 | 0 | 2428 | 2503 | 97.0% |
| ov_SC01_008 | 2396 | 1767 | 0 | 2398 | 2426 | 98.8% |
| ov_SC01_009 | 2423 | 1768 | 0 | 2424 | 2507 | 96.7% |
| ov_SC01_074 | 2397 | 1768 | 0 | 2399 | 2425 | 98.9% |
| ov_SC01_077 | 2562 | 1733 | 0 | 2564 | 2586 | 99.1% |
| ov_SC01_080 | 2426 | 1771 | 0 | 2426 | 2512 | 96.6% |
@@ -131,7 +131,7 @@ FLEET matchable : 363379
| ov_SC03_014 | 2575 | 1802 | 0 | 2575 | 2685 | 95.9% |
| ov_SC03_015 | 2574 | 1802 | 0 | 2574 | 2685 | 95.9% |
| ov_SC03_023 | 2402 | 1771 | 0 | 2403 | 2435 | 98.7% |
| ov_SC03_024 | 2518 | 1776 | 0 | 2525 | 2641 | 95.6% |
| ov_SC03_024 | 2521 | 1776 | 0 | 2528 | 2641 | 95.7% |
| ov_SC03_028 | 2464 | 1772 | 0 | 2468 | 2664 | 92.6% |
| ov_SC03_029 | 2501 | 1774 | 0 | 2511 | 2644 | 95.0% |
| ov_SC03_030 | 2420 | 1776 | 0 | 2422 | 2495 | 97.1% |
@@ -184,7 +184,7 @@ FLEET matchable : 363379
| ov_SC04_012 | 2398 | 1771 | 0 | 2399 | 2420 | 99.1% |
| ov_SC04_015 | 2535 | 1772 | 0 | 2546 | 2611 | 97.5% |
| ov_SC04_016 | 2402 | 1771 | 0 | 2404 | 2440 | 98.5% |
| ov_SC04_018 | 2676 | 1808 | 0 | 2676 | 2857 | 93.7% |
| ov_SC04_018 | 2677 | 1808 | 0 | 2677 | 2857 | 93.7% |
| ov_SC04_019 | 2674 | 1808 | 0 | 2674 | 2857 | 93.6% |
| ov_SC04_020 | 2516 | 1771 | 0 | 2528 | 2567 | 98.5% |
| ov_SC04_021 | 2401 | 1773 | 0 | 2401 | 2423 | 99.1% |
@@ -203,7 +203,7 @@ FLEET matchable : 363379
| ov_SC05_017 | 2651 | 1768 | 0 | 2662 | 2842 | 93.7% |
| ov_SC05_018 | 2548 | 1771 | 0 | 2561 | 2673 | 95.8% |
| ov_SC05_019 | 2401 | 1773 | 0 | 2401 | 2423 | 99.1% |
| ov_SC06_000 | 2530 | 1780 | 0 | 2533 | 2691 | 94.1% |
| ov_SC06_000 | 2533 | 1780 | 0 | 2536 | 2691 | 94.2% |
| ov_SC06_006 | 2424 | 1771 | 0 | 2425 | 2511 | 96.6% |
| ov_SC06_008 | 2489 | 1773 | 0 | 2495 | 2542 | 98.2% |
| ov_SC06_010 | 2461 | 1771 | 0 | 2466 | 2517 | 98.0% |
@@ -224,10 +224,10 @@ FLEET matchable : 363379
| ov_SC06_033 | 2493 | 1772 | 0 | 2500 | 2631 | 95.0% |
| ov_SC07_000 | 2434 | 1775 | 0 | 2436 | 2521 | 96.6% |
| ov_SC07_001 | 2405 | 1771 | 0 | 2407 | 2454 | 98.1% |
| ov_SC07_002 | 2461 | 1772 | 0 | 2465 | 2579 | 95.6% |
| ov_SC07_002 | 2462 | 1772 | 0 | 2466 | 2579 | 95.6% |
| ov_SC07_006 | 2326 | 1595 | 0 | 2406 | 2455 | 98.0% |
| ov_SC07_007 | 2339 | 1628 | 0 | 2423 | 2612 | 92.8% |
| ov_SC07_008 | 2386 | 1771 | 0 | 2386 | 2386 | 100.0% |
| ov_SC07_009 | 2398 | 1771 | 0 | 2400 | 2430 | 98.8% |
| ov_SC07_010 | 2321 | 1649 | 0 | 2404 | 2523 | 95.3% |
| ov_SC07_010 | 2322 | 1649 | 0 | 2405 | 2523 | 95.3% |
| ov_SC07_011 | 2341 | 1627 | 0 | 2421 | 2448 | 98.9% |
+30 -2
View File
@@ -36,11 +36,39 @@ INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB0E8);
INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB138);
INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB370);
extern void func_80146C3C(void);
void func_800CB370(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CB908[])(void);
if (D_80078EC1 == 0x7) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CB908[v0]();
} else {
func_80146C3C();
}
}
INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB3CC);
INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB510);
extern void func_80146C3C(void);
void func_800CB510(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CB914[])(void);
if (D_80078EC1 == 0x7) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CB914[v0]();
} else {
func_80146C3C();
}
}
INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB56C);
+45 -3
View File
@@ -38,7 +38,21 @@ s32 func_800CB190(s32 a0)
}
INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB1C0);
extern void func_800CB474(void);
void func_800CB1C0(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CBB38[])(void);
if (D_80078EC1 == 0x8) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CBB38[v0]();
} else {
func_800CB474();
}
}
INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB21C);
@@ -46,7 +60,21 @@ INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB2E0);
INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB474);
INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB494);
extern void func_80146C3C(void);
void func_800CB494(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CBB58[])(void);
if (D_80078EC1 == 0x8) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CBB58[v0]();
} else {
func_80146C3C();
}
}
INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB4F0);
@@ -54,7 +82,21 @@ INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB6A4);
INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB6FC);
INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB830);
extern void func_80146C3C(void);
void func_800CB830(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CBB60[])(void);
if (D_80078EC1 == 0x8) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CBB60[v0]();
} else {
func_80146C3C();
}
}
INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB88C);
+15 -1
View File
@@ -27,7 +27,21 @@ INCLUDE_ASM("asm/md_MAIN_016/nonmatchings/md_MAIN_016", func_800CAEF4);
void func_800CAF20(void) {
}
INCLUDE_ASM("asm/md_MAIN_016/nonmatchings/md_MAIN_016", func_800CAF28);
extern void func_80146C3C(void);
void func_800CAF28(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CB53C[])(void);
if (D_80078EC1 == 0x1) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CB53C[v0]();
} else {
func_80146C3C();
}
}
INCLUDE_ASM("asm/md_MAIN_016/nonmatchings/md_MAIN_016", func_800CAF84);
+15 -1
View File
@@ -38,7 +38,21 @@ s32 func_800CB170(s32 a0)
INCLUDE_ASM("asm/md_MAIN_019/nonmatchings/md_MAIN_019", func_800CB1A0);
INCLUDE_ASM("asm/md_MAIN_019/nonmatchings/md_MAIN_019", func_800CB2C8);
extern void func_800CB4A8(void);
void func_800CB2C8(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CC124[])(void);
if (D_80078EC1 == 0xd) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CC124[v0]();
} else {
func_800CB4A8();
}
}
INCLUDE_ASM("asm/md_MAIN_019/nonmatchings/md_MAIN_019", func_800CB324);
+15 -1
View File
@@ -88,7 +88,21 @@ INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CB550);
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CB5E4);
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CB630);
extern void func_80146C3C(void);
void func_800CB630(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CBD14[])(void);
if (D_80078EC1 == 0x4) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CBD14[v0]();
} else {
func_80146C3C();
}
}
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CB68C);
+30 -2
View File
@@ -37,7 +37,21 @@ INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB098);
INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB108);
INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB134);
extern void func_800CB5D4(void);
void func_800CB134(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CBB24[])(void);
if (D_80078EC1 == 0x16) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CBB24[v0]();
} else {
func_800CB5D4();
}
}
INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB190);
@@ -51,7 +65,21 @@ INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB5D4);
INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB5F4);
INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB62C);
extern void func_800CB8A4(void);
void func_800CB62C(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CBB48[])(void);
if (D_80078EC1 == 0x16) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CBB48[v0]();
} else {
func_800CB8A4();
}
}
INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB688);
+15 -1
View File
@@ -42,7 +42,21 @@ INCLUDE_ASM("asm/md_MAIN_031/nonmatchings/md_MAIN_031", func_800CB6A0);
INCLUDE_ASM("asm/md_MAIN_031/nonmatchings/md_MAIN_031", func_800CB964);
INCLUDE_ASM("asm/md_MAIN_031/nonmatchings/md_MAIN_031", func_800CBBB8);
extern void func_800CBEB8(void);
void func_800CBBB8(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CC030[])(void);
if (D_80078EC1 == 0x1a) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CC030[v0]();
} else {
func_800CBEB8();
}
}
INCLUDE_ASM("asm/md_MAIN_031/nonmatchings/md_MAIN_031", func_800CBC14);
+15 -1
View File
@@ -28,7 +28,21 @@ INCLUDE_ASM("asm/md_MAIN_032/nonmatchings/md_MAIN_032", func_800CAF60);
INCLUDE_ASM("asm/md_MAIN_032/nonmatchings/md_MAIN_032", func_800CAFD0);
INCLUDE_ASM("asm/md_MAIN_032/nonmatchings/md_MAIN_032", func_800CB054);
extern void func_800CB24C(void);
void func_800CB054(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CB2A8[])(void);
if (D_80078EC1 == 0x9) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CB2A8[v0]();
} else {
func_800CB24C();
}
}
INCLUDE_ASM("asm/md_MAIN_032/nonmatchings/md_MAIN_032", func_800CB0B0);
+15 -1
View File
@@ -44,7 +44,21 @@ INCLUDE_ASM("asm/md_MAIN_033/nonmatchings/md_MAIN_033", func_800CB3D8);
INCLUDE_ASM("asm/md_MAIN_033/nonmatchings/md_MAIN_033", func_800CB4EC);
INCLUDE_ASM("asm/md_MAIN_033/nonmatchings/md_MAIN_033", func_800CB580);
extern void func_80146C3C(void);
void func_800CB580(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CB8F0[])(void);
if (D_80078EC1 == 0xb) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CB8F0[v0]();
} else {
func_80146C3C();
}
}
INCLUDE_ASM("asm/md_MAIN_033/nonmatchings/md_MAIN_033", func_800CB5DC);
+30 -2
View File
@@ -29,7 +29,21 @@ INCLUDE_ASM("asm/md_MAIN_036/nonmatchings/md_MAIN_036", func_800CAF4C);
void func_800CAFCC(void) {
}
INCLUDE_ASM("asm/md_MAIN_036/nonmatchings/md_MAIN_036", func_800CAFD4);
extern void func_800CB5A8(void);
void func_800CAFD4(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CBFB8[])(void);
if (D_80078EC1 == 0x17) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CBFB8[v0]();
} else {
func_800CB5A8();
}
}
INCLUDE_ASM("asm/md_MAIN_036/nonmatchings/md_MAIN_036", func_800CB030);
@@ -45,7 +59,21 @@ INCLUDE_ASM("asm/md_MAIN_036/nonmatchings/md_MAIN_036", func_800CB570);
INCLUDE_ASM("asm/md_MAIN_036/nonmatchings/md_MAIN_036", func_800CB5A8);
INCLUDE_ASM("asm/md_MAIN_036/nonmatchings/md_MAIN_036", func_800CB5D8);
extern void func_800CB774(void);
void func_800CB5D8(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CBFD4[])(void);
if (D_80078EC1 == 0x17) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CBFD4[v0]();
} else {
func_800CB774();
}
}
INCLUDE_ASM("asm/md_MAIN_036/nonmatchings/md_MAIN_036", func_800CB634);
+15 -1
View File
@@ -44,7 +44,21 @@ INCLUDE_ASM("asm/md_MAIN_037/nonmatchings/md_MAIN_037", func_800CB358);
INCLUDE_ASM("asm/md_MAIN_037/nonmatchings/md_MAIN_037", func_800CB378);
INCLUDE_ASM("asm/md_MAIN_037/nonmatchings/md_MAIN_037", func_800CB424);
extern void func_80146C3C(void);
void func_800CB424(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CB654[])(void);
if (D_80078EC1 == 0x19) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CB654[v0]();
} else {
func_80146C3C();
}
}
INCLUDE_ASM("asm/md_MAIN_037/nonmatchings/md_MAIN_037", func_800CB480);
+45 -3
View File
@@ -38,7 +38,21 @@ s32 func_800CB1E4(s32 a0)
}
INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB214);
extern void func_800CB4F8(void);
void func_800CB214(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CBBC8[])(void);
if (D_80078EC1 == 0x1b) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CBBC8[v0]();
} else {
func_800CB4F8();
}
}
INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB270);
@@ -46,7 +60,21 @@ INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB360);
INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB4F8);
INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB518);
extern void func_80146C3C(void);
void func_800CB518(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CBBE8[])(void);
if (D_80078EC1 == 0x1b) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CBBE8[v0]();
} else {
func_80146C3C();
}
}
INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB574);
@@ -54,7 +82,21 @@ INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB728);
INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB780);
INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB8B4);
extern void func_80146C3C(void);
void func_800CB8B4(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CBBF0[])(void);
if (D_80078EC1 == 0x1b) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CBBF0[v0]();
} else {
func_80146C3C();
}
}
INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB910);
+30 -2
View File
@@ -48,7 +48,21 @@ INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CB61C);
INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CB6F4);
INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CB804);
extern void func_80146C3C(void);
void func_800CB804(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CBEAC[])(void);
if (D_80078EC1 == 0x1c) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CBEAC[v0]();
} else {
func_80146C3C();
}
}
INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CB860);
@@ -62,7 +76,21 @@ INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CBC10);
INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CBC40);
INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CBC60);
extern void func_80146C3C(void);
void func_800CBC60(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CBEF8[])(void);
if (D_80078EC1 == 0x1c) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CBEF8[v0]();
} else {
func_80146C3C();
}
}
INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CBCBC);
+15 -1
View File
@@ -40,7 +40,21 @@ INCLUDE_ASM("asm/md_MAIN_040/nonmatchings/md_MAIN_040", func_800CB3BC);
INCLUDE_ASM("asm/md_MAIN_040/nonmatchings/md_MAIN_040", func_800CB3DC);
INCLUDE_ASM("asm/md_MAIN_040/nonmatchings/md_MAIN_040", func_800CB488);
extern void func_80146C3C(void);
void func_800CB488(void *arg0) {
extern u8 D_80078EC1;
extern void (*D_800CB948[])(void);
if (D_80078EC1 == 0x1d) {
u16 v0 = *(u16 *)((u8 *)arg0 + 2);
D_800CB948[v0]();
} else {
func_80146C3C();
}
}
INCLUDE_ASM("asm/md_MAIN_040/nonmatchings/md_MAIN_040", func_800CB4E4);
+121 -4
View File
@@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC03_073/nonmatchings/md_SC03_073", D_801EF468);
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF6D0);
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF738);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801EF738(void *arg0) {
extern u8 D_801EFEEC[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801EFEEC));
func_80171A1C(arg0);
}
}
void func_801EF790(void) {
}
@@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF7F4);
void func_801EF85C(void) {
}
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF864);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801EF928(void *a0);
void func_801EF864(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801EF928, 0);
func_801EF928(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -93,7 +145,62 @@ void func_801EF928(void *a0) {
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF964);
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF98C);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EF98C;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EF98C;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801EF98C(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801EFF3C[];
extern u16 D_801EFF40[];
MATRIX_801EDED4_801EF98C m1;
SVECTOR_801EDED4_801EF98C svec_in;
SVECTOR_801EDED4_801EF98C svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801EFF3C[t];
*(s16 *)(param_1 + 0x2E) = D_801EFF40[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
@@ -130,4 +237,14 @@ INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EFC94);
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EFDC8);
INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EFE60);
u8 func_801EFE60(u32 a0) {
if ((u32)(a0 - 0x384) < 0x6E) {
return 0x65;
}
if ((u32)(a0 - 0x64) < 0x1E) {
return 0x28;
}
return 0xD;
}
+121 -4
View File
@@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC03_074/nonmatchings/md_SC03_074", D_801EF468);
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF6D0);
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF738);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801EF738(void *arg0) {
extern u8 D_801EFF94[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801EFF94));
func_80171A1C(arg0);
}
}
void func_801EF790(void) {
}
@@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF7F4);
void func_801EF85C(void) {
}
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF864);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801EF928(void *a0);
void func_801EF864(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801EF928, 0);
func_801EF928(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -93,7 +145,62 @@ void func_801EF928(void *a0) {
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF964);
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF98C);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EF98C;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EF98C;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801EF98C(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801EFFE4[];
extern u16 D_801EFFE8[];
MATRIX_801EDED4_801EF98C m1;
SVECTOR_801EDED4_801EF98C svec_in;
SVECTOR_801EDED4_801EF98C svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801EFFE4[t];
*(s16 *)(param_1 + 0x2E) = D_801EFFE8[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
@@ -144,4 +251,14 @@ INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EFD28);
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EFE5C);
INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EFF08);
u8 func_801EFF08(u32 a0) {
if ((u32)(a0 - 0x384) < 0x6E) {
return 0x65;
}
if ((u32)(a0 - 0x64) < 0x1E) {
return 0x28;
}
return 0xE;
}
+121 -4
View File
@@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC03_075/nonmatchings/md_SC03_075", D_801EF468);
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF6D0);
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF738);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801EF738(void *arg0) {
extern u8 D_801F045C[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801F045C));
func_80171A1C(arg0);
}
}
void func_801EF790(void) {
}
@@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF7F4);
void func_801EF85C(void) {
}
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF864);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801EF928(void *a0);
void func_801EF864(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801EF928, 0);
func_801EF928(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -93,7 +145,62 @@ void func_801EF928(void *a0) {
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF964);
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF98C);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EF98C;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EF98C;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801EF98C(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801F04AC[];
extern u16 D_801F04B0[];
MATRIX_801EDED4_801EF98C m1;
SVECTOR_801EDED4_801EF98C svec_in;
SVECTOR_801EDED4_801EF98C svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801F04AC[t];
*(s16 *)(param_1 + 0x2E) = D_801F04B0[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
@@ -182,4 +289,14 @@ extern void func_80029124(s32 arg0, s32 arg1);
}
INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801F03D0);
u8 func_801F03D0(u32 a0) {
if ((u32)(a0 - 0x384) < 0x6E) {
return 0x65;
}
if ((u32)(a0 - 0x64) < 0x1E) {
return 0x28;
}
return 0xE;
}
+152 -6
View File
@@ -90,7 +90,27 @@ void func_801EFB40(void)
}
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801EFB5C);
extern void func_800D2624(void);
void func_801EFB5C(void) {
extern short D_800B9A02;
extern u16 D_80115114;
extern u16 D_80115112;
u16 v0 = (*(u16 *)&D_800B9A02);
u16 v1 = D_80115114;
v0 ^= 0x1;
if (v1 == v0) {
func_800D2624();
} else {
D_80115112++;
}
}
INCLUDE_RODATA("asm/md_SC03_076/nonmatchings/md_SC03_076", D_801EF468);
@@ -178,7 +198,22 @@ INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1CB0);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1CD8);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1D40);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801F1D40(void *arg0) {
extern u8 D_801F34DC[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801F34DC));
func_80171A1C(arg0);
}
}
void func_801F1D98(void) {
}
@@ -199,7 +234,44 @@ INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1DFC);
void func_801F1E64(void) {
}
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1E6C);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801F1F30(void *a0);
void func_801F1E6C(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801F1F30, 0);
func_801F1F30(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -212,7 +284,62 @@ void func_801F1F30(void *a0) {
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1F6C);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1F94);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801F1F94;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801F1F94;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801F1F94(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801F352C[];
extern u16 D_801F3530[];
MATRIX_801EDED4_801F1F94 m1;
SVECTOR_801EDED4_801F1F94 svec_in;
SVECTOR_801EDED4_801F1F94 svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801F352C[t];
*(s16 *)(param_1 + 0x2E) = D_801F3530[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F218C);
@@ -271,6 +398,25 @@ INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F2930);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F2970);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F29B0);
INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F29E0);
u8 func_801F29B0(u32 a0) {
if ((u32)(a0 - 0x384) < 0x6E) {
return 0x65;
}
if ((u32)(a0 - 0x64) < 0x1E) {
return 0x28;
}
return 0x16;
}
extern void func_8001ABBC(u32, u32, void *, u32, u32);
void func_801F29E0(void) {
extern u8 D_800AF040[];
func_8001ABBC(0, 0, D_800AF040, 0, 0);
}
+27 -2
View File
@@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC03_077/nonmatchings/md_SC03_077", D_801EF468);
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF704);
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF76C);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801EF76C(void *arg0) {
extern u8 D_801F00E8[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801F00E8));
func_80171A1C(arg0);
}
}
void func_801EF7C4(void) {
}
@@ -156,4 +171,14 @@ INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EFF50);
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EFFAC);
INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801F005C);
u8 func_801F005C(u32 a0) {
if ((u32)(a0 - 0x384) < 0x6E) {
return 0x65;
}
if ((u32)(a0 - 0x64) < 0x1E) {
return 0x28;
}
return 0xD;
}
+121 -4
View File
@@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC03_078/nonmatchings/md_SC03_078", D_801EF468);
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF6D0);
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF738);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801EF738(void *arg0) {
extern u8 D_801EFE3C[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801EFE3C));
func_80171A1C(arg0);
}
}
void func_801EF790(void) {
}
@@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF7F4);
void func_801EF85C(void) {
}
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF864);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801EF928(void *a0);
void func_801EF864(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801EF928, 0);
func_801EF928(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -93,7 +145,62 @@ void func_801EF928(void *a0) {
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF964);
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF98C);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EF98C;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EF98C;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801EF98C(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801EFE8C[];
extern u16 D_801EFE90[];
MATRIX_801EDED4_801EF98C m1;
SVECTOR_801EDED4_801EF98C svec_in;
SVECTOR_801EDED4_801EF98C svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801EFE8C[t];
*(s16 *)(param_1 + 0x2E) = D_801EFE90[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
@@ -124,4 +231,14 @@ INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EFCAC);
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EFD40);
INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EFDB0);
u8 func_801EFDB0(u32 a0) {
if ((u32)(a0 - 0x384) < 0x6E) {
return 0x65;
}
if ((u32)(a0 - 0x64) < 0x1E) {
return 0x28;
}
return 0x17;
}
+121 -4
View File
@@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC03_079/nonmatchings/md_SC03_079", D_801EF468);
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF6E0);
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF748);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801EF748(void *arg0) {
extern u8 D_801EFF60[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801EFF60));
func_80171A1C(arg0);
}
}
void func_801EF7A0(void) {
}
@@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF804);
void func_801EF86C(void) {
}
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF874);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801EF938(void *a0);
void func_801EF874(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801EF938, 0);
func_801EF938(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -93,7 +145,62 @@ void func_801EF938(void *a0) {
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF974);
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF99C);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EF99C;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EF99C;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801EF99C(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801EFFB0[];
extern u16 D_801EFFB4[];
MATRIX_801EDED4_801EF99C m1;
SVECTOR_801EDED4_801EF99C svec_in;
SVECTOR_801EDED4_801EF99C svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801EFFB0[t];
*(s16 *)(param_1 + 0x2E) = D_801EFFB4[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EFB94);
@@ -144,4 +251,14 @@ INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EFD9C);
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EFE3C);
INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EFED4);
u8 func_801EFED4(u32 a0) {
if ((u32)(a0 - 0x384) < 0x6E) {
return 0x65;
}
if ((u32)(a0 - 0x64) < 0x1E) {
return 0x28;
}
return 0x29;
}
+133 -4
View File
@@ -22,7 +22,29 @@ s32 func_801E2670(s32 param_1) {
}
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E26BC);
extern s32 func_800D1E28(void);
extern s32 func_8002D4C8(s32, s32);
extern s32 func_8001BFD0(void);
extern s32 func_800291B4(s32);
extern s32 func_80029524(void);
extern s32 func_800D0C48(s32);
s32 func_801E26BC(s32 param_1) {
if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) {
func_800D1E28();
func_8002D4C8(0x1C, 0);
func_8001BFD0();
if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) {
func_8002D4C8(0x1D, 0);
func_800D0C48(1);
}
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E275C);
@@ -57,7 +79,22 @@ INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2830);
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2858);
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E28C0);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801E28C0(void *arg0) {
extern u8 D_801E304C[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801E304C));
func_80171A1C(arg0);
}
}
void func_801E2918(void) {
}
@@ -78,7 +115,44 @@ INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E297C);
void func_801E29E4(void) {
}
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E29EC);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801E2AB0(void *a0);
void func_801E29EC(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801E2AB0, 0);
func_801E2AB0(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -91,7 +165,62 @@ void func_801E2AB0(void *a0) {
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2AEC);
INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2B14);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E2B14;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E2B14;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801E2B14(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801E309C[];
extern u16 D_801E30A0[];
MATRIX_801EDED4_801E2B14 m1;
SVECTOR_801EDED4_801E2B14 svec_in;
SVECTOR_801EDED4_801E2B14 svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801E309C[t];
*(s16 *)(param_1 + 0x2E) = D_801E30A0[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
s32 func_801E2D0C(void) {
+133 -4
View File
@@ -22,7 +22,29 @@ s32 func_801E2678(s32 param_1) {
}
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E26C4);
extern s32 func_800D1E28(void);
extern s32 func_8002D4C8(s32, s32);
extern s32 func_8001BFD0(void);
extern s32 func_800291B4(s32);
extern s32 func_80029524(void);
extern s32 func_800D0C48(s32);
s32 func_801E26C4(s32 param_1) {
if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) {
func_800D1E28();
func_8002D4C8(0x1C, 0);
func_8001BFD0();
if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) {
func_8002D4C8(0x1D, 0);
func_800D0C48(1);
}
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2764);
@@ -59,7 +81,22 @@ INCLUDE_RODATA("asm/md_SC03_133/nonmatchings/md_SC03_133", D_801E25E8);
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2860);
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E28C8);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801E28C8(void *arg0) {
extern u8 D_801E30FC[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801E30FC));
func_80171A1C(arg0);
}
}
void func_801E2920(void) {
}
@@ -80,7 +117,44 @@ INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2984);
void func_801E29EC(void) {
}
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E29F4);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801E2AB8(void *a0);
void func_801E29F4(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801E2AB8, 0);
func_801E2AB8(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -93,7 +167,62 @@ void func_801E2AB8(void *a0) {
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2AF4);
INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2B1C);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E2B1C;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E2B1C;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801E2B1C(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801E314C[];
extern u16 D_801E3150[];
MATRIX_801EDED4_801E2B1C m1;
SVECTOR_801EDED4_801E2B1C svec_in;
SVECTOR_801EDED4_801E2B1C svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801E314C[t];
*(s16 *)(param_1 + 0x2E) = D_801E3150[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
s32 func_801E2D14(void) {
+133 -4
View File
@@ -22,7 +22,29 @@ s32 func_801E2678(s32 param_1) {
}
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E26C4);
extern s32 func_800D1E28(void);
extern s32 func_8002D4C8(s32, s32);
extern s32 func_8001BFD0(void);
extern s32 func_800291B4(s32);
extern s32 func_80029524(void);
extern s32 func_800D0C48(s32);
s32 func_801E26C4(s32 param_1) {
if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) {
func_800D1E28();
func_8002D4C8(0x1C, 0);
func_8001BFD0();
if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) {
func_8002D4C8(0x1D, 0);
func_800D0C48(1);
}
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2764);
@@ -59,7 +81,22 @@ INCLUDE_RODATA("asm/md_SC03_134/nonmatchings/md_SC03_134", D_801E25E8);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2860);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E28C8);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801E28C8(void *arg0) {
extern u8 D_801E35C4[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801E35C4));
func_80171A1C(arg0);
}
}
void func_801E2920(void) {
}
@@ -80,7 +117,44 @@ INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2984);
void func_801E29EC(void) {
}
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E29F4);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801E2AB8(void *a0);
void func_801E29F4(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801E2AB8, 0);
func_801E2AB8(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -93,7 +167,62 @@ void func_801E2AB8(void *a0) {
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2AF4);
INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2B1C);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E2B1C;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E2B1C;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801E2B1C(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801E363C[];
extern u16 D_801E3640[];
MATRIX_801EDED4_801E2B1C m1;
SVECTOR_801EDED4_801E2B1C svec_in;
SVECTOR_801EDED4_801E2B1C svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801E363C[t];
*(s16 *)(param_1 + 0x2E) = D_801E3640[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
s32 func_801E2D14(void) {
+164 -6
View File
@@ -90,7 +90,27 @@ void func_801E2CC0(void)
}
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E2CDC);
extern void func_800D2624(void);
void func_801E2CDC(void) {
extern short D_800B9A02;
extern u16 D_80115114;
extern u16 D_80115112;
u16 v0 = (*(u16 *)&D_800B9A02);
u16 v1 = D_80115114;
v0 ^= 0x1;
if (v1 == v0) {
func_800D2624();
} else {
D_80115112++;
}
}
INCLUDE_RODATA("asm/md_SC03_135/nonmatchings/md_SC03_135", D_801E25E8);
@@ -150,7 +170,29 @@ s32 func_801E4C24(void) {
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4C48);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4C9C);
extern s32 func_800D1E28(void);
extern s32 func_8002D4C8(s32, s32);
extern s32 func_8001BFD0(void);
extern s32 func_800291B4(s32);
extern s32 func_80029524(void);
extern s32 func_800D0C48(s32);
s32 func_801E4C9C(s32 param_1) {
if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) {
func_800D1E28();
func_8002D4C8(0x1C, 0);
func_8001BFD0();
if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) {
func_8002D4C8(0x1D, 0);
func_800D0C48(1);
}
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4D3C);
@@ -178,7 +220,22 @@ INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4E40);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4E68);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4ED0);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801E4ED0(void *arg0) {
extern u8 D_801E6644[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801E6644));
func_80171A1C(arg0);
}
}
void func_801E4F28(void) {
}
@@ -199,7 +256,44 @@ INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4F8C);
void func_801E4FF4(void) {
}
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4FFC);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801E50C0(void *a0);
void func_801E4FFC(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801E50C0, 0);
func_801E50C0(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -212,7 +306,62 @@ void func_801E50C0(void *a0) {
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E50FC);
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E5124);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E5124;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E5124;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801E5124(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801E6694[];
extern u16 D_801E6698[];
MATRIX_801EDED4_801E5124 m1;
SVECTOR_801EDED4_801E5124 svec_in;
SVECTOR_801EDED4_801E5124 svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801E6694[t];
*(s16 *)(param_1 + 0x2E) = D_801E6698[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
s32 func_801E531C(void) {
@@ -220,7 +369,16 @@ s32 func_801E531C(void) {
}
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E5324);
extern void func_8001ABBC(u32, u32, void *, u32, u32);
void func_801E5324(void) {
extern u8 D_800AF040[];
func_8001ABBC(0, 0, D_800AF040, 0, 0);
}
INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E5358);
+39 -2
View File
@@ -22,7 +22,29 @@ s32 func_801E268C(s32 param_1) {
}
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E26D8);
extern s32 func_800D1E28(void);
extern s32 func_8002D4C8(s32, s32);
extern s32 func_8001BFD0(void);
extern s32 func_800291B4(s32);
extern s32 func_80029524(void);
extern s32 func_800D0C48(s32);
s32 func_801E26D8(s32 param_1) {
if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) {
func_800D1E28();
func_8002D4C8(0x1C, 0);
func_8001BFD0();
if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) {
func_8002D4C8(0x1D, 0);
func_800D0C48(1);
}
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2778);
@@ -59,7 +81,22 @@ INCLUDE_RODATA("asm/md_SC03_136/nonmatchings/md_SC03_136", D_801E25E8);
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2874);
INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E28DC);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801E28DC(void *arg0) {
extern u8 D_801E3230[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801E3230));
func_80171A1C(arg0);
}
}
void func_801E2934(void) {
}
+133 -4
View File
@@ -22,7 +22,29 @@ s32 func_801E2678(s32 param_1) {
}
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E26C4);
extern s32 func_800D1E28(void);
extern void func_8002D4C8(s32, s32);
extern s32 func_8001BFD0(void);
extern s32 func_800291B4(s32);
extern s32 func_80029524(void);
extern s32 func_800D0C48(s32);
s32 func_801E26C4(s32 param_1) {
if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) {
func_800D1E28();
((s32 (*)(s32, s32))func_8002D4C8)(0x1C, 0);
func_8001BFD0();
if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) {
((s32 (*)(s32, s32))func_8002D4C8)(0x1D, 0);
func_800D0C48(1);
}
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2764);
@@ -59,7 +81,22 @@ INCLUDE_RODATA("asm/md_SC03_137/nonmatchings/md_SC03_137", D_801E25E8);
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2860);
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E28C8);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801E28C8(void *arg0) {
extern u8 D_801E2FA4[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801E2FA4));
func_80171A1C(arg0);
}
}
void func_801E2920(void) {
}
@@ -80,7 +117,44 @@ INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2984);
void func_801E29EC(void) {
}
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E29F4);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801E2AB8(void *a0);
void func_801E29F4(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801E2AB8, 0);
func_801E2AB8(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -93,7 +167,62 @@ void func_801E2AB8(void *a0) {
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2AF4);
INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2B1C);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E2B1C;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E2B1C;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801E2B1C(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801E2FF4[];
extern u16 D_801E2FF8[];
MATRIX_801EDED4_801E2B1C m1;
SVECTOR_801EDED4_801E2B1C svec_in;
SVECTOR_801EDED4_801E2B1C svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801E2FF4[t];
*(s16 *)(param_1 + 0x2E) = D_801E2FF8[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
s32 func_801E2D14(void) {
+110 -3
View File
@@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC03_138/nonmatchings/md_SC03_138", D_801E25E8);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2860);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E28C8);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801E28C8(void *arg0) {
extern u8 D_801E334C[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801E334C));
func_80171A1C(arg0);
}
}
void func_801E2920(void) {
}
@@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2984);
void func_801E29EC(void) {
}
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E29F4);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801E2AB8(void *a0);
void func_801E29F4(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801E2AB8, 0);
func_801E2AB8(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -93,7 +145,62 @@ void func_801E2AB8(void *a0) {
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2AF4);
INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2B1C);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E2B1C;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E2B1C;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801E2B1C(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801E339C[];
extern u16 D_801E33A0[];
MATRIX_801EDED4_801E2B1C m1;
SVECTOR_801EDED4_801E2B1C svec_in;
SVECTOR_801EDED4_801E2B1C svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801E339C[t];
*(s16 *)(param_1 + 0x2E) = D_801E33A0[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
+144 -5
View File
@@ -22,7 +22,29 @@ s32 func_801E7BB0(s32 param_1) {
}
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7BFC);
extern s32 func_800D1E28(void);
extern s32 func_8002D4C8(s32, s32);
extern s32 func_8001BFD0(void);
extern s32 func_800291B4(s32);
extern s32 func_80029524(void);
extern s32 func_800D0C48(s32);
s32 func_801E7BFC(s32 param_1) {
if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) {
func_800D1E28();
func_8002D4C8(0x1C, 0);
func_8001BFD0();
if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) {
func_8002D4C8(0x1D, 0);
func_800D0C48(1);
}
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7C9C);
@@ -57,7 +79,22 @@ INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7D70);
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7D98);
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7E00);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801E7E00(void *arg0) {
extern u8 D_801E85B4[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801E85B4));
func_80171A1C(arg0);
}
}
void func_801E7E58(void) {
}
@@ -78,7 +115,44 @@ INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7EBC);
void func_801E7F24(void) {
}
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7F2C);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801E7FF0(void *a0);
void func_801E7F2C(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801E7FF0, 0);
func_801E7FF0(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -91,9 +165,74 @@ void func_801E7FF0(void *a0) {
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E802C);
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E8054);
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E824C);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E8054;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E8054;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801E8054(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801E8604[];
extern u16 D_801E8608[];
MATRIX_801EDED4_801E8054 m1;
SVECTOR_801EDED4_801E8054 svec_in;
SVECTOR_801EDED4_801E8054 svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801E8604[t];
*(s16 *)(param_1 + 0x2E) = D_801E8608[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
u8 func_801E824C(u32 a0) {
if ((u32)(a0 - 0x384) < 0x6E) {
return 0x65;
}
if ((u32)(a0 - 0x64) < 0x1E) {
return 0x28;
}
return 0xD;
}
+110 -3
View File
@@ -79,7 +79,22 @@ INCLUDE_RODATA("asm/md_SC04_025/nonmatchings/md_SC04_025", D_801E7B28);
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7DA0);
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7E08);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801E7E08(void *arg0) {
extern u8 D_801E8664[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801E8664));
func_80171A1C(arg0);
}
}
void func_801E7E60(void) {
}
@@ -100,7 +115,44 @@ INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7EC4);
void func_801E7F2C(void) {
}
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7F34);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801E7FF8(void *a0);
void func_801E7F34(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801E7FF8, 0);
func_801E7FF8(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -113,7 +165,62 @@ void func_801E7FF8(void *a0) {
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E8034);
INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E805C);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E805C;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E805C;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801E805C(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801E86B4[];
extern u16 D_801E86B8[];
MATRIX_801EDED4_801E805C m1;
SVECTOR_801EDED4_801E805C svec_in;
SVECTOR_801EDED4_801E805C svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801E86B4[t];
*(s16 *)(param_1 + 0x2E) = D_801E86B8[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
u8 func_801E8254(u32 a0) {
if ((u32)(a0 - 0x384) < 0x6E) {
+144 -5
View File
@@ -22,7 +22,29 @@ s32 func_801E7BB8(s32 param_1) {
}
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7C04);
extern s32 func_800D1E28(void);
extern s32 func_8002D4C8(s32, s32);
extern s32 func_8001BFD0(void);
extern s32 func_800291B4(s32);
extern s32 func_80029524(void);
extern s32 func_800D0C48(s32);
s32 func_801E7C04(s32 param_1) {
if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) {
func_800D1E28();
func_8002D4C8(0x1C, 0);
func_8001BFD0();
if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) {
func_8002D4C8(0x1D, 0);
func_800D0C48(1);
}
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7CA4);
@@ -59,7 +81,22 @@ INCLUDE_RODATA("asm/md_SC04_026/nonmatchings/md_SC04_026", D_801E7B28);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7DA0);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7E08);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801E7E08(void *arg0) {
extern u8 D_801E8B2C[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801E8B2C));
func_80171A1C(arg0);
}
}
void func_801E7E60(void) {
}
@@ -80,7 +117,44 @@ INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7EC4);
void func_801E7F2C(void) {
}
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7F34);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801E7FF8(void *a0);
void func_801E7F34(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801E7FF8, 0);
func_801E7FF8(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -93,9 +167,74 @@ void func_801E7FF8(void *a0) {
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E8034);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E805C);
INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E8254);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E805C;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E805C;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801E805C(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801E8B7C[];
extern u16 D_801E8B80[];
MATRIX_801EDED4_801E805C m1;
SVECTOR_801EDED4_801E805C svec_in;
SVECTOR_801EDED4_801E805C svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801E8B7C[t];
*(s16 *)(param_1 + 0x2E) = D_801E8B80[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
u8 func_801E8254(u32 a0) {
if ((u32)(a0 - 0x384) < 0x6E) {
return 0x65;
}
if ((u32)(a0 - 0x64) < 0x1E) {
return 0x28;
}
return 0xE;
}
+175 -7
View File
@@ -90,7 +90,27 @@ void func_801E8200(void)
}
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801E821C);
extern void func_800D2624(void);
void func_801E821C(void) {
extern short D_800B9A02;
extern u16 D_80115114;
extern u16 D_80115112;
u16 v0 = (*(u16 *)&D_800B9A02);
u16 v1 = D_80115114;
v0 ^= 0x1;
if (v1 == v0) {
func_800D2624();
} else {
D_80115112++;
}
}
INCLUDE_RODATA("asm/md_SC04_027/nonmatchings/md_SC04_027", D_801E7B28);
@@ -150,7 +170,29 @@ s32 func_801EA164(void) {
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA188);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA1DC);
extern s32 func_800D1E28(void);
extern s32 func_8002D4C8(s32, s32);
extern s32 func_8001BFD0(void);
extern s32 func_800291B4(s32);
extern s32 func_80029524(void);
extern s32 func_800D0C48(s32);
s32 func_801EA1DC(s32 param_1) {
if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) {
func_800D1E28();
func_8002D4C8(0x1C, 0);
func_8001BFD0();
if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) {
func_8002D4C8(0x1D, 0);
func_800D0C48(1);
}
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA27C);
@@ -178,7 +220,22 @@ INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA380);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA3A8);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA410);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801EA410(void *arg0) {
extern u8 D_801EBBAC[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801EBBAC));
func_80171A1C(arg0);
}
}
void func_801EA468(void) {
}
@@ -199,7 +256,44 @@ INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA4CC);
void func_801EA534(void) {
}
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA53C);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801EA600(void *a0);
void func_801EA53C(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801EA600, 0);
func_801EA600(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -212,11 +306,85 @@ void func_801EA600(void *a0) {
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA63C);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA664);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA85C);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EA664;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EA664;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801EA664(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801EBBFC[];
extern u16 D_801EBC00[];
MATRIX_801EDED4_801EA664 m1;
SVECTOR_801EDED4_801EA664 svec_in;
SVECTOR_801EDED4_801EA664 svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801EBBFC[t];
*(s16 *)(param_1 + 0x2E) = D_801EBC00[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
u8 func_801EA85C(u32 a0) {
if ((u32)(a0 - 0x384) < 0x6E) {
return 0x65;
}
if ((u32)(a0 - 0x64) < 0x1E) {
return 0x28;
}
return 0x16;
}
extern void func_8001ABBC(u32, u32, void *, u32, u32);
void func_801EA88C(void) {
extern u8 D_800AF040[];
func_8001ABBC(0, 0, D_800AF040, 0, 0);
}
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA88C);
INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA8C0);
+50 -3
View File
@@ -22,7 +22,29 @@ s32 func_801E7BCC(s32 param_1) {
}
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7C18);
extern s32 func_800D1E28(void);
extern s32 func_8002D4C8(s32, s32);
extern s32 func_8001BFD0(void);
extern s32 func_800291B4(s32);
extern s32 func_80029524(void);
extern s32 func_800D0C48(s32);
s32 func_801E7C18(s32 param_1) {
if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) {
func_800D1E28();
func_8002D4C8(0x1C, 0);
func_8001BFD0();
if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) {
func_8002D4C8(0x1D, 0);
func_800D0C48(1);
}
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7CB8);
@@ -59,7 +81,22 @@ INCLUDE_RODATA("asm/md_SC04_028/nonmatchings/md_SC04_028", D_801E7B28);
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7DB4);
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7E1C);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801E7E1C(void *arg0) {
extern u8 D_801E8798[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801E8798));
func_80171A1C(arg0);
}
}
void func_801E7E74(void) {
}
@@ -95,7 +132,17 @@ INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E8048);
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E8070);
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E8208);
u8 func_801E8208(u32 a0) {
if ((u32)(a0 - 0x384) < 0x6E) {
return 0x65;
}
if ((u32)(a0 - 0x64) < 0x1E) {
return 0x28;
}
return 0xD;
}
INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E8238);
+144 -5
View File
@@ -22,7 +22,29 @@ s32 func_801E7BB8(s32 param_1) {
}
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7C04);
extern s32 func_800D1E28(void);
extern void func_8002D4C8(s32, s32);
extern s32 func_8001BFD0(void);
extern s32 func_800291B4(s32);
extern s32 func_80029524(void);
extern s32 func_800D0C48(s32);
s32 func_801E7C04(s32 param_1) {
if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) {
func_800D1E28();
((s32 (*)(s32, s32))func_8002D4C8)(0x1C, 0);
func_8001BFD0();
if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) {
((s32 (*)(s32, s32))func_8002D4C8)(0x1D, 0);
func_800D0C48(1);
}
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7CA4);
@@ -59,7 +81,22 @@ INCLUDE_RODATA("asm/md_SC04_029/nonmatchings/md_SC04_029", D_801E7B28);
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7DA0);
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7E08);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801E7E08(void *arg0) {
extern u8 D_801E850C[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801E850C));
func_80171A1C(arg0);
}
}
void func_801E7E60(void) {
}
@@ -80,7 +117,44 @@ INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7EC4);
void func_801E7F2C(void) {
}
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7F34);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801E7FF8(void *a0);
void func_801E7F34(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801E7FF8, 0);
func_801E7FF8(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -93,9 +167,74 @@ void func_801E7FF8(void *a0) {
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E8034);
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E805C);
INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E8254);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E805C;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E805C;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801E805C(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801E855C[];
extern u16 D_801E8560[];
MATRIX_801EDED4_801E805C m1;
SVECTOR_801EDED4_801E805C svec_in;
SVECTOR_801EDED4_801E805C svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801E855C[t];
*(s16 *)(param_1 + 0x2E) = D_801E8560[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
u8 func_801E8254(u32 a0) {
if ((u32)(a0 - 0x384) < 0x6E) {
return 0x65;
}
if ((u32)(a0 - 0x64) < 0x1E) {
return 0x28;
}
return 0x17;
}
+144 -5
View File
@@ -22,7 +22,29 @@ s32 func_801E7BB8(s32 param_1) {
}
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7C04);
extern s32 func_800D1E28(void);
extern s32 func_8002D4C8(s32, s32);
extern s32 func_8001BFD0(void);
extern s32 func_800291B4(s32);
extern s32 func_80029524(void);
extern s32 func_800D0C48(s32);
s32 func_801E7C04(s32 param_1) {
if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) {
func_800D1E28();
func_8002D4C8(0x1C, 0);
func_8001BFD0();
if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) {
func_8002D4C8(0x1D, 0);
func_800D0C48(1);
}
*(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1;
}
return 0;
}
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7CA4);
@@ -59,7 +81,22 @@ INCLUDE_RODATA("asm/md_SC04_030/nonmatchings/md_SC04_030", D_801E7B28);
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7DA0);
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7E08);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801E7E08(void *arg0) {
extern u8 D_801E8630[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801E8630));
func_80171A1C(arg0);
}
}
void func_801E7E60(void) {
}
@@ -80,7 +117,44 @@ INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7EC4);
void func_801E7F2C(void) {
}
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7F34);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801E7FF8(void *a0);
void func_801E7F34(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801E7FF8, 0);
func_801E7FF8(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -93,9 +167,74 @@ void func_801E7FF8(void *a0) {
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E8034);
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E805C);
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E8254);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E805C;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E805C;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801E805C(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801E8680[];
extern u16 D_801E8684[];
MATRIX_801EDED4_801E805C m1;
SVECTOR_801EDED4_801E805C svec_in;
SVECTOR_801EDED4_801E805C svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801E8680[t];
*(s16 *)(param_1 + 0x2E) = D_801E8684[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
u8 func_801E8254(u32 a0) {
if ((u32)(a0 - 0x384) < 0x6E) {
return 0x65;
}
if ((u32)(a0 - 0x64) < 0x1E) {
return 0x28;
}
return 0x29;
}
void func_801E8284(void) {
}
+110 -3
View File
@@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC05_024/nonmatchings/md_SC05_024", D_801ED988);
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDC18);
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDC80);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801EDC80(void *arg0) {
extern u8 D_801EE4EC[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801EE4EC));
func_80171A1C(arg0);
}
}
void func_801EDCD8(void) {
}
@@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDD3C);
void func_801EDDA4(void) {
}
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDDAC);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801EDE70(void *a0);
void func_801EDDAC(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801EDE70, 0);
func_801EDE70(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -93,7 +145,62 @@ void func_801EDE70(void *a0) {
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDEAC);
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDED4);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EDED4;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EDED4;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801EDED4(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801EE53C[];
extern u16 D_801EE540[];
MATRIX_801EDED4_801EDED4 m1;
SVECTOR_801EDED4_801EDED4 svec_in;
SVECTOR_801EDED4_801EDED4 svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801EE53C[t];
*(s16 *)(param_1 + 0x2E) = D_801EE540[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EE0CC);
+110 -3
View File
@@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC05_025/nonmatchings/md_SC05_025", D_801ED988);
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDC18);
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDC80);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801EDC80(void *arg0) {
extern u8 D_801EE9B4[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801EE9B4));
func_80171A1C(arg0);
}
}
void func_801EDCD8(void) {
}
@@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDD3C);
void func_801EDDA4(void) {
}
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDDAC);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801EDE70(void *a0);
void func_801EDDAC(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801EDE70, 0);
func_801EDE70(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -93,7 +145,62 @@ void func_801EDE70(void *a0) {
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDEAC);
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDED4);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EDED4;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EDED4;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801EDED4(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801EEA04[];
extern u16 D_801EEA08[];
MATRIX_801EDED4_801EDED4 m1;
SVECTOR_801EDED4_801EDED4 svec_in;
SVECTOR_801EDED4_801EDED4 svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801EEA04[t];
*(s16 *)(param_1 + 0x2E) = D_801EEA08[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EE0CC);
+141 -5
View File
@@ -90,7 +90,27 @@ void func_801EE060(void)
}
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EE07C);
extern void func_800D2624(void);
void func_801EE07C(void) {
extern short D_800B9A02;
extern u16 D_80115114;
extern u16 D_80115112;
u16 v0 = (*(u16 *)&D_800B9A02);
u16 v1 = D_80115114;
v0 ^= 0x1;
if (v1 == v0) {
func_800D2624();
} else {
D_80115112++;
}
}
INCLUDE_RODATA("asm/md_SC05_026/nonmatchings/md_SC05_026", D_801ED988);
@@ -178,7 +198,22 @@ INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F01F8);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F0220);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F0288);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801F0288(void *arg0) {
extern u8 D_801F1A34[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801F1A34));
func_80171A1C(arg0);
}
}
void func_801F02E0(void) {
}
@@ -199,7 +234,44 @@ INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F0344);
void func_801F03AC(void) {
}
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F03B4);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801F0478(void *a0);
void func_801F03B4(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801F0478, 0);
func_801F0478(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -212,11 +284,75 @@ void func_801F0478(void *a0) {
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F04B4);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F04DC);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801F04DC;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801F04DC;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801F04DC(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801F1A84[];
extern u16 D_801F1A88[];
MATRIX_801EDED4_801F04DC m1;
SVECTOR_801EDED4_801F04DC svec_in;
SVECTOR_801EDED4_801F04DC svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801F1A84[t];
*(s16 *)(param_1 + 0x2E) = D_801F1A88[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F06D4);
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F0714);
extern void func_8001ABBC(u32, u32, void *, u32, u32);
void func_801F0714(void) {
extern u8 D_800AF040[];
func_8001ABBC(0, 0, D_800AF040, 0, 0);
}
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F0748);
+16 -1
View File
@@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC05_027/nonmatchings/md_SC05_027", D_801ED988);
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EDC2C);
INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EDC94);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801EDC94(void *arg0) {
extern u8 D_801EE620[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801EE620));
func_80171A1C(arg0);
}
}
void func_801EDCEC(void) {
}
+110 -3
View File
@@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC05_028/nonmatchings/md_SC05_028", D_801ED988);
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDC18);
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDC80);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801EDC80(void *arg0) {
extern u8 D_801EE394[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801EE394));
func_80171A1C(arg0);
}
}
void func_801EDCD8(void) {
}
@@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDD3C);
void func_801EDDA4(void) {
}
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDDAC);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801EDE70(void *a0);
void func_801EDDAC(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801EDE70, 0);
func_801EDE70(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -93,7 +145,62 @@ void func_801EDE70(void *a0) {
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDEAC);
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDED4);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EDED4;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EDED4;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801EDED4(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801EE3E4[];
extern u16 D_801EE3E8[];
MATRIX_801EDED4_801EDED4 m1;
SVECTOR_801EDED4_801EDED4 svec_in;
SVECTOR_801EDED4_801EDED4 svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801EE3E4[t];
*(s16 *)(param_1 + 0x2E) = D_801EE3E8[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EE0CC);
+110 -3
View File
@@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC05_029/nonmatchings/md_SC05_029", D_801ED988);
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDC18);
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDC80);
extern s32 func_80014C54(s32, s32, s32);
extern void func_800D1724(void *);
extern void func_80171A1C(void *);
void func_801EDC80(void *arg0) {
extern u8 D_801EE4B8[];
s32 result;
result = func_80014C54(0, 0, 0x80);
if ((result << 16) != 0) {
func_800D1724(&(*(int *)D_801EE4B8));
func_80171A1C(arg0);
}
}
void func_801EDCD8(void) {
}
@@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDD3C);
void func_801EDDA4(void) {
}
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDDAC);
extern void func_8012A018(s32 a0, s32 a1);
extern void func_8012A094(s32 a0);
extern void func_801EDE70(void *a0);
void func_801EDDAC(void) {
extern s32 D_80126950;
extern s32 D_80126954;
extern s32 D_8012695C;
extern s16 D_80126968;
extern s16 D_8012696A;
extern s16 D_8012696C;
extern s16 D_80126976;
extern s16 D_80126978;
extern s16 D_8012697A;
extern u8 D_80126948[];
extern s16 D_801274E8;
extern s16 D_801274EA;
extern s16 D_801274EC;
D_80126954 = 0x190;
D_80126950 = 0x190;
D_8012695C = 0x82;
D_80126968 = 0xFB1;
D_8012696A = 0x7C7;
D_8012696C = 0;
D_80126976 = 0;
D_80126978 = -0x36;
D_8012697A = 0;
func_8012A018((s32)func_801EDE70, 0);
func_801EDE70(D_80126948);
func_8012A094((s32)D_80126948);
D_801274EA = -0x82;
D_801274E8 = 0;
D_801274EC = -0x1B0;
}
@@ -93,7 +145,62 @@ void func_801EDE70(void *a0) {
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDEAC);
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDED4);
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EDED4;
typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EDED4;
extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
void func_801EDED4(s32 param_1, s16 *param_2) {
extern s32 D_80126B58;
extern s16 D_801EE508[];
extern u16 D_801EE50C[];
MATRIX_801EDED4_801EDED4 m1;
SVECTOR_801EDED4_801EDED4 svec_in;
SVECTOR_801EDED4_801EDED4 svec_out;
u8 t;
if (func_80148800(&D_80126B58) & 3) {
t = (*(u8 *)(param_1 + 5) + 1) & 1;
*(u8 *)(param_1 + 5) = t;
*(s32 *)(param_1 + 0xC) = D_801EE508[t];
*(s16 *)(param_1 + 0x2E) = D_801EE50C[*(u8 *)(param_1 + 5)];
}
*(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA);
*(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA);
*(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA);
*(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA);
*(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA);
*(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA);
*(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA);
*(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA);
*(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0];
*(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1];
*(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2];
func_80049CAC(param_1 + 0x18, (s32)&m1);
m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0];
m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1];
m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2];
svec_in.vx = 0;
svec_in.vy = 0;
svec_in.vz = *(s32 *)(param_1 + 0x10);
((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out);
*(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx;
*(s32 *)(param_1 + 0x40) = (s32)svec_out.vy;
*(s32 *)(param_1 + 0x44) = (s32)svec_out.vz;
}
INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EE0CC);
+21 -1
View File
@@ -25587,7 +25587,27 @@ void func_8017C348(void)
}
INCLUDE_ASM("asm/ov_MAIN_012/nonmatchings/ov_MAIN_012", func_8017C364);
extern void func_800D2624(void);
void func_8017C364(void) {
extern short aD800B9A02_8017C364 __asm__("D_800B9A02");
extern u16 aD80115114_8017C364 __asm__("D_80115114");
extern u16 aD80115112_8017C364 __asm__("D_80115112");
u16 v0 = (*(u16 *)&aD800B9A02_8017C364);
u16 v1 = aD80115114_8017C364;
v0 ^= 0x1;
if (v1 == v0) {
func_800D2624();
} else {
aD80115112_8017C364++;
}
}
INCLUDE_ASM("asm/ov_MAIN_012/nonmatchings/ov_MAIN_012", func_8017C3BC);
+20 -1
View File
@@ -3495,7 +3495,26 @@ INCLUDE_ASM("asm/ov_SC01_004/nonmatchings/ov_SC01_004_jr_8017BE9C", func_8017D96
INCLUDE_ASM("asm/ov_SC01_004/nonmatchings/ov_SC01_004_jr_8017BE9C", func_8017DAB4);
INCLUDE_ASM("asm/ov_SC01_004/nonmatchings/ov_SC01_004_jr_8017BE9C", func_8017DBE0);
extern void func_800D2624(void);
void func_8017DBE0(void) {
extern u16 D_80115114;
extern u16 D_80115112;
u16 v0 = (*(u16 *)&D_800B9A02);
u16 v1 = D_80115114;
v0 ^= 0x1;
if (v1 == v0) {
func_800D2624();
} else {
D_80115112++;
}
}
extern u32 D_80190248;
extern u16 D_8011511A;
+20 -1
View File
@@ -3505,7 +3505,26 @@ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006_jr_8017C340", func_8017E10
INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006_jr_8017C340", func_8017E258);
INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006_jr_8017C340", func_8017E384);
extern void func_800D2624(void);
void func_8017E384(void) {
extern u16 D_80115114;
extern u16 D_80115112;
u16 v0 = (*(u16 *)&D_800B9A02);
u16 v1 = D_80115114;
v0 ^= 0x1;
if (v1 == v0) {
func_800D2624();
} else {
D_80115112++;
}
}
extern void func_8002D4C8(s32 a0, s32 a1);
+20 -1
View File
@@ -3490,7 +3490,26 @@ INCLUDE_ASM("asm/ov_SC01_008/nonmatchings/ov_SC01_008_jr_8017BE9C", func_8017DA9
INCLUDE_ASM("asm/ov_SC01_008/nonmatchings/ov_SC01_008_jr_8017BE9C", func_8017DBEC);
INCLUDE_ASM("asm/ov_SC01_008/nonmatchings/ov_SC01_008_jr_8017BE9C", func_8017DD18);
extern void func_800D2624(void);
void func_8017DD18(void) {
extern u16 D_80115114;
extern u16 D_80115112;
u16 v0 = (*(u16 *)&D_800B9A02);
u16 v1 = D_80115114;
v0 ^= 0x1;
if (v1 == v0) {
func_800D2624();
} else {
D_80115112++;
}
}
extern void func_8002D4C8(s32 a0, s32 a1);
+20 -1
View File
@@ -3449,7 +3449,26 @@ INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009_jr_8017BE9C", func_8017D93
INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009_jr_8017BE9C", func_8017DA8C);
INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009_jr_8017BE9C", func_8017DBB8);
extern void func_800D2624(void);
void func_8017DBB8(void) {
extern u16 D_80115114;
extern u16 D_80115112;
u16 v0 = (*(u16 *)&D_800B9A02);
u16 v1 = D_80115114;
v0 ^= 0x1;
if (v1 == v0) {
func_800D2624();
} else {
D_80115112++;
}
}
extern void func_8002D4C8(s32 a0, s32 a1);
+20 -2
View File
@@ -4563,9 +4563,27 @@ void func_80181070(void) {
}
INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024_jr_8017DF84", func_801810A4);
INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024_jr_8017DF84", func_801810D8);
extern void func_8001ABBC(u32, u32, void *, u32, u32);
void func_801810A4(void) {
extern u8 D_800AEE90[];
func_8001ABBC(0, 0, D_800AEE90, 0, 0);
}
extern void func_8001ABBC(u32, u32, void *, u32, u32);
void func_801810D8(void) {
extern u8 D_800AEE98[];
func_8001ABBC(0, 0, D_800AEE98, 0, 0);
}
extern void func_8013CB84(void);
extern void func_800D06E8(void);
+30 -3
View File
@@ -6152,11 +6152,38 @@ INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_jr_8017AE2C", func_8018261
INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_jr_8017AE2C", func_8018270C);
INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_jr_8017AE2C", func_8018278C);
INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_jr_8017AE2C", func_801827C0);
INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_jr_8017AE2C", func_801827F4);
extern void func_8001ABBC(u32, u32, void *, u32, u32);
void func_8018278C(void) {
extern u8 D_800AF420[];
func_8001ABBC(0, 0, D_800AF420, 0, 0);
}
extern void func_8001ABBC(u32, u32, void *, u32, u32);
void func_801827C0(void) {
extern u8 D_800AF428[];
func_8001ABBC(0, 0, D_800AF428, 0, 0);
}
extern void func_8001ABBC(u32, u32, void *, u32, u32);
void func_801827F4(void) {
extern u8 D_800AF430[];
func_8001ABBC(0, 0, D_800AF430, 0, 0);
}
void func_80182828(void *a0, s32 a1)
+10 -1
View File
@@ -3670,7 +3670,16 @@ INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002_jr_8017C8D0", func_8018184
void func_801819C4(void) {
}
INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002_jr_8017C8D0", func_801819CC);
extern void func_8001ABBC(u32, u32, void *, u32, u32);
void func_801819CC(void) {
extern u8 D_800AF568[];
func_8001ABBC(0, 0, D_800AF568, 0, 0);
}
extern s16 D_8019F070;
void func_80181A00(void) {
+10 -1
View File
@@ -4544,6 +4544,15 @@ INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010_jr_8017AE2C", func_80181E5
INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010_jr_8017AE2C", func_80181EEC);
INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010_jr_8017AE2C", func_80181F40);
extern void func_8001ABBC(u32, u32, void *, u32, u32);
void func_80181F40(void) {
extern u8 D_800AF608[];
func_8001ABBC(0, 0, D_800AF608, 0, 0);
}