mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-01 23:52:03 -04:00
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:
+523
-526
File diff suppressed because it is too large
Load Diff
+13
-13
@@ -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
@@ -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% |
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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) {
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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) {
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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) {
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user