mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 13:33:34 -04:00
build(phase-35): T3 — ov_SC03_119 TWIN_OF ov_SC03_118 and ov_SC02_003 TWIN_OF ov_SC02_000 (equal carves): the twins' source dirs deleted, create_c_files: False, both twins and both primaries BYTE-IDENTICAL, audit-binaries OK, dedup-check per twin 0 failed
This commit is contained in:
@@ -0,0 +1,135 @@
|
||||
splat 0.41.0 (powered by spimdisasm 1.41.0)
|
||||
|
||||
0%| | 0/1096 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.us): 0%| | 0/1096 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.us): 100%|██████████| 1096/1096 [00:00<00:00, 204736.88it/s]
|
||||
|
||||
0%| | 0/25 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.resident): 0%| | 0/25 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.resident): 100%|██████████| 25/25 [00:00<00:00, 253892.49it/s]
|
||||
|
||||
0%| | 0/5 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.ov_SC02_003): 0%| | 0/5 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.ov_SC02_003): 100%|██████████| 5/5 [00:00<00:00, 71575.15it/s]
|
||||
|
||||
0%| | 0/1 [00:00<?, ?it/s]
|
||||
Scanning ov_SC02_003: 0%| | 0/1 [00:00<?, ?it/s]
|
||||
Rodata segment 'ov_SC02_003' may belong to the text segment 'ov_SC02_003'
|
||||
Based on the usage from the function func_801299C8 to the symbol jtbl_801E57A0
|
||||
|
||||
The rodata segment 'ov_SC02_003' has jumptables that are not aligned properly file-wise, indicating one or more likely file split.
|
||||
File split suggestions for this segment will follow in config yaml format:
|
||||
- [0xBD65C, .rodata]
|
||||
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_8012ACE0' may belong to the text segment 'ov_SC02_003_jr_8012ACE0'
|
||||
Based on the usage from the function func_8012ACE0 to the symbol jtbl_801E587C
|
||||
|
||||
The rodata segment 'ov_SC02_003_jr_8012ACE0' has jumptables that are not aligned properly file-wise, indicating one or more likely file split.
|
||||
File split suggestions for this segment will follow in config yaml format:
|
||||
- [0xBD7F0, .rodata]
|
||||
- [0xBD804, .rodata]
|
||||
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_80135888' may belong to the text segment 'ov_SC02_003_jr_80135888'
|
||||
Based on the usage from the function func_80135888 to the symbol jtbl_801E5974
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_80135A4C' may belong to the text segment 'ov_SC02_003_jr_80135A4C'
|
||||
Based on the usage from the function func_80135A4C to the symbol jtbl_801E598C
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_80135D20' may belong to the text segment 'ov_SC02_003_jr_80135D20'
|
||||
Based on the usage from the function func_80135D20 to the symbol jtbl_801E59A4
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_801380E0' may belong to the text segment 'ov_SC02_003_jr_801380E0'
|
||||
Based on the usage from the function func_801380E0 to the symbol jtbl_801E59F4
|
||||
|
||||
Rodata segment 'ov_SC02_003_o0c' may belong to the text segment 'ov_SC02_003_o0c'
|
||||
Based on the usage from the function func_8013B83C to the symbol jtbl_801E5A58
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_8013F350' may belong to the text segment 'ov_SC02_003_jr_8013F350'
|
||||
Based on the usage from the function func_8013F350 to the symbol jtbl_801E6064
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_8013FFD8' may belong to the text segment 'ov_SC02_003_jr_8013FFD8'
|
||||
Based on the usage from the function func_8013FFD8 to the symbol jtbl_801E609C
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_80140608' may belong to the text segment 'ov_SC02_003_jr_80140608'
|
||||
Based on the usage from the function func_80140608 to the symbol jtbl_801E610C
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_8015444C' may belong to the text segment 'ov_SC02_003_jr_8015444C'
|
||||
Based on the usage from the function func_8015444C to the symbol jtbl_801E6138
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_80154C24' may belong to the text segment 'ov_SC02_003_jr_80154C24'
|
||||
Based on the usage from the function func_80154C24 to the symbol jtbl_801E6214
|
||||
|
||||
The rodata segment 'ov_SC02_003_jr_80154C24' has jumptables that are not aligned properly file-wise, indicating one or more likely file split.
|
||||
File split suggestions for this segment will follow in config yaml format:
|
||||
- [0xBE0E0, .rodata]
|
||||
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_801588CC' may belong to the text segment 'ov_SC02_003_jr_801588CC'
|
||||
Based on the usage from the function func_801588CC to the symbol jtbl_801E6258
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_80159C84' may belong to the text segment 'ov_SC02_003_jr_80159C84'
|
||||
Based on the usage from the function func_80159C84 to the symbol jtbl_801E6300
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_8015A3C8' may belong to the text segment 'ov_SC02_003_jr_8015A3C8'
|
||||
Based on the usage from the function func_8015A3C8 to the symbol jtbl_801E6338
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_8015AE2C' may belong to the text segment 'ov_SC02_003_jr_8015AE2C'
|
||||
Based on the usage from the function func_8015AE2C to the symbol jtbl_801E6358
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_8015C32C' may belong to the text segment 'ov_SC02_003_jr_8015C32C'
|
||||
Based on the usage from the function func_8015C32C to the symbol jtbl_801E6398
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_8016AB6C' may belong to the text segment 'ov_SC02_003_jr_8016AB6C'
|
||||
Based on the usage from the function func_8016AB6C to the symbol jtbl_801E63CC
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_80171B4C' may belong to the text segment 'ov_SC02_003_jr_80171B4C'
|
||||
Based on the usage from the function func_80171B4C to the symbol jtbl_801E644C
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_801734BC' may belong to the text segment 'ov_SC02_003_jr_801734BC'
|
||||
Based on the usage from the function func_801734BC to the symbol jtbl_801E646C
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_801789AC' may belong to the text segment 'ov_SC02_003_jr_801789AC'
|
||||
Based on the usage from the function func_801789AC to the symbol jtbl_801E6610
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_80178D40' may belong to the text segment 'ov_SC02_003_jr_80178D40'
|
||||
Based on the usage from the function func_80178D40 to the symbol jtbl_801E6628
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_8017A4AC' may belong to the text segment 'ov_SC02_003_jr_8017A4AC'
|
||||
Based on the usage from the function func_8017A4AC to the symbol jtbl_801E6830
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_8017AE2C' may belong to the text segment 'ov_SC02_003_jr_8017AE2C'
|
||||
Based on the usage from the function func_8017AE2C to the symbol jtbl_801E68C0
|
||||
|
||||
The rodata segment 'ov_SC02_003_jr_8017AE2C' has jumptables that are not aligned properly file-wise, indicating one or more likely file split.
|
||||
File split suggestions for this segment will follow in config yaml format:
|
||||
- [0xBE77C, .rodata]
|
||||
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_8017EA84' may belong to the text segment 'ov_SC02_003_jr_8017EA84'
|
||||
Based on the usage from the function func_8017EA84 to the symbol jtbl_801E6954
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_8017F950' may belong to the text segment 'ov_SC02_003_jr_8017F950'
|
||||
Based on the usage from the function func_8017F950 to the symbol jtbl_801E6A14
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_8017FB24' may belong to the text segment 'ov_SC02_003_jr_8017FB24'
|
||||
Based on the usage from the function func_8017FB24 to the symbol jtbl_801E6A7C
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_8017FCB0' may belong to the text segment 'ov_SC02_003_jr_8017FCB0'
|
||||
Based on the usage from the function func_8017FCB0 to the symbol jtbl_801E6A9C
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_801808C4' may belong to the text segment 'ov_SC02_003_jr_801808C4'
|
||||
Based on the usage from the function func_801808C4 to the symbol jtbl_801E6AFC
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_80180D6C' may belong to the text segment 'ov_SC02_003_jr_80180D6C'
|
||||
Based on the usage from the function func_80180D6C to the symbol jtbl_801E6B3C
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_80181538' may belong to the text segment 'ov_SC02_003_jr_80181538'
|
||||
Based on the usage from the function func_80181538 to the symbol jtbl_801E6BFC
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_80181698' may belong to the text segment 'ov_SC02_003_jr_80181698'
|
||||
Based on the usage from the function func_80181698 to the symbol jtbl_801E6C3C
|
||||
|
||||
Rodata segment 'ov_SC02_003_jr_8018173C' may belong to the text segment 'ov_SC02_003_jr_8018173C'
|
||||
Based on the usage from the function func_8018173C to the symbol jtbl_801E6C5C
|
||||
@@ -0,0 +1,111 @@
|
||||
splat 0.41.0 (powered by spimdisasm 1.41.0)
|
||||
|
||||
0%| | 0/1096 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.us): 0%| | 0/1096 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.us): 100%|██████████| 1096/1096 [00:00<00:00, 241576.39it/s]
|
||||
|
||||
0%| | 0/25 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.resident): 0%| | 0/25 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.resident): 100%|██████████| 25/25 [00:00<00:00, 364088.89it/s]
|
||||
|
||||
0%| | 0/5 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.ov_SC03_119): 0%| | 0/5 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.ov_SC03_119): 100%|██████████| 5/5 [00:00<00:00, 78545.02it/s]
|
||||
|
||||
0%| | 0/1 [00:00<?, ?it/s]
|
||||
Scanning ov_SC03_119: 0%| | 0/1 [00:00<?, ?it/s]
|
||||
Rodata segment 'ov_SC03_119' may belong to the text segment 'ov_SC03_119'
|
||||
Based on the usage from the function func_801299C8 to the symbol jtbl_801D1CD0
|
||||
|
||||
The rodata segment 'ov_SC03_119' has jumptables that are not aligned properly file-wise, indicating one or more likely file split.
|
||||
File split suggestions for this segment will follow in config yaml format:
|
||||
- [0xA9B8C, .rodata]
|
||||
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_8012ACE0' may belong to the text segment 'ov_SC03_119_jr_8012ACE0'
|
||||
Based on the usage from the function func_8012ACE0 to the symbol jtbl_801D1DAC
|
||||
|
||||
The rodata segment 'ov_SC03_119_jr_8012ACE0' has jumptables that are not aligned properly file-wise, indicating one or more likely file split.
|
||||
File split suggestions for this segment will follow in config yaml format:
|
||||
- [0xA9D20, .rodata]
|
||||
- [0xA9D34, .rodata]
|
||||
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_80135888' may belong to the text segment 'ov_SC03_119_jr_80135888'
|
||||
Based on the usage from the function func_80135888 to the symbol jtbl_801D1EA4
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_80135A4C' may belong to the text segment 'ov_SC03_119_jr_80135A4C'
|
||||
Based on the usage from the function func_80135A4C to the symbol jtbl_801D1EBC
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_80135D20' may belong to the text segment 'ov_SC03_119_jr_80135D20'
|
||||
Based on the usage from the function func_80135D20 to the symbol jtbl_801D1ED4
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_801380E0' may belong to the text segment 'ov_SC03_119_jr_801380E0'
|
||||
Based on the usage from the function func_801380E0 to the symbol jtbl_801D1F24
|
||||
|
||||
Rodata segment 'ov_SC03_119_o0c' may belong to the text segment 'ov_SC03_119_o0c'
|
||||
Based on the usage from the function func_8013B83C to the symbol jtbl_801D1F88
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_8013F350' may belong to the text segment 'ov_SC03_119_jr_8013F350'
|
||||
Based on the usage from the function func_8013F350 to the symbol jtbl_801D2594
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_8013FFD8' may belong to the text segment 'ov_SC03_119_jr_8013FFD8'
|
||||
Based on the usage from the function func_8013FFD8 to the symbol jtbl_801D25CC
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_80140608' may belong to the text segment 'ov_SC03_119_jr_80140608'
|
||||
Based on the usage from the function func_80140608 to the symbol jtbl_801D263C
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_8015444C' may belong to the text segment 'ov_SC03_119_jr_8015444C'
|
||||
Based on the usage from the function func_8015444C to the symbol jtbl_801D2668
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_80154C24' may belong to the text segment 'ov_SC03_119_jr_80154C24'
|
||||
Based on the usage from the function func_80154C24 to the symbol jtbl_801D2744
|
||||
|
||||
The rodata segment 'ov_SC03_119_jr_80154C24' has jumptables that are not aligned properly file-wise, indicating one or more likely file split.
|
||||
File split suggestions for this segment will follow in config yaml format:
|
||||
- [0xAA610, .rodata]
|
||||
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_801588CC' may belong to the text segment 'ov_SC03_119_jr_801588CC'
|
||||
Based on the usage from the function func_801588CC to the symbol jtbl_801D2788
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_80159C84' may belong to the text segment 'ov_SC03_119_jr_80159C84'
|
||||
Based on the usage from the function func_80159C84 to the symbol jtbl_801D2830
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_8015A3C8' may belong to the text segment 'ov_SC03_119_jr_8015A3C8'
|
||||
Based on the usage from the function func_8015A3C8 to the symbol jtbl_801D2868
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_8015AE2C' may belong to the text segment 'ov_SC03_119_jr_8015AE2C'
|
||||
Based on the usage from the function func_8015AE2C to the symbol jtbl_801D2888
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_8015C32C' may belong to the text segment 'ov_SC03_119_jr_8015C32C'
|
||||
Based on the usage from the function func_8015C32C to the symbol jtbl_801D28C8
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_8016AB6C' may belong to the text segment 'ov_SC03_119_jr_8016AB6C'
|
||||
Based on the usage from the function func_8016AB6C to the symbol jtbl_801D28FC
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_80171B4C' may belong to the text segment 'ov_SC03_119_jr_80171B4C'
|
||||
Based on the usage from the function func_80171B4C to the symbol jtbl_801D297C
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_801734BC' may belong to the text segment 'ov_SC03_119_jr_801734BC'
|
||||
Based on the usage from the function func_801734BC to the symbol jtbl_801D299C
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_801789AC' may belong to the text segment 'ov_SC03_119_jr_801789AC'
|
||||
Based on the usage from the function func_801789AC to the symbol jtbl_801D2B40
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_80178D40' may belong to the text segment 'ov_SC03_119_jr_80178D40'
|
||||
Based on the usage from the function func_80178D40 to the symbol jtbl_801D2B58
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_8017A4AC' may belong to the text segment 'ov_SC03_119_jr_8017A4AC'
|
||||
Based on the usage from the function func_8017A4AC to the symbol jtbl_801D2D60
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_8017AE2C' may belong to the text segment 'ov_SC03_119_jr_8017AE2C'
|
||||
Based on the usage from the function func_8017AE2C to the symbol jtbl_801D2DF0
|
||||
|
||||
The rodata segment 'ov_SC03_119_jr_8017AE2C' has jumptables that are not aligned properly file-wise, indicating one or more likely file split.
|
||||
File split suggestions for this segment will follow in config yaml format:
|
||||
- [0xAACAC, .rodata]
|
||||
|
||||
|
||||
Rodata segment 'ov_SC03_119_jr_8017FB84' may belong to the text segment 'ov_SC03_119_jr_8017FB84'
|
||||
Based on the usage from the function func_8017FB84 to the symbol jtbl_801D2E30
|
||||
+6
-2
@@ -316,7 +316,9 @@ ov_SC02_003_VRAM_BASE := 0x80128158
|
||||
ov_SC02_003_TEXT_LO := 0x80128158
|
||||
ov_SC02_003_TEXT_HI := 0x801E8867
|
||||
ov_SC02_003_ASM_DIR := asm/ov_SC02_003
|
||||
ov_SC02_003_SRC_DIR := src/ov_SC02_003
|
||||
# Phase 35 T3: ov_SC02_003 is a TWIN of ov_SC02_000 (identical payload): one source directory per payload (see ov_SC01_006).
|
||||
ov_SC02_003_TWIN_OF := ov_SC02_000
|
||||
ov_SC02_003_SRC_DIR := src/ov_SC02_000
|
||||
ov_SC02_003_UNDEF_SYMS := build/ov_SC02_003/undefined_syms_auto.txt
|
||||
ov_SC02_003_UNDEF_FUNCS := build/ov_SC02_003/undefined_funcs_auto.txt
|
||||
|
||||
@@ -2882,7 +2884,9 @@ ov_SC03_119_VRAM_BASE := 0x80128158
|
||||
ov_SC03_119_TEXT_LO := 0x80128158
|
||||
ov_SC03_119_TEXT_HI := 0x801D484F
|
||||
ov_SC03_119_ASM_DIR := asm/ov_SC03_119
|
||||
ov_SC03_119_SRC_DIR := src/ov_SC03_119
|
||||
# Phase 35 T3: ov_SC03_119 is a TWIN of ov_SC03_118 (identical payload): one source directory per payload (see ov_SC01_006).
|
||||
ov_SC03_119_TWIN_OF := ov_SC03_118
|
||||
ov_SC03_119_SRC_DIR := src/ov_SC03_118
|
||||
ov_SC03_119_UNDEF_SYMS := build/ov_SC03_119/undefined_syms_auto.txt
|
||||
ov_SC03_119_UNDEF_FUNCS := build/ov_SC03_119/undefined_funcs_auto.txt
|
||||
|
||||
|
||||
@@ -37,7 +37,10 @@ options:
|
||||
compiler: PSYQ
|
||||
|
||||
asm_path: asm/ov_SC02_003
|
||||
# Phase 35 T3: a TWIN of ov_SC02_000 — the source lives ONCE in src/ov_SC02_000/ (config/overlays.mk `ov_SC02_003_TWIN_OF`);
|
||||
# src_path stays the twin's own name (the .ld's object paths), and splat must never recreate stub .c files for the deleted dir.
|
||||
src_path: src/ov_SC02_003
|
||||
create_c_files: False
|
||||
# asset_path scoped per-alias so a `bin` subseg (the trailing-partial-word carve, below) lands at
|
||||
# assets/ov_SC02_003/*.bin and never collides with another overlay's same-named asset. The Makefile's
|
||||
# build/assets/%.o rule incbin's it into a linkable object.
|
||||
|
||||
@@ -37,7 +37,10 @@ options:
|
||||
compiler: PSYQ
|
||||
|
||||
asm_path: asm/ov_SC03_119
|
||||
# Phase 35 T3: a TWIN of ov_SC03_118 — the source lives ONCE in src/ov_SC03_118/ (config/overlays.mk `ov_SC03_119_TWIN_OF`);
|
||||
# src_path stays the twin's own name (the .ld's object paths), and splat must never recreate stub .c files for the deleted dir.
|
||||
src_path: src/ov_SC03_119
|
||||
create_c_files: False
|
||||
# asset_path scoped per-alias so a `bin` subseg (the trailing-partial-word carve, below) lands at
|
||||
# assets/ov_SC03_119/*.bin and never collides with another overlay's same-named asset. The Makefile's
|
||||
# build/assets/%.o rule incbin's it into a linkable object.
|
||||
|
||||
@@ -1,859 +0,0 @@
|
||||
#include "common.h"
|
||||
#include "../shared/engine_core.h"
|
||||
|
||||
DEFINE_func_80128158() /* dedup: shared engine-core @0x80128158 (src/shared) */
|
||||
|
||||
DEFINE_func_80128178() /* dedup: shared engine-core @0x80128178 (src/shared) */
|
||||
|
||||
DEFINE_func_80128198() /* dedup: shared engine-core @0x80128198 (src/shared) */
|
||||
|
||||
DEFINE_func_801281B8() /* dedup: shared engine-core @0x801281B8 (src/shared) */
|
||||
|
||||
DEFINE_func_801281D8() /* dedup: shared engine-core @0x801281D8 (src/shared) */
|
||||
|
||||
DEFINE_func_801281F8() /* dedup: shared engine-core @0x801281F8 (src/shared) */
|
||||
|
||||
|
||||
extern s32 D_801E5794;
|
||||
|
||||
s32 func_80128218(void) {
|
||||
return D_801E5794;
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_80128228() /* dedup: shared engine-core @0x80128228 (src/shared) */
|
||||
|
||||
DEFINE_func_80128248() /* dedup: shared engine-core @0x80128248 (src/shared) */
|
||||
|
||||
DEFINE_func_80128268() /* dedup: shared engine-core @0x80128268 (src/shared) */
|
||||
|
||||
|
||||
extern u16 D_800B99F6;
|
||||
extern void (*D_8018AE94[])(void);
|
||||
|
||||
void func_80128288(void) {
|
||||
u32 v1;
|
||||
v1 = D_800B99F6;
|
||||
if (v1 < 9) {
|
||||
D_8018AE94[v1]();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_801282CC() /* dedup: shared engine-core @0x801282CC (src/shared) */
|
||||
|
||||
DEFINE_func_801282EC() /* dedup: shared engine-core @0x801282EC (src/shared) */
|
||||
|
||||
DEFINE_func_8012832C() /* dedup: shared engine-core @0x8012832C (src/shared) */
|
||||
|
||||
DEFINE_func_80128420() /* dedup: shared engine-core @0x80128420 (src/shared) */
|
||||
|
||||
DEFINE_func_801284B8() /* dedup: shared engine-core @0x801284B8 (src/shared) */
|
||||
|
||||
DEFINE_func_801284F0() /* dedup: shared engine-core @0x801284F0 (src/shared) */
|
||||
|
||||
DEFINE_func_8012853C() /* dedup: shared engine-core @0x8012853C (src/shared) */
|
||||
|
||||
DEFINE_func_80128564() /* dedup: shared engine-core @0x80128564 (src/shared) */
|
||||
|
||||
DEFINE_func_801285D4() /* dedup: shared engine-core @0x801285D4 (src/shared) */
|
||||
|
||||
|
||||
extern s32 func_800D18DC(void);
|
||||
extern void func_8014607C(void);
|
||||
extern void func_801287B8(void);
|
||||
extern s32 func_80011A3C(void);
|
||||
extern s32 D_801E6CCC;
|
||||
|
||||
void func_801285E4(void)
|
||||
{
|
||||
__asm__ __volatile__(
|
||||
".set noreorder\n"
|
||||
"addiu $sp, $sp, -24\n"
|
||||
"lui $v1, 0x1f80\n"
|
||||
"ori $v1, $v1, 0x03fc\n"
|
||||
"sw $ra, 16($sp)\n"
|
||||
"addu $t0, $v1, $zero\n"
|
||||
"sw $sp, 0($t0)\n"
|
||||
"addiu $t0, $t0, -4\n"
|
||||
"addu $sp, $t0, $zero\n"
|
||||
"jal func_800D18DC\n"
|
||||
"lui $at, %%hi(D_801E6CCC)\n"
|
||||
"sw $v0, %%lo(D_801E6CCC)($at)\n"
|
||||
"addiu $sp, $sp, 4\n"
|
||||
"lw $sp, 0($sp)\n"
|
||||
"jal func_8014607C\n"
|
||||
"lui $v1, 0x1f80\n"
|
||||
"ori $v1, $v1, 0x03fc\n"
|
||||
"addu $t0, $v1, $zero\n"
|
||||
"sw $sp, 0($t0)\n"
|
||||
"addiu $t0, $t0, -4\n"
|
||||
"addu $sp, $t0, $zero\n"
|
||||
"jal func_801287B8\n"
|
||||
"addiu $sp, $sp, 4\n"
|
||||
"lw $sp, 0($sp)\n"
|
||||
"lui $v0, %%hi(D_801E6CCC)\n"
|
||||
"lw $v0, %%lo(D_801E6CCC)($v0)\n"
|
||||
"nop\n"
|
||||
"beqz $v0, 1f\n"
|
||||
"nop\n"
|
||||
"jal func_80011A3C\n"
|
||||
"1:\n"
|
||||
"lw $ra, 16($sp)\n"
|
||||
"addiu $sp, $sp, 24\n"
|
||||
: : : "memory");
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_80128678() /* dedup: shared engine-core @0x80128678 (src/shared) */
|
||||
|
||||
|
||||
// @class: other
|
||||
// @stuck: none — MATCH (handwritten full inline-asm scratchpad-stack-switch wrapper w/ branch)
|
||||
/*
|
||||
* HANDWRITTEN scratchpad-stack-switch dispatcher (same idiom as func_80128564 /
|
||||
* the func_8014ED28 family): repoints $sp into the D-cache scratchpad stack held
|
||||
* at *(0x1F8003FC), calls func_800D19F0, stashes its $v0 result through D_801E6CCC,
|
||||
* restores $sp, then dispatches on the stored value:
|
||||
* if (D_801E6CCC != 0) { func_8001903C(); func_80018FC8(); }
|
||||
* else { func_8014607C(); <scratchpad-switch> func_801287B8(); }
|
||||
* Manipulating $sp is not expressible in C; full inline asm (manages its own frame).
|
||||
*
|
||||
* NOTE (maspsx --aspsx-version=2.56): the inline ".set noreorder" is written with a
|
||||
* SPACE, so maspsx's own is_reorder tracker stays True and it auto-fills EVERY
|
||||
* jal/j/branch delay slot with a nop (GNU as honors noreorder and adds none). So do
|
||||
* NOT write explicit delay-slot nops after jal/j/bne — that yields a double nop.
|
||||
* bnez is written as `bne $v0,$zero` so maspsx recognizes it (bnez isn't in its
|
||||
* branch set). The load-delay nop after `lw $v0,%lo(...)($v0)` is auto-inserted too.
|
||||
* %hi/%lo escaped as %%hi/%%lo (bare % is an operand placeholder).
|
||||
*/
|
||||
void func_80128714(void) {
|
||||
__asm__ __volatile__(
|
||||
".set noreorder\n"
|
||||
"addiu $sp, $sp, -24\n"
|
||||
"lui $v1, 0x1f80\n"
|
||||
"ori $v1, $v1, 0x03fc\n"
|
||||
"sw $ra, 16($sp)\n"
|
||||
"addu $t0, $v1, $zero\n"
|
||||
"sw $sp, 0($t0)\n"
|
||||
"addiu $t0, $t0, -4\n"
|
||||
"addu $sp, $t0, $zero\n"
|
||||
"jal func_800D19F0\n"
|
||||
"lui $at, %%hi(D_801E6CCC)\n"
|
||||
"sw $v0, %%lo(D_801E6CCC)($at)\n"
|
||||
"addiu $sp, $sp, 4\n"
|
||||
"lw $sp, 0($sp)\n"
|
||||
"lui $v0, %%hi(D_801E6CCC)\n"
|
||||
"lw $v0, %%lo(D_801E6CCC)($v0)\n"
|
||||
"bne $v0, $zero, 1f\n"
|
||||
"jal func_8014607C\n"
|
||||
"lui $v1, 0x1f80\n"
|
||||
"ori $v1, $v1, 0x03fc\n"
|
||||
"addu $t0, $v1, $zero\n"
|
||||
"sw $sp, 0($t0)\n"
|
||||
"addiu $t0, $t0, -4\n"
|
||||
"addu $sp, $t0, $zero\n"
|
||||
"jal func_801287B8\n"
|
||||
"addiu $sp, $sp, 4\n"
|
||||
"lw $sp, 0($sp)\n"
|
||||
"j 2f\n"
|
||||
"1:\n"
|
||||
"jal func_8001903C\n"
|
||||
"jal func_80018FC8\n"
|
||||
"2:\n"
|
||||
"lw $ra, 16($sp)\n"
|
||||
"addiu $sp, $sp, 24\n"
|
||||
: : : "memory");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// @class: remat
|
||||
// @stuck: none — MATCH (62 ins). D_801E87C0 read needed the address REMATERIALIZED
|
||||
// (lui;addiu;lw 0(reg), not the folded lui;lw %lo) AND pinned to $a0. volatile forces the
|
||||
// remat; register __asm__("$4") forces the a0 allocation (gcc otherwise picks v0). Both levers
|
||||
// required — pin-alone folds, volatile-alone lands in v0.
|
||||
|
||||
extern s32 D_80126B58;
|
||||
extern s32 D_801E87C0;
|
||||
extern u16 D_800B99DA;
|
||||
extern u8 D_800B9A64;
|
||||
|
||||
extern void func_80129CF8(void);
|
||||
extern void func_8017849C(void);
|
||||
extern void func_8014FDF4(struct S8014FDF4 *a0);
|
||||
extern s32 func_801505FC(s32 a0);
|
||||
extern void func_801508B4(void *a0);
|
||||
extern void func_80165E90(void);
|
||||
extern void func_801627E8(void);
|
||||
extern void func_80162B1C(void);
|
||||
extern void func_80165CA0(void);
|
||||
extern void func_80129010(void);
|
||||
extern void func_8013CA14(void);
|
||||
extern void func_800190AC(void);
|
||||
extern void func_8012956C(void);
|
||||
extern void func_8016E95C(void);
|
||||
extern void func_801754A8(void);
|
||||
extern void func_8013BC7C(void);
|
||||
extern void func_8013BCDC(void);
|
||||
extern void func_801379FC(void);
|
||||
extern void func_8001212C(void);
|
||||
|
||||
void func_801287B8(void) {
|
||||
func_80129CF8();
|
||||
func_8017849C();
|
||||
((void (*)(void *))func_8014FDF4)(&D_80126B58);
|
||||
((void (*)(void *))func_801505FC)(&D_80126B58);
|
||||
func_801508B4(&D_80126B58);
|
||||
func_80165E90();
|
||||
func_801627E8();
|
||||
func_80162B1C();
|
||||
func_80165CA0();
|
||||
func_80129010();
|
||||
func_8013CA14();
|
||||
func_800190AC();
|
||||
func_8012956C();
|
||||
func_8016E95C();
|
||||
func_801754A8();
|
||||
{
|
||||
/* D_801E87C0 read: the target materializes &sym into $a0 then lw 0($a0) (not the folded
|
||||
* lui;lw %lo). volatile forces the rematerialize; the $4 pin forces the a0 allocation. */
|
||||
register volatile s32 *p __asm__("$4") = &D_801E87C0;
|
||||
if (*p == 0) {
|
||||
func_8013BC7C();
|
||||
}
|
||||
}
|
||||
func_8013BCDC();
|
||||
func_801379FC();
|
||||
D_800B99DA++;
|
||||
if (D_800B9A64 != 0) {
|
||||
func_8001212C();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 sp10);
|
||||
extern s32 D_801E5794;
|
||||
extern u8 D_800AEFD0;
|
||||
|
||||
s32 func_801288B0(void) {
|
||||
func_8001ABBC(0, 0, &D_800AEFD0, D_801E5794, 0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// @class: remat
|
||||
// @stuck: none — MATCH. &D_800C7C60 CSE'd once via pointer local `p` so the same reg feeds the *p=0x60 store AND arg5; writing D_800C7C60=0x60 directly would emit a 2nd address materialization (+1 ins). Mirrors matched sibling func_80128998.
|
||||
|
||||
extern int D_800C7C60;
|
||||
extern int *D_800C7C64;
|
||||
extern int D_800A2E20;
|
||||
extern int D_800AF558;
|
||||
extern int D_801E5794;
|
||||
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 sp10);
|
||||
|
||||
int func_801288E8(int arg0)
|
||||
{
|
||||
int *p = &D_800C7C60;
|
||||
*p = 0x60;
|
||||
D_800C7C64 = &D_800A2E20;
|
||||
((void (*)(int, int, int *, int, int *))func_8001ABBC)(0, 0, &D_800AF558, D_801E5794, p);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// @class: remat
|
||||
// @stuck: none — MATCH (pointer-var forces single materialization of &D_800C7C60, reused as store base + arg5)
|
||||
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 sp10);
|
||||
extern int D_800C7C60;
|
||||
extern int *D_800C7C64;
|
||||
extern int D_800A2E20;
|
||||
extern u8 D_800AF560;
|
||||
extern s32 D_801E5794;
|
||||
|
||||
s32 func_80128940(s32 _arg0)
|
||||
{
|
||||
s32 *p = &D_800C7C60;
|
||||
*p = 0x5E;
|
||||
D_800C7C64 = &D_800A2E20;
|
||||
((void (*)(s32, s32, void *, s32, void *))func_8001ABBC)(0, 0, &D_800AF560, D_801E5794, p);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// @class: remat
|
||||
// @stuck: none — MATCH. &D_800C7C60 must be CSE'd once (pointer local `p`) so the same reg feeds the *p=13 store AND arg5; writing D_800C7C60=13 directly emits a 2nd address materialization (+1 ins).
|
||||
|
||||
extern int D_800C7C60;
|
||||
extern int *D_800C7C64;
|
||||
extern int D_800A2E20;
|
||||
extern int D_800AECB0;
|
||||
extern s32 D_801E5794;
|
||||
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 sp10);
|
||||
|
||||
s32 func_80128998(void)
|
||||
{
|
||||
int *p = &D_800C7C60;
|
||||
*p = 13;
|
||||
D_800C7C64 = &D_800A2E20;
|
||||
((void (*)(int, int, int *, int, int *))func_8001ABBC)(0, 0, &D_800AECB0, D_801E5794, p);
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern s32 D_801E5794;
|
||||
extern u8 D_800AECB8;
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
|
||||
s32 func_801289F0(void) {
|
||||
func_8001ABBC(0, 0, &D_800AECB8, D_801E5794, 0);
|
||||
}
|
||||
|
||||
|
||||
extern void func_80011B7C(int);
|
||||
extern void func_80011C10(void);
|
||||
extern u16 D_800B99F6;
|
||||
extern s16 D_800B9A00;
|
||||
extern M2C_UNK (*D_8018ABD0)();
|
||||
extern s16 (*D_8018ABD4)();
|
||||
|
||||
void func_80128A28(void) {
|
||||
s16 temp_v0;
|
||||
|
||||
switch (D_800B99F6) { /* irregular */
|
||||
case 1:
|
||||
D_8018ABD0();
|
||||
/* fallthrough */
|
||||
case 0:
|
||||
func_80011C10();
|
||||
return;
|
||||
case 2:
|
||||
temp_v0 = D_8018ABD4();
|
||||
if (temp_v0 != 0) {
|
||||
if (temp_v0 < 0) {
|
||||
func_80011B7C(0);
|
||||
D_800B9A00 = 1;
|
||||
return;
|
||||
}
|
||||
func_80010DE0();
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern u16 D_800B99F6;
|
||||
extern M2C_UNK (*D_8018ABDC)();
|
||||
extern s32 (*D_8018ABE0)();
|
||||
extern s32 D_801E6CC8;
|
||||
|
||||
void func_80128AF4(void) {
|
||||
switch (D_800B99F6) { /* irregular */
|
||||
case 0:
|
||||
D_801E6CC8 = func_8002AF08();
|
||||
func_80011C10();
|
||||
return;
|
||||
case 1:
|
||||
D_8018ABDC();
|
||||
func_80011C10();
|
||||
return;
|
||||
case 2:
|
||||
if ((D_8018ABE0() << 0x10) != 0) {
|
||||
if (D_801E6CC8 == 1) {
|
||||
if (func_800CFBE8() != 0) {
|
||||
func_800CFBBC();
|
||||
func_80011B7C(0x13);
|
||||
} else {
|
||||
func_80011B7C(4);
|
||||
}
|
||||
} else {
|
||||
func_80010DE0();
|
||||
}
|
||||
func_8002AEF8();
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */
|
||||
|
||||
|
||||
|
||||
extern CdFileLoc_80128C98 cdFileLocTable[];
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
|
||||
s32 func_80128C98(s32 arg0) {
|
||||
|
||||
extern s16 D_8018AEAC[];
|
||||
s16 idx = D_8018AEAC[arg0];
|
||||
|
||||
if (idx >= 0) {
|
||||
func_8001ABBC(0, 0, (u8 *)&cdFileLocTable[idx], D_801E5794, 0);
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
extern CdFileLoc cdFileLocTable[];
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
|
||||
s32 func_80128CFC(s32 arg0) {
|
||||
|
||||
extern s16 D_8018AEBC[];
|
||||
s16 idx = D_8018AEBC[arg0];
|
||||
|
||||
if (idx >= 0) {
|
||||
func_8001ABBC(0, 0, (u8 *)&cdFileLocTable[idx], D_801E5794, 0);
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_80128D60() /* dedup: shared engine-core @0x80128D60 (src/shared) */
|
||||
|
||||
DEFINE_func_80128DB4() /* dedup: shared engine-core @0x80128DB4 (src/shared) */
|
||||
|
||||
DEFINE_func_80128EA8() /* dedup: shared engine-core @0x80128EA8 (src/shared) */
|
||||
|
||||
DEFINE_func_80128ED8() /* dedup: shared engine-core @0x80128ED8 (src/shared) */
|
||||
|
||||
extern M2C_UNK D_801E5798;
|
||||
|
||||
void func_80128FAC(u16 *arg0) {
|
||||
func_8001534C(4, &D_801E5798, 0x80, 0x90, 0, 0);
|
||||
func_800153CC(5, *arg0, 0xA8, 0x90, 0x40, 0);
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_80129010() /* dedup: shared engine-core @0x80129010 (src/shared) */
|
||||
|
||||
DEFINE_func_801290DC() /* dedup: shared engine-core @0x801290DC (src/shared) */
|
||||
|
||||
DEFINE_func_8012913C() /* dedup: shared engine-core @0x8012913C (src/shared) */
|
||||
|
||||
DEFINE_func_801291C0() /* dedup: shared engine-core @0x801291C0 (src/shared) */
|
||||
|
||||
DEFINE_func_80129220() /* dedup: shared engine-core @0x80129220 (src/shared) */
|
||||
|
||||
DEFINE_func_80129248() /* dedup: shared engine-core @0x80129248 (src/shared) */
|
||||
|
||||
DEFINE_func_80129258() /* dedup: shared engine-core @0x80129258 (src/shared) */
|
||||
|
||||
DEFINE_func_8012927C() /* dedup: shared engine-core @0x8012927C (src/shared) */
|
||||
|
||||
DEFINE_func_801292C8() /* dedup: shared engine-core @0x801292C8 (src/shared) */
|
||||
|
||||
DEFINE_func_8012931C() /* dedup: shared engine-core @0x8012931C (src/shared) */
|
||||
|
||||
DEFINE_func_80129350() /* dedup: shared engine-core @0x80129350 (src/shared) */
|
||||
|
||||
DEFINE_func_80129374() /* dedup: shared engine-core @0x80129374 (src/shared) */
|
||||
|
||||
DEFINE_func_80129398() /* dedup: shared engine-core @0x80129398 (src/shared) */
|
||||
|
||||
DEFINE_func_80129428() /* dedup: shared engine-core @0x80129428 (src/shared) */
|
||||
|
||||
DEFINE_func_8012943C() /* dedup: shared engine-core @0x8012943C (src/shared) */
|
||||
|
||||
DEFINE_func_8012944C() /* dedup: shared engine-core @0x8012944C (src/shared) */
|
||||
|
||||
|
||||
|
||||
|
||||
extern s32 D_801E6CCC;
|
||||
|
||||
extern void func_801299C8();
|
||||
extern void func_80015B6C(s32, s16, s32, s16, s32, s32, s32, s32, s32, s32);
|
||||
extern void GsSortBg(s32 *, void *, u16, s32 *);
|
||||
extern void GsSortFastBg(s32 *, void *, u16, s32 *);
|
||||
|
||||
void func_8012956C(void) {
|
||||
|
||||
extern s16 D_80114EE0;
|
||||
extern u8 D_800B9A78;
|
||||
extern u8 D_801E6CCD[];
|
||||
extern u8 D_801E6CCE[];
|
||||
extern u8 D_801E6CD0[];
|
||||
extern u8 D_801E6CD1[];
|
||||
extern u8 D_801E6CD2[];
|
||||
extern u8 D_801E8774;
|
||||
extern u8 D_800AF630[];
|
||||
extern u8 D_800A6518[];
|
||||
register s32 *sp10 __asm__("$21");
|
||||
register u8 *afbase __asm__("$22");
|
||||
register s32 *sp0 __asm__("$23");
|
||||
Ent_956C *base;
|
||||
s32 i;
|
||||
s16 a1;
|
||||
register u32 temp_a3 __asm__("$7");
|
||||
register u32 arg0 __asm__("$4");
|
||||
register u32 s __asm__("$2");
|
||||
register u32 s2 __asm__("$3");
|
||||
register u32 t6 __asm__("$8");
|
||||
s32 code;
|
||||
|
||||
sp10 = (s32 *)0x1F800010;
|
||||
sp0 = (s32 *)0x1F800000;
|
||||
afbase = (u8 *)&D_800AF630;
|
||||
if (D_80114EE0 == 0) {
|
||||
return;
|
||||
}
|
||||
base = (Ent_956C *)&D_800B9A78;
|
||||
__asm__("" : "=r"(base) : "0"(base));
|
||||
i = 0;
|
||||
do {
|
||||
s32 idx = i * 8 + 4;
|
||||
code = base->f34;
|
||||
if (code == 0x7FFE) {
|
||||
goto case_7FFE;
|
||||
}
|
||||
if (code < 0x7FFF) {
|
||||
a1 = i + 3;
|
||||
if (code == 0x7FFD) {
|
||||
goto case_7FFD;
|
||||
}
|
||||
goto do_default;
|
||||
}
|
||||
a1 = i + 3;
|
||||
if (code != 0x7FFF) {
|
||||
goto do_default;
|
||||
}
|
||||
goto next;
|
||||
case_7FFD:
|
||||
if (i == 0) {
|
||||
func_801299C8(D_801E8774, 1, base);
|
||||
}
|
||||
func_80015B6C(-0xA0, -0x74, 0x140, 0x8C,
|
||||
D_801E6CD0[0], D_801E6CD0[1], D_801E6CD0[2],
|
||||
D_801E6CD0[4], D_801E6CD0[5], D_801E6CD0[6]);
|
||||
func_80015B6C(-0xA0, 0x18, 0x140, 0x3C,
|
||||
D_801E6CD0[4], D_801E6CD0[5], D_801E6CD0[6],
|
||||
D_801E6CD0[8], D_801E6CD0[9], D_801E6CD0[0xA]);
|
||||
func_80015B6C(-0xA0, 0x54, 0x140, 0x28,
|
||||
D_801E6CD0[8], D_801E6CD0[9], D_801E6CD0[0xA],
|
||||
D_801E6CD0[0xC], D_801E6CD0[0xD], D_801E6CD0[0xE]);
|
||||
goto next;
|
||||
case_7FFE:
|
||||
func_801299C8(D_801E8774, (s16)(i * 2), base);
|
||||
func_80015B6C(-0xA0, *(s16 *)&base->f3A, 0x140, base->f3E,
|
||||
((u8 *)&D_801E6CCC)[idx], D_801E6CCD[idx], D_801E6CCE[idx],
|
||||
D_801E6CD0[idx], D_801E6CD1[idx], D_801E6CD2[idx]);
|
||||
goto next;
|
||||
do_default:
|
||||
__asm__("");
|
||||
arg0 = D_801E8774;
|
||||
s = base->f40;
|
||||
temp_a3 = base->f38;
|
||||
s += temp_a3;
|
||||
base->f1C = s;
|
||||
s2 = base->f42;
|
||||
t6 = base->f3A;
|
||||
s2 += t6;
|
||||
base->f1E = s2;
|
||||
((void (*)(s32, s32, void *, s32))func_801299C8)(arg0, a1, base, temp_a3);
|
||||
*(Blk16_956C *)sp0 = *(Blk16_956C *)base;
|
||||
{
|
||||
s32 *dst = sp10;
|
||||
s32 *src = (s32 *)((u8 *)base + 0x10);
|
||||
s32 *end = (s32 *)((u8 *)base + 0x30);
|
||||
do {
|
||||
*(Blk16_956C *)dst = *(Blk16_956C *)src;
|
||||
src += 4;
|
||||
dst += 4;
|
||||
} while (src != end);
|
||||
*dst = *src;
|
||||
sp10[5] = (s32)sp0;
|
||||
if (base->f36 == 0) {
|
||||
GsSortFastBg(sp10, &D_800A6518[(*(u16 *)(afbase + 0xA3D2)) * 0x14], base->f34, dst);
|
||||
} else {
|
||||
GsSortBg(sp10, &D_800A6518[(*(u16 *)(afbase + 0xA3D2)) * 0x14], base->f34, dst);
|
||||
}
|
||||
}
|
||||
next:
|
||||
base += 1;
|
||||
i += 1;
|
||||
} while (i < 2);
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_801298F4() /* dedup: shared engine-core @0x801298F4 (src/shared) */
|
||||
|
||||
|
||||
// @class: schedule
|
||||
// @stuck: none — MATCH (158 ins, match_one relocation-masked)
|
||||
//
|
||||
// Levers that landed it (2 iterations, 56 mismatched -> MATCH):
|
||||
// 1. §43 K&R s16-param definition: `void f(a0,a1,a2) s16 a0; s16 a1; u8 *a2;` reproduces the
|
||||
// in-place `sll $a0,$a0,16` zero-test on the arg reg + the raw-$a1 copy (`addu $a3,$a1,$zero`)
|
||||
// stashed in the jtbl branch delay slot and RE-extended per use in the case body.
|
||||
// 2. §18 array-of-struct %lo-fold: three sibling extern arrays D_801E6CD0/1/2[] (a 4-row x 3-comp
|
||||
// RGB gradient table, stride 4) give `lui $at,%hi(sym); addu $at,$at,idx4; sb $v0,%lo(sym)($at)`
|
||||
// for the indexed case and plain `lui/sb %lo(sym+k)` for the constant-index case.
|
||||
// 3. Switch CASE-ORDER = source order: the jump table dispatches case 1 to the FIRST emitted block,
|
||||
// so `case 1:` must be written before `case 0/2:` and `case 3/4:`.
|
||||
// 4. THE residual (56 -> 0): the case-1 body must be written ROW-MAJOR (BE0[0],BE1[0],BE2[0],
|
||||
// BE0[4],BE1[4],BE2[4],...), i.e. the natural table fill. gcc-2.7.2's sched pass then REORDERS
|
||||
// the stores itself (BE0,BE1,BE5,BE8,BE4,BEC,BE9,BED,BE2,BE6,BEA,BEE) because the three arrays
|
||||
// are distinct declarations => provably non-aliasing. Writing the source in the target's STORE
|
||||
// order is the trap: it pins the b*255 / r*143 CSEs at their late store sites instead of letting
|
||||
// them hoist into $a0/$v1 at rows 0/1, and mis-schedules the D_801E8670 load.
|
||||
// 5. Shift signedness: `u32` component locals give `srl` for r*5>>3 and g*25>>1; an explicit
|
||||
// `(s32)(x * 255) >> 4` gives `sra` for the *255 / *143 / *45 terms (mixed within one block).
|
||||
|
||||
extern u8 D_801E87BE;
|
||||
extern u8 D_801E8692;
|
||||
extern u8 D_801E8670;
|
||||
extern u8 D_801E6CD0[];
|
||||
extern u8 D_801E6CD1[];
|
||||
extern u8 D_801E6CD2[];
|
||||
|
||||
void func_801299C8(arg0, arg1, arg2)
|
||||
s16 arg0;
|
||||
s16 arg1;
|
||||
u8 *arg2;
|
||||
{
|
||||
u32 r;
|
||||
u32 g;
|
||||
u32 b;
|
||||
s32 i;
|
||||
|
||||
if (arg0 != 0) {
|
||||
switch (arg1) {
|
||||
case 1:
|
||||
r = D_801E87BE;
|
||||
g = D_801E8692;
|
||||
b = D_801E8670;
|
||||
D_801E6CD0[0] = r * 5 >> 3;
|
||||
D_801E6CD1[0] = g << 3;
|
||||
D_801E6CD2[0] = (s32)(b * 255) >> 4;
|
||||
D_801E6CD0[4] = (s32)(r * 143) >> 4;
|
||||
D_801E6CD1[4] = g * 25 >> 1;
|
||||
D_801E6CD2[4] = (s32)(b * 255) >> 4;
|
||||
D_801E6CD0[8] = (s32)(r * 255) >> 4;
|
||||
D_801E6CD1[8] = (s32)(g * 255) >> 4;
|
||||
D_801E6CD2[8] = (s32)(b * 255) >> 4;
|
||||
D_801E6CD0[12] = (s32)(r * 143) >> 4;
|
||||
D_801E6CD1[12] = (s32)(g * 255) >> 4;
|
||||
D_801E6CD2[12] = (s32)(b * 45) >> 2;
|
||||
break;
|
||||
case 0:
|
||||
case 2:
|
||||
i = arg1 * 4;
|
||||
D_801E6CD0[i] = arg2[0x44] * D_801E87BE >> 4;
|
||||
D_801E6CD1[i] = arg2[0x45] * D_801E8692 >> 4;
|
||||
D_801E6CD2[i] = arg2[0x46] * D_801E8670 >> 4;
|
||||
i = (arg1 + 1) * 4;
|
||||
D_801E6CD0[i] = arg2[0x47] * D_801E87BE >> 4;
|
||||
D_801E6CD1[i] = arg2[0x48] * D_801E8692 >> 4;
|
||||
D_801E6CD2[i] = arg2[0x49] * D_801E8670 >> 4;
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
arg2[0x20] = D_801E87BE << 3;
|
||||
arg2[0x21] = D_801E8692 << 3;
|
||||
arg2[0x22] = D_801E8670 << 3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DEFINE_func_80129C40() /* dedup: shared engine-core @0x80129C40 (src/shared) */
|
||||
|
||||
DEFINE_func_80129CF8() /* dedup: shared engine-core @0x80129CF8 (src/shared) */
|
||||
|
||||
DEFINE_func_80129FF4() /* dedup: shared engine-core @0x80129FF4 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A018() /* dedup: shared engine-core @0x8012A018 (src/shared) */
|
||||
|
||||
|
||||
DEFINE_func_8012A048() /* dedup: shared engine-core @0x8012A048 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A094() /* dedup: shared engine-core @0x8012A094 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A0E0() /* dedup: shared engine-core @0x8012A0E0 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A100() /* dedup: shared engine-core @0x8012A100 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A110() /* dedup: shared engine-core @0x8012A110 (src/shared) */
|
||||
|
||||
|
||||
|
||||
// @class: regalloc-order
|
||||
// @stuck: none — MATCH (78 ins, relocation-masked). Register pins ($2-$5 reused for
|
||||
// the D_x200-x20C words then the D_x220-x226 halfwords; $6-$10 held across for the
|
||||
// D_x228/x22A/x294/x298/x29A tail) force the frameless 9-deep allocation the default
|
||||
// -O2 pre-reload scheduler otherwise blows to a 3-reg spill (all 720 stmt orders spill
|
||||
// without the pins). A single zero-byte scheduling/memory barrier after the 4 word
|
||||
// stores stops gcc hoisting the first 8-byte block copy above them.
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_func_8012A1BC() /* dedup: shared engine-core @0x8012A1BC (src/shared) */
|
||||
|
||||
|
||||
DEFINE_func_8012A2F4() /* dedup: shared engine-core @0x8012A2F4 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A304() /* dedup: shared engine-core @0x8012A304 (src/shared) */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_func_8012A328() /* dedup: shared engine-core @0x8012A328 (src/shared) */
|
||||
|
||||
|
||||
DEFINE_func_8012A418() /* dedup: shared engine-core @0x8012A418 (src/shared) */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_func_8012A464() /* dedup: shared engine-core @0x8012A464 (src/shared) */
|
||||
|
||||
|
||||
DEFINE_func_8012A4BC() /* dedup: shared engine-core @0x8012A4BC (src/shared) */
|
||||
|
||||
DEFINE_func_8012A568() /* dedup: shared engine-core @0x8012A568 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A62C() /* dedup: shared engine-core @0x8012A62C (src/shared) */
|
||||
|
||||
DEFINE_func_8012A68C() /* dedup: shared engine-core @0x8012A68C (src/shared) */
|
||||
|
||||
DEFINE_func_8012A6D0() /* dedup: shared engine-core @0x8012A6D0 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A758() /* dedup: shared engine-core @0x8012A758 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A79C() /* dedup: shared engine-core @0x8012A79C (src/shared) */
|
||||
|
||||
DEFINE_func_8012A7D4() /* dedup: shared engine-core @0x8012A7D4 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A828() /* dedup: shared engine-core @0x8012A828 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A860() /* dedup: shared engine-core @0x8012A860 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A8B0() /* dedup: shared engine-core @0x8012A8B0 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A8E8() /* dedup: shared engine-core @0x8012A8E8 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A908() /* dedup: shared engine-core @0x8012A908 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A988() /* dedup: shared engine-core @0x8012A988 (src/shared) */
|
||||
|
||||
|
||||
extern void func_8012AAAC(void *arg0);
|
||||
|
||||
void func_8012AAAC(void *arg0) {
|
||||
void *ptr;
|
||||
s32 link;
|
||||
s32 next;
|
||||
s32 saved;
|
||||
s32 cnt;
|
||||
s32 back;
|
||||
s32 head;
|
||||
|
||||
M2C_FIELD(arg0, u16 *, 0x72) = (u16) (M2C_FIELD(arg0, u16 *, 0x72) & 0xBFFF);
|
||||
ptr = (void *) (M2C_FIELD(arg0, s32 *, 0x90) + (M2C_FIELD(arg0, s32 *, 0x94) * 8));
|
||||
if (M2C_FIELD(ptr, s16 *, 4) < 0) {
|
||||
switch (M2C_FIELD(ptr, s16 *, 4)) {
|
||||
case -2:
|
||||
link = M2C_FIELD(arg0, s32 *, 0x9C);
|
||||
if (link == 0) {
|
||||
M2C_FIELD(arg0, s16 *, 0x98) = 0;
|
||||
break;
|
||||
}
|
||||
goto pop;
|
||||
case -1:
|
||||
link = M2C_FIELD(arg0, s32 *, 0x9C);
|
||||
if (link != 0) {
|
||||
pop:
|
||||
back = M2C_FIELD(arg0, s16 *, 0x9A);
|
||||
M2C_FIELD(arg0, s32 *, 0x90) = link;
|
||||
M2C_FIELD(arg0, s32 *, 0x9C) = 0;
|
||||
M2C_FIELD(arg0, s16 *, 0x9A) = 0;
|
||||
M2C_FIELD(arg0, s32 *, 0x94) = back;
|
||||
func_8012AAAC(arg0);
|
||||
break;
|
||||
}
|
||||
M2C_FIELD(arg0, s32 *, 0x94) = 0;
|
||||
func_8012AAAC(arg0);
|
||||
M2C_FIELD(arg0, u16 *, 0x72) = (u16) (M2C_FIELD(arg0, u16 *, 0x72) | 0x4000);
|
||||
break;
|
||||
case -4:
|
||||
head = M2C_FIELD(ptr, s32 *, 0);
|
||||
M2C_FIELD(arg0, s32 *, 0x94) = 0;
|
||||
M2C_FIELD(arg0, s32 *, 0x9C) = 0;
|
||||
M2C_FIELD(arg0, s16 *, 0x9A) = 0;
|
||||
M2C_FIELD(arg0, s32 *, 0x90) = head;
|
||||
M2C_FIELD(arg0, u16 *, 0x72) = (u16) (M2C_FIELD(arg0, u16 *, 0x72) & 0xF9FF);
|
||||
func_8012AAAC(arg0);
|
||||
break;
|
||||
case -3:
|
||||
cnt = M2C_FIELD(arg0, s32 *, 0x94) + 1;
|
||||
M2C_FIELD(arg0, s32 *, 0x94) = cnt;
|
||||
if (M2C_FIELD(arg0, s32 *, 0x9C) != 0) {
|
||||
func_8012AAAC(arg0);
|
||||
break;
|
||||
}
|
||||
saved = M2C_FIELD(arg0, s32 *, 0x90);
|
||||
next = M2C_FIELD(ptr, s32 *, 0);
|
||||
M2C_FIELD(arg0, s32 *, 0x94) = 0;
|
||||
M2C_FIELD(arg0, s32 *, 0x9C) = 0;
|
||||
M2C_FIELD(arg0, s16 *, 0x9A) = 0;
|
||||
M2C_FIELD(arg0, s32 *, 0x90) = next;
|
||||
M2C_FIELD(arg0, u16 *, 0x72) = (u16) (M2C_FIELD(arg0, u16 *, 0x72) & 0xF9FF);
|
||||
func_8012AAAC(arg0);
|
||||
M2C_FIELD(arg0, s32 *, 0x9C) = saved;
|
||||
M2C_FIELD(arg0, s16 *, 0x9A) = (s16) cnt;
|
||||
break;
|
||||
case -50:
|
||||
M2C_FIELD(arg0, s32 *, 0x94) = M2C_FIELD(arg0, s32 *, 0x94) + 1;
|
||||
func_8012AAAC(arg0);
|
||||
M2C_FIELD(arg0, u16 *, 0x72) = (u16) (M2C_FIELD(arg0, u16 *, 0x72) | 0x2000);
|
||||
break;
|
||||
case -5:
|
||||
M2C_FIELD(arg0, u16 *, 0x72) = (u16) (M2C_FIELD(arg0, u16 *, 0x72) | 0x400);
|
||||
M2C_FIELD(arg0, s32 *, 0x94) = M2C_FIELD(arg0, s32 *, 0x94) - 1;
|
||||
func_8012AAAC(arg0);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
M2C_FIELD(M2C_FIELD(arg0, void **, 0x20), s32 *, 0x20) = M2C_FIELD(ptr, s32 *, 0);
|
||||
M2C_FIELD(arg0, s16 *, 0x98) = M2C_FIELD(ptr, s16 *, 4);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012AAAC();
|
||||
extern M2C_UNK D_8018AF28;
|
||||
|
||||
void func_8012ACA0(void *arg0) {
|
||||
M2C_FIELD(arg0, M2C_UNK **, 0x90) = &D_8018AF28;
|
||||
M2C_FIELD(arg0, s32 *, 0x94) = 0;
|
||||
M2C_FIELD(arg0, s32 *, 0x9C) = 0;
|
||||
M2C_FIELD(arg0, s16 *, 0x9A) = 0;
|
||||
M2C_FIELD(arg0, u16 *, 0x72) = (u16) (M2C_FIELD(arg0, u16 *, 0x72) & 0xF9FF);
|
||||
((void (*)(void))func_8012AAAC)();
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,709 +0,0 @@
|
||||
#include "common.h"
|
||||
#include "../shared/engine_core.h"
|
||||
|
||||
/* ==== Phase-26 §8b carried decl layer (jr_isolate_all.py) ===================
|
||||
* The file-scope decl environment from earlier code regions of this object —
|
||||
* file-local types, col-0 decls, DEFINE_func macro externs, and each earlier
|
||||
* definition's implied prototype (types first, then decls in original order).
|
||||
* Decls emit no code => byte-neutral. See cookbook §8c. */
|
||||
/* 8-byte element, cmd @ +4 */
|
||||
/* list ptr @ +0x90 */
|
||||
/* size 8, alignment 1 -> unaligned copy */
|
||||
extern void func_80128288(void);
|
||||
extern void func_80128158(void);
|
||||
extern void func_801285E4(void);
|
||||
extern void func_80128178(void);
|
||||
extern void func_80128678(void);
|
||||
extern void func_80128198(void);
|
||||
extern void func_80128714(void);
|
||||
extern void func_801281B8(void);
|
||||
extern void func_8013E67C(void);
|
||||
extern void func_801281D8(void);
|
||||
extern void func_8013E558(void);
|
||||
extern void func_801281F8(void);
|
||||
extern s32 D_801E5794;
|
||||
extern s32 func_80128218(void);
|
||||
extern void func_80128A28(void);
|
||||
extern void func_80128228(void);
|
||||
extern void func_80128AF4(void);
|
||||
extern void func_80128248(void);
|
||||
extern void func_801282EC(void);
|
||||
extern void func_80128268(void);
|
||||
extern u16 D_800B99F6;
|
||||
extern void (*D_8018AE94[])(void);
|
||||
extern void func_80011B7C(int);
|
||||
extern void func_801282CC(void);
|
||||
extern void func_8001C0C8(void);
|
||||
extern void func_80015310(void);
|
||||
extern void func_80129258(void);
|
||||
extern void func_801378F0(void);
|
||||
extern void func_80010E14(void);
|
||||
extern s16 currentLocationId;
|
||||
extern s32 func_80029504(void);
|
||||
extern s32 func_800CF854(s32);
|
||||
extern s32 func_80128998(void);
|
||||
extern s32 func_801289F0(void);
|
||||
extern s32 func_801288E8(s32);
|
||||
extern s32 func_80128940(s32);
|
||||
extern s32 func_80029178(s32);
|
||||
extern s32 func_801288B0(void);
|
||||
extern void func_80011C10(void);
|
||||
extern void func_8012832C(void);
|
||||
extern void func_80129220(void);
|
||||
extern void func_80011E24(void);
|
||||
extern void func_80128C14(void);
|
||||
extern void func_8002AEF8(void);
|
||||
extern void func_800CFBBC(void);
|
||||
extern void SsUtReverbOff(void);
|
||||
extern void func_8013C98C(void);
|
||||
extern void func_80129C40(s32 a0);
|
||||
extern void func_800D0630(void);
|
||||
extern void func_80145CEC(void);
|
||||
extern void func_80144B9C(void);
|
||||
extern u8 D_800B9A17;
|
||||
extern u8 D_800B9A10;
|
||||
extern void func_80128420(void);
|
||||
extern s32 func_800D0588(void);
|
||||
extern void func_801284B8(void);
|
||||
extern void func_80175308(void);
|
||||
extern void func_8016E8F0(void);
|
||||
extern void func_80175494(void);
|
||||
extern u8 D_800B9A64;
|
||||
extern void func_801284F0(void);
|
||||
extern void func_80146074(void);
|
||||
extern void func_8012853C(void);
|
||||
extern void func_80178608(void);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern s32 func_80011A3C(void);
|
||||
extern short currentLocationId;
|
||||
extern short D_800B99F2;
|
||||
extern void func_80128564(void);
|
||||
extern u8 D_800B9A11;
|
||||
extern void func_801285D4(void);
|
||||
extern s32 func_800D18DC(void);
|
||||
extern void func_8014607C(void);
|
||||
extern void func_801287B8(void);
|
||||
extern s32 D_801E6CCC;
|
||||
extern void func_80029444(void);
|
||||
extern void func_800D1754(void);
|
||||
extern s32 D_80126B58;
|
||||
extern s32 D_801E87C0;
|
||||
extern u16 D_800B99DA;
|
||||
extern void func_80129CF8(void);
|
||||
extern void func_8017849C(void);
|
||||
extern void func_8014FDF4(struct S8014FDF4 *a0);
|
||||
extern s32 func_801505FC(s32 a0);
|
||||
extern void func_801508B4(void *a0);
|
||||
extern void func_80165E90(void);
|
||||
extern void func_801627E8(void);
|
||||
extern void func_80162B1C(void);
|
||||
extern void func_80165CA0(void);
|
||||
extern void func_80129010(void);
|
||||
extern void func_8013CA14(void);
|
||||
extern void func_800190AC(void);
|
||||
extern void func_8012956C(void);
|
||||
extern void func_8016E95C(void);
|
||||
extern void func_801754A8(void);
|
||||
extern void func_8013BC7C(void);
|
||||
extern void func_8013BCDC(void);
|
||||
extern void func_801379FC(void);
|
||||
extern void func_8001212C(void);
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 sp10);
|
||||
extern u8 D_800AEFD0;
|
||||
extern int D_800C7C60;
|
||||
extern int *D_800C7C64;
|
||||
extern int D_800A2E20;
|
||||
extern int D_800AF558;
|
||||
extern int D_801E5794;
|
||||
extern int func_801288E8(int arg0);
|
||||
extern u8 D_800AF560;
|
||||
extern s32 func_80128940(s32 _arg0);
|
||||
extern int D_800AECB0;
|
||||
extern u8 D_800AECB8;
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
extern s16 D_800B9A00;
|
||||
extern M2C_UNK (*D_8018ABD0)();
|
||||
extern s16 (*D_8018ABD4)();
|
||||
extern M2C_UNK (*D_8018ABDC)();
|
||||
extern s32 (*D_8018ABE0)();
|
||||
extern s32 D_801E6CC8;
|
||||
extern void func_80010AE0(s32 a0);
|
||||
extern void func_80018450(s32 a0, s32 a1);
|
||||
extern void func_800183E0(s32 a0);
|
||||
extern void func_80128D60(s32 a0, s32 *a1, s32 *a2);
|
||||
extern s32 func_80128DB4(s32 a0, s32 *a1);
|
||||
extern void func_80128EA8(s32 a0, s32 a1, s32 a2);
|
||||
extern M2C_UNK D_801E5798;
|
||||
extern void func_80128FAC(u16 *arg0);
|
||||
extern s16 D_8011DB2C;
|
||||
extern s16 D_8011DB30;
|
||||
extern s32 D_80126AEC;
|
||||
extern u8 *func_8012913C(s32 a0);
|
||||
extern u8 * func_801290DC(s32 a0, u8 *a1);
|
||||
extern void func_8001D074(s32 a, s32 b);
|
||||
extern u8 *func_801291C0(void);
|
||||
extern s32 func_8001CC3C(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern u8 * func_8012913C(s32 arg0);
|
||||
extern void func_80016714(void *a0, s32 a1);
|
||||
extern u8 * func_801291C0(void);
|
||||
extern void func_80129248(s16 a0);
|
||||
extern void func_801292C8(u8 *a0);
|
||||
extern void func_8012927C(void);
|
||||
extern void func_8012931C(struct vec *a0);
|
||||
extern void func_80129350(s32 a0, s32 a1);
|
||||
extern void func_80129374(s32 a0, s32 a1);
|
||||
extern s16 D_800B9AAC[];
|
||||
extern s16 D_800B9AAE[];
|
||||
extern s16 D_800B9AB0[];
|
||||
extern s16 D_800B9AB2[];
|
||||
extern s16 D_800B9AB4[];
|
||||
extern s16 D_800B9AB6[];
|
||||
extern s16 D_800B9AB8[];
|
||||
extern s16 D_800B9ABA[];
|
||||
extern void func_80129398(void);
|
||||
extern s16 D_80114EE0;
|
||||
extern void func_80129428(void);
|
||||
extern void func_8012943C(void);
|
||||
extern s32 D_8005128C;
|
||||
extern u8 D_800B9A78;
|
||||
extern void func_801298F4(void *arg0);
|
||||
extern void func_801299C8(s32 a, s32 b, s32 c);
|
||||
extern void func_8012944C(void);
|
||||
extern unsigned short D_800B99F0;
|
||||
extern void func_8012A328(void);
|
||||
extern void func_80053308(s32);
|
||||
extern s32 func_80012F74(s32, s32, s32, s32); /* canonical s32 (engine_core); (s16)-cast the return for the sll/sra */
|
||||
extern void GsSetRefView2L(void *);
|
||||
extern s8 D_801150D6; /* canonical (engine_core macro): s8 — access via *(u8*)& for lbu */
|
||||
extern u8 D_80127504;
|
||||
extern s32 D_80126E60[];
|
||||
extern s32 D_80126F04[];
|
||||
extern u8 D_80126948[]; /* canonical (sibling): u8[] — cast (s32*) at use */
|
||||
extern s32 D_80126FA8[];
|
||||
extern struct BigCopy D_80126DB8;/* canonical (engine_core macro): struct BigCopy — (s32*)& at use */
|
||||
extern u8 D_800AF630[]; /* canonical (sibling): u8[] — cast (s32*) at use */
|
||||
extern s32 D_800AE688[];
|
||||
extern s32 D_801151D4; /* canonical (10 siblings): scalar s32 — store (s32)ptr */
|
||||
extern void func_8012A018(s32 a, s32 b);
|
||||
extern void func_80129FF4(void);
|
||||
extern u16 D_80126B5E;
|
||||
extern u16 D_80126B62;
|
||||
extern u16 D_80126B66;
|
||||
extern s16 D_80126940;
|
||||
extern s16 D_80126942;
|
||||
extern s16 D_80126944;
|
||||
extern void func_8012A048(void *a0, s32 a1, u8 a2);
|
||||
extern void *memcpy(void *, const void *, unsigned int);
|
||||
extern void func_8012A094(s32 a0);
|
||||
extern void func_8012A100(s8 a0);
|
||||
extern void func_8012A0E0(void);
|
||||
extern s8 D_801150D6;
|
||||
extern s32 D_80120204;
|
||||
extern s32 D_80120200;
|
||||
extern s32 D_8012020C;
|
||||
extern s32 D_80120208;
|
||||
extern s16 D_80120218;
|
||||
extern s16 D_80120210;
|
||||
extern s16 D_8012021A;
|
||||
extern s16 D_80120212;
|
||||
extern s16 D_8012021C;
|
||||
extern s16 D_80120214;
|
||||
extern s16 D_80120226;
|
||||
extern s16 D_80120220;
|
||||
extern s16 D_80120228;
|
||||
extern s16 D_80120222;
|
||||
extern s16 D_8012022A;
|
||||
extern s16 D_80120224;
|
||||
extern s32 D_80120294;
|
||||
extern s16 D_80120298;
|
||||
extern s16 D_8012029A;
|
||||
extern void func_8012A110(void);
|
||||
extern s8 D_801152C0;
|
||||
extern void func_8012A2F4(void);
|
||||
extern s16 D_80127080;
|
||||
extern s16 D_801152C2;
|
||||
extern void func_8012A304(s32 a0, s32 a1);
|
||||
extern s32 D_801151D4;
|
||||
extern struct BigCopy D_80126DB8;
|
||||
extern struct BigCopy D_80114EE8;
|
||||
extern void func_8012A4BC(void);
|
||||
extern void func_8012A598(void *a0);
|
||||
extern void func_8012A568(void (*a0)(void));
|
||||
extern void func_8012A62C(s32);
|
||||
extern void func_8012A5F8(void (*a0)(void), s32 a1);
|
||||
extern void func_8012A62C(s32 a0);
|
||||
extern void func_8012A7D4(void *a0, void *a1);
|
||||
extern s32 func_8012A6D0(void *a0, void *a1);
|
||||
extern s16 func_8012A68C(void);
|
||||
extern s16 func_8012A79C(s16 *a0, s16 *a1);
|
||||
extern s16 func_8012A758(void);
|
||||
extern s32 ratan2(s32 a0, s32 a1);
|
||||
extern void func_8012A7D4(void *arg0, void *arg1);
|
||||
extern void func_8012AAAC();
|
||||
extern void func_8012A828(s32 a0, void * a1);
|
||||
extern int func_8012ACE0(void *a0);
|
||||
extern void func_8012A860(void *a0, int a1);
|
||||
extern void func_8012A8B0(u8 *a0, s32 a1);
|
||||
extern void func_8012A8E8(void);
|
||||
extern u8 D_801202A0[];
|
||||
extern u16 D_801270C0;
|
||||
extern void func_8012A988(u8 *a0);
|
||||
extern void func_8012A908(void);
|
||||
extern s32 func_8012ACE0(void *a0);
|
||||
extern M2C_UNK D_8018AF28;
|
||||
extern void func_8012ACA0(void *arg0);
|
||||
extern s32 func_8012ACE0(void *o);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
extern s32 func_8012AD50(void * arg0);
|
||||
extern void func_8012AD64(s32 *a0, s16 a1);
|
||||
extern void func_8012AD6C(void *a0);
|
||||
extern void func_8012AD80(s32 a0);
|
||||
extern void func_8012ADE4(u8 *a0);
|
||||
extern s32 *D_80126B78;
|
||||
extern s32 *D_80126B90;
|
||||
extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern s32 func_80013478(s32 a0, s32 a1);
|
||||
extern s32 func_8012AE00(s32 a0);
|
||||
extern s32 func_8012AF0C(s32 a0, s32 a1);
|
||||
extern s32 func_80134510(s32 arg);
|
||||
extern s32 func_8012B030(u8 *a0);
|
||||
extern int func_80047948(int a0);
|
||||
extern int func_8004787C(int a0);
|
||||
extern void func_8012B0B4(unsigned int *param_1, int param_2, int param_3);
|
||||
extern void func_800484EC(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012B14C(s32 a0, s32 a1);
|
||||
extern void func_8012B178(s32 a0, s32 a1);
|
||||
extern void func_8012B1B4(s32 a0, s32 a1);
|
||||
extern void func_8012B200(u8 *a0);
|
||||
extern void func_8012B21C(void *a0);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern void func_8012B260(u8 *a0);
|
||||
extern void func_80049CAC(s32 a0, s32 a1);
|
||||
extern void func_8012B2CC(s32 a0);
|
||||
extern void RotMatrixYXZ(void *m, void *p);
|
||||
extern void func_8012B370(int a0);
|
||||
extern void func_8004978C(s16 *a0, void *a1);
|
||||
extern void func_8012B414(int a0);
|
||||
extern s32 func_8012B608(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_8012B6D4(s16 *a0, s16 *a1);
|
||||
extern s32 func_8012B70C(s16 *a0, s16 *a1);
|
||||
extern s32 ratan2(s32 x, s32 y);
|
||||
extern s32 func_8012B744(void *a0, void *a1);
|
||||
extern s16 D_80126CB8;
|
||||
extern s16 D_80126CB4;
|
||||
extern s32 func_8012B864(s32 a0);
|
||||
extern s32 func_8012B8A4(s16 *a0);
|
||||
extern s32 func_8012B8E4(s32 arg0, s32 arg1);
|
||||
extern s32 func_8012BA10(s32 arg0, s32 arg1);
|
||||
extern s32 func_8012BB3C(s32 arg0, s32 arg1, u32 arg2, s32 arg3);
|
||||
extern void Square0(s32 *a0, s32 *a1);
|
||||
extern s32 func_8012BC60(struct Vec *a0, struct Vec *a1);
|
||||
extern s16 D_80126CBA;
|
||||
extern s32 func_8012BCCC(s32 a0);
|
||||
extern void func_80013350(s32 a0, void *a1);
|
||||
extern u8 D_80126B5C;
|
||||
extern void func_8012BD14(s32 a0);
|
||||
extern s32 func_8012BDBC(s32 a0, s32 a1);
|
||||
extern s32 func_8012BD3C(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012BE98(s32 a0, u16 *a1);
|
||||
extern void func_8012BE54(s32 a0);
|
||||
extern s32 func_800132BC(s32 a0, s32 a1);
|
||||
extern void func_8012BE98(s32 arg0, u16 * arg1);
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern s32 func_8012BF10(s32 a0, s32 a1);
|
||||
extern void func_8012BF4C(s32 *a0, s32 a1);
|
||||
extern void func_8012BF54(void *a0);
|
||||
extern void func_8012BF68(void *a0);
|
||||
extern s16 D_80126CB0;
|
||||
extern s32 func_8012BF7C(s16 *a0);
|
||||
extern s16 D_80126CAC;
|
||||
extern short D_80126CAE;
|
||||
extern int func_8012BFA8(short *a0);
|
||||
extern s32 D_801274D4;
|
||||
extern s32 D_801274E0;
|
||||
extern s32 func_8012C044(s32 a0);
|
||||
extern void func_8012C218(void *a0);
|
||||
extern void func_8012C098(void *param_1);
|
||||
extern s32 func_8012C0EC(s32 a0);
|
||||
extern void func_8012C194(void);
|
||||
extern void func_8001CFDC(s32 a, s32 b);
|
||||
extern void func_8012C1B8(void);
|
||||
extern u8 D_800B3DF0[];
|
||||
extern s32 func_8012C1DC(s32 a0);
|
||||
extern u8 D_80126720[];
|
||||
extern u16 * func_8012C284(u16 *a0);
|
||||
extern u8 D_80120194[];
|
||||
extern s32 func_8012C2D0(void);
|
||||
extern s32 func_8012C31C(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern void func_8001C214(s32 a0, s32 a1);
|
||||
extern u8 D_80078EAE;
|
||||
extern s32 func_8012C354(s32 a0, s32 a1);
|
||||
extern void func_8001C810(s32 a0, s32 a1);
|
||||
extern s32 func_8012C438(s32 a0, s32 a1);
|
||||
extern s32 func_8012C890(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_8012C51C(void *a0, s32 a1);
|
||||
extern s32 func_8012C588(s32 a0, s32 a1);
|
||||
extern void func_8012C724(s32 a0, s32 a1);
|
||||
extern s32 func_8012C750(s32 a0);
|
||||
extern s32 func_8012C820(u8 *a0);
|
||||
extern s32 D_8018E40C;
|
||||
extern s16 D_801270C4;
|
||||
extern u16 D_801274E4[];
|
||||
extern s32 D_8011DB08;
|
||||
extern s32 func_8012CB64(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4);
|
||||
extern s32 func_8012CC88(s32 a, s32 b, s32 c);
|
||||
extern u8 D_800D3918[];
|
||||
extern void func_8012CBA4(s32 a0);
|
||||
extern void func_8012CBCC(s32 a0);
|
||||
extern void func_8012CBF4(s32 a0);
|
||||
extern void func_8012CC1C(s32 arg0, s32 arg1);
|
||||
extern void func_8012CC40(s32 arg0, s32 arg1);
|
||||
extern s32 func_8012CC88(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012CC64(s32 a0, s32 a1);
|
||||
extern s32 func_80133784(s32 a0, void *a1, s32 a2);
|
||||
extern s32 func_8012CE2C(s32 a0);
|
||||
extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012CFA8(s32 arg0);
|
||||
extern void func_8012F214(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012D3B4(s32 arg0, s32 arg1, s32 arg2);
|
||||
extern void func_8012D098(u16 *param_1, u32 param_2);
|
||||
extern void func_8012D098();
|
||||
extern void func_8012D38C(int a0);
|
||||
extern void func_8012D3AC(void);
|
||||
extern s32 AddPrim(s32, void *);
|
||||
extern s32 RotTransPers(s32, s32, s32 *, s32 *);
|
||||
extern void SetLineF2(void *);
|
||||
extern void *func_80010A08(s32);
|
||||
extern void func_8004914C(void *);
|
||||
extern void func_800491AC(void *);
|
||||
extern s32 D_800A651C;
|
||||
extern u8 D_800AF648;
|
||||
extern s16 D_800B9A02;
|
||||
extern void func_8012D4B4(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern void func_8012D5DC(void);
|
||||
extern s16 D_80126B98;
|
||||
extern s32 func_8012DEB8(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_8012D5E4(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern int func_8012D664();
|
||||
extern void func_8012D624(s32 a0);
|
||||
extern int func_8012D664(int arg0, int arg1, int arg2);
|
||||
extern s32 func_8012D714(s32 param_1, u32 param_2);
|
||||
extern void func_8012F568(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4, s32 a5);
|
||||
extern void func_8014C978(void);
|
||||
extern M2C_UNK D_8018AF40;
|
||||
extern M2C_UNK D_8018AF48;
|
||||
extern s32 func_8012DB84(void);
|
||||
extern s32 func_8012DE2C(s32 a0);
|
||||
extern s32 func_8012DDA4(void);
|
||||
extern s32 func_8012DBD0(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern s32 func_8012DDA4();
|
||||
extern s32 func_8012DF34(s32 a0, s32 a1, s32 a2);
|
||||
extern s16 D_80126B9A;
|
||||
extern u8 D_801152A8[];
|
||||
extern void func_8012DFBC(void);
|
||||
extern void func_8012DFCC(void);
|
||||
extern void func_8012E014(s32 arg0);
|
||||
extern void func_8012E138(void);
|
||||
extern void func_8012DFD4(u8 *a0);
|
||||
extern s32 func_8012E27C(void);
|
||||
extern void func_8012E284(void);
|
||||
extern s32 GetTPage(s32, s32, s32, s32);
|
||||
extern s32 func_8005A600(s32, s32, s32, s32, s32);
|
||||
extern void func_8012E28C(s32 arg0, s32 arg1);
|
||||
extern void func_8004914C(void *a0);
|
||||
extern void func_800491AC(void *a0);
|
||||
extern void func_8012E32C(void);
|
||||
extern s32 func_8012E470(s32 a0);
|
||||
extern void func_8012E4C8(s32 a0);
|
||||
extern s32 func_8012E504(s32 a0, s32 a1);
|
||||
extern s32 func_8012E544(s32 a0);
|
||||
extern s32 func_8012E57C(s32 a0, s32 a1);
|
||||
extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3);
|
||||
extern void func_8012E5CC(s32 param_1, u16 param_2, u16 param_3);
|
||||
extern void func_8012E688(s32 param_1, u16 param_2, u16 param_3);
|
||||
extern s32 func_8012E778(int param_1, int param_2);
|
||||
extern void func_8012E88C(u8 *a0);
|
||||
extern void func_8012E8A8(u8 *a0);
|
||||
extern void func_8012E8C4(u8 *a0);
|
||||
extern void func_8012E8E0(s32 a0, s32 a1);
|
||||
extern void func_8016AA50(int, int);
|
||||
extern void func_8016B428(int);
|
||||
extern void func_80019064(void *);
|
||||
extern int D_8018AF50;
|
||||
extern void func_8012E9C0(int param_1);
|
||||
extern void func_8012EA90(s32 param_1, s32 param_2, s32 *param_3);
|
||||
extern void func_8012EC04(s32 param_1, s32 param_2, s32 *param_3);
|
||||
extern s32 func_8002A4FC(s32 a0);
|
||||
extern s32 func_8012EECC(s32 a0);
|
||||
extern void func_8012EFB8(s32 a0);
|
||||
extern void func_8012EF34(s32 a0, s32 a1);
|
||||
extern void func_8012EF70(s32 a0, s32 a1);
|
||||
extern void ApplyTransposeMatrixLV(void *a0, void *a1, void *a2);
|
||||
extern void func_8012F038(int param_1, short *param_2, short *param_3);
|
||||
extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2);
|
||||
extern void RotTransSV(s32 a0, s32 a1, void *a2);
|
||||
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012F1A4(s32 *a0, s32 a1, s32 *a2);
|
||||
extern void func_8012F2E8(s32 a0, s32 a1, s32 a2);
|
||||
extern s16 D_80126CB6;
|
||||
extern void func_8012F374(s32 a0, s32 a1);
|
||||
extern void *memcpy(void *, const void *, u32);
|
||||
extern u8 D_80126C38;
|
||||
extern u8 D_80126C40;
|
||||
extern u16 D_80126B94;
|
||||
extern u16 D_80126B96;
|
||||
extern void func_8012F568(s32 param_1, s32 param_2, s32 param_3, s32 param_4, s32 param_5, s32 param_6);
|
||||
extern void func_80131B14();
|
||||
extern void func_80131E00(struct S80131E00 *a0, s32 a1);
|
||||
extern s32 func_80131A34(s32, s32);
|
||||
extern void func_80131CA8(int a0, int a1);
|
||||
extern void func_8012F5F4(s32 arg0);
|
||||
extern void func_80131C78(s32 a0);
|
||||
extern void func_8012F68C(s32 arg0);
|
||||
extern void func_8012F75C(s32 a0);
|
||||
extern s32 func_8012BEE8(s32);
|
||||
extern void func_8012F7B4(s32 a0);
|
||||
extern void func_80131170();
|
||||
extern void func_80131CA8();
|
||||
extern unsigned char D_8018AF6C[];
|
||||
extern void func_8012F828(int param_1);
|
||||
extern void func_80131340(s32 a0);
|
||||
extern void func_8012F87C(s32 a0);
|
||||
extern void func_80131170(s32 a0, s32 a1, s32 a2);
|
||||
extern u8 D_8018AF78[];
|
||||
extern void func_8012F8C8(u8* arg0);
|
||||
extern void func_8012F91C(s32 a0);
|
||||
extern s32 func_80131A34(s32 a0, s32 a1);
|
||||
extern void func_80131CA8(s32 a0, s32 a1);
|
||||
extern void func_8012F968(s32 param_1);
|
||||
extern void func_801319E0(s32 a0);
|
||||
extern s32 func_80143B6C(s32 a0, s32 a1);
|
||||
extern void func_8012FB54(s32 a0);
|
||||
extern void func_8012FC30(s32 a0);
|
||||
extern void func_8012FCA4(int a0);
|
||||
extern s32 func_8012FCC4(s32 param_1);
|
||||
extern void func_8012FDA8(int param_1);
|
||||
extern void func_8012FE70(s32 a0);
|
||||
extern void func_8012FF00(s32 a0);
|
||||
extern void func_8012FF4C(s32 a0);
|
||||
extern void func_80130D48(s32 a0);
|
||||
extern void func_8012FF98(u8 *a0);
|
||||
extern s32 func_80131AC8(void *a0);
|
||||
extern void func_8013001C(void *a0);
|
||||
extern void func_80130088(void *a0);
|
||||
extern s32 func_8012BCCC(s32);
|
||||
extern void func_801300F4(s32 a0);
|
||||
extern void func_801301E8(u8 *a0);
|
||||
extern void func_80130278(s32 arg0);
|
||||
extern void func_80130314(s32 a0);
|
||||
extern void func_80130360(s32 a0);
|
||||
extern void func_8012E364(void);
|
||||
extern void func_801303A0(s32 a0);
|
||||
extern void func_801303EC(void *a0);
|
||||
extern void func_80143CD4(s32 a0);
|
||||
extern void func_800CB0E8(s32 a0);
|
||||
extern void func_80130438(s32 a0);
|
||||
extern void func_801319E0(int);
|
||||
extern int func_80131D68(int, int);
|
||||
extern int func_8012BEE8(int);
|
||||
extern void func_80131CA8(int, int);
|
||||
extern void func_80130514(int param_1);
|
||||
extern void func_801305CC(u8 *a0);
|
||||
extern void func_8012CBF4(s32);
|
||||
extern s32 func_80131D68(s32 a0, s32 a1);
|
||||
extern void func_80130650(s32 a0);
|
||||
extern s32 func_80146A6C(s32 a0, void *a1, s32 a2, s32 a3, s32 a4, s32 a5, s32 a6);
|
||||
extern void func_80130740(void *a0, u16 *a1);
|
||||
extern s32 func_801312D0(s32 a0, void *a1);
|
||||
extern void func_801307B0(s32 a0);
|
||||
extern void func_80130858(s32 a0);
|
||||
extern void func_80130898(u8 *a0);
|
||||
extern void func_801308DC(s32 a0);
|
||||
extern void func_80166244();
|
||||
extern void func_80130974(int param_1);
|
||||
extern void func_80130A18(u8 *a0);
|
||||
extern void func_80130AC4(s32 a0);
|
||||
extern int func_80131A34(int a0, int a1);
|
||||
extern void func_80130AF0(int param_1);
|
||||
extern void (*D_8018AF8C[])(void);
|
||||
extern void func_80130D0C(void *a0);
|
||||
extern s32 rand(void);
|
||||
extern u8 D_80078E78[];
|
||||
extern u16 D_80078EB2;
|
||||
extern u16 D_80078EB4;
|
||||
extern s16 D_8018AFDC[];
|
||||
extern s16 D_8018B00C[];
|
||||
extern s16 D_8018B06C[];
|
||||
extern s16 D_8018B074[];
|
||||
extern s16 D_8018B094[];
|
||||
extern void func_80130D48(s32 arg0);
|
||||
extern void func_80131170(s32 p, s32 b, s32 c);
|
||||
extern s32 func_801312D0(s32 param_1, void *param_2);
|
||||
extern void func_80131E00();
|
||||
extern s32 D_801E6CF0;
|
||||
extern s32 D_801E6CF4;
|
||||
extern void func_8002A04C(s32 a0);
|
||||
extern void func_801319E0(s32 arg0);
|
||||
extern s32 func_80131CF4(s32 a0);
|
||||
extern int func_80131D68(int a0, int a1);
|
||||
extern void (*D_8018B0CC[])(struct S80131E00 *a0);
|
||||
extern void func_80131E38(u8 *a0);
|
||||
extern void func_80131E7C(s32 a0);
|
||||
extern void func_80131EE4(void);
|
||||
extern void (*D_8018B124[])(void);
|
||||
extern void func_80131EEC(void *a0);
|
||||
extern void (*D_8018B16C[])(void);
|
||||
extern void func_80131F28(void *a0);
|
||||
extern void (*D_8018B174[])(void);
|
||||
extern void func_80131F64(void *a0);
|
||||
extern void (*D_8018B17C[])(void);
|
||||
extern void func_80131FA0(void *a0);
|
||||
extern void (*D_8018B184[])(void);
|
||||
extern void func_80131FDC(void *a0);
|
||||
extern void func_801320D0(void);
|
||||
extern void func_8001C214(int, int);
|
||||
extern int D_8018B12C;
|
||||
extern void func_801320D8(int param_1);
|
||||
extern s32 func_80132144(s32 param_1);
|
||||
extern int D_8018B14C;
|
||||
extern void func_801321B0(int param_1);
|
||||
extern int D_8018B15C;
|
||||
extern void func_8013221C(int param_1);
|
||||
extern void func_8005C324(int dst, int src, int n) __asm__("memcpy"); /* Phase-24: 0x8005C324 is named memcpy for overlays (whale needs it); keep the non-builtin C name here (else built-in codegen), emit via asm-label */
|
||||
extern void func_801325B8(int a0, int a1, int a2, int a3, int a4);
|
||||
extern void func_80132288(int *param_1, int *param_2, int param_3);
|
||||
extern void func_801325B8(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4);
|
||||
extern void func_8013240C(s32 a0);
|
||||
extern void memcpy();
|
||||
extern void gteMIMefunc();
|
||||
extern void func_801325B8(int dst, int src, int m0, int mm, int arg5);
|
||||
extern void func_8013277C(void);
|
||||
extern void func_80020F34(s32 a0, s32 a1);
|
||||
extern void func_80054514(s32 a0, s32 a1);
|
||||
extern void func_80132784(s32 a0, s32 a1, u32 a2);
|
||||
extern s32 VectorNormalSS(void *a0, void *a1);
|
||||
extern void func_80132DC4(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_80132E6C(s16 *a0);
|
||||
extern void func_80132EC4(void *a0, s16 a1);
|
||||
extern s32 func_80132EF4(s32 a0, s32 a1);
|
||||
extern void func_801330E0(void * param_1, s16 * param_2, s32 param_3);
|
||||
extern void func_80133060(u8 *a0, s32 *a1, s32 a2);
|
||||
extern void func_8013339C(short *param_1, short *param_2);
|
||||
extern s32 func_8013361C(s16 *a0, s16 *a1, s16 *a2, s16 *a3);
|
||||
extern s32 D_801E6D38;
|
||||
extern s32 D_801E6D3C[];
|
||||
extern int D_801E6D40;
|
||||
extern void func_80136BC4(s32 a0);
|
||||
extern void func_801336E8(void *a0, int a1, int a2);
|
||||
extern void func_80136BC4(s32);
|
||||
extern void func_8013373C(s16 arg0);
|
||||
extern s32 func_80133784(s32 arg0, void *arg1, s32 arg2);
|
||||
extern s32 func_80133CD4();
|
||||
extern s32 func_80134310(Vec3s *a0, Vec3s *a1, s32 a2);
|
||||
extern s32 func_8013435C(s16 *a0, s16 *a1, s32 a2, s16 *a3);
|
||||
extern s32 func_801343C4(s32 angle, s32 p1, s32 p2);
|
||||
extern s32 func_80134510(s32 param);
|
||||
extern s32 func_801345F8(s32 arg);
|
||||
extern s32 func_801347A0(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern s32 func_80134A28(s32 a0, s32 a1, s32 a2);
|
||||
extern int func_80134A74(int param_1, s16 param_2, s16 param_3, int param_4);
|
||||
extern s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern s32 func_80134FB8(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_80135004(s32 arg0, s32 p1, s32 p2);
|
||||
extern u8 D_8018B190;
|
||||
extern u8 D_8018B18C;
|
||||
extern s16 *D_8018B194;
|
||||
extern u8 D_8018B198;
|
||||
extern int D_801E6D38;
|
||||
extern u16 D_801E6D48;
|
||||
extern int func_80134A74(int, s16, s16, int);
|
||||
extern int func_80135168(u16 arg0, u16 *p1, u16 *p2);
|
||||
extern s16 func_80135480(void *param_1, s32 param_2, s16 *param_3, s16 *param_4);
|
||||
/* ==== end §8b carried decl layer ==== */
|
||||
|
||||
|
||||
|
||||
extern s16 func_80135480(void*, s32, s16*, s16*);
|
||||
extern s32 func_80135EB0(void *arg0, s32 arg1_);
|
||||
extern int func_80134A74(int, s16, s16, int);
|
||||
extern s32 func_80136A94(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
|
||||
extern u8 D_8018B18C;
|
||||
extern u8 D_8018B190;
|
||||
extern u8 D_8018B198;
|
||||
extern s32 D_801E6D4C;
|
||||
extern s32 D_801E6D6C;
|
||||
|
||||
s32 func_80135888(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
|
||||
s32 pad_[8];
|
||||
register s32 m __asm__("$2");
|
||||
s32 sp;
|
||||
register s32 p1 __asm__("$17");
|
||||
register s32 mode __asm__("$18");
|
||||
register s32 p0 __asm__("$19");
|
||||
register s32 base __asm__("$20");
|
||||
register s32 p3 __asm__("$21");
|
||||
|
||||
p0 = arg0;
|
||||
p1 = arg1;
|
||||
p3 = arg3;
|
||||
|
||||
switch (((s32 (*)(void *, s32, s16 *, s16 *))func_80135480)((void *)arg0, arg1, (s16 *)arg2, (s16 *)arg3)) {
|
||||
case 0:
|
||||
return 0;
|
||||
case 1:
|
||||
base = p0 + 0x34;
|
||||
m = p1 & 0xFFFFFFF;
|
||||
sp = m | 0x80000000;
|
||||
mode = 0;
|
||||
break;
|
||||
case 2:
|
||||
base = p0 + 0x34;
|
||||
m = p1 & 0xFFFFFFF;
|
||||
sp = m | 0x80000000;
|
||||
mode = 1;
|
||||
break;
|
||||
case 3:
|
||||
base = p0 + 0x34;
|
||||
sp = (s32)&D_801E6D6C;
|
||||
mode = 0;
|
||||
break;
|
||||
case 4:
|
||||
base = (s32)&D_801E6D4C;
|
||||
sp = (s32)&D_801E6D6C;
|
||||
mode = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
if (p1 < 0) {
|
||||
if (func_80135EB0(sp, 0) != 0) {
|
||||
func_80136A94(mode, p0, p3, base);
|
||||
return 1;
|
||||
}
|
||||
sp = *(s32 *)sp;
|
||||
__asm__ __volatile__("");
|
||||
while (sp != 0) {
|
||||
if (func_80135EB0(sp, 0) != 0) {
|
||||
hit:
|
||||
func_80136A94(mode, p0, p3, base);
|
||||
return 1;
|
||||
}
|
||||
sp = *(s32 *)sp;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
{
|
||||
u16 *pb = (*(u16 * *)&D_8018B190);
|
||||
u16 *pa = (*(u16 * *)&D_8018B18C);
|
||||
s16 *pc = (*(s16 * *)&D_8018B198);
|
||||
pc[0] = pb[0] - pa[0];
|
||||
pc[1] = pb[1] - pa[1];
|
||||
pc[2] = pb[2] - pa[2];
|
||||
if (func_80134A74(0, (s16)pa[0], (s16)pa[2], sp) == 0) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
goto hit;
|
||||
}
|
||||
|
||||
@@ -1,732 +0,0 @@
|
||||
#include "common.h"
|
||||
#include "../shared/engine_core.h"
|
||||
|
||||
/* ==== Phase-26 §8b carried decl layer (jr_isolate_all.py) ===================
|
||||
* The file-scope decl environment from earlier code regions of this object —
|
||||
* file-local types, col-0 decls, DEFINE_func macro externs, and each earlier
|
||||
* definition's implied prototype (types first, then decls in original order).
|
||||
* Decls emit no code => byte-neutral. See cookbook §8c. */
|
||||
/* 8-byte element, cmd @ +4 */
|
||||
/* list ptr @ +0x90 */
|
||||
/* size 8, alignment 1 -> unaligned copy */
|
||||
extern void func_80128288(void);
|
||||
extern void func_80128158(void);
|
||||
extern void func_801285E4(void);
|
||||
extern void func_80128178(void);
|
||||
extern void func_80128678(void);
|
||||
extern void func_80128198(void);
|
||||
extern void func_80128714(void);
|
||||
extern void func_801281B8(void);
|
||||
extern void func_8013E67C(void);
|
||||
extern void func_801281D8(void);
|
||||
extern void func_8013E558(void);
|
||||
extern void func_801281F8(void);
|
||||
extern s32 D_801E5794;
|
||||
extern s32 func_80128218(void);
|
||||
extern void func_80128A28(void);
|
||||
extern void func_80128228(void);
|
||||
extern void func_80128AF4(void);
|
||||
extern void func_80128248(void);
|
||||
extern void func_801282EC(void);
|
||||
extern void func_80128268(void);
|
||||
extern u16 D_800B99F6;
|
||||
extern void (*D_8018AE94[])(void);
|
||||
extern void func_80011B7C(int);
|
||||
extern void func_801282CC(void);
|
||||
extern void func_8001C0C8(void);
|
||||
extern void func_80015310(void);
|
||||
extern void func_80129258(void);
|
||||
extern void func_801378F0(void);
|
||||
extern void func_80010E14(void);
|
||||
extern s16 currentLocationId;
|
||||
extern s32 func_80029504(void);
|
||||
extern s32 func_800CF854(s32);
|
||||
extern s32 func_80128998(void);
|
||||
extern s32 func_801289F0(void);
|
||||
extern s32 func_801288E8(s32);
|
||||
extern s32 func_80128940(s32);
|
||||
extern s32 func_80029178(s32);
|
||||
extern s32 func_801288B0(void);
|
||||
extern void func_80011C10(void);
|
||||
extern void func_8012832C(void);
|
||||
extern void func_80129220(void);
|
||||
extern void func_80011E24(void);
|
||||
extern void func_80128C14(void);
|
||||
extern void func_8002AEF8(void);
|
||||
extern void func_800CFBBC(void);
|
||||
extern void SsUtReverbOff(void);
|
||||
extern void func_8013C98C(void);
|
||||
extern void func_80129C40(s32 a0);
|
||||
extern void func_800D0630(void);
|
||||
extern void func_80145CEC(void);
|
||||
extern void func_80144B9C(void);
|
||||
extern u8 D_800B9A17;
|
||||
extern u8 D_800B9A10;
|
||||
extern void func_80128420(void);
|
||||
extern s32 func_800D0588(void);
|
||||
extern void func_801284B8(void);
|
||||
extern void func_80175308(void);
|
||||
extern void func_8016E8F0(void);
|
||||
extern void func_80175494(void);
|
||||
extern u8 D_800B9A64;
|
||||
extern void func_801284F0(void);
|
||||
extern void func_80146074(void);
|
||||
extern void func_8012853C(void);
|
||||
extern void func_80178608(void);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern s32 func_80011A3C(void);
|
||||
extern short currentLocationId;
|
||||
extern short D_800B99F2;
|
||||
extern void func_80128564(void);
|
||||
extern u8 D_800B9A11;
|
||||
extern void func_801285D4(void);
|
||||
extern s32 func_800D18DC(void);
|
||||
extern void func_8014607C(void);
|
||||
extern void func_801287B8(void);
|
||||
extern s32 D_801E6CCC;
|
||||
extern void func_80029444(void);
|
||||
extern void func_800D1754(void);
|
||||
extern s32 D_80126B58;
|
||||
extern s32 D_801E87C0;
|
||||
extern u16 D_800B99DA;
|
||||
extern void func_80129CF8(void);
|
||||
extern void func_8017849C(void);
|
||||
extern void func_8014FDF4(struct S8014FDF4 *a0);
|
||||
extern s32 func_801505FC(s32 a0);
|
||||
extern void func_801508B4(void *a0);
|
||||
extern void func_80165E90(void);
|
||||
extern void func_801627E8(void);
|
||||
extern void func_80162B1C(void);
|
||||
extern void func_80165CA0(void);
|
||||
extern void func_80129010(void);
|
||||
extern void func_8013CA14(void);
|
||||
extern void func_800190AC(void);
|
||||
extern void func_8012956C(void);
|
||||
extern void func_8016E95C(void);
|
||||
extern void func_801754A8(void);
|
||||
extern void func_8013BC7C(void);
|
||||
extern void func_8013BCDC(void);
|
||||
extern void func_801379FC(void);
|
||||
extern void func_8001212C(void);
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 sp10);
|
||||
extern u8 D_800AEFD0;
|
||||
extern int D_800C7C60;
|
||||
extern int *D_800C7C64;
|
||||
extern int D_800A2E20;
|
||||
extern int D_800AF558;
|
||||
extern int D_801E5794;
|
||||
extern int func_801288E8(int arg0);
|
||||
extern u8 D_800AF560;
|
||||
extern s32 func_80128940(s32 _arg0);
|
||||
extern int D_800AECB0;
|
||||
extern u8 D_800AECB8;
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
extern s16 D_800B9A00;
|
||||
extern M2C_UNK (*D_8018ABD0)();
|
||||
extern s16 (*D_8018ABD4)();
|
||||
extern M2C_UNK (*D_8018ABDC)();
|
||||
extern s32 (*D_8018ABE0)();
|
||||
extern s32 D_801E6CC8;
|
||||
extern void func_80010AE0(s32 a0);
|
||||
extern void func_80018450(s32 a0, s32 a1);
|
||||
extern void func_800183E0(s32 a0);
|
||||
extern void func_80128D60(s32 a0, s32 *a1, s32 *a2);
|
||||
extern s32 func_80128DB4(s32 a0, s32 *a1);
|
||||
extern void func_80128EA8(s32 a0, s32 a1, s32 a2);
|
||||
extern M2C_UNK D_801E5798;
|
||||
extern void func_80128FAC(u16 *arg0);
|
||||
extern s16 D_8011DB2C;
|
||||
extern s16 D_8011DB30;
|
||||
extern s32 D_80126AEC;
|
||||
extern u8 *func_8012913C(s32 a0);
|
||||
extern u8 * func_801290DC(s32 a0, u8 *a1);
|
||||
extern void func_8001D074(s32 a, s32 b);
|
||||
extern u8 *func_801291C0(void);
|
||||
extern s32 func_8001CC3C(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern u8 * func_8012913C(s32 arg0);
|
||||
extern void func_80016714(void *a0, s32 a1);
|
||||
extern u8 * func_801291C0(void);
|
||||
extern void func_80129248(s16 a0);
|
||||
extern void func_801292C8(u8 *a0);
|
||||
extern void func_8012927C(void);
|
||||
extern void func_8012931C(struct vec *a0);
|
||||
extern void func_80129350(s32 a0, s32 a1);
|
||||
extern void func_80129374(s32 a0, s32 a1);
|
||||
extern s16 D_800B9AAC[];
|
||||
extern s16 D_800B9AAE[];
|
||||
extern s16 D_800B9AB0[];
|
||||
extern s16 D_800B9AB2[];
|
||||
extern s16 D_800B9AB4[];
|
||||
extern s16 D_800B9AB6[];
|
||||
extern s16 D_800B9AB8[];
|
||||
extern s16 D_800B9ABA[];
|
||||
extern void func_80129398(void);
|
||||
extern s16 D_80114EE0;
|
||||
extern void func_80129428(void);
|
||||
extern void func_8012943C(void);
|
||||
extern s32 D_8005128C;
|
||||
extern u8 D_800B9A78;
|
||||
extern void func_801298F4(void *arg0);
|
||||
extern void func_801299C8(s32 a, s32 b, s32 c);
|
||||
extern void func_8012944C(void);
|
||||
extern unsigned short D_800B99F0;
|
||||
extern void func_8012A328(void);
|
||||
extern void func_80053308(s32);
|
||||
extern s32 func_80012F74(s32, s32, s32, s32); /* canonical s32 (engine_core); (s16)-cast the return for the sll/sra */
|
||||
extern void GsSetRefView2L(void *);
|
||||
extern s8 D_801150D6; /* canonical (engine_core macro): s8 — access via *(u8*)& for lbu */
|
||||
extern u8 D_80127504;
|
||||
extern s32 D_80126E60[];
|
||||
extern s32 D_80126F04[];
|
||||
extern u8 D_80126948[]; /* canonical (sibling): u8[] — cast (s32*) at use */
|
||||
extern s32 D_80126FA8[];
|
||||
extern struct BigCopy D_80126DB8;/* canonical (engine_core macro): struct BigCopy — (s32*)& at use */
|
||||
extern u8 D_800AF630[]; /* canonical (sibling): u8[] — cast (s32*) at use */
|
||||
extern s32 D_800AE688[];
|
||||
extern s32 D_801151D4; /* canonical (10 siblings): scalar s32 — store (s32)ptr */
|
||||
extern void func_8012A018(s32 a, s32 b);
|
||||
extern void func_80129FF4(void);
|
||||
extern u16 D_80126B5E;
|
||||
extern u16 D_80126B62;
|
||||
extern u16 D_80126B66;
|
||||
extern s16 D_80126940;
|
||||
extern s16 D_80126942;
|
||||
extern s16 D_80126944;
|
||||
extern void func_8012A048(void *a0, s32 a1, u8 a2);
|
||||
extern void *memcpy(void *, const void *, unsigned int);
|
||||
extern void func_8012A094(s32 a0);
|
||||
extern void func_8012A100(s8 a0);
|
||||
extern void func_8012A0E0(void);
|
||||
extern s8 D_801150D6;
|
||||
extern s32 D_80120204;
|
||||
extern s32 D_80120200;
|
||||
extern s32 D_8012020C;
|
||||
extern s32 D_80120208;
|
||||
extern s16 D_80120218;
|
||||
extern s16 D_80120210;
|
||||
extern s16 D_8012021A;
|
||||
extern s16 D_80120212;
|
||||
extern s16 D_8012021C;
|
||||
extern s16 D_80120214;
|
||||
extern s16 D_80120226;
|
||||
extern s16 D_80120220;
|
||||
extern s16 D_80120228;
|
||||
extern s16 D_80120222;
|
||||
extern s16 D_8012022A;
|
||||
extern s16 D_80120224;
|
||||
extern s32 D_80120294;
|
||||
extern s16 D_80120298;
|
||||
extern s16 D_8012029A;
|
||||
extern void func_8012A110(void);
|
||||
extern s8 D_801152C0;
|
||||
extern void func_8012A2F4(void);
|
||||
extern s16 D_80127080;
|
||||
extern s16 D_801152C2;
|
||||
extern void func_8012A304(s32 a0, s32 a1);
|
||||
extern s32 D_801151D4;
|
||||
extern struct BigCopy D_80126DB8;
|
||||
extern struct BigCopy D_80114EE8;
|
||||
extern void func_8012A4BC(void);
|
||||
extern void func_8012A598(void *a0);
|
||||
extern void func_8012A568(void (*a0)(void));
|
||||
extern void func_8012A62C(s32);
|
||||
extern void func_8012A5F8(void (*a0)(void), s32 a1);
|
||||
extern void func_8012A62C(s32 a0);
|
||||
extern void func_8012A7D4(void *a0, void *a1);
|
||||
extern s32 func_8012A6D0(void *a0, void *a1);
|
||||
extern s16 func_8012A68C(void);
|
||||
extern s16 func_8012A79C(s16 *a0, s16 *a1);
|
||||
extern s16 func_8012A758(void);
|
||||
extern s32 ratan2(s32 a0, s32 a1);
|
||||
extern void func_8012A7D4(void *arg0, void *arg1);
|
||||
extern void func_8012AAAC();
|
||||
extern void func_8012A828(s32 a0, void * a1);
|
||||
extern int func_8012ACE0(void *a0);
|
||||
extern void func_8012A860(void *a0, int a1);
|
||||
extern void func_8012A8B0(u8 *a0, s32 a1);
|
||||
extern void func_8012A8E8(void);
|
||||
extern u8 D_801202A0[];
|
||||
extern u16 D_801270C0;
|
||||
extern void func_8012A988(u8 *a0);
|
||||
extern void func_8012A908(void);
|
||||
extern s32 func_8012ACE0(void *a0);
|
||||
extern M2C_UNK D_8018AF28;
|
||||
extern void func_8012ACA0(void *arg0);
|
||||
extern s32 func_8012ACE0(void *o);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
extern s32 func_8012AD50(void * arg0);
|
||||
extern void func_8012AD64(s32 *a0, s16 a1);
|
||||
extern void func_8012AD6C(void *a0);
|
||||
extern void func_8012AD80(s32 a0);
|
||||
extern void func_8012ADE4(u8 *a0);
|
||||
extern s32 *D_80126B78;
|
||||
extern s32 *D_80126B90;
|
||||
extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern s32 func_80013478(s32 a0, s32 a1);
|
||||
extern s32 func_8012AE00(s32 a0);
|
||||
extern s32 func_8012AF0C(s32 a0, s32 a1);
|
||||
extern s32 func_80134510(s32 arg);
|
||||
extern s32 func_8012B030(u8 *a0);
|
||||
extern int func_80047948(int a0);
|
||||
extern int func_8004787C(int a0);
|
||||
extern void func_8012B0B4(unsigned int *param_1, int param_2, int param_3);
|
||||
extern void func_800484EC(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012B14C(s32 a0, s32 a1);
|
||||
extern void func_8012B178(s32 a0, s32 a1);
|
||||
extern void func_8012B1B4(s32 a0, s32 a1);
|
||||
extern void func_8012B200(u8 *a0);
|
||||
extern void func_8012B21C(void *a0);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern void func_8012B260(u8 *a0);
|
||||
extern void func_80049CAC(s32 a0, s32 a1);
|
||||
extern void func_8012B2CC(s32 a0);
|
||||
extern void RotMatrixYXZ(void *m, void *p);
|
||||
extern void func_8012B370(int a0);
|
||||
extern void func_8004978C(s16 *a0, void *a1);
|
||||
extern void func_8012B414(int a0);
|
||||
extern s32 func_8012B608(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_8012B6D4(s16 *a0, s16 *a1);
|
||||
extern s32 func_8012B70C(s16 *a0, s16 *a1);
|
||||
extern s32 ratan2(s32 x, s32 y);
|
||||
extern s32 func_8012B744(void *a0, void *a1);
|
||||
extern s16 D_80126CB8;
|
||||
extern s16 D_80126CB4;
|
||||
extern s32 func_8012B864(s32 a0);
|
||||
extern s32 func_8012B8A4(s16 *a0);
|
||||
extern s32 func_8012B8E4(s32 arg0, s32 arg1);
|
||||
extern s32 func_8012BA10(s32 arg0, s32 arg1);
|
||||
extern s32 func_8012BB3C(s32 arg0, s32 arg1, u32 arg2, s32 arg3);
|
||||
extern void Square0(s32 *a0, s32 *a1);
|
||||
extern s32 func_8012BC60(struct Vec *a0, struct Vec *a1);
|
||||
extern s16 D_80126CBA;
|
||||
extern s32 func_8012BCCC(s32 a0);
|
||||
extern void func_80013350(s32 a0, void *a1);
|
||||
extern u8 D_80126B5C;
|
||||
extern void func_8012BD14(s32 a0);
|
||||
extern s32 func_8012BDBC(s32 a0, s32 a1);
|
||||
extern s32 func_8012BD3C(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012BE98(s32 a0, u16 *a1);
|
||||
extern void func_8012BE54(s32 a0);
|
||||
extern s32 func_800132BC(s32 a0, s32 a1);
|
||||
extern void func_8012BE98(s32 arg0, u16 * arg1);
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern s32 func_8012BF10(s32 a0, s32 a1);
|
||||
extern void func_8012BF4C(s32 *a0, s32 a1);
|
||||
extern void func_8012BF54(void *a0);
|
||||
extern void func_8012BF68(void *a0);
|
||||
extern s16 D_80126CB0;
|
||||
extern s32 func_8012BF7C(s16 *a0);
|
||||
extern s16 D_80126CAC;
|
||||
extern short D_80126CAE;
|
||||
extern int func_8012BFA8(short *a0);
|
||||
extern s32 D_801274D4;
|
||||
extern s32 D_801274E0;
|
||||
extern s32 func_8012C044(s32 a0);
|
||||
extern void func_8012C218(void *a0);
|
||||
extern void func_8012C098(void *param_1);
|
||||
extern s32 func_8012C0EC(s32 a0);
|
||||
extern void func_8012C194(void);
|
||||
extern void func_8001CFDC(s32 a, s32 b);
|
||||
extern void func_8012C1B8(void);
|
||||
extern u8 D_800B3DF0[];
|
||||
extern s32 func_8012C1DC(s32 a0);
|
||||
extern u8 D_80126720[];
|
||||
extern u16 * func_8012C284(u16 *a0);
|
||||
extern u8 D_80120194[];
|
||||
extern s32 func_8012C2D0(void);
|
||||
extern s32 func_8012C31C(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern void func_8001C214(s32 a0, s32 a1);
|
||||
extern u8 D_80078EAE;
|
||||
extern s32 func_8012C354(s32 a0, s32 a1);
|
||||
extern void func_8001C810(s32 a0, s32 a1);
|
||||
extern s32 func_8012C438(s32 a0, s32 a1);
|
||||
extern s32 func_8012C890(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_8012C51C(void *a0, s32 a1);
|
||||
extern s32 func_8012C588(s32 a0, s32 a1);
|
||||
extern void func_8012C724(s32 a0, s32 a1);
|
||||
extern s32 func_8012C750(s32 a0);
|
||||
extern s32 func_8012C820(u8 *a0);
|
||||
extern s32 D_8018E40C;
|
||||
extern s16 D_801270C4;
|
||||
extern u16 D_801274E4[];
|
||||
extern s32 D_8011DB08;
|
||||
extern s32 func_8012CB64(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4);
|
||||
extern s32 func_8012CC88(s32 a, s32 b, s32 c);
|
||||
extern u8 D_800D3918[];
|
||||
extern void func_8012CBA4(s32 a0);
|
||||
extern void func_8012CBCC(s32 a0);
|
||||
extern void func_8012CBF4(s32 a0);
|
||||
extern void func_8012CC1C(s32 arg0, s32 arg1);
|
||||
extern void func_8012CC40(s32 arg0, s32 arg1);
|
||||
extern s32 func_8012CC88(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012CC64(s32 a0, s32 a1);
|
||||
extern s32 func_80133784(s32 a0, void *a1, s32 a2);
|
||||
extern s32 func_8012CE2C(s32 a0);
|
||||
extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012CFA8(s32 arg0);
|
||||
extern void func_8012F214(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012D3B4(s32 arg0, s32 arg1, s32 arg2);
|
||||
extern void func_8012D098(u16 *param_1, u32 param_2);
|
||||
extern void func_8012D098();
|
||||
extern void func_8012D38C(int a0);
|
||||
extern void func_8012D3AC(void);
|
||||
extern s32 AddPrim(s32, void *);
|
||||
extern s32 RotTransPers(s32, s32, s32 *, s32 *);
|
||||
extern void SetLineF2(void *);
|
||||
extern void *func_80010A08(s32);
|
||||
extern void func_8004914C(void *);
|
||||
extern void func_800491AC(void *);
|
||||
extern s32 D_800A651C;
|
||||
extern u8 D_800AF648;
|
||||
extern s16 D_800B9A02;
|
||||
extern void func_8012D4B4(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern void func_8012D5DC(void);
|
||||
extern s16 D_80126B98;
|
||||
extern s32 func_8012DEB8(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_8012D5E4(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern int func_8012D664();
|
||||
extern void func_8012D624(s32 a0);
|
||||
extern int func_8012D664(int arg0, int arg1, int arg2);
|
||||
extern s32 func_8012D714(s32 param_1, u32 param_2);
|
||||
extern void func_8012F568(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4, s32 a5);
|
||||
extern void func_8014C978(void);
|
||||
extern M2C_UNK D_8018AF40;
|
||||
extern M2C_UNK D_8018AF48;
|
||||
extern s32 func_8012DB84(void);
|
||||
extern s32 func_8012DE2C(s32 a0);
|
||||
extern s32 func_8012DDA4(void);
|
||||
extern s32 func_8012DBD0(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern s32 func_8012DDA4();
|
||||
extern s32 func_8012DF34(s32 a0, s32 a1, s32 a2);
|
||||
extern s16 D_80126B9A;
|
||||
extern u8 D_801152A8[];
|
||||
extern void func_8012DFBC(void);
|
||||
extern void func_8012DFCC(void);
|
||||
extern void func_8012E014(s32 arg0);
|
||||
extern void func_8012E138(void);
|
||||
extern void func_8012DFD4(u8 *a0);
|
||||
extern s32 func_8012E27C(void);
|
||||
extern void func_8012E284(void);
|
||||
extern s32 GetTPage(s32, s32, s32, s32);
|
||||
extern s32 func_8005A600(s32, s32, s32, s32, s32);
|
||||
extern void func_8012E28C(s32 arg0, s32 arg1);
|
||||
extern void func_8004914C(void *a0);
|
||||
extern void func_800491AC(void *a0);
|
||||
extern void func_8012E32C(void);
|
||||
extern s32 func_8012E470(s32 a0);
|
||||
extern void func_8012E4C8(s32 a0);
|
||||
extern s32 func_8012E504(s32 a0, s32 a1);
|
||||
extern s32 func_8012E544(s32 a0);
|
||||
extern s32 func_8012E57C(s32 a0, s32 a1);
|
||||
extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3);
|
||||
extern void func_8012E5CC(s32 param_1, u16 param_2, u16 param_3);
|
||||
extern void func_8012E688(s32 param_1, u16 param_2, u16 param_3);
|
||||
extern s32 func_8012E778(int param_1, int param_2);
|
||||
extern void func_8012E88C(u8 *a0);
|
||||
extern void func_8012E8A8(u8 *a0);
|
||||
extern void func_8012E8C4(u8 *a0);
|
||||
extern void func_8012E8E0(s32 a0, s32 a1);
|
||||
extern void func_8016AA50(int, int);
|
||||
extern void func_8016B428(int);
|
||||
extern void func_80019064(void *);
|
||||
extern int D_8018AF50;
|
||||
extern void func_8012E9C0(int param_1);
|
||||
extern void func_8012EA90(s32 param_1, s32 param_2, s32 *param_3);
|
||||
extern void func_8012EC04(s32 param_1, s32 param_2, s32 *param_3);
|
||||
extern s32 func_8002A4FC(s32 a0);
|
||||
extern s32 func_8012EECC(s32 a0);
|
||||
extern void func_8012EFB8(s32 a0);
|
||||
extern void func_8012EF34(s32 a0, s32 a1);
|
||||
extern void func_8012EF70(s32 a0, s32 a1);
|
||||
extern void ApplyTransposeMatrixLV(void *a0, void *a1, void *a2);
|
||||
extern void func_8012F038(int param_1, short *param_2, short *param_3);
|
||||
extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2);
|
||||
extern void RotTransSV(s32 a0, s32 a1, void *a2);
|
||||
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012F1A4(s32 *a0, s32 a1, s32 *a2);
|
||||
extern void func_8012F2E8(s32 a0, s32 a1, s32 a2);
|
||||
extern s16 D_80126CB6;
|
||||
extern void func_8012F374(s32 a0, s32 a1);
|
||||
extern void *memcpy(void *, const void *, u32);
|
||||
extern u8 D_80126C38;
|
||||
extern u8 D_80126C40;
|
||||
extern u16 D_80126B94;
|
||||
extern u16 D_80126B96;
|
||||
extern void func_8012F568(s32 param_1, s32 param_2, s32 param_3, s32 param_4, s32 param_5, s32 param_6);
|
||||
extern void func_80131B14();
|
||||
extern void func_80131E00(struct S80131E00 *a0, s32 a1);
|
||||
extern s32 func_80131A34(s32, s32);
|
||||
extern void func_80131CA8(int a0, int a1);
|
||||
extern void func_8012F5F4(s32 arg0);
|
||||
extern void func_80131C78(s32 a0);
|
||||
extern void func_8012F68C(s32 arg0);
|
||||
extern void func_8012F75C(s32 a0);
|
||||
extern s32 func_8012BEE8(s32);
|
||||
extern void func_8012F7B4(s32 a0);
|
||||
extern void func_80131170();
|
||||
extern void func_80131CA8();
|
||||
extern unsigned char D_8018AF6C[];
|
||||
extern void func_8012F828(int param_1);
|
||||
extern void func_80131340(s32 a0);
|
||||
extern void func_8012F87C(s32 a0);
|
||||
extern void func_80131170(s32 a0, s32 a1, s32 a2);
|
||||
extern u8 D_8018AF78[];
|
||||
extern void func_8012F8C8(u8* arg0);
|
||||
extern void func_8012F91C(s32 a0);
|
||||
extern s32 func_80131A34(s32 a0, s32 a1);
|
||||
extern void func_80131CA8(s32 a0, s32 a1);
|
||||
extern void func_8012F968(s32 param_1);
|
||||
extern void func_801319E0(s32 a0);
|
||||
extern s32 func_80143B6C(s32 a0, s32 a1);
|
||||
extern void func_8012FB54(s32 a0);
|
||||
extern void func_8012FC30(s32 a0);
|
||||
extern void func_8012FCA4(int a0);
|
||||
extern s32 func_8012FCC4(s32 param_1);
|
||||
extern void func_8012FDA8(int param_1);
|
||||
extern void func_8012FE70(s32 a0);
|
||||
extern void func_8012FF00(s32 a0);
|
||||
extern void func_8012FF4C(s32 a0);
|
||||
extern void func_80130D48(s32 a0);
|
||||
extern void func_8012FF98(u8 *a0);
|
||||
extern s32 func_80131AC8(void *a0);
|
||||
extern void func_8013001C(void *a0);
|
||||
extern void func_80130088(void *a0);
|
||||
extern s32 func_8012BCCC(s32);
|
||||
extern void func_801300F4(s32 a0);
|
||||
extern void func_801301E8(u8 *a0);
|
||||
extern void func_80130278(s32 arg0);
|
||||
extern void func_80130314(s32 a0);
|
||||
extern void func_80130360(s32 a0);
|
||||
extern void func_8012E364(void);
|
||||
extern void func_801303A0(s32 a0);
|
||||
extern void func_801303EC(void *a0);
|
||||
extern void func_80143CD4(s32 a0);
|
||||
extern void func_800CB0E8(s32 a0);
|
||||
extern void func_80130438(s32 a0);
|
||||
extern void func_801319E0(int);
|
||||
extern int func_80131D68(int, int);
|
||||
extern int func_8012BEE8(int);
|
||||
extern void func_80131CA8(int, int);
|
||||
extern void func_80130514(int param_1);
|
||||
extern void func_801305CC(u8 *a0);
|
||||
extern void func_8012CBF4(s32);
|
||||
extern s32 func_80131D68(s32 a0, s32 a1);
|
||||
extern void func_80130650(s32 a0);
|
||||
extern s32 func_80146A6C(s32 a0, void *a1, s32 a2, s32 a3, s32 a4, s32 a5, s32 a6);
|
||||
extern void func_80130740(void *a0, u16 *a1);
|
||||
extern s32 func_801312D0(s32 a0, void *a1);
|
||||
extern void func_801307B0(s32 a0);
|
||||
extern void func_80130858(s32 a0);
|
||||
extern void func_80130898(u8 *a0);
|
||||
extern void func_801308DC(s32 a0);
|
||||
extern void func_80166244();
|
||||
extern void func_80130974(int param_1);
|
||||
extern void func_80130A18(u8 *a0);
|
||||
extern void func_80130AC4(s32 a0);
|
||||
extern int func_80131A34(int a0, int a1);
|
||||
extern void func_80130AF0(int param_1);
|
||||
extern void (*D_8018AF8C[])(void);
|
||||
extern void func_80130D0C(void *a0);
|
||||
extern s32 rand(void);
|
||||
extern u8 D_80078E78[];
|
||||
extern u16 D_80078EB2;
|
||||
extern u16 D_80078EB4;
|
||||
extern s16 D_8018AFDC[];
|
||||
extern s16 D_8018B00C[];
|
||||
extern s16 D_8018B06C[];
|
||||
extern s16 D_8018B074[];
|
||||
extern s16 D_8018B094[];
|
||||
extern void func_80130D48(s32 arg0);
|
||||
extern void func_80131170(s32 p, s32 b, s32 c);
|
||||
extern s32 func_801312D0(s32 param_1, void *param_2);
|
||||
extern void func_80131E00();
|
||||
extern s32 D_801E6CF0;
|
||||
extern s32 D_801E6CF4;
|
||||
extern void func_8002A04C(s32 a0);
|
||||
extern void func_801319E0(s32 arg0);
|
||||
extern s32 func_80131CF4(s32 a0);
|
||||
extern int func_80131D68(int a0, int a1);
|
||||
extern void (*D_8018B0CC[])(struct S80131E00 *a0);
|
||||
extern void func_80131E38(u8 *a0);
|
||||
extern void func_80131E7C(s32 a0);
|
||||
extern void func_80131EE4(void);
|
||||
extern void (*D_8018B124[])(void);
|
||||
extern void func_80131EEC(void *a0);
|
||||
extern void (*D_8018B16C[])(void);
|
||||
extern void func_80131F28(void *a0);
|
||||
extern void (*D_8018B174[])(void);
|
||||
extern void func_80131F64(void *a0);
|
||||
extern void (*D_8018B17C[])(void);
|
||||
extern void func_80131FA0(void *a0);
|
||||
extern void (*D_8018B184[])(void);
|
||||
extern void func_80131FDC(void *a0);
|
||||
extern void func_801320D0(void);
|
||||
extern void func_8001C214(int, int);
|
||||
extern int D_8018B12C;
|
||||
extern void func_801320D8(int param_1);
|
||||
extern s32 func_80132144(s32 param_1);
|
||||
extern int D_8018B14C;
|
||||
extern void func_801321B0(int param_1);
|
||||
extern int D_8018B15C;
|
||||
extern void func_8013221C(int param_1);
|
||||
extern void func_8005C324(int dst, int src, int n) __asm__("memcpy"); /* Phase-24: 0x8005C324 is named memcpy for overlays (whale needs it); keep the non-builtin C name here (else built-in codegen), emit via asm-label */
|
||||
extern void func_801325B8(int a0, int a1, int a2, int a3, int a4);
|
||||
extern void func_80132288(int *param_1, int *param_2, int param_3);
|
||||
extern void func_801325B8(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4);
|
||||
extern void func_8013240C(s32 a0);
|
||||
extern void memcpy();
|
||||
extern void gteMIMefunc();
|
||||
extern void func_801325B8(int dst, int src, int m0, int mm, int arg5);
|
||||
extern void func_8013277C(void);
|
||||
extern void func_80020F34(s32 a0, s32 a1);
|
||||
extern void func_80054514(s32 a0, s32 a1);
|
||||
extern void func_80132784(s32 a0, s32 a1, u32 a2);
|
||||
extern s32 VectorNormalSS(void *a0, void *a1);
|
||||
extern void func_80132DC4(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_80132E6C(s16 *a0);
|
||||
extern void func_80132EC4(void *a0, s16 a1);
|
||||
extern s32 func_80132EF4(s32 a0, s32 a1);
|
||||
extern void func_801330E0(void * param_1, s16 * param_2, s32 param_3);
|
||||
extern void func_80133060(u8 *a0, s32 *a1, s32 a2);
|
||||
extern void func_8013339C(short *param_1, short *param_2);
|
||||
extern s32 func_8013361C(s16 *a0, s16 *a1, s16 *a2, s16 *a3);
|
||||
extern s32 D_801E6D38;
|
||||
extern s32 D_801E6D3C[];
|
||||
extern int D_801E6D40;
|
||||
extern void func_80136BC4(s32 a0);
|
||||
extern void func_801336E8(void *a0, int a1, int a2);
|
||||
extern void func_80136BC4(s32);
|
||||
extern void func_8013373C(s16 arg0);
|
||||
extern s32 func_80133784(s32 arg0, void *arg1, s32 arg2);
|
||||
extern s32 func_80133CD4();
|
||||
extern s32 func_80134310(Vec3s *a0, Vec3s *a1, s32 a2);
|
||||
extern s32 func_8013435C(s16 *a0, s16 *a1, s32 a2, s16 *a3);
|
||||
extern s32 func_801343C4(s32 angle, s32 p1, s32 p2);
|
||||
extern s32 func_80134510(s32 param);
|
||||
extern s32 func_801345F8(s32 arg);
|
||||
extern s32 func_801347A0(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern s32 func_80134A28(s32 a0, s32 a1, s32 a2);
|
||||
extern int func_80134A74(int param_1, s16 param_2, s16 param_3, int param_4);
|
||||
extern s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern s32 func_80134FB8(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_80135004(s32 arg0, s32 p1, s32 p2);
|
||||
extern u8 D_8018B190;
|
||||
extern u8 D_8018B18C;
|
||||
extern s16 *D_8018B194;
|
||||
extern u8 D_8018B198;
|
||||
extern int D_801E6D38;
|
||||
extern u16 D_801E6D48;
|
||||
extern int func_80134A74(int, s16, s16, int);
|
||||
extern int func_80135168(u16 arg0, u16 *p1, u16 *p2);
|
||||
extern s16 func_80135480(void *param_1, s32 param_2, s16 *param_3, s16 *param_4);
|
||||
/* ==== end §8b carried decl layer ==== */
|
||||
|
||||
|
||||
s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
|
||||
typedef struct { s8 c[8]; } Blk8;
|
||||
extern s16 func_80135480(void *param_1, s32 param_2, s16 *param_3, s16 *param_4);
|
||||
extern s32 func_80135EB0(void *arg0, s32 arg1_);
|
||||
extern s32 func_80136A94(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern s32 func_80133AB0(s16, s16, s16, s32);
|
||||
extern u8 D_8018B18C;
|
||||
extern u8 D_8018B190;
|
||||
extern s16 *D_8018B194;
|
||||
extern s16 D_801E6D44;
|
||||
extern u16 D_801E6D48;
|
||||
extern s32 D_801E6D4C;
|
||||
extern s32 D_801E6D6C;
|
||||
extern u8 D_801152A8[];
|
||||
extern u8 D_801152B0;
|
||||
|
||||
s32 *p;
|
||||
register s32 s7 __asm__("$23");
|
||||
s32 flag;
|
||||
s32 acc;
|
||||
s16 i;
|
||||
s32 eq;
|
||||
s32 ret;
|
||||
s32 frame_pad[8];
|
||||
(void)&frame_pad;
|
||||
|
||||
switch (((s32 (*)(void))func_80135480)()) {
|
||||
case 0:
|
||||
return 0;
|
||||
case 1:
|
||||
s7 = a0 + 0x34;
|
||||
p = (s32 *)((a1 & 0xFFFFFFF) | 0x80000000);
|
||||
flag = 0;
|
||||
break;
|
||||
case 2:
|
||||
s7 = a0 + 0x34;
|
||||
p = (s32 *)((a1 & 0xFFFFFFF) | 0x80000000);
|
||||
flag = 1;
|
||||
break;
|
||||
case 3:
|
||||
s7 = a0 + 0x34;
|
||||
p = (s32 *)&D_801E6D6C;
|
||||
flag = 0;
|
||||
break;
|
||||
case 4:
|
||||
s7 = (s32)&D_801E6D4C;
|
||||
p = (s32 *)&D_801E6D6C;
|
||||
flag = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
acc = 0;
|
||||
if (a1 < 0) {
|
||||
if (func_80135EB0(p, -0x8000) == 0) {
|
||||
p = (s32 *)*p;
|
||||
if (p == 0) return 0;
|
||||
loop:
|
||||
if (func_80135EB0(p, -0x8000) == 0) goto next;
|
||||
}
|
||||
docall:
|
||||
func_80136A94(flag, a0, a3, s7);
|
||||
return 1;
|
||||
next:
|
||||
p = (s32 *)*p;
|
||||
__asm__ __volatile__("");
|
||||
if (p != 0) goto loop;
|
||||
return 0;
|
||||
}
|
||||
|
||||
i = 0;
|
||||
*(s16 *)((*(u8 **)&D_8018B18C) + 6) = -0x7FFF;
|
||||
*(s16 *)((*(u8 **)&D_8018B190) + 6) = 0x7FFF;
|
||||
D_801E6D48 = 0;
|
||||
D_801E6D44 = 0;
|
||||
{
|
||||
s32 t = 0;
|
||||
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
|
||||
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
|
||||
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
|
||||
}
|
||||
eq = t;
|
||||
}
|
||||
|
||||
while (1) {
|
||||
ret = func_80133AB0(0, (s16)(*(Box **)&D_8018B18C)->f0, (s16)(*(Box **)&D_8018B18C)->f4, (s32)p);
|
||||
if (ret == 0) goto out;
|
||||
acc |= ret;
|
||||
if (eq != 0) goto out;
|
||||
{
|
||||
s16 old = i;
|
||||
i = i + 1;
|
||||
if (old >= 5) return 0;
|
||||
}
|
||||
}
|
||||
|
||||
out:
|
||||
if ((s16)acc != 0 || D_801E6D44 != 0) {
|
||||
if ((*(Box **)&D_8018B18C)->f6 >= -0xBCB) {
|
||||
*(Blk8 *)D_801152A8 = *(Blk8 *)&D_801152B0;
|
||||
}
|
||||
(*(Box **)&D_8018B194)->f0 = (*(Box **)&D_8018B190)->f0;
|
||||
(*(Box **)&D_8018B194)->f2 = (*(Box **)&D_8018B190)->f2;
|
||||
(*(Box **)&D_8018B194)->f4 = (*(Box **)&D_8018B190)->f4;
|
||||
goto docall;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,79 +0,0 @@
|
||||
#include "common.h"
|
||||
|
||||
|
||||
void func_8017F950(s32 arg0)
|
||||
{
|
||||
typedef struct { u32 w[4]; } St801D9204;
|
||||
extern void func_80019064(void *a0);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern void func_8012B2CC(s32 a0);
|
||||
extern void func_8012E9C0(s32 a0);
|
||||
extern s32 func_80143B6C(s32 a0, s32 a1);
|
||||
extern void func_8017FC9C(s32 a0);
|
||||
extern void func_8017FCB0(s32 a0);
|
||||
extern void func_8017FD2C(s32 a0);
|
||||
extern void func_8017FD44(s32 a0);
|
||||
extern void func_8017FD80(s32 a0);
|
||||
extern void func_8017FDE8(s32 a0);
|
||||
extern void func_8017FE68(s32 a0);
|
||||
extern void func_801801EC(s32 a0);
|
||||
extern void func_80180A64(s32 a0);
|
||||
extern u8 D_80062BDC;
|
||||
extern char D_801A681C[];
|
||||
extern St801D9204 D_801E6A00;
|
||||
St801D9204 local = D_801E6A00;
|
||||
|
||||
if (*(u8 *)(arg0 + 0x5E) == 5) {
|
||||
func_80019064(&D_80062BDC);
|
||||
}
|
||||
if (*(u16 *)(arg0 + 0x5E) == 0x1F) {
|
||||
func_80180A64(arg0);
|
||||
return;
|
||||
}
|
||||
*(u8 *)(arg0 + 0xC1) = 0;
|
||||
func_8012E9C0(arg0);
|
||||
*(u16 *)(arg0 + 0x76) = *(u16 *)(arg0 + 0x76) - *(u16 *)(arg0 + 0x60);
|
||||
*(u16 *)(arg0 + 0x5C) &= 0xFFFE;
|
||||
*(u16 *)(*(s32 *)(arg0 + 0x20) + 0x12) = (*(u16 *)(arg0 + 0x62) + 0x800) & 0xFFF;
|
||||
func_8012B2CC(arg0);
|
||||
func_8012B23C(arg0);
|
||||
*(s16 *)(arg0 + 2) = 3;
|
||||
func_80143B6C(arg0, 0);
|
||||
switch (*(u8 *)(arg0 + 0x5E)) {
|
||||
case 13:
|
||||
func_8017FC9C(arg0);
|
||||
return;
|
||||
case 14:
|
||||
func_8017FCB0(arg0);
|
||||
return;
|
||||
case 10:
|
||||
func_8017FD44(arg0);
|
||||
return;
|
||||
case 9:
|
||||
func_8017FD80(arg0);
|
||||
return;
|
||||
case 17:
|
||||
func_8017FDE8(arg0);
|
||||
return;
|
||||
case 33:
|
||||
func_8017FD2C(arg0);
|
||||
return;
|
||||
case 15:
|
||||
if (*(s16 *)(arg0 + 0x76) > 0) {
|
||||
func_801801EC(arg0);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (*(s16 *)(arg0 + 0x76) > 0) {
|
||||
*(u16 *)(arg0 + 0x34) = 0;
|
||||
*(s32 *)(arg0 + 0x1C) = 0x10;
|
||||
func_8012A828(arg0, D_801A681C);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
func_8017FE68(arg0);
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,176 +0,0 @@
|
||||
#include "common.h"
|
||||
#include "../shared/engine_core.h"
|
||||
|
||||
|
||||
/* ==== Phase-26 §8b carried decl layer (jr_isolate_all.py) ===================
|
||||
* The file-scope decl environment from earlier code regions of this object —
|
||||
* file-local types, col-0 decls, DEFINE_func macro externs, and each earlier
|
||||
* definition's implied prototype (types first, then decls in original order).
|
||||
* Decls emit no code => byte-neutral. See cookbook §8c. */
|
||||
typedef struct {
|
||||
SVECTOR_8016E7C8 v[4]; /* 0x00 */
|
||||
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
|
||||
u8 f6; /* 0x38 */
|
||||
u8 pad[7]; /* -> 0x40 */
|
||||
} Prim_8016E7C8;
|
||||
typedef void (*Handler)(struct Entry_8016E95C *);
|
||||
DEFINE_func_801808C4() /* dedup: shared engine-core @0x801808C4 (src/shared) */
|
||||
|
||||
|
||||
// @class: plumbing
|
||||
// @stuck: none — MATCH expected (param in $s0 across call, stores in source order)
|
||||
|
||||
extern void func_80130740(void *a0, u16 *a1);
|
||||
extern unsigned char D_8018E78C[];
|
||||
|
||||
void func_80180A18(int param)
|
||||
{
|
||||
((int (*)(int, void *))func_80130740)(param, &D_8018E78C);
|
||||
*(int *)(param + 0x1c) = 0x1e;
|
||||
*(int *)(param + 0x18) = 0;
|
||||
*(int *)(param + 0x10) = 0;
|
||||
*(short *)(param + 0x2) = 0xf;
|
||||
*(short *)(param + 0x5c) = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// @class: plumbing
|
||||
// @stuck: none — MATCH expected (simple struct-field init + two calls, natural schedule)
|
||||
|
||||
extern void func_8012A828(s32, void *);
|
||||
extern void func_8002D4C8(s32, s32);
|
||||
extern unsigned char D_801A6F44;
|
||||
|
||||
void func_80180A64(s32 param_1)
|
||||
{
|
||||
*(s16 *)(param_1 + 2) = 0x10;
|
||||
*(s16 *)(param_1 + 0x34) = 0;
|
||||
*(s16 *)(param_1 + 0x5c) = 0;
|
||||
*(s32 *)(param_1 + 0x1c) = 0;
|
||||
((void (*)(s32, u8 *))func_8012A828)(param_1, ((u8 *)&D_801A6F44));
|
||||
*(s16 *)(param_1 + 0x98) = 0;
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x2c) |= 0x10;
|
||||
*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x1a) = 0x100;
|
||||
func_8002D4C8(0x436, 0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern s32 D_80126B58;
|
||||
extern s32 func_8012E544(s32 a0);
|
||||
extern void func_8012A828(s32, void *);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern void func_8012B178(s32 a0, s32 a1);
|
||||
extern s32 func_80143B6C(s32 a0, s32 a1);
|
||||
extern s32 func_8012CBA4(s32 a0);
|
||||
extern void func_8012B2CC(s32 a0);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern void func_8012B14C(s32 a0, s32 a1);
|
||||
extern void func_801803B0(void);
|
||||
extern s32 rand(void);
|
||||
extern s16 D_8018E794;
|
||||
extern s16 D_8018E796;
|
||||
extern unsigned char D_8018E68C[];
|
||||
extern unsigned char D_801A648C[];
|
||||
extern unsigned char D_801A6F44;
|
||||
|
||||
void func_80180AD4(s32 param_1)
|
||||
{
|
||||
u8 *base = (u8 *)&D_80126B58;
|
||||
s32 flag;
|
||||
s32 cond;
|
||||
s32 t;
|
||||
s32 d;
|
||||
s32 y;
|
||||
u16 mode;
|
||||
s32 p;
|
||||
|
||||
mode = *(u16 *)(param_1 + 0x70);
|
||||
cond = 1;
|
||||
if ((u32)(mode - 0x505) >= 2) {
|
||||
cond = ((mode & 0xff00) == 0x700);
|
||||
}
|
||||
if (cond == 0) {
|
||||
flag = 0;
|
||||
} else {
|
||||
p = func_8012E544(0x298);
|
||||
if (p != 0) {
|
||||
if (*(u16 *)(p + 2) != 2) {
|
||||
flag = 0;
|
||||
} else {
|
||||
d = *(s16 *)(p + 0xe) - *(s16 *)(param_1 + 0xe);
|
||||
if (d < 0) {
|
||||
d = -d;
|
||||
}
|
||||
flag = d < 0x20;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (flag != 0) {
|
||||
*(s16 *)(param_1 + 2) = 0x10;
|
||||
*(s16 *)(param_1 + 0x34) = 0;
|
||||
*(s16 *)(param_1 + 0x5c) = 0;
|
||||
*(s32 *)(param_1 + 0x1c) = 0;
|
||||
((void (*)(s32, u8 *))func_8012A828)(param_1, ((u8 *)&D_801A6F44));
|
||||
*(s16 *)(param_1 + 0x98) = 0;
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x2c) |= 0x10;
|
||||
*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x1a) = 0x100;
|
||||
func_8002D4C8(0x436, 0);
|
||||
} else {
|
||||
switch (*(u16 *)(param_1 + 0x34)) {
|
||||
case 0:
|
||||
if (*(s16 *)(base + 0xe) > D_8018E794) {
|
||||
*(u16 *)(param_1 + 0x34) = 1;
|
||||
func_8012B178(param_1, 0xfff60000);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
t = *(u16 *)(param_1 + 0xfc) - 1;
|
||||
*(u16 *)(param_1 + 0xfc) = t;
|
||||
if ((t << 0x10) <= 0) {
|
||||
func_80143B6C(param_1, 0);
|
||||
*(u16 *)(param_1 + 0xfc) = 8;
|
||||
}
|
||||
func_8012CBA4(param_1);
|
||||
y = *(s16 *)(param_1 + 0xe);
|
||||
if ((y < D_8018E796) || ((y - *(s16 *)(base + 0xe)) < 0x80)) {
|
||||
*(u16 *)(param_1 + 0x70) = 0;
|
||||
*(u8 *)(param_1 + 0xc1) = 0;
|
||||
*(u16 *)(param_1 + 0x2) = 1;
|
||||
*(u16 *)(param_1 + 0x34) = 0;
|
||||
*(s32 *)(param_1 + 0x1c) = (rand() & 0x1f) + 0x46;
|
||||
*(u16 *)(param_1 + 0xe0) = 0;
|
||||
*(u16 *)(param_1 + 0xe2) = *(u16 *)(*(s32 *)(param_1 + 0x20) + 0x12);
|
||||
switch ((s32)((u32)*(u16 *)(param_1 + 0x70) << 0x10) >> 0x18) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 7:
|
||||
if ((*(u16 *)(param_1 + 0xfe) & 2) != 0) {
|
||||
*(u16 *)(param_1 + 0xe2) = 0;
|
||||
}
|
||||
goto seq;
|
||||
case 5:
|
||||
((void (*)(s32))func_801803B0)(param_1);
|
||||
break;
|
||||
case 4:
|
||||
case 6:
|
||||
default:
|
||||
seq:
|
||||
*(u16 *)(param_1 + 0xe4) = 0x1e;
|
||||
*(u16 *)(param_1 + 0x5e) = 0;
|
||||
*(u16 *)(param_1 + 0x5c) = 0xaa10;
|
||||
func_8012B2CC(param_1);
|
||||
func_8012B23C(param_1);
|
||||
func_8012B14C(param_1, (s32)&D_8018E68C);
|
||||
func_8012A828(param_1, &D_801A648C);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,50 +0,0 @@
|
||||
#include "common.h"
|
||||
#include "../shared/engine_core.h"
|
||||
|
||||
|
||||
/* ==== Phase-26 §8b carried decl layer (jr_isolate_all.py) ===================
|
||||
* The file-scope decl environment from earlier code regions of this object —
|
||||
* file-local types, col-0 decls, DEFINE_func macro externs, and each earlier
|
||||
* definition's implied prototype (types first, then decls in original order).
|
||||
* Decls emit no code => byte-neutral. See cookbook §8c. */
|
||||
typedef struct {
|
||||
SVECTOR_8016E7C8 v[4]; /* 0x00 */
|
||||
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
|
||||
u8 f6; /* 0x38 */
|
||||
u8 pad[7]; /* -> 0x40 */
|
||||
} Prim_8016E7C8;
|
||||
typedef void (*Handler)(struct Entry_8016E95C *);
|
||||
DEFINE_func_80181538() /* dedup: shared engine-core @0x80181538 (src/shared) */
|
||||
|
||||
|
||||
extern void func_8012AD80(s32 a0);
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern void func_8012C098(void);
|
||||
extern void func_8012C218(void *a0);
|
||||
extern s32 D_801270CC;
|
||||
|
||||
void func_801815F4(s32 param_1) {
|
||||
((s32 (*)(s32))func_8012AD80)(param_1);
|
||||
if (func_8012BEE8(param_1) == 0) {
|
||||
return;
|
||||
}
|
||||
switch ((s32)((u32)*(u16 *)(param_1 + 0x70) << 0x10) >> 0x18) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 5:
|
||||
case 6:
|
||||
((s32 (*)(s32))func_8012C098)(param_1);
|
||||
return;
|
||||
case 3:
|
||||
case 7:
|
||||
((s32 (*)(s32))func_8012C218)(param_1);
|
||||
return;
|
||||
case 4:
|
||||
D_801270CC = D_801270CC + -1;
|
||||
((s32 (*)(s32))func_8012C218)(param_1);
|
||||
return;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,30 +0,0 @@
|
||||
#include "common.h"
|
||||
#include "../shared/func_80144B9C.h"
|
||||
|
||||
|
||||
/* func_801457A4 @ 0x801457A4 — an -O0 function stranded at the whale's end boundary (it is the
|
||||
* FIRST fn of the -O2 "after" segment, but its target is -O0: frame-pointer + per-case stack
|
||||
* reloads). It can only bank in an -O0 object, so it lives here: _o0b is already -O0-compiled and
|
||||
* its .text ends exactly at 0x801457A4 (right after func_80144B9C), placing this fn at its true
|
||||
* address with no linker/Makefile change. Its stub was removed from ov_SC01_077_after.c. Def sig
|
||||
* conformed byte-neutrally to func_80144B9C.h's decl `void *func_801457A4(s32)` (the whale calls it
|
||||
* that way); byte-proven at -O0 (match_one --o0 79/79) and by the whole-binary gate. Phase-29 bank. */
|
||||
extern int D_8018ABB0;
|
||||
|
||||
void *func_801457A4(s32 param_1) {
|
||||
switch (param_1) {
|
||||
case 0x1010:
|
||||
case 0x1052:
|
||||
case 0x1077:
|
||||
case 0x1094:
|
||||
case 0x2013:
|
||||
case 0x2015 ... 0x201a:
|
||||
case 0x2055 ... 0x205b:
|
||||
case 0x207a ... 0x2080:
|
||||
case 0x2097 ... 0x209d:
|
||||
return (void *)(&D_8018ABB0)[param_1 & 0xffff0fff];
|
||||
default:
|
||||
return (void *)D_8018ABB0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,864 +0,0 @@
|
||||
#include "common.h"
|
||||
#include "../shared/engine_core.h"
|
||||
|
||||
DEFINE_func_80128158() /* dedup: shared engine-core @0x80128158 (src/shared) */
|
||||
|
||||
DEFINE_func_80128178() /* dedup: shared engine-core @0x80128178 (src/shared) */
|
||||
|
||||
DEFINE_func_80128198() /* dedup: shared engine-core @0x80128198 (src/shared) */
|
||||
|
||||
DEFINE_func_801281B8() /* dedup: shared engine-core @0x801281B8 (src/shared) */
|
||||
|
||||
DEFINE_func_801281D8() /* dedup: shared engine-core @0x801281D8 (src/shared) */
|
||||
|
||||
DEFINE_func_801281F8() /* dedup: shared engine-core @0x801281F8 (src/shared) */
|
||||
|
||||
|
||||
extern s32 D_801D1CC4;
|
||||
|
||||
s32 func_80128218(void) {
|
||||
return D_801D1CC4;
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_80128228() /* dedup: shared engine-core @0x80128228 (src/shared) */
|
||||
|
||||
DEFINE_func_80128248() /* dedup: shared engine-core @0x80128248 (src/shared) */
|
||||
|
||||
DEFINE_func_80128268() /* dedup: shared engine-core @0x80128268 (src/shared) */
|
||||
|
||||
|
||||
extern u16 D_800B99F6;
|
||||
extern void (*D_80189C00[])(void);
|
||||
|
||||
void func_80128288(void) {
|
||||
u32 v1;
|
||||
v1 = D_800B99F6;
|
||||
if (v1 < 9) {
|
||||
D_80189C00[v1]();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_801282CC() /* dedup: shared engine-core @0x801282CC (src/shared) */
|
||||
|
||||
DEFINE_func_801282EC() /* dedup: shared engine-core @0x801282EC (src/shared) */
|
||||
|
||||
DEFINE_func_8012832C() /* dedup: shared engine-core @0x8012832C (src/shared) */
|
||||
|
||||
DEFINE_func_80128420() /* dedup: shared engine-core @0x80128420 (src/shared) */
|
||||
|
||||
DEFINE_func_801284B8() /* dedup: shared engine-core @0x801284B8 (src/shared) */
|
||||
|
||||
DEFINE_func_801284F0() /* dedup: shared engine-core @0x801284F0 (src/shared) */
|
||||
|
||||
DEFINE_func_8012853C() /* dedup: shared engine-core @0x8012853C (src/shared) */
|
||||
|
||||
DEFINE_func_80128564() /* dedup: shared engine-core @0x80128564 (src/shared) */
|
||||
|
||||
DEFINE_func_801285D4() /* dedup: shared engine-core @0x801285D4 (src/shared) */
|
||||
|
||||
|
||||
extern s32 func_800D18DC(void);
|
||||
extern void func_8014607C(void);
|
||||
extern void func_801287B8(void);
|
||||
extern s32 func_80011A3C(void);
|
||||
extern s32 D_801D2EEC;
|
||||
|
||||
void func_801285E4(void)
|
||||
{
|
||||
__asm__ __volatile__(
|
||||
".set noreorder\n"
|
||||
"addiu $sp, $sp, -24\n"
|
||||
"lui $v1, 0x1f80\n"
|
||||
"ori $v1, $v1, 0x03fc\n"
|
||||
"sw $ra, 16($sp)\n"
|
||||
"addu $t0, $v1, $zero\n"
|
||||
"sw $sp, 0($t0)\n"
|
||||
"addiu $t0, $t0, -4\n"
|
||||
"addu $sp, $t0, $zero\n"
|
||||
"jal func_800D18DC\n"
|
||||
"lui $at, %%hi(D_801D2EEC)\n"
|
||||
"sw $v0, %%lo(D_801D2EEC)($at)\n"
|
||||
"addiu $sp, $sp, 4\n"
|
||||
"lw $sp, 0($sp)\n"
|
||||
"jal func_8014607C\n"
|
||||
"lui $v1, 0x1f80\n"
|
||||
"ori $v1, $v1, 0x03fc\n"
|
||||
"addu $t0, $v1, $zero\n"
|
||||
"sw $sp, 0($t0)\n"
|
||||
"addiu $t0, $t0, -4\n"
|
||||
"addu $sp, $t0, $zero\n"
|
||||
"jal func_801287B8\n"
|
||||
"addiu $sp, $sp, 4\n"
|
||||
"lw $sp, 0($sp)\n"
|
||||
"lui $v0, %%hi(D_801D2EEC)\n"
|
||||
"lw $v0, %%lo(D_801D2EEC)($v0)\n"
|
||||
"nop\n"
|
||||
"beqz $v0, 1f\n"
|
||||
"nop\n"
|
||||
"jal func_80011A3C\n"
|
||||
"1:\n"
|
||||
"lw $ra, 16($sp)\n"
|
||||
"addiu $sp, $sp, 24\n"
|
||||
: : : "memory");
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_80128678() /* dedup: shared engine-core @0x80128678 (src/shared) */
|
||||
|
||||
|
||||
// @class: other
|
||||
// @stuck: none — MATCH (handwritten full inline-asm scratchpad-stack-switch wrapper w/ branch)
|
||||
/*
|
||||
* HANDWRITTEN scratchpad-stack-switch dispatcher (same idiom as func_80128564 /
|
||||
* the func_8014ED28 family): repoints $sp into the D-cache scratchpad stack held
|
||||
* at *(0x1F8003FC), calls func_800D19F0, stashes its $v0 result through D_801D2EEC,
|
||||
* restores $sp, then dispatches on the stored value:
|
||||
* if (D_801D2EEC != 0) { func_8001903C(); func_80018FC8(); }
|
||||
* else { func_8014607C(); <scratchpad-switch> func_801287B8(); }
|
||||
* Manipulating $sp is not expressible in C; full inline asm (manages its own frame).
|
||||
*
|
||||
* NOTE (maspsx --aspsx-version=2.56): the inline ".set noreorder" is written with a
|
||||
* SPACE, so maspsx's own is_reorder tracker stays True and it auto-fills EVERY
|
||||
* jal/j/branch delay slot with a nop (GNU as honors noreorder and adds none). So do
|
||||
* NOT write explicit delay-slot nops after jal/j/bne — that yields a double nop.
|
||||
* bnez is written as `bne $v0,$zero` so maspsx recognizes it (bnez isn't in its
|
||||
* branch set). The load-delay nop after `lw $v0,%lo(...)($v0)` is auto-inserted too.
|
||||
* %hi/%lo escaped as %%hi/%%lo (bare % is an operand placeholder).
|
||||
*/
|
||||
void func_80128714(void) {
|
||||
__asm__ __volatile__(
|
||||
".set noreorder\n"
|
||||
"addiu $sp, $sp, -24\n"
|
||||
"lui $v1, 0x1f80\n"
|
||||
"ori $v1, $v1, 0x03fc\n"
|
||||
"sw $ra, 16($sp)\n"
|
||||
"addu $t0, $v1, $zero\n"
|
||||
"sw $sp, 0($t0)\n"
|
||||
"addiu $t0, $t0, -4\n"
|
||||
"addu $sp, $t0, $zero\n"
|
||||
"jal func_800D19F0\n"
|
||||
"lui $at, %%hi(D_801D2EEC)\n"
|
||||
"sw $v0, %%lo(D_801D2EEC)($at)\n"
|
||||
"addiu $sp, $sp, 4\n"
|
||||
"lw $sp, 0($sp)\n"
|
||||
"lui $v0, %%hi(D_801D2EEC)\n"
|
||||
"lw $v0, %%lo(D_801D2EEC)($v0)\n"
|
||||
"bne $v0, $zero, 1f\n"
|
||||
"jal func_8014607C\n"
|
||||
"lui $v1, 0x1f80\n"
|
||||
"ori $v1, $v1, 0x03fc\n"
|
||||
"addu $t0, $v1, $zero\n"
|
||||
"sw $sp, 0($t0)\n"
|
||||
"addiu $t0, $t0, -4\n"
|
||||
"addu $sp, $t0, $zero\n"
|
||||
"jal func_801287B8\n"
|
||||
"addiu $sp, $sp, 4\n"
|
||||
"lw $sp, 0($sp)\n"
|
||||
"j 2f\n"
|
||||
"1:\n"
|
||||
"jal func_8001903C\n"
|
||||
"jal func_80018FC8\n"
|
||||
"2:\n"
|
||||
"lw $ra, 16($sp)\n"
|
||||
"addiu $sp, $sp, 24\n"
|
||||
: : : "memory");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// @class: remat
|
||||
// @stuck: none — MATCH (62 ins). D_801D47E0 read needed the address REMATERIALIZED
|
||||
// (lui;addiu;lw 0(reg), not the folded lui;lw %lo) AND pinned to $a0. volatile forces the
|
||||
// remat; register __asm__("$4") forces the a0 allocation (gcc otherwise picks v0). Both levers
|
||||
// required — pin-alone folds, volatile-alone lands in v0.
|
||||
|
||||
extern s32 D_80126B58;
|
||||
extern s32 D_801D47E0;
|
||||
extern u16 D_800B99DA;
|
||||
extern u8 D_800B9A64;
|
||||
|
||||
extern void func_80129CF8(void);
|
||||
extern void func_8017849C(void);
|
||||
extern void func_8014FDF4(struct S8014FDF4 *a0);
|
||||
extern s32 func_801505FC(s32 a0);
|
||||
extern void func_801508B4(void *a0);
|
||||
extern void func_80165E90(void);
|
||||
extern void func_801627E8(void);
|
||||
extern void func_80162B1C(void);
|
||||
extern void func_80165CA0(void);
|
||||
extern void func_80129010(void);
|
||||
extern void func_8013CA14(void);
|
||||
extern void func_800190AC(void);
|
||||
extern void func_8012956C(void);
|
||||
extern void func_8016E95C(void);
|
||||
extern void func_801754A8(void);
|
||||
extern void func_8013BC7C(void);
|
||||
extern void func_8013BCDC(void);
|
||||
extern void func_801379FC(void);
|
||||
extern void func_8001212C(void);
|
||||
|
||||
void func_801287B8(void) {
|
||||
func_80129CF8();
|
||||
func_8017849C();
|
||||
((void (*)(void *))func_8014FDF4)(&D_80126B58);
|
||||
((void (*)(void *))func_801505FC)(&D_80126B58);
|
||||
func_801508B4(&D_80126B58);
|
||||
func_80165E90();
|
||||
func_801627E8();
|
||||
func_80162B1C();
|
||||
func_80165CA0();
|
||||
func_80129010();
|
||||
func_8013CA14();
|
||||
func_800190AC();
|
||||
func_8012956C();
|
||||
func_8016E95C();
|
||||
func_801754A8();
|
||||
{
|
||||
/* D_801D47E0 read: the target materializes &sym into $a0 then lw 0($a0) (not the folded
|
||||
* lui;lw %lo). volatile forces the rematerialize; the $4 pin forces the a0 allocation. */
|
||||
register volatile s32 *p __asm__("$4") = &D_801D47E0;
|
||||
if (*p == 0) {
|
||||
func_8013BC7C();
|
||||
}
|
||||
}
|
||||
func_8013BCDC();
|
||||
func_801379FC();
|
||||
D_800B99DA++;
|
||||
if (D_800B9A64 != 0) {
|
||||
func_8001212C();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 sp10);
|
||||
extern s32 D_801D1CC4;
|
||||
extern u8 D_800AEFD0;
|
||||
|
||||
s32 func_801288B0(void) {
|
||||
func_8001ABBC(0, 0, &D_800AEFD0, D_801D1CC4, 0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// @class: remat
|
||||
// @stuck: none — MATCH. &D_800C7C60 CSE'd once via pointer local `p` so the same reg feeds the *p=0x60 store AND arg5; writing D_800C7C60=0x60 directly would emit a 2nd address materialization (+1 ins). Mirrors matched sibling func_80128998.
|
||||
|
||||
extern int D_800C7C60;
|
||||
extern int *D_800C7C64;
|
||||
extern int D_800A2E20;
|
||||
extern int D_800AF558;
|
||||
extern int D_801D1CC4;
|
||||
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 sp10);
|
||||
|
||||
int func_801288E8(int arg0)
|
||||
{
|
||||
int *p = &D_800C7C60;
|
||||
*p = 0x60;
|
||||
D_800C7C64 = &D_800A2E20;
|
||||
((void (*)(int, int, int *, int, int *))func_8001ABBC)(0, 0, &D_800AF558, D_801D1CC4, p);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// @class: remat
|
||||
// @stuck: none — MATCH (pointer-var forces single materialization of &D_800C7C60, reused as store base + arg5)
|
||||
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 sp10);
|
||||
extern int D_800C7C60;
|
||||
extern int *D_800C7C64;
|
||||
extern int D_800A2E20;
|
||||
extern u8 D_800AF560;
|
||||
extern s32 D_801D1CC4;
|
||||
|
||||
s32 func_80128940(s32 _arg0)
|
||||
{
|
||||
s32 *p = &D_800C7C60;
|
||||
*p = 0x5E;
|
||||
D_800C7C64 = &D_800A2E20;
|
||||
((void (*)(s32, s32, void *, s32, void *))func_8001ABBC)(0, 0, &D_800AF560, D_801D1CC4, p);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// @class: remat
|
||||
// @stuck: none — MATCH. &D_800C7C60 must be CSE'd once (pointer local `p`) so the same reg feeds the *p=13 store AND arg5; writing D_800C7C60=13 directly emits a 2nd address materialization (+1 ins).
|
||||
|
||||
extern int D_800C7C60;
|
||||
extern int *D_800C7C64;
|
||||
extern int D_800A2E20;
|
||||
extern int D_800AECB0;
|
||||
extern s32 D_801D1CC4;
|
||||
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 sp10);
|
||||
|
||||
s32 func_80128998(void)
|
||||
{
|
||||
int *p = &D_800C7C60;
|
||||
*p = 13;
|
||||
D_800C7C64 = &D_800A2E20;
|
||||
((void (*)(int, int, int *, int, int *))func_8001ABBC)(0, 0, &D_800AECB0, D_801D1CC4, p);
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern s32 D_801D1CC4;
|
||||
extern u8 D_800AECB8;
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
|
||||
s32 func_801289F0(void) {
|
||||
func_8001ABBC(0, 0, &D_800AECB8, D_801D1CC4, 0);
|
||||
}
|
||||
|
||||
|
||||
extern void func_80011B7C(int);
|
||||
extern void func_80011C10(void);
|
||||
extern u16 D_800B99F6;
|
||||
extern s16 D_800B9A00;
|
||||
extern M2C_UNK (*D_8018993C)();
|
||||
extern s16 (*D_80189940)();
|
||||
|
||||
void func_80128A28(void) {
|
||||
s16 temp_v0;
|
||||
|
||||
switch (D_800B99F6) { /* irregular */
|
||||
case 1:
|
||||
D_8018993C();
|
||||
/* fallthrough */
|
||||
case 0:
|
||||
func_80011C10();
|
||||
return;
|
||||
case 2:
|
||||
temp_v0 = D_80189940();
|
||||
if (temp_v0 != 0) {
|
||||
if (temp_v0 < 0) {
|
||||
func_80011B7C(0);
|
||||
D_800B9A00 = 1;
|
||||
return;
|
||||
}
|
||||
func_80010DE0();
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern u16 D_800B99F6;
|
||||
extern M2C_UNK (*D_80189948)();
|
||||
extern s32 (*D_8018994C)();
|
||||
extern s32 D_801D2EE8;
|
||||
|
||||
void func_80128AF4(void) {
|
||||
switch (D_800B99F6) { /* irregular */
|
||||
case 0:
|
||||
D_801D2EE8 = func_8002AF08();
|
||||
func_80011C10();
|
||||
return;
|
||||
case 1:
|
||||
D_80189948();
|
||||
func_80011C10();
|
||||
return;
|
||||
case 2:
|
||||
if ((D_8018994C() << 0x10) != 0) {
|
||||
if (D_801D2EE8 == 1) {
|
||||
if (func_800CFBE8() != 0) {
|
||||
func_800CFBBC();
|
||||
func_80011B7C(0x13);
|
||||
} else {
|
||||
func_80011B7C(4);
|
||||
}
|
||||
} else {
|
||||
func_80010DE0();
|
||||
}
|
||||
func_8002AEF8();
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */
|
||||
|
||||
|
||||
|
||||
extern CdFileLoc_80128C98 cdFileLocTable[];
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
|
||||
s32 func_80128C98(s32 arg0) {
|
||||
|
||||
extern s16 D_80189C18[];
|
||||
s16 idx = D_80189C18[arg0];
|
||||
|
||||
if (idx >= 0) {
|
||||
func_8001ABBC(0, 0, (u8 *)&cdFileLocTable[idx], D_801D1CC4, 0);
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
extern CdFileLoc cdFileLocTable[];
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
|
||||
s32 func_80128CFC(s32 arg0) {
|
||||
|
||||
extern s16 D_80189C28[];
|
||||
s16 idx = D_80189C28[arg0];
|
||||
|
||||
if (idx >= 0) {
|
||||
func_8001ABBC(0, 0, (u8 *)&cdFileLocTable[idx], D_801D1CC4, 0);
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_80128D60() /* dedup: shared engine-core @0x80128D60 (src/shared) */
|
||||
|
||||
DEFINE_func_80128DB4() /* dedup: shared engine-core @0x80128DB4 (src/shared) */
|
||||
|
||||
DEFINE_func_80128EA8() /* dedup: shared engine-core @0x80128EA8 (src/shared) */
|
||||
|
||||
DEFINE_func_80128ED8() /* dedup: shared engine-core @0x80128ED8 (src/shared) */
|
||||
|
||||
extern M2C_UNK D_801D1CC8;
|
||||
|
||||
void func_80128FAC(u16 *arg0) {
|
||||
func_8001534C(4, &D_801D1CC8, 0x80, 0x90, 0, 0);
|
||||
func_800153CC(5, *arg0, 0xA8, 0x90, 0x40, 0);
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_80129010() /* dedup: shared engine-core @0x80129010 (src/shared) */
|
||||
|
||||
DEFINE_func_801290DC() /* dedup: shared engine-core @0x801290DC (src/shared) */
|
||||
|
||||
DEFINE_func_8012913C() /* dedup: shared engine-core @0x8012913C (src/shared) */
|
||||
|
||||
DEFINE_func_801291C0() /* dedup: shared engine-core @0x801291C0 (src/shared) */
|
||||
|
||||
DEFINE_func_80129220() /* dedup: shared engine-core @0x80129220 (src/shared) */
|
||||
|
||||
DEFINE_func_80129248() /* dedup: shared engine-core @0x80129248 (src/shared) */
|
||||
|
||||
DEFINE_func_80129258() /* dedup: shared engine-core @0x80129258 (src/shared) */
|
||||
|
||||
DEFINE_func_8012927C() /* dedup: shared engine-core @0x8012927C (src/shared) */
|
||||
|
||||
DEFINE_func_801292C8() /* dedup: shared engine-core @0x801292C8 (src/shared) */
|
||||
|
||||
DEFINE_func_8012931C() /* dedup: shared engine-core @0x8012931C (src/shared) */
|
||||
|
||||
DEFINE_func_80129350() /* dedup: shared engine-core @0x80129350 (src/shared) */
|
||||
|
||||
DEFINE_func_80129374() /* dedup: shared engine-core @0x80129374 (src/shared) */
|
||||
|
||||
DEFINE_func_80129398() /* dedup: shared engine-core @0x80129398 (src/shared) */
|
||||
|
||||
DEFINE_func_80129428() /* dedup: shared engine-core @0x80129428 (src/shared) */
|
||||
|
||||
DEFINE_func_8012943C() /* dedup: shared engine-core @0x8012943C (src/shared) */
|
||||
|
||||
DEFINE_func_8012944C() /* dedup: shared engine-core @0x8012944C (src/shared) */
|
||||
|
||||
|
||||
|
||||
|
||||
extern s32 D_801D2EEC;
|
||||
|
||||
extern void func_801299C8();
|
||||
extern void func_80015B6C(s32, s16, s32, s16, s32, s32, s32, s32, s32, s32);
|
||||
extern void GsSortBg(s32 *, void *, u16, s32 *);
|
||||
extern void GsSortFastBg(s32 *, void *, u16, s32 *);
|
||||
|
||||
void func_8012956C(void) {
|
||||
|
||||
extern s16 D_80114EE0;
|
||||
extern u8 D_800B9A78;
|
||||
extern u8 D_801D2EED[];
|
||||
extern u8 D_801D2EEE[];
|
||||
extern u8 D_801D2EF0[];
|
||||
extern u8 D_801D2EF1[];
|
||||
extern u8 D_801D2EF2[];
|
||||
extern u8 D_801D47C0;
|
||||
extern u8 D_800AF630[];
|
||||
extern u8 D_800A6518[];
|
||||
register s32 *sp10 __asm__("$21");
|
||||
register u8 *afbase __asm__("$22");
|
||||
register s32 *sp0 __asm__("$23");
|
||||
Ent_956C *base;
|
||||
s32 i;
|
||||
s16 a1;
|
||||
register u32 temp_a3 __asm__("$7");
|
||||
register u32 arg0 __asm__("$4");
|
||||
register u32 s __asm__("$2");
|
||||
register u32 s2 __asm__("$3");
|
||||
register u32 t6 __asm__("$8");
|
||||
s32 code;
|
||||
|
||||
sp10 = (s32 *)0x1F800010;
|
||||
sp0 = (s32 *)0x1F800000;
|
||||
afbase = (u8 *)&D_800AF630;
|
||||
if (D_80114EE0 == 0) {
|
||||
return;
|
||||
}
|
||||
base = (Ent_956C *)&D_800B9A78;
|
||||
__asm__("" : "=r"(base) : "0"(base));
|
||||
i = 0;
|
||||
do {
|
||||
s32 idx = i * 8 + 4;
|
||||
code = base->f34;
|
||||
if (code == 0x7FFE) {
|
||||
goto case_7FFE;
|
||||
}
|
||||
if (code < 0x7FFF) {
|
||||
a1 = i + 3;
|
||||
if (code == 0x7FFD) {
|
||||
goto case_7FFD;
|
||||
}
|
||||
goto do_default;
|
||||
}
|
||||
a1 = i + 3;
|
||||
if (code != 0x7FFF) {
|
||||
goto do_default;
|
||||
}
|
||||
goto next;
|
||||
case_7FFD:
|
||||
if (i == 0) {
|
||||
func_801299C8(D_801D47C0, 1, base);
|
||||
}
|
||||
func_80015B6C(-0xA0, -0x74, 0x140, 0x8C,
|
||||
D_801D2EF0[0], D_801D2EF0[1], D_801D2EF0[2],
|
||||
D_801D2EF0[4], D_801D2EF0[5], D_801D2EF0[6]);
|
||||
func_80015B6C(-0xA0, 0x18, 0x140, 0x3C,
|
||||
D_801D2EF0[4], D_801D2EF0[5], D_801D2EF0[6],
|
||||
D_801D2EF0[8], D_801D2EF0[9], D_801D2EF0[0xA]);
|
||||
func_80015B6C(-0xA0, 0x54, 0x140, 0x28,
|
||||
D_801D2EF0[8], D_801D2EF0[9], D_801D2EF0[0xA],
|
||||
D_801D2EF0[0xC], D_801D2EF0[0xD], D_801D2EF0[0xE]);
|
||||
goto next;
|
||||
case_7FFE:
|
||||
func_801299C8(D_801D47C0, (s16)(i * 2), base);
|
||||
func_80015B6C(-0xA0, *(s16 *)&base->f3A, 0x140, base->f3E,
|
||||
((u8 *)&D_801D2EEC)[idx], D_801D2EED[idx], D_801D2EEE[idx],
|
||||
D_801D2EF0[idx], D_801D2EF1[idx], D_801D2EF2[idx]);
|
||||
goto next;
|
||||
do_default:
|
||||
__asm__("");
|
||||
arg0 = D_801D47C0;
|
||||
s = base->f40;
|
||||
temp_a3 = base->f38;
|
||||
s += temp_a3;
|
||||
base->f1C = s;
|
||||
s2 = base->f42;
|
||||
t6 = base->f3A;
|
||||
s2 += t6;
|
||||
base->f1E = s2;
|
||||
((void (*)(s32, s32, void *, s32))func_801299C8)(arg0, a1, base, temp_a3);
|
||||
*(Blk16_956C *)sp0 = *(Blk16_956C *)base;
|
||||
{
|
||||
s32 *dst = sp10;
|
||||
s32 *src = (s32 *)((u8 *)base + 0x10);
|
||||
s32 *end = (s32 *)((u8 *)base + 0x30);
|
||||
do {
|
||||
*(Blk16_956C *)dst = *(Blk16_956C *)src;
|
||||
src += 4;
|
||||
dst += 4;
|
||||
} while (src != end);
|
||||
*dst = *src;
|
||||
sp10[5] = (s32)sp0;
|
||||
if (base->f36 == 0) {
|
||||
GsSortFastBg(sp10, &D_800A6518[(*(u16 *)(afbase + 0xA3D2)) * 0x14], base->f34, dst);
|
||||
} else {
|
||||
GsSortBg(sp10, &D_800A6518[(*(u16 *)(afbase + 0xA3D2)) * 0x14], base->f34, dst);
|
||||
}
|
||||
}
|
||||
next:
|
||||
base += 1;
|
||||
i += 1;
|
||||
} while (i < 2);
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_801298F4() /* dedup: shared engine-core @0x801298F4 (src/shared) */
|
||||
|
||||
|
||||
// @class: schedule
|
||||
// @stuck: none — MATCH (158 ins, match_one relocation-masked)
|
||||
//
|
||||
// Levers that landed it (2 iterations, 56 mismatched -> MATCH):
|
||||
// 1. §43 K&R s16-param definition: `void f(a0,a1,a2) s16 a0; s16 a1; u8 *a2;` reproduces the
|
||||
// in-place `sll $a0,$a0,16` zero-test on the arg reg + the raw-$a1 copy (`addu $a3,$a1,$zero`)
|
||||
// stashed in the jtbl branch delay slot and RE-extended per use in the case body.
|
||||
// 2. §18 array-of-struct %lo-fold: three sibling extern arrays D_801D2EF0/1/2[] (a 4-row x 3-comp
|
||||
// RGB gradient table, stride 4) give `lui $at,%hi(sym); addu $at,$at,idx4; sb $v0,%lo(sym)($at)`
|
||||
// for the indexed case and plain `lui/sb %lo(sym+k)` for the constant-index case.
|
||||
// 3. Switch CASE-ORDER = source order: the jump table dispatches case 1 to the FIRST emitted block,
|
||||
// so `case 1:` must be written before `case 0/2:` and `case 3/4:`.
|
||||
// 4. THE residual (56 -> 0): the case-1 body must be written ROW-MAJOR (BE0[0],BE1[0],BE2[0],
|
||||
// BE0[4],BE1[4],BE2[4],...), i.e. the natural table fill. gcc-2.7.2's sched pass then REORDERS
|
||||
// the stores itself (BE0,BE1,BE5,BE8,BE4,BEC,BE9,BED,BE2,BE6,BEA,BEE) because the three arrays
|
||||
// are distinct declarations => provably non-aliasing. Writing the source in the target's STORE
|
||||
// order is the trap: it pins the b*255 / r*143 CSEs at their late store sites instead of letting
|
||||
// them hoist into $a0/$v1 at rows 0/1, and mis-schedules the D_801D46E0 load.
|
||||
// 5. Shift signedness: `u32` component locals give `srl` for r*5>>3 and g*25>>1; an explicit
|
||||
// `(s32)(x * 255) >> 4` gives `sra` for the *255 / *143 / *45 terms (mixed within one block).
|
||||
|
||||
extern u8 D_801D47DA;
|
||||
extern u8 D_801D4702;
|
||||
extern u8 D_801D46E0;
|
||||
extern u8 D_801D2EF0[];
|
||||
extern u8 D_801D2EF1[];
|
||||
extern u8 D_801D2EF2[];
|
||||
|
||||
void func_801299C8(arg0, arg1, arg2)
|
||||
s16 arg0;
|
||||
s16 arg1;
|
||||
u8 *arg2;
|
||||
{
|
||||
u32 r;
|
||||
u32 g;
|
||||
u32 b;
|
||||
s32 i;
|
||||
|
||||
if (arg0 != 0) {
|
||||
switch (arg1) {
|
||||
case 1:
|
||||
r = D_801D47DA;
|
||||
g = D_801D4702;
|
||||
b = D_801D46E0;
|
||||
D_801D2EF0[0] = r * 5 >> 3;
|
||||
D_801D2EF1[0] = g << 3;
|
||||
D_801D2EF2[0] = (s32)(b * 255) >> 4;
|
||||
D_801D2EF0[4] = (s32)(r * 143) >> 4;
|
||||
D_801D2EF1[4] = g * 25 >> 1;
|
||||
D_801D2EF2[4] = (s32)(b * 255) >> 4;
|
||||
D_801D2EF0[8] = (s32)(r * 255) >> 4;
|
||||
D_801D2EF1[8] = (s32)(g * 255) >> 4;
|
||||
D_801D2EF2[8] = (s32)(b * 255) >> 4;
|
||||
D_801D2EF0[12] = (s32)(r * 143) >> 4;
|
||||
D_801D2EF1[12] = (s32)(g * 255) >> 4;
|
||||
D_801D2EF2[12] = (s32)(b * 45) >> 2;
|
||||
break;
|
||||
case 0:
|
||||
case 2:
|
||||
i = arg1 * 4;
|
||||
D_801D2EF0[i] = arg2[0x44] * D_801D47DA >> 4;
|
||||
D_801D2EF1[i] = arg2[0x45] * D_801D4702 >> 4;
|
||||
D_801D2EF2[i] = arg2[0x46] * D_801D46E0 >> 4;
|
||||
i = (arg1 + 1) * 4;
|
||||
D_801D2EF0[i] = arg2[0x47] * D_801D47DA >> 4;
|
||||
D_801D2EF1[i] = arg2[0x48] * D_801D4702 >> 4;
|
||||
D_801D2EF2[i] = arg2[0x49] * D_801D46E0 >> 4;
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
arg2[0x20] = D_801D47DA << 3;
|
||||
arg2[0x21] = D_801D4702 << 3;
|
||||
arg2[0x22] = D_801D46E0 << 3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DEFINE_func_80129C40() /* dedup: shared engine-core @0x80129C40 (src/shared) */
|
||||
|
||||
DEFINE_func_80129CF8() /* dedup: shared engine-core @0x80129CF8 (src/shared) */
|
||||
|
||||
DEFINE_func_80129FF4() /* dedup: shared engine-core @0x80129FF4 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A018() /* dedup: shared engine-core @0x8012A018 (src/shared) */
|
||||
|
||||
|
||||
DEFINE_func_8012A048() /* dedup: shared engine-core @0x8012A048 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A094() /* dedup: shared engine-core @0x8012A094 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A0E0() /* dedup: shared engine-core @0x8012A0E0 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A100() /* dedup: shared engine-core @0x8012A100 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A110() /* dedup: shared engine-core @0x8012A110 (src/shared) */
|
||||
|
||||
|
||||
|
||||
// @class: regalloc-order
|
||||
// @stuck: none — MATCH (78 ins, relocation-masked). Register pins ($2-$5 reused for
|
||||
// the D_x200-x20C words then the D_x220-x226 halfwords; $6-$10 held across for the
|
||||
// D_x228/x22A/x294/x298/x29A tail) force the frameless 9-deep allocation the default
|
||||
// -O2 pre-reload scheduler otherwise blows to a 3-reg spill (all 720 stmt orders spill
|
||||
// without the pins). A single zero-byte scheduling/memory barrier after the 4 word
|
||||
// stores stops gcc hoisting the first 8-byte block copy above them.
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_func_8012A1BC() /* dedup: shared engine-core @0x8012A1BC (src/shared) */
|
||||
|
||||
|
||||
DEFINE_func_8012A2F4() /* dedup: shared engine-core @0x8012A2F4 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A304() /* dedup: shared engine-core @0x8012A304 (src/shared) */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_func_8012A328() /* dedup: shared engine-core @0x8012A328 (src/shared) */
|
||||
|
||||
|
||||
DEFINE_func_8012A418() /* dedup: shared engine-core @0x8012A418 (src/shared) */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_func_8012A464() /* dedup: shared engine-core @0x8012A464 (src/shared) */
|
||||
|
||||
|
||||
DEFINE_func_8012A4BC() /* dedup: shared engine-core @0x8012A4BC (src/shared) */
|
||||
|
||||
extern void func_8012A598(void *a0);
|
||||
void func_8012A568(void (*a0)(void)) {
|
||||
func_8012A598(a0);
|
||||
a0();
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_8012A598() /* dedup: shared engine-core @0x8012A598 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A5F8() /* dedup: shared engine-core @0x8012A5F8 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A62C() /* dedup: shared engine-core @0x8012A62C (src/shared) */
|
||||
|
||||
DEFINE_func_8012A68C() /* dedup: shared engine-core @0x8012A68C (src/shared) */
|
||||
|
||||
DEFINE_func_8012A6D0() /* dedup: shared engine-core @0x8012A6D0 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A758() /* dedup: shared engine-core @0x8012A758 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A79C() /* dedup: shared engine-core @0x8012A79C (src/shared) */
|
||||
|
||||
DEFINE_func_8012A7D4() /* dedup: shared engine-core @0x8012A7D4 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A828() /* dedup: shared engine-core @0x8012A828 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A860() /* dedup: shared engine-core @0x8012A860 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A8B0() /* dedup: shared engine-core @0x8012A8B0 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A8E8() /* dedup: shared engine-core @0x8012A8E8 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A908() /* dedup: shared engine-core @0x8012A908 (src/shared) */
|
||||
|
||||
DEFINE_func_8012A988() /* dedup: shared engine-core @0x8012A988 (src/shared) */
|
||||
|
||||
|
||||
extern void func_8012AAAC(void *arg0);
|
||||
|
||||
void func_8012AAAC(void *arg0) {
|
||||
void *ptr;
|
||||
s32 link;
|
||||
s32 next;
|
||||
s32 saved;
|
||||
s32 cnt;
|
||||
s32 back;
|
||||
s32 head;
|
||||
|
||||
M2C_FIELD(arg0, u16 *, 0x72) = (u16) (M2C_FIELD(arg0, u16 *, 0x72) & 0xBFFF);
|
||||
ptr = (void *) (M2C_FIELD(arg0, s32 *, 0x90) + (M2C_FIELD(arg0, s32 *, 0x94) * 8));
|
||||
if (M2C_FIELD(ptr, s16 *, 4) < 0) {
|
||||
switch (M2C_FIELD(ptr, s16 *, 4)) {
|
||||
case -2:
|
||||
link = M2C_FIELD(arg0, s32 *, 0x9C);
|
||||
if (link == 0) {
|
||||
M2C_FIELD(arg0, s16 *, 0x98) = 0;
|
||||
break;
|
||||
}
|
||||
goto pop;
|
||||
case -1:
|
||||
link = M2C_FIELD(arg0, s32 *, 0x9C);
|
||||
if (link != 0) {
|
||||
pop:
|
||||
back = M2C_FIELD(arg0, s16 *, 0x9A);
|
||||
M2C_FIELD(arg0, s32 *, 0x90) = link;
|
||||
M2C_FIELD(arg0, s32 *, 0x9C) = 0;
|
||||
M2C_FIELD(arg0, s16 *, 0x9A) = 0;
|
||||
M2C_FIELD(arg0, s32 *, 0x94) = back;
|
||||
func_8012AAAC(arg0);
|
||||
break;
|
||||
}
|
||||
M2C_FIELD(arg0, s32 *, 0x94) = 0;
|
||||
func_8012AAAC(arg0);
|
||||
M2C_FIELD(arg0, u16 *, 0x72) = (u16) (M2C_FIELD(arg0, u16 *, 0x72) | 0x4000);
|
||||
break;
|
||||
case -4:
|
||||
head = M2C_FIELD(ptr, s32 *, 0);
|
||||
M2C_FIELD(arg0, s32 *, 0x94) = 0;
|
||||
M2C_FIELD(arg0, s32 *, 0x9C) = 0;
|
||||
M2C_FIELD(arg0, s16 *, 0x9A) = 0;
|
||||
M2C_FIELD(arg0, s32 *, 0x90) = head;
|
||||
M2C_FIELD(arg0, u16 *, 0x72) = (u16) (M2C_FIELD(arg0, u16 *, 0x72) & 0xF9FF);
|
||||
func_8012AAAC(arg0);
|
||||
break;
|
||||
case -3:
|
||||
cnt = M2C_FIELD(arg0, s32 *, 0x94) + 1;
|
||||
M2C_FIELD(arg0, s32 *, 0x94) = cnt;
|
||||
if (M2C_FIELD(arg0, s32 *, 0x9C) != 0) {
|
||||
func_8012AAAC(arg0);
|
||||
break;
|
||||
}
|
||||
saved = M2C_FIELD(arg0, s32 *, 0x90);
|
||||
next = M2C_FIELD(ptr, s32 *, 0);
|
||||
M2C_FIELD(arg0, s32 *, 0x94) = 0;
|
||||
M2C_FIELD(arg0, s32 *, 0x9C) = 0;
|
||||
M2C_FIELD(arg0, s16 *, 0x9A) = 0;
|
||||
M2C_FIELD(arg0, s32 *, 0x90) = next;
|
||||
M2C_FIELD(arg0, u16 *, 0x72) = (u16) (M2C_FIELD(arg0, u16 *, 0x72) & 0xF9FF);
|
||||
func_8012AAAC(arg0);
|
||||
M2C_FIELD(arg0, s32 *, 0x9C) = saved;
|
||||
M2C_FIELD(arg0, s16 *, 0x9A) = (s16) cnt;
|
||||
break;
|
||||
case -50:
|
||||
M2C_FIELD(arg0, s32 *, 0x94) = M2C_FIELD(arg0, s32 *, 0x94) + 1;
|
||||
func_8012AAAC(arg0);
|
||||
M2C_FIELD(arg0, u16 *, 0x72) = (u16) (M2C_FIELD(arg0, u16 *, 0x72) | 0x2000);
|
||||
break;
|
||||
case -5:
|
||||
M2C_FIELD(arg0, u16 *, 0x72) = (u16) (M2C_FIELD(arg0, u16 *, 0x72) | 0x400);
|
||||
M2C_FIELD(arg0, s32 *, 0x94) = M2C_FIELD(arg0, s32 *, 0x94) - 1;
|
||||
func_8012AAAC(arg0);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
M2C_FIELD(M2C_FIELD(arg0, void **, 0x20), s32 *, 0x20) = M2C_FIELD(ptr, s32 *, 0);
|
||||
M2C_FIELD(arg0, s16 *, 0x98) = M2C_FIELD(ptr, s16 *, 4);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012AAAC();
|
||||
extern M2C_UNK D_80189C94;
|
||||
|
||||
void func_8012ACA0(void *arg0) {
|
||||
M2C_FIELD(arg0, M2C_UNK **, 0x90) = &D_80189C94;
|
||||
M2C_FIELD(arg0, s32 *, 0x94) = 0;
|
||||
M2C_FIELD(arg0, s32 *, 0x9C) = 0;
|
||||
M2C_FIELD(arg0, s16 *, 0x9A) = 0;
|
||||
M2C_FIELD(arg0, u16 *, 0x72) = (u16) (M2C_FIELD(arg0, u16 *, 0x72) & 0xF9FF);
|
||||
((void (*)(void))func_8012AAAC)();
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,707 +0,0 @@
|
||||
#include "common.h"
|
||||
#include "../shared/engine_core.h"
|
||||
|
||||
/* ==== Phase-26 §8b carried decl layer (jr_isolate_all.py) ===================
|
||||
* The file-scope decl environment from earlier code regions of this object —
|
||||
* file-local types, col-0 decls, DEFINE_func macro externs, and each earlier
|
||||
* definition's implied prototype (types first, then decls in original order).
|
||||
* Decls emit no code => byte-neutral. See cookbook §8c. */
|
||||
/* 8-byte element, cmd @ +4 */
|
||||
/* list ptr @ +0x90 */
|
||||
/* size 8, alignment 1 -> unaligned copy */
|
||||
extern void func_80128288(void);
|
||||
extern void func_80128158(void);
|
||||
extern void func_801285E4(void);
|
||||
extern void func_80128178(void);
|
||||
extern void func_80128678(void);
|
||||
extern void func_80128198(void);
|
||||
extern void func_80128714(void);
|
||||
extern void func_801281B8(void);
|
||||
extern void func_8013E67C(void);
|
||||
extern void func_801281D8(void);
|
||||
extern void func_8013E558(void);
|
||||
extern void func_801281F8(void);
|
||||
extern s32 D_801D1CC4;
|
||||
extern s32 func_80128218(void);
|
||||
extern void func_80128A28(void);
|
||||
extern void func_80128228(void);
|
||||
extern void func_80128AF4(void);
|
||||
extern void func_80128248(void);
|
||||
extern void func_801282EC(void);
|
||||
extern void func_80128268(void);
|
||||
extern u16 D_800B99F6;
|
||||
extern void (*D_80189C00[])(void);
|
||||
extern void func_80011B7C(int);
|
||||
extern void func_801282CC(void);
|
||||
extern void func_8001C0C8(void);
|
||||
extern void func_80015310(void);
|
||||
extern void func_80129258(void);
|
||||
extern void func_801378F0(void);
|
||||
extern void func_80010E14(void);
|
||||
extern s16 currentLocationId;
|
||||
extern s32 func_80029504(void);
|
||||
extern s32 func_800CF854(s32);
|
||||
extern s32 func_80128998(void);
|
||||
extern s32 func_801289F0(void);
|
||||
extern s32 func_801288E8(s32);
|
||||
extern s32 func_80128940(s32);
|
||||
extern s32 func_80029178(s32);
|
||||
extern s32 func_801288B0(void);
|
||||
extern void func_80011C10(void);
|
||||
extern void func_8012832C(void);
|
||||
extern void func_80129220(void);
|
||||
extern void func_80011E24(void);
|
||||
extern void func_80128C14(void);
|
||||
extern void func_8002AEF8(void);
|
||||
extern void func_800CFBBC(void);
|
||||
extern void SsUtReverbOff(void);
|
||||
extern void func_8013C98C(void);
|
||||
extern void func_80129C40(s32 a0);
|
||||
extern void func_800D0630(void);
|
||||
extern void func_80145CEC(void);
|
||||
extern void func_80144B9C(void);
|
||||
extern u8 D_800B9A17;
|
||||
extern u8 D_800B9A10;
|
||||
extern void func_80128420(void);
|
||||
extern s32 func_800D0588(void);
|
||||
extern void func_801284B8(void);
|
||||
extern void func_80175308(void);
|
||||
extern void func_8016E8F0(void);
|
||||
extern void func_80175494(void);
|
||||
extern u8 D_800B9A64;
|
||||
extern void func_801284F0(void);
|
||||
extern void func_80146074(void);
|
||||
extern void func_8012853C(void);
|
||||
extern void func_80178608(void);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern s32 func_80011A3C(void);
|
||||
extern short currentLocationId;
|
||||
extern short D_800B99F2;
|
||||
extern void func_80128564(void);
|
||||
extern u8 D_800B9A11;
|
||||
extern void func_801285D4(void);
|
||||
extern s32 func_800D18DC(void);
|
||||
extern void func_8014607C(void);
|
||||
extern void func_801287B8(void);
|
||||
extern s32 D_801D2EEC;
|
||||
extern void func_80029444(void);
|
||||
extern void func_800D1754(void);
|
||||
extern s32 D_80126B58;
|
||||
extern s32 D_801D47E0;
|
||||
extern u16 D_800B99DA;
|
||||
extern void func_80129CF8(void);
|
||||
extern void func_8017849C(void);
|
||||
extern void func_8014FDF4(struct S8014FDF4 *a0);
|
||||
extern s32 func_801505FC(s32 a0);
|
||||
extern void func_801508B4(void *a0);
|
||||
extern void func_80165E90(void);
|
||||
extern void func_801627E8(void);
|
||||
extern void func_80162B1C(void);
|
||||
extern void func_80165CA0(void);
|
||||
extern void func_80129010(void);
|
||||
extern void func_8013CA14(void);
|
||||
extern void func_800190AC(void);
|
||||
extern void func_8012956C(void);
|
||||
extern void func_8016E95C(void);
|
||||
extern void func_801754A8(void);
|
||||
extern void func_8013BC7C(void);
|
||||
extern void func_8013BCDC(void);
|
||||
extern void func_801379FC(void);
|
||||
extern void func_8001212C(void);
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 sp10);
|
||||
extern u8 D_800AEFD0;
|
||||
extern int D_800C7C60;
|
||||
extern int *D_800C7C64;
|
||||
extern int D_800A2E20;
|
||||
extern int D_800AF558;
|
||||
extern int D_801D1CC4;
|
||||
extern int func_801288E8(int arg0);
|
||||
extern u8 D_800AF560;
|
||||
extern s32 func_80128940(s32 _arg0);
|
||||
extern int D_800AECB0;
|
||||
extern u8 D_800AECB8;
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
extern s16 D_800B9A00;
|
||||
extern M2C_UNK (*D_8018993C)();
|
||||
extern s16 (*D_80189940)();
|
||||
extern M2C_UNK (*D_80189948)();
|
||||
extern s32 (*D_8018994C)();
|
||||
extern s32 D_801D2EE8;
|
||||
extern void func_80010AE0(s32 a0);
|
||||
extern void func_80018450(s32 a0, s32 a1);
|
||||
extern void func_800183E0(s32 a0);
|
||||
extern void func_80128D60(s32 a0, s32 *a1, s32 *a2);
|
||||
extern s32 func_80128DB4(s32 a0, s32 *a1);
|
||||
extern void func_80128EA8(s32 a0, s32 a1, s32 a2);
|
||||
extern M2C_UNK D_801D1CC8;
|
||||
extern void func_80128FAC(u16 *arg0);
|
||||
extern s16 D_8011DB2C;
|
||||
extern s16 D_8011DB30;
|
||||
extern s32 D_80126AEC;
|
||||
extern u8 *func_8012913C(s32 a0);
|
||||
extern u8 * func_801290DC(s32 a0, u8 *a1);
|
||||
extern void func_8001D074(s32 a, s32 b);
|
||||
extern u8 *func_801291C0(void);
|
||||
extern s32 func_8001CC3C(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern u8 * func_8012913C(s32 arg0);
|
||||
extern void func_80016714(void *a0, s32 a1);
|
||||
extern u8 * func_801291C0(void);
|
||||
extern void func_80129248(s16 a0);
|
||||
extern void func_801292C8(u8 *a0);
|
||||
extern void func_8012927C(void);
|
||||
extern void func_8012931C(struct vec *a0);
|
||||
extern void func_80129350(s32 a0, s32 a1);
|
||||
extern void func_80129374(s32 a0, s32 a1);
|
||||
extern s16 D_800B9AAC[];
|
||||
extern s16 D_800B9AAE[];
|
||||
extern s16 D_800B9AB0[];
|
||||
extern s16 D_800B9AB2[];
|
||||
extern s16 D_800B9AB4[];
|
||||
extern s16 D_800B9AB6[];
|
||||
extern s16 D_800B9AB8[];
|
||||
extern s16 D_800B9ABA[];
|
||||
extern void func_80129398(void);
|
||||
extern s16 D_80114EE0;
|
||||
extern void func_80129428(void);
|
||||
extern void func_8012943C(void);
|
||||
extern s32 D_8005128C;
|
||||
extern u8 D_800B9A78;
|
||||
extern void func_801298F4(void *arg0);
|
||||
extern void func_801299C8(s32 a, s32 b, s32 c);
|
||||
extern void func_8012944C(void);
|
||||
extern unsigned short D_800B99F0;
|
||||
extern void func_8012A328(void);
|
||||
extern void func_80053308(s32);
|
||||
extern s32 func_80012F74(s32, s32, s32, s32); /* canonical s32 (engine_core); (s16)-cast the return for the sll/sra */
|
||||
extern void GsSetRefView2L(void *);
|
||||
extern s8 D_801150D6; /* canonical (engine_core macro): s8 — access via *(u8*)& for lbu */
|
||||
extern u8 D_80127504;
|
||||
extern s32 D_80126E60[];
|
||||
extern s32 D_80126F04[];
|
||||
extern u8 D_80126948[]; /* canonical (sibling): u8[] — cast (s32*) at use */
|
||||
extern s32 D_80126FA8[];
|
||||
extern struct BigCopy D_80126DB8;/* canonical (engine_core macro): struct BigCopy — (s32*)& at use */
|
||||
extern u8 D_800AF630[]; /* canonical (sibling): u8[] — cast (s32*) at use */
|
||||
extern s32 D_800AE688[];
|
||||
extern s32 D_801151D4; /* canonical (10 siblings): scalar s32 — store (s32)ptr */
|
||||
extern void func_8012A018(s32 a, s32 b);
|
||||
extern void func_80129FF4(void);
|
||||
extern u16 D_80126B5E;
|
||||
extern u16 D_80126B62;
|
||||
extern u16 D_80126B66;
|
||||
extern s16 D_80126940;
|
||||
extern s16 D_80126942;
|
||||
extern s16 D_80126944;
|
||||
extern void func_8012A048(void *a0, s32 a1, u8 a2);
|
||||
extern void *memcpy(void *, const void *, unsigned int);
|
||||
extern void func_8012A094(s32 a0);
|
||||
extern void func_8012A100(s8 a0);
|
||||
extern void func_8012A0E0(void);
|
||||
extern s8 D_801150D6;
|
||||
extern s32 D_80120204;
|
||||
extern s32 D_80120200;
|
||||
extern s32 D_8012020C;
|
||||
extern s32 D_80120208;
|
||||
extern s16 D_80120218;
|
||||
extern s16 D_80120210;
|
||||
extern s16 D_8012021A;
|
||||
extern s16 D_80120212;
|
||||
extern s16 D_8012021C;
|
||||
extern s16 D_80120214;
|
||||
extern s16 D_80120226;
|
||||
extern s16 D_80120220;
|
||||
extern s16 D_80120228;
|
||||
extern s16 D_80120222;
|
||||
extern s16 D_8012022A;
|
||||
extern s16 D_80120224;
|
||||
extern s32 D_80120294;
|
||||
extern s16 D_80120298;
|
||||
extern s16 D_8012029A;
|
||||
extern void func_8012A110(void);
|
||||
extern s8 D_801152C0;
|
||||
extern void func_8012A2F4(void);
|
||||
extern s16 D_80127080;
|
||||
extern s16 D_801152C2;
|
||||
extern void func_8012A304(s32 a0, s32 a1);
|
||||
extern s32 D_801151D4;
|
||||
extern struct BigCopy D_80126DB8;
|
||||
extern struct BigCopy D_80114EE8;
|
||||
extern void func_8012A4BC(void);
|
||||
extern void func_8012A62C(s32);
|
||||
extern void func_8012A5F8(void (*a0)(void), s32 a1);
|
||||
extern void func_8012A62C(s32 a0);
|
||||
extern void func_8012A7D4(void *a0, void *a1);
|
||||
extern s32 func_8012A6D0(void *a0, void *a1);
|
||||
extern s16 func_8012A68C(void);
|
||||
extern s16 func_8012A79C(s16 *a0, s16 *a1);
|
||||
extern s16 func_8012A758(void);
|
||||
extern s32 ratan2(s32 a0, s32 a1);
|
||||
extern void func_8012A7D4(void *arg0, void *arg1);
|
||||
extern void func_8012AAAC();
|
||||
extern void func_8012A828(s32 a0, void * a1);
|
||||
extern int func_8012ACE0(void *a0);
|
||||
extern void func_8012A860(void *a0, int a1);
|
||||
extern void func_8012A8B0(u8 *a0, s32 a1);
|
||||
extern void func_8012A8E8(void);
|
||||
extern u8 D_801202A0[];
|
||||
extern u16 D_801270C0;
|
||||
extern void func_8012A988(u8 *a0);
|
||||
extern void func_8012A908(void);
|
||||
extern s32 func_8012ACE0(void *a0);
|
||||
extern M2C_UNK D_80189C94;
|
||||
extern void func_8012ACA0(void *arg0);
|
||||
extern s32 func_8012ACE0(void *o);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
extern s32 func_8012AD50(void * arg0);
|
||||
extern void func_8012AD64(s32 *a0, s16 a1);
|
||||
extern void func_8012AD6C(void *a0);
|
||||
extern void func_8012AD80(s32 a0);
|
||||
extern void func_8012ADE4(u8 *a0);
|
||||
extern s32 *D_80126B78;
|
||||
extern s32 *D_80126B90;
|
||||
extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern s32 func_80013478(s32 a0, s32 a1);
|
||||
extern s32 func_8012AE00(s32 a0);
|
||||
extern s32 func_8012AF0C(s32 a0, s32 a1);
|
||||
extern s32 func_80134510(s32 arg);
|
||||
extern s32 func_8012B030(u8 *a0);
|
||||
extern int func_80047948(int a0);
|
||||
extern int func_8004787C(int a0);
|
||||
extern void func_8012B0B4(unsigned int *param_1, int param_2, int param_3);
|
||||
extern void func_800484EC(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012B14C(s32 a0, s32 a1);
|
||||
extern void func_8012B178(s32 a0, s32 a1);
|
||||
extern void func_8012B1B4(s32 a0, s32 a1);
|
||||
extern void func_8012B200(u8 *a0);
|
||||
extern void func_8012B21C(void *a0);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern void func_8012B260(u8 *a0);
|
||||
extern void func_80049CAC(s32 a0, s32 a1);
|
||||
extern void func_8012B2CC(s32 a0);
|
||||
extern void RotMatrixYXZ(void *m, void *p);
|
||||
extern void func_8012B370(int a0);
|
||||
extern void func_8004978C(s16 *a0, void *a1);
|
||||
extern void func_8012B414(int a0);
|
||||
extern s32 func_8012B608(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_8012B6D4(s16 *a0, s16 *a1);
|
||||
extern s32 func_8012B70C(s16 *a0, s16 *a1);
|
||||
extern s32 ratan2(s32 x, s32 y);
|
||||
extern s32 func_8012B744(void *a0, void *a1);
|
||||
extern s16 D_80126CB8;
|
||||
extern s16 D_80126CB4;
|
||||
extern s32 func_8012B864(s32 a0);
|
||||
extern s32 func_8012B8A4(s16 *a0);
|
||||
extern s32 func_8012B8E4(s32 arg0, s32 arg1);
|
||||
extern s32 func_8012BA10(s32 arg0, s32 arg1);
|
||||
extern s32 func_8012BB3C(s32 arg0, s32 arg1, u32 arg2, s32 arg3);
|
||||
extern void Square0(s32 *a0, s32 *a1);
|
||||
extern s32 func_8012BC60(struct Vec *a0, struct Vec *a1);
|
||||
extern s16 D_80126CBA;
|
||||
extern s32 func_8012BCCC(s32 a0);
|
||||
extern void func_80013350(s32 a0, void *a1);
|
||||
extern u8 D_80126B5C;
|
||||
extern void func_8012BD14(s32 a0);
|
||||
extern s32 func_8012BDBC(s32 a0, s32 a1);
|
||||
extern s32 func_8012BD3C(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012BE98(s32 a0, u16 *a1);
|
||||
extern void func_8012BE54(s32 a0);
|
||||
extern s32 func_800132BC(s32 a0, s32 a1);
|
||||
extern void func_8012BE98(s32 arg0, u16 * arg1);
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern s32 func_8012BF10(s32 a0, s32 a1);
|
||||
extern void func_8012BF4C(s32 *a0, s32 a1);
|
||||
extern void func_8012BF54(void *a0);
|
||||
extern void func_8012BF68(void *a0);
|
||||
extern s16 D_80126CB0;
|
||||
extern s32 func_8012BF7C(s16 *a0);
|
||||
extern s16 D_80126CAC;
|
||||
extern short D_80126CAE;
|
||||
extern int func_8012BFA8(short *a0);
|
||||
extern s32 D_801274D4;
|
||||
extern s32 D_801274E0;
|
||||
extern s32 func_8012C044(s32 a0);
|
||||
extern void func_8012C218(void *a0);
|
||||
extern void func_8012C098(void *param_1);
|
||||
extern s32 func_8012C0EC(s32 a0);
|
||||
extern void func_8012C194(void);
|
||||
extern void func_8001CFDC(s32 a, s32 b);
|
||||
extern void func_8012C1B8(void);
|
||||
extern u8 D_800B3DF0[];
|
||||
extern s32 func_8012C1DC(s32 a0);
|
||||
extern u8 D_80126720[];
|
||||
extern u16 * func_8012C284(u16 *a0);
|
||||
extern u8 D_80120194[];
|
||||
extern s32 func_8012C2D0(void);
|
||||
extern s32 func_8012C31C(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern void func_8001C214(s32 a0, s32 a1);
|
||||
extern u8 D_80078EAE;
|
||||
extern s32 func_8012C354(s32 a0, s32 a1);
|
||||
extern void func_8001C810(s32 a0, s32 a1);
|
||||
extern s32 func_8012C438(s32 a0, s32 a1);
|
||||
extern s32 func_8012C890(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_8012C51C(void *a0, s32 a1);
|
||||
extern s32 func_8012C588(s32 a0, s32 a1);
|
||||
extern void func_8012C724(s32 a0, s32 a1);
|
||||
extern s32 func_8012C750(s32 a0);
|
||||
extern s32 func_8012C820(u8 *a0);
|
||||
extern s32 D_8018D178;
|
||||
extern s16 D_801270C4;
|
||||
extern u16 D_801274E4[];
|
||||
extern s32 D_8011DB08;
|
||||
extern s32 func_8012CB64(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4);
|
||||
extern s32 func_8012CC88(s32 a, s32 b, s32 c);
|
||||
extern u8 D_800D3918[];
|
||||
extern void func_8012CBA4(s32 a0);
|
||||
extern void func_8012CBCC(s32 a0);
|
||||
extern void func_8012CBF4(s32 a0);
|
||||
extern void func_8012CC1C(s32 arg0, s32 arg1);
|
||||
extern void func_8012CC40(s32 arg0, s32 arg1);
|
||||
extern s32 func_8012CC88(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012CC64(s32 a0, s32 a1);
|
||||
extern s32 func_80133784(s32 a0, void *a1, s32 a2);
|
||||
extern s32 func_8012CE2C(s32 a0);
|
||||
extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012CFA8(s32 arg0);
|
||||
extern void func_8012F214(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012D3B4(s32 arg0, s32 arg1, s32 arg2);
|
||||
extern void func_8012D098(u16 *param_1, u32 param_2);
|
||||
extern void func_8012D098();
|
||||
extern void func_8012D38C(int a0);
|
||||
extern void func_8012D3AC(void);
|
||||
extern s32 AddPrim(s32, void *);
|
||||
extern s32 RotTransPers(s32, s32, s32 *, s32 *);
|
||||
extern void SetLineF2(void *);
|
||||
extern void *func_80010A08(s32);
|
||||
extern void func_8004914C(void *);
|
||||
extern void func_800491AC(void *);
|
||||
extern s32 D_800A651C;
|
||||
extern u8 D_800AF648;
|
||||
extern s16 D_800B9A02;
|
||||
extern void func_8012D4B4(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern void func_8012D5DC(void);
|
||||
extern s16 D_80126B98;
|
||||
extern s32 func_8012DEB8(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_8012D5E4(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern int func_8012D664();
|
||||
extern void func_8012D624(s32 a0);
|
||||
extern int func_8012D664(int arg0, int arg1, int arg2);
|
||||
extern s32 func_8012D714(s32 param_1, u32 param_2);
|
||||
extern void func_8012F568(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4, s32 a5);
|
||||
extern void func_8014C978(void);
|
||||
extern M2C_UNK D_80189CAC;
|
||||
extern M2C_UNK D_80189CB4;
|
||||
extern s32 func_8012DB84(void);
|
||||
extern s32 func_8012DE2C(s32 a0);
|
||||
extern s32 func_8012DDA4(void);
|
||||
extern s32 func_8012DBD0(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern s32 func_8012DDA4();
|
||||
extern s32 func_8012DF34(s32 a0, s32 a1, s32 a2);
|
||||
extern s16 D_80126B9A;
|
||||
extern u8 D_801152A8[];
|
||||
extern void func_8012DFBC(void);
|
||||
extern void func_8012DFCC(void);
|
||||
extern void func_8012E014(s32 arg0);
|
||||
extern void func_8012E138(void);
|
||||
extern void func_8012DFD4(u8 *a0);
|
||||
extern s32 func_8012E27C(void);
|
||||
extern void func_8012E284(void);
|
||||
extern s32 GetTPage(s32, s32, s32, s32);
|
||||
extern s32 func_8005A600(s32, s32, s32, s32, s32);
|
||||
extern void func_8012E28C(s32 arg0, s32 arg1);
|
||||
extern void func_8004914C(void *a0);
|
||||
extern void func_800491AC(void *a0);
|
||||
extern void func_8012E32C(void);
|
||||
extern s32 func_8012E470(s32 a0);
|
||||
extern void func_8012E4C8(s32 a0);
|
||||
extern s32 func_8012E504(s32 a0, s32 a1);
|
||||
extern s32 func_8012E544(s32 a0);
|
||||
extern s32 func_8012E57C(s32 a0, s32 a1);
|
||||
extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3);
|
||||
extern void func_8012E5CC(s32 param_1, u16 param_2, u16 param_3);
|
||||
extern void func_8012E688(s32 param_1, u16 param_2, u16 param_3);
|
||||
extern s32 func_8012E778(int param_1, int param_2);
|
||||
extern void func_8012E88C(u8 *a0);
|
||||
extern void func_8012E8A8(u8 *a0);
|
||||
extern void func_8012E8C4(u8 *a0);
|
||||
extern void func_8012E8E0(s32 a0, s32 a1);
|
||||
extern void func_8016AA50(int, int);
|
||||
extern void func_8016B428(int);
|
||||
extern void func_80019064(void *);
|
||||
extern int D_80189CBC;
|
||||
extern void func_8012E9C0(int param_1);
|
||||
extern void func_8012EA90(s32 param_1, s32 param_2, s32 *param_3);
|
||||
extern void func_8012EC04(s32 param_1, s32 param_2, s32 *param_3);
|
||||
extern s32 func_8002A4FC(s32 a0);
|
||||
extern s32 func_8012EECC(s32 a0);
|
||||
extern void func_8012EFB8(s32 a0);
|
||||
extern void func_8012EF34(s32 a0, s32 a1);
|
||||
extern void func_8012EF70(s32 a0, s32 a1);
|
||||
extern void ApplyTransposeMatrixLV(void *a0, void *a1, void *a2);
|
||||
extern void func_8012F038(int param_1, short *param_2, short *param_3);
|
||||
extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2);
|
||||
extern void RotTransSV(s32 a0, s32 a1, void *a2);
|
||||
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012F1A4(s32 *a0, s32 a1, s32 *a2);
|
||||
extern void func_8012F2E8(s32 a0, s32 a1, s32 a2);
|
||||
extern s16 D_80126CB6;
|
||||
extern void func_8012F374(s32 a0, s32 a1);
|
||||
extern void *memcpy(void *, const void *, u32);
|
||||
extern u8 D_80126C38;
|
||||
extern u8 D_80126C40;
|
||||
extern u16 D_80126B94;
|
||||
extern u16 D_80126B96;
|
||||
extern void func_8012F568(s32 param_1, s32 param_2, s32 param_3, s32 param_4, s32 param_5, s32 param_6);
|
||||
extern void func_80131B14();
|
||||
extern void func_80131E00(struct S80131E00 *a0, s32 a1);
|
||||
extern s32 func_80131A34(s32, s32);
|
||||
extern void func_80131CA8(int a0, int a1);
|
||||
extern void func_8012F5F4(s32 arg0);
|
||||
extern void func_80131C78(s32 a0);
|
||||
extern void func_8012F68C(s32 arg0);
|
||||
extern void func_8012F75C(s32 a0);
|
||||
extern s32 func_8012BEE8(s32);
|
||||
extern void func_8012F7B4(s32 a0);
|
||||
extern void func_80131170();
|
||||
extern void func_80131CA8();
|
||||
extern unsigned char D_80189CD8[];
|
||||
extern void func_8012F828(int param_1);
|
||||
extern void func_80131340(s32 a0);
|
||||
extern void func_8012F87C(s32 a0);
|
||||
extern void func_80131170(s32 a0, s32 a1, s32 a2);
|
||||
extern u8 D_80189CE4[];
|
||||
extern void func_8012F8C8(u8* arg0);
|
||||
extern void func_8012F91C(s32 a0);
|
||||
extern s32 func_80131A34(s32 a0, s32 a1);
|
||||
extern void func_80131CA8(s32 a0, s32 a1);
|
||||
extern void func_8012F968(s32 param_1);
|
||||
extern void func_801319E0(s32 a0);
|
||||
extern s32 func_80143B6C(s32 a0, s32 a1);
|
||||
extern void func_8012FB54(s32 a0);
|
||||
extern void func_8012FC30(s32 a0);
|
||||
extern void func_8012FCA4(int a0);
|
||||
extern s32 func_8012FCC4(s32 param_1);
|
||||
extern void func_8012FDA8(int param_1);
|
||||
extern void func_8012FE70(s32 a0);
|
||||
extern void func_8012FF00(s32 a0);
|
||||
extern void func_8012FF4C(s32 a0);
|
||||
extern void func_80130D48(s32 a0);
|
||||
extern void func_8012FF98(u8 *a0);
|
||||
extern s32 func_80131AC8(void *a0);
|
||||
extern void func_8013001C(void *a0);
|
||||
extern void func_80130088(void *a0);
|
||||
extern s32 func_8012BCCC(s32);
|
||||
extern void func_801300F4(s32 a0);
|
||||
extern void func_801301E8(u8 *a0);
|
||||
extern void func_80130278(s32 arg0);
|
||||
extern void func_80130314(s32 a0);
|
||||
extern void func_80130360(s32 a0);
|
||||
extern void func_8012E364(void);
|
||||
extern void func_801303A0(s32 a0);
|
||||
extern void func_801303EC(void *a0);
|
||||
extern void func_80143CD4(s32 a0);
|
||||
extern void func_800CB0E8(s32 a0);
|
||||
extern void func_80130438(s32 a0);
|
||||
extern void func_801319E0(int);
|
||||
extern int func_80131D68(int, int);
|
||||
extern int func_8012BEE8(int);
|
||||
extern void func_80131CA8(int, int);
|
||||
extern void func_80130514(int param_1);
|
||||
extern void func_801305CC(u8 *a0);
|
||||
extern void func_8012CBF4(s32);
|
||||
extern s32 func_80131D68(s32 a0, s32 a1);
|
||||
extern void func_80130650(s32 a0);
|
||||
extern s32 func_80146A6C(s32 a0, void *a1, s32 a2, s32 a3, s32 a4, s32 a5, s32 a6);
|
||||
extern void func_80130740(void *a0, u16 *a1);
|
||||
extern s32 func_801312D0(s32 a0, void *a1);
|
||||
extern void func_801307B0(s32 a0);
|
||||
extern void func_80130858(s32 a0);
|
||||
extern void func_80130898(u8 *a0);
|
||||
extern void func_801308DC(s32 a0);
|
||||
extern void func_80166244();
|
||||
extern void func_80130974(int param_1);
|
||||
extern void func_80130A18(u8 *a0);
|
||||
extern void func_80130AC4(s32 a0);
|
||||
extern int func_80131A34(int a0, int a1);
|
||||
extern void func_80130AF0(int param_1);
|
||||
extern void (*D_80189CF8[])(void);
|
||||
extern void func_80130D0C(void *a0);
|
||||
extern s32 rand(void);
|
||||
extern u8 D_80078E78[];
|
||||
extern u16 D_80078EB2;
|
||||
extern u16 D_80078EB4;
|
||||
extern s16 D_80189D48[];
|
||||
extern s16 D_80189D78[];
|
||||
extern s16 D_80189DD8[];
|
||||
extern s16 D_80189DE0[];
|
||||
extern s16 D_80189E00[];
|
||||
extern void func_80130D48(s32 arg0);
|
||||
extern void func_80131170(s32 p, s32 b, s32 c);
|
||||
extern s32 func_801312D0(s32 param_1, void *param_2);
|
||||
extern void func_80131E00();
|
||||
extern s32 D_801D2F10;
|
||||
extern s32 D_801D2F14;
|
||||
extern void func_8002A04C(s32 a0);
|
||||
extern void func_801319E0(s32 arg0);
|
||||
extern s32 func_80131CF4(s32 a0);
|
||||
extern int func_80131D68(int a0, int a1);
|
||||
extern void (*D_80189E38[])(struct S80131E00 *a0);
|
||||
extern void func_80131E38(u8 *a0);
|
||||
extern void func_80131E7C(s32 a0);
|
||||
extern void func_80131EE4(void);
|
||||
extern void (*D_80189E90[])(void);
|
||||
extern void func_80131EEC(void *a0);
|
||||
extern void (*D_80189ED8[])(void);
|
||||
extern void func_80131F28(void *a0);
|
||||
extern void (*D_80189EE0[])(void);
|
||||
extern void func_80131F64(void *a0);
|
||||
extern void (*D_80189EE8[])(void);
|
||||
extern void func_80131FA0(void *a0);
|
||||
extern void (*D_80189EF0[])(void);
|
||||
extern void func_80131FDC(void *a0);
|
||||
extern void func_801320D0(void);
|
||||
extern void func_8001C214(int, int);
|
||||
extern int D_80189E98;
|
||||
extern void func_801320D8(int param_1);
|
||||
extern s32 func_80132144(s32 param_1);
|
||||
extern int D_80189EB8;
|
||||
extern void func_801321B0(int param_1);
|
||||
extern int D_80189EC8;
|
||||
extern void func_8013221C(int param_1);
|
||||
extern void func_8005C324(int dst, int src, int n) __asm__("memcpy"); /* Phase-24: 0x8005C324 is named memcpy for overlays (whale needs it); keep the non-builtin C name here (else built-in codegen), emit via asm-label */
|
||||
extern void func_801325B8(int a0, int a1, int a2, int a3, int a4);
|
||||
extern void func_80132288(int *param_1, int *param_2, int param_3);
|
||||
extern void func_801325B8(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4);
|
||||
extern void func_8013240C(s32 a0);
|
||||
extern void memcpy();
|
||||
extern void gteMIMefunc();
|
||||
extern void func_801325B8(int dst, int src, int m0, int mm, int arg5);
|
||||
extern void func_8013277C(void);
|
||||
extern void func_80020F34(s32 a0, s32 a1);
|
||||
extern void func_80054514(s32 a0, s32 a1);
|
||||
extern void func_80132784(s32 a0, s32 a1, u32 a2);
|
||||
extern s32 VectorNormalSS(void *a0, void *a1);
|
||||
extern void func_80132DC4(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_80132E6C(s16 *a0);
|
||||
extern void func_80132EC4(void *a0, s16 a1);
|
||||
extern s32 func_80132EF4(s32 a0, s32 a1);
|
||||
extern void func_801330E0(void * param_1, s16 * param_2, s32 param_3);
|
||||
extern void func_80133060(u8 *a0, s32 *a1, s32 a2);
|
||||
extern void func_8013339C(short *param_1, short *param_2);
|
||||
extern s32 func_8013361C(s16 *a0, s16 *a1, s16 *a2, s16 *a3);
|
||||
extern s32 D_801D2F58;
|
||||
extern s32 D_801D2F5C[];
|
||||
extern int D_801D2F60;
|
||||
extern void func_80136BC4(s32 a0);
|
||||
extern void func_801336E8(void *a0, int a1, int a2);
|
||||
extern void func_80136BC4(s32);
|
||||
extern void func_8013373C(s16 arg0);
|
||||
extern s32 func_80133784(s32 arg0, void *arg1, s32 arg2);
|
||||
extern s32 func_80133CD4();
|
||||
extern s32 func_80134310(Vec3s *a0, Vec3s *a1, s32 a2);
|
||||
extern s32 func_8013435C(s16 *a0, s16 *a1, s32 a2, s16 *a3);
|
||||
extern s32 func_801343C4(s32 angle, s32 p1, s32 p2);
|
||||
extern s32 func_80134510(s32 param);
|
||||
extern s32 func_801345F8(s32 arg);
|
||||
extern s32 func_801347A0(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern s32 func_80134A28(s32 a0, s32 a1, s32 a2);
|
||||
extern int func_80134A74(int param_1, s16 param_2, s16 param_3, int param_4);
|
||||
extern s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern s32 func_80134FB8(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_80135004(s32 arg0, s32 p1, s32 p2);
|
||||
extern u8 D_80189EFC;
|
||||
extern u8 D_80189EF8;
|
||||
extern s16 *D_80189F00;
|
||||
extern u8 D_80189F04;
|
||||
extern int D_801D2F58;
|
||||
extern u16 D_801D2F68;
|
||||
extern int func_80134A74(int, s16, s16, int);
|
||||
extern int func_80135168(u16 arg0, u16 *p1, u16 *p2);
|
||||
extern s16 func_80135480(void *param_1, s32 param_2, s16 *param_3, s16 *param_4);
|
||||
/* ==== end §8b carried decl layer ==== */
|
||||
|
||||
|
||||
|
||||
extern s16 func_80135480(void*, s32, s16*, s16*);
|
||||
extern s32 func_80135EB0(void *arg0, s32 arg1_);
|
||||
extern int func_80134A74(int, s16, s16, int);
|
||||
extern s32 func_80136A94(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
|
||||
extern u8 D_80189EF8;
|
||||
extern u8 D_80189EFC;
|
||||
extern u8 D_80189F04;
|
||||
extern s32 D_801D2F6C;
|
||||
extern s32 D_801D2F8C;
|
||||
|
||||
s32 func_80135888(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
|
||||
s32 pad_[8];
|
||||
register s32 m __asm__("$2");
|
||||
s32 sp;
|
||||
register s32 p1 __asm__("$17");
|
||||
register s32 mode __asm__("$18");
|
||||
register s32 p0 __asm__("$19");
|
||||
register s32 base __asm__("$20");
|
||||
register s32 p3 __asm__("$21");
|
||||
|
||||
p0 = arg0;
|
||||
p1 = arg1;
|
||||
p3 = arg3;
|
||||
|
||||
switch (((s32 (*)(void *, s32, s16 *, s16 *))func_80135480)((void *)arg0, arg1, (s16 *)arg2, (s16 *)arg3)) {
|
||||
case 0:
|
||||
return 0;
|
||||
case 1:
|
||||
base = p0 + 0x34;
|
||||
m = p1 & 0xFFFFFFF;
|
||||
sp = m | 0x80000000;
|
||||
mode = 0;
|
||||
break;
|
||||
case 2:
|
||||
base = p0 + 0x34;
|
||||
m = p1 & 0xFFFFFFF;
|
||||
sp = m | 0x80000000;
|
||||
mode = 1;
|
||||
break;
|
||||
case 3:
|
||||
base = p0 + 0x34;
|
||||
sp = (s32)&D_801D2F8C;
|
||||
mode = 0;
|
||||
break;
|
||||
case 4:
|
||||
base = (s32)&D_801D2F6C;
|
||||
sp = (s32)&D_801D2F8C;
|
||||
mode = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
if (p1 < 0) {
|
||||
if (func_80135EB0(sp, 0) != 0) {
|
||||
func_80136A94(mode, p0, p3, base);
|
||||
return 1;
|
||||
}
|
||||
sp = *(s32 *)sp;
|
||||
__asm__ __volatile__("");
|
||||
while (sp != 0) {
|
||||
if (func_80135EB0(sp, 0) != 0) {
|
||||
hit:
|
||||
func_80136A94(mode, p0, p3, base);
|
||||
return 1;
|
||||
}
|
||||
sp = *(s32 *)sp;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
{
|
||||
u16 *pb = (*(u16 * *)&D_80189EFC);
|
||||
u16 *pa = (*(u16 * *)&D_80189EF8);
|
||||
s16 *pc = (*(s16 * *)&D_80189F04);
|
||||
pc[0] = pb[0] - pa[0];
|
||||
pc[1] = pb[1] - pa[1];
|
||||
pc[2] = pb[2] - pa[2];
|
||||
if (func_80134A74(0, (s16)pa[0], (s16)pa[2], sp) == 0) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
goto hit;
|
||||
}
|
||||
|
||||
@@ -1,730 +0,0 @@
|
||||
#include "common.h"
|
||||
#include "../shared/engine_core.h"
|
||||
|
||||
/* ==== Phase-26 §8b carried decl layer (jr_isolate_all.py) ===================
|
||||
* The file-scope decl environment from earlier code regions of this object —
|
||||
* file-local types, col-0 decls, DEFINE_func macro externs, and each earlier
|
||||
* definition's implied prototype (types first, then decls in original order).
|
||||
* Decls emit no code => byte-neutral. See cookbook §8c. */
|
||||
/* 8-byte element, cmd @ +4 */
|
||||
/* list ptr @ +0x90 */
|
||||
/* size 8, alignment 1 -> unaligned copy */
|
||||
extern void func_80128288(void);
|
||||
extern void func_80128158(void);
|
||||
extern void func_801285E4(void);
|
||||
extern void func_80128178(void);
|
||||
extern void func_80128678(void);
|
||||
extern void func_80128198(void);
|
||||
extern void func_80128714(void);
|
||||
extern void func_801281B8(void);
|
||||
extern void func_8013E67C(void);
|
||||
extern void func_801281D8(void);
|
||||
extern void func_8013E558(void);
|
||||
extern void func_801281F8(void);
|
||||
extern s32 D_801D1CC4;
|
||||
extern s32 func_80128218(void);
|
||||
extern void func_80128A28(void);
|
||||
extern void func_80128228(void);
|
||||
extern void func_80128AF4(void);
|
||||
extern void func_80128248(void);
|
||||
extern void func_801282EC(void);
|
||||
extern void func_80128268(void);
|
||||
extern u16 D_800B99F6;
|
||||
extern void (*D_80189C00[])(void);
|
||||
extern void func_80011B7C(int);
|
||||
extern void func_801282CC(void);
|
||||
extern void func_8001C0C8(void);
|
||||
extern void func_80015310(void);
|
||||
extern void func_80129258(void);
|
||||
extern void func_801378F0(void);
|
||||
extern void func_80010E14(void);
|
||||
extern s16 currentLocationId;
|
||||
extern s32 func_80029504(void);
|
||||
extern s32 func_800CF854(s32);
|
||||
extern s32 func_80128998(void);
|
||||
extern s32 func_801289F0(void);
|
||||
extern s32 func_801288E8(s32);
|
||||
extern s32 func_80128940(s32);
|
||||
extern s32 func_80029178(s32);
|
||||
extern s32 func_801288B0(void);
|
||||
extern void func_80011C10(void);
|
||||
extern void func_8012832C(void);
|
||||
extern void func_80129220(void);
|
||||
extern void func_80011E24(void);
|
||||
extern void func_80128C14(void);
|
||||
extern void func_8002AEF8(void);
|
||||
extern void func_800CFBBC(void);
|
||||
extern void SsUtReverbOff(void);
|
||||
extern void func_8013C98C(void);
|
||||
extern void func_80129C40(s32 a0);
|
||||
extern void func_800D0630(void);
|
||||
extern void func_80145CEC(void);
|
||||
extern void func_80144B9C(void);
|
||||
extern u8 D_800B9A17;
|
||||
extern u8 D_800B9A10;
|
||||
extern void func_80128420(void);
|
||||
extern s32 func_800D0588(void);
|
||||
extern void func_801284B8(void);
|
||||
extern void func_80175308(void);
|
||||
extern void func_8016E8F0(void);
|
||||
extern void func_80175494(void);
|
||||
extern u8 D_800B9A64;
|
||||
extern void func_801284F0(void);
|
||||
extern void func_80146074(void);
|
||||
extern void func_8012853C(void);
|
||||
extern void func_80178608(void);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern s32 func_80011A3C(void);
|
||||
extern short currentLocationId;
|
||||
extern short D_800B99F2;
|
||||
extern void func_80128564(void);
|
||||
extern u8 D_800B9A11;
|
||||
extern void func_801285D4(void);
|
||||
extern s32 func_800D18DC(void);
|
||||
extern void func_8014607C(void);
|
||||
extern void func_801287B8(void);
|
||||
extern s32 D_801D2EEC;
|
||||
extern void func_80029444(void);
|
||||
extern void func_800D1754(void);
|
||||
extern s32 D_80126B58;
|
||||
extern s32 D_801D47E0;
|
||||
extern u16 D_800B99DA;
|
||||
extern void func_80129CF8(void);
|
||||
extern void func_8017849C(void);
|
||||
extern void func_8014FDF4(struct S8014FDF4 *a0);
|
||||
extern s32 func_801505FC(s32 a0);
|
||||
extern void func_801508B4(void *a0);
|
||||
extern void func_80165E90(void);
|
||||
extern void func_801627E8(void);
|
||||
extern void func_80162B1C(void);
|
||||
extern void func_80165CA0(void);
|
||||
extern void func_80129010(void);
|
||||
extern void func_8013CA14(void);
|
||||
extern void func_800190AC(void);
|
||||
extern void func_8012956C(void);
|
||||
extern void func_8016E95C(void);
|
||||
extern void func_801754A8(void);
|
||||
extern void func_8013BC7C(void);
|
||||
extern void func_8013BCDC(void);
|
||||
extern void func_801379FC(void);
|
||||
extern void func_8001212C(void);
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 sp10);
|
||||
extern u8 D_800AEFD0;
|
||||
extern int D_800C7C60;
|
||||
extern int *D_800C7C64;
|
||||
extern int D_800A2E20;
|
||||
extern int D_800AF558;
|
||||
extern int D_801D1CC4;
|
||||
extern int func_801288E8(int arg0);
|
||||
extern u8 D_800AF560;
|
||||
extern s32 func_80128940(s32 _arg0);
|
||||
extern int D_800AECB0;
|
||||
extern u8 D_800AECB8;
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
extern s16 D_800B9A00;
|
||||
extern M2C_UNK (*D_8018993C)();
|
||||
extern s16 (*D_80189940)();
|
||||
extern M2C_UNK (*D_80189948)();
|
||||
extern s32 (*D_8018994C)();
|
||||
extern s32 D_801D2EE8;
|
||||
extern void func_80010AE0(s32 a0);
|
||||
extern void func_80018450(s32 a0, s32 a1);
|
||||
extern void func_800183E0(s32 a0);
|
||||
extern void func_80128D60(s32 a0, s32 *a1, s32 *a2);
|
||||
extern s32 func_80128DB4(s32 a0, s32 *a1);
|
||||
extern void func_80128EA8(s32 a0, s32 a1, s32 a2);
|
||||
extern M2C_UNK D_801D1CC8;
|
||||
extern void func_80128FAC(u16 *arg0);
|
||||
extern s16 D_8011DB2C;
|
||||
extern s16 D_8011DB30;
|
||||
extern s32 D_80126AEC;
|
||||
extern u8 *func_8012913C(s32 a0);
|
||||
extern u8 * func_801290DC(s32 a0, u8 *a1);
|
||||
extern void func_8001D074(s32 a, s32 b);
|
||||
extern u8 *func_801291C0(void);
|
||||
extern s32 func_8001CC3C(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern u8 * func_8012913C(s32 arg0);
|
||||
extern void func_80016714(void *a0, s32 a1);
|
||||
extern u8 * func_801291C0(void);
|
||||
extern void func_80129248(s16 a0);
|
||||
extern void func_801292C8(u8 *a0);
|
||||
extern void func_8012927C(void);
|
||||
extern void func_8012931C(struct vec *a0);
|
||||
extern void func_80129350(s32 a0, s32 a1);
|
||||
extern void func_80129374(s32 a0, s32 a1);
|
||||
extern s16 D_800B9AAC[];
|
||||
extern s16 D_800B9AAE[];
|
||||
extern s16 D_800B9AB0[];
|
||||
extern s16 D_800B9AB2[];
|
||||
extern s16 D_800B9AB4[];
|
||||
extern s16 D_800B9AB6[];
|
||||
extern s16 D_800B9AB8[];
|
||||
extern s16 D_800B9ABA[];
|
||||
extern void func_80129398(void);
|
||||
extern s16 D_80114EE0;
|
||||
extern void func_80129428(void);
|
||||
extern void func_8012943C(void);
|
||||
extern s32 D_8005128C;
|
||||
extern u8 D_800B9A78;
|
||||
extern void func_801298F4(void *arg0);
|
||||
extern void func_801299C8(s32 a, s32 b, s32 c);
|
||||
extern void func_8012944C(void);
|
||||
extern unsigned short D_800B99F0;
|
||||
extern void func_8012A328(void);
|
||||
extern void func_80053308(s32);
|
||||
extern s32 func_80012F74(s32, s32, s32, s32); /* canonical s32 (engine_core); (s16)-cast the return for the sll/sra */
|
||||
extern void GsSetRefView2L(void *);
|
||||
extern s8 D_801150D6; /* canonical (engine_core macro): s8 — access via *(u8*)& for lbu */
|
||||
extern u8 D_80127504;
|
||||
extern s32 D_80126E60[];
|
||||
extern s32 D_80126F04[];
|
||||
extern u8 D_80126948[]; /* canonical (sibling): u8[] — cast (s32*) at use */
|
||||
extern s32 D_80126FA8[];
|
||||
extern struct BigCopy D_80126DB8;/* canonical (engine_core macro): struct BigCopy — (s32*)& at use */
|
||||
extern u8 D_800AF630[]; /* canonical (sibling): u8[] — cast (s32*) at use */
|
||||
extern s32 D_800AE688[];
|
||||
extern s32 D_801151D4; /* canonical (10 siblings): scalar s32 — store (s32)ptr */
|
||||
extern void func_8012A018(s32 a, s32 b);
|
||||
extern void func_80129FF4(void);
|
||||
extern u16 D_80126B5E;
|
||||
extern u16 D_80126B62;
|
||||
extern u16 D_80126B66;
|
||||
extern s16 D_80126940;
|
||||
extern s16 D_80126942;
|
||||
extern s16 D_80126944;
|
||||
extern void func_8012A048(void *a0, s32 a1, u8 a2);
|
||||
extern void *memcpy(void *, const void *, unsigned int);
|
||||
extern void func_8012A094(s32 a0);
|
||||
extern void func_8012A100(s8 a0);
|
||||
extern void func_8012A0E0(void);
|
||||
extern s8 D_801150D6;
|
||||
extern s32 D_80120204;
|
||||
extern s32 D_80120200;
|
||||
extern s32 D_8012020C;
|
||||
extern s32 D_80120208;
|
||||
extern s16 D_80120218;
|
||||
extern s16 D_80120210;
|
||||
extern s16 D_8012021A;
|
||||
extern s16 D_80120212;
|
||||
extern s16 D_8012021C;
|
||||
extern s16 D_80120214;
|
||||
extern s16 D_80120226;
|
||||
extern s16 D_80120220;
|
||||
extern s16 D_80120228;
|
||||
extern s16 D_80120222;
|
||||
extern s16 D_8012022A;
|
||||
extern s16 D_80120224;
|
||||
extern s32 D_80120294;
|
||||
extern s16 D_80120298;
|
||||
extern s16 D_8012029A;
|
||||
extern void func_8012A110(void);
|
||||
extern s8 D_801152C0;
|
||||
extern void func_8012A2F4(void);
|
||||
extern s16 D_80127080;
|
||||
extern s16 D_801152C2;
|
||||
extern void func_8012A304(s32 a0, s32 a1);
|
||||
extern s32 D_801151D4;
|
||||
extern struct BigCopy D_80126DB8;
|
||||
extern struct BigCopy D_80114EE8;
|
||||
extern void func_8012A4BC(void);
|
||||
extern void func_8012A62C(s32);
|
||||
extern void func_8012A5F8(void (*a0)(void), s32 a1);
|
||||
extern void func_8012A62C(s32 a0);
|
||||
extern void func_8012A7D4(void *a0, void *a1);
|
||||
extern s32 func_8012A6D0(void *a0, void *a1);
|
||||
extern s16 func_8012A68C(void);
|
||||
extern s16 func_8012A79C(s16 *a0, s16 *a1);
|
||||
extern s16 func_8012A758(void);
|
||||
extern s32 ratan2(s32 a0, s32 a1);
|
||||
extern void func_8012A7D4(void *arg0, void *arg1);
|
||||
extern void func_8012AAAC();
|
||||
extern void func_8012A828(s32 a0, void * a1);
|
||||
extern int func_8012ACE0(void *a0);
|
||||
extern void func_8012A860(void *a0, int a1);
|
||||
extern void func_8012A8B0(u8 *a0, s32 a1);
|
||||
extern void func_8012A8E8(void);
|
||||
extern u8 D_801202A0[];
|
||||
extern u16 D_801270C0;
|
||||
extern void func_8012A988(u8 *a0);
|
||||
extern void func_8012A908(void);
|
||||
extern s32 func_8012ACE0(void *a0);
|
||||
extern M2C_UNK D_80189C94;
|
||||
extern void func_8012ACA0(void *arg0);
|
||||
extern s32 func_8012ACE0(void *o);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
extern s32 func_8012AD50(void * arg0);
|
||||
extern void func_8012AD64(s32 *a0, s16 a1);
|
||||
extern void func_8012AD6C(void *a0);
|
||||
extern void func_8012AD80(s32 a0);
|
||||
extern void func_8012ADE4(u8 *a0);
|
||||
extern s32 *D_80126B78;
|
||||
extern s32 *D_80126B90;
|
||||
extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern s32 func_80013478(s32 a0, s32 a1);
|
||||
extern s32 func_8012AE00(s32 a0);
|
||||
extern s32 func_8012AF0C(s32 a0, s32 a1);
|
||||
extern s32 func_80134510(s32 arg);
|
||||
extern s32 func_8012B030(u8 *a0);
|
||||
extern int func_80047948(int a0);
|
||||
extern int func_8004787C(int a0);
|
||||
extern void func_8012B0B4(unsigned int *param_1, int param_2, int param_3);
|
||||
extern void func_800484EC(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012B14C(s32 a0, s32 a1);
|
||||
extern void func_8012B178(s32 a0, s32 a1);
|
||||
extern void func_8012B1B4(s32 a0, s32 a1);
|
||||
extern void func_8012B200(u8 *a0);
|
||||
extern void func_8012B21C(void *a0);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern void func_8012B260(u8 *a0);
|
||||
extern void func_80049CAC(s32 a0, s32 a1);
|
||||
extern void func_8012B2CC(s32 a0);
|
||||
extern void RotMatrixYXZ(void *m, void *p);
|
||||
extern void func_8012B370(int a0);
|
||||
extern void func_8004978C(s16 *a0, void *a1);
|
||||
extern void func_8012B414(int a0);
|
||||
extern s32 func_8012B608(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_8012B6D4(s16 *a0, s16 *a1);
|
||||
extern s32 func_8012B70C(s16 *a0, s16 *a1);
|
||||
extern s32 ratan2(s32 x, s32 y);
|
||||
extern s32 func_8012B744(void *a0, void *a1);
|
||||
extern s16 D_80126CB8;
|
||||
extern s16 D_80126CB4;
|
||||
extern s32 func_8012B864(s32 a0);
|
||||
extern s32 func_8012B8A4(s16 *a0);
|
||||
extern s32 func_8012B8E4(s32 arg0, s32 arg1);
|
||||
extern s32 func_8012BA10(s32 arg0, s32 arg1);
|
||||
extern s32 func_8012BB3C(s32 arg0, s32 arg1, u32 arg2, s32 arg3);
|
||||
extern void Square0(s32 *a0, s32 *a1);
|
||||
extern s32 func_8012BC60(struct Vec *a0, struct Vec *a1);
|
||||
extern s16 D_80126CBA;
|
||||
extern s32 func_8012BCCC(s32 a0);
|
||||
extern void func_80013350(s32 a0, void *a1);
|
||||
extern u8 D_80126B5C;
|
||||
extern void func_8012BD14(s32 a0);
|
||||
extern s32 func_8012BDBC(s32 a0, s32 a1);
|
||||
extern s32 func_8012BD3C(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012BE98(s32 a0, u16 *a1);
|
||||
extern void func_8012BE54(s32 a0);
|
||||
extern s32 func_800132BC(s32 a0, s32 a1);
|
||||
extern void func_8012BE98(s32 arg0, u16 * arg1);
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern s32 func_8012BF10(s32 a0, s32 a1);
|
||||
extern void func_8012BF4C(s32 *a0, s32 a1);
|
||||
extern void func_8012BF54(void *a0);
|
||||
extern void func_8012BF68(void *a0);
|
||||
extern s16 D_80126CB0;
|
||||
extern s32 func_8012BF7C(s16 *a0);
|
||||
extern s16 D_80126CAC;
|
||||
extern short D_80126CAE;
|
||||
extern int func_8012BFA8(short *a0);
|
||||
extern s32 D_801274D4;
|
||||
extern s32 D_801274E0;
|
||||
extern s32 func_8012C044(s32 a0);
|
||||
extern void func_8012C218(void *a0);
|
||||
extern void func_8012C098(void *param_1);
|
||||
extern s32 func_8012C0EC(s32 a0);
|
||||
extern void func_8012C194(void);
|
||||
extern void func_8001CFDC(s32 a, s32 b);
|
||||
extern void func_8012C1B8(void);
|
||||
extern u8 D_800B3DF0[];
|
||||
extern s32 func_8012C1DC(s32 a0);
|
||||
extern u8 D_80126720[];
|
||||
extern u16 * func_8012C284(u16 *a0);
|
||||
extern u8 D_80120194[];
|
||||
extern s32 func_8012C2D0(void);
|
||||
extern s32 func_8012C31C(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern void func_8001C214(s32 a0, s32 a1);
|
||||
extern u8 D_80078EAE;
|
||||
extern s32 func_8012C354(s32 a0, s32 a1);
|
||||
extern void func_8001C810(s32 a0, s32 a1);
|
||||
extern s32 func_8012C438(s32 a0, s32 a1);
|
||||
extern s32 func_8012C890(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_8012C51C(void *a0, s32 a1);
|
||||
extern s32 func_8012C588(s32 a0, s32 a1);
|
||||
extern void func_8012C724(s32 a0, s32 a1);
|
||||
extern s32 func_8012C750(s32 a0);
|
||||
extern s32 func_8012C820(u8 *a0);
|
||||
extern s32 D_8018D178;
|
||||
extern s16 D_801270C4;
|
||||
extern u16 D_801274E4[];
|
||||
extern s32 D_8011DB08;
|
||||
extern s32 func_8012CB64(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4);
|
||||
extern s32 func_8012CC88(s32 a, s32 b, s32 c);
|
||||
extern u8 D_800D3918[];
|
||||
extern void func_8012CBA4(s32 a0);
|
||||
extern void func_8012CBCC(s32 a0);
|
||||
extern void func_8012CBF4(s32 a0);
|
||||
extern void func_8012CC1C(s32 arg0, s32 arg1);
|
||||
extern void func_8012CC40(s32 arg0, s32 arg1);
|
||||
extern s32 func_8012CC88(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012CC64(s32 a0, s32 a1);
|
||||
extern s32 func_80133784(s32 a0, void *a1, s32 a2);
|
||||
extern s32 func_8012CE2C(s32 a0);
|
||||
extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012CFA8(s32 arg0);
|
||||
extern void func_8012F214(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012D3B4(s32 arg0, s32 arg1, s32 arg2);
|
||||
extern void func_8012D098(u16 *param_1, u32 param_2);
|
||||
extern void func_8012D098();
|
||||
extern void func_8012D38C(int a0);
|
||||
extern void func_8012D3AC(void);
|
||||
extern s32 AddPrim(s32, void *);
|
||||
extern s32 RotTransPers(s32, s32, s32 *, s32 *);
|
||||
extern void SetLineF2(void *);
|
||||
extern void *func_80010A08(s32);
|
||||
extern void func_8004914C(void *);
|
||||
extern void func_800491AC(void *);
|
||||
extern s32 D_800A651C;
|
||||
extern u8 D_800AF648;
|
||||
extern s16 D_800B9A02;
|
||||
extern void func_8012D4B4(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern void func_8012D5DC(void);
|
||||
extern s16 D_80126B98;
|
||||
extern s32 func_8012DEB8(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_8012D5E4(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern int func_8012D664();
|
||||
extern void func_8012D624(s32 a0);
|
||||
extern int func_8012D664(int arg0, int arg1, int arg2);
|
||||
extern s32 func_8012D714(s32 param_1, u32 param_2);
|
||||
extern void func_8012F568(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4, s32 a5);
|
||||
extern void func_8014C978(void);
|
||||
extern M2C_UNK D_80189CAC;
|
||||
extern M2C_UNK D_80189CB4;
|
||||
extern s32 func_8012DB84(void);
|
||||
extern s32 func_8012DE2C(s32 a0);
|
||||
extern s32 func_8012DDA4(void);
|
||||
extern s32 func_8012DBD0(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern s32 func_8012DDA4();
|
||||
extern s32 func_8012DF34(s32 a0, s32 a1, s32 a2);
|
||||
extern s16 D_80126B9A;
|
||||
extern u8 D_801152A8[];
|
||||
extern void func_8012DFBC(void);
|
||||
extern void func_8012DFCC(void);
|
||||
extern void func_8012E014(s32 arg0);
|
||||
extern void func_8012E138(void);
|
||||
extern void func_8012DFD4(u8 *a0);
|
||||
extern s32 func_8012E27C(void);
|
||||
extern void func_8012E284(void);
|
||||
extern s32 GetTPage(s32, s32, s32, s32);
|
||||
extern s32 func_8005A600(s32, s32, s32, s32, s32);
|
||||
extern void func_8012E28C(s32 arg0, s32 arg1);
|
||||
extern void func_8004914C(void *a0);
|
||||
extern void func_800491AC(void *a0);
|
||||
extern void func_8012E32C(void);
|
||||
extern s32 func_8012E470(s32 a0);
|
||||
extern void func_8012E4C8(s32 a0);
|
||||
extern s32 func_8012E504(s32 a0, s32 a1);
|
||||
extern s32 func_8012E544(s32 a0);
|
||||
extern s32 func_8012E57C(s32 a0, s32 a1);
|
||||
extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3);
|
||||
extern void func_8012E5CC(s32 param_1, u16 param_2, u16 param_3);
|
||||
extern void func_8012E688(s32 param_1, u16 param_2, u16 param_3);
|
||||
extern s32 func_8012E778(int param_1, int param_2);
|
||||
extern void func_8012E88C(u8 *a0);
|
||||
extern void func_8012E8A8(u8 *a0);
|
||||
extern void func_8012E8C4(u8 *a0);
|
||||
extern void func_8012E8E0(s32 a0, s32 a1);
|
||||
extern void func_8016AA50(int, int);
|
||||
extern void func_8016B428(int);
|
||||
extern void func_80019064(void *);
|
||||
extern int D_80189CBC;
|
||||
extern void func_8012E9C0(int param_1);
|
||||
extern void func_8012EA90(s32 param_1, s32 param_2, s32 *param_3);
|
||||
extern void func_8012EC04(s32 param_1, s32 param_2, s32 *param_3);
|
||||
extern s32 func_8002A4FC(s32 a0);
|
||||
extern s32 func_8012EECC(s32 a0);
|
||||
extern void func_8012EFB8(s32 a0);
|
||||
extern void func_8012EF34(s32 a0, s32 a1);
|
||||
extern void func_8012EF70(s32 a0, s32 a1);
|
||||
extern void ApplyTransposeMatrixLV(void *a0, void *a1, void *a2);
|
||||
extern void func_8012F038(int param_1, short *param_2, short *param_3);
|
||||
extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2);
|
||||
extern void RotTransSV(s32 a0, s32 a1, void *a2);
|
||||
extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012F1A4(s32 *a0, s32 a1, s32 *a2);
|
||||
extern void func_8012F2E8(s32 a0, s32 a1, s32 a2);
|
||||
extern s16 D_80126CB6;
|
||||
extern void func_8012F374(s32 a0, s32 a1);
|
||||
extern void *memcpy(void *, const void *, u32);
|
||||
extern u8 D_80126C38;
|
||||
extern u8 D_80126C40;
|
||||
extern u16 D_80126B94;
|
||||
extern u16 D_80126B96;
|
||||
extern void func_8012F568(s32 param_1, s32 param_2, s32 param_3, s32 param_4, s32 param_5, s32 param_6);
|
||||
extern void func_80131B14();
|
||||
extern void func_80131E00(struct S80131E00 *a0, s32 a1);
|
||||
extern s32 func_80131A34(s32, s32);
|
||||
extern void func_80131CA8(int a0, int a1);
|
||||
extern void func_8012F5F4(s32 arg0);
|
||||
extern void func_80131C78(s32 a0);
|
||||
extern void func_8012F68C(s32 arg0);
|
||||
extern void func_8012F75C(s32 a0);
|
||||
extern s32 func_8012BEE8(s32);
|
||||
extern void func_8012F7B4(s32 a0);
|
||||
extern void func_80131170();
|
||||
extern void func_80131CA8();
|
||||
extern unsigned char D_80189CD8[];
|
||||
extern void func_8012F828(int param_1);
|
||||
extern void func_80131340(s32 a0);
|
||||
extern void func_8012F87C(s32 a0);
|
||||
extern void func_80131170(s32 a0, s32 a1, s32 a2);
|
||||
extern u8 D_80189CE4[];
|
||||
extern void func_8012F8C8(u8* arg0);
|
||||
extern void func_8012F91C(s32 a0);
|
||||
extern s32 func_80131A34(s32 a0, s32 a1);
|
||||
extern void func_80131CA8(s32 a0, s32 a1);
|
||||
extern void func_8012F968(s32 param_1);
|
||||
extern void func_801319E0(s32 a0);
|
||||
extern s32 func_80143B6C(s32 a0, s32 a1);
|
||||
extern void func_8012FB54(s32 a0);
|
||||
extern void func_8012FC30(s32 a0);
|
||||
extern void func_8012FCA4(int a0);
|
||||
extern s32 func_8012FCC4(s32 param_1);
|
||||
extern void func_8012FDA8(int param_1);
|
||||
extern void func_8012FE70(s32 a0);
|
||||
extern void func_8012FF00(s32 a0);
|
||||
extern void func_8012FF4C(s32 a0);
|
||||
extern void func_80130D48(s32 a0);
|
||||
extern void func_8012FF98(u8 *a0);
|
||||
extern s32 func_80131AC8(void *a0);
|
||||
extern void func_8013001C(void *a0);
|
||||
extern void func_80130088(void *a0);
|
||||
extern s32 func_8012BCCC(s32);
|
||||
extern void func_801300F4(s32 a0);
|
||||
extern void func_801301E8(u8 *a0);
|
||||
extern void func_80130278(s32 arg0);
|
||||
extern void func_80130314(s32 a0);
|
||||
extern void func_80130360(s32 a0);
|
||||
extern void func_8012E364(void);
|
||||
extern void func_801303A0(s32 a0);
|
||||
extern void func_801303EC(void *a0);
|
||||
extern void func_80143CD4(s32 a0);
|
||||
extern void func_800CB0E8(s32 a0);
|
||||
extern void func_80130438(s32 a0);
|
||||
extern void func_801319E0(int);
|
||||
extern int func_80131D68(int, int);
|
||||
extern int func_8012BEE8(int);
|
||||
extern void func_80131CA8(int, int);
|
||||
extern void func_80130514(int param_1);
|
||||
extern void func_801305CC(u8 *a0);
|
||||
extern void func_8012CBF4(s32);
|
||||
extern s32 func_80131D68(s32 a0, s32 a1);
|
||||
extern void func_80130650(s32 a0);
|
||||
extern s32 func_80146A6C(s32 a0, void *a1, s32 a2, s32 a3, s32 a4, s32 a5, s32 a6);
|
||||
extern void func_80130740(void *a0, u16 *a1);
|
||||
extern s32 func_801312D0(s32 a0, void *a1);
|
||||
extern void func_801307B0(s32 a0);
|
||||
extern void func_80130858(s32 a0);
|
||||
extern void func_80130898(u8 *a0);
|
||||
extern void func_801308DC(s32 a0);
|
||||
extern void func_80166244();
|
||||
extern void func_80130974(int param_1);
|
||||
extern void func_80130A18(u8 *a0);
|
||||
extern void func_80130AC4(s32 a0);
|
||||
extern int func_80131A34(int a0, int a1);
|
||||
extern void func_80130AF0(int param_1);
|
||||
extern void (*D_80189CF8[])(void);
|
||||
extern void func_80130D0C(void *a0);
|
||||
extern s32 rand(void);
|
||||
extern u8 D_80078E78[];
|
||||
extern u16 D_80078EB2;
|
||||
extern u16 D_80078EB4;
|
||||
extern s16 D_80189D48[];
|
||||
extern s16 D_80189D78[];
|
||||
extern s16 D_80189DD8[];
|
||||
extern s16 D_80189DE0[];
|
||||
extern s16 D_80189E00[];
|
||||
extern void func_80130D48(s32 arg0);
|
||||
extern void func_80131170(s32 p, s32 b, s32 c);
|
||||
extern s32 func_801312D0(s32 param_1, void *param_2);
|
||||
extern void func_80131E00();
|
||||
extern s32 D_801D2F10;
|
||||
extern s32 D_801D2F14;
|
||||
extern void func_8002A04C(s32 a0);
|
||||
extern void func_801319E0(s32 arg0);
|
||||
extern s32 func_80131CF4(s32 a0);
|
||||
extern int func_80131D68(int a0, int a1);
|
||||
extern void (*D_80189E38[])(struct S80131E00 *a0);
|
||||
extern void func_80131E38(u8 *a0);
|
||||
extern void func_80131E7C(s32 a0);
|
||||
extern void func_80131EE4(void);
|
||||
extern void (*D_80189E90[])(void);
|
||||
extern void func_80131EEC(void *a0);
|
||||
extern void (*D_80189ED8[])(void);
|
||||
extern void func_80131F28(void *a0);
|
||||
extern void (*D_80189EE0[])(void);
|
||||
extern void func_80131F64(void *a0);
|
||||
extern void (*D_80189EE8[])(void);
|
||||
extern void func_80131FA0(void *a0);
|
||||
extern void (*D_80189EF0[])(void);
|
||||
extern void func_80131FDC(void *a0);
|
||||
extern void func_801320D0(void);
|
||||
extern void func_8001C214(int, int);
|
||||
extern int D_80189E98;
|
||||
extern void func_801320D8(int param_1);
|
||||
extern s32 func_80132144(s32 param_1);
|
||||
extern int D_80189EB8;
|
||||
extern void func_801321B0(int param_1);
|
||||
extern int D_80189EC8;
|
||||
extern void func_8013221C(int param_1);
|
||||
extern void func_8005C324(int dst, int src, int n) __asm__("memcpy"); /* Phase-24: 0x8005C324 is named memcpy for overlays (whale needs it); keep the non-builtin C name here (else built-in codegen), emit via asm-label */
|
||||
extern void func_801325B8(int a0, int a1, int a2, int a3, int a4);
|
||||
extern void func_80132288(int *param_1, int *param_2, int param_3);
|
||||
extern void func_801325B8(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4);
|
||||
extern void func_8013240C(s32 a0);
|
||||
extern void memcpy();
|
||||
extern void gteMIMefunc();
|
||||
extern void func_801325B8(int dst, int src, int m0, int mm, int arg5);
|
||||
extern void func_8013277C(void);
|
||||
extern void func_80020F34(s32 a0, s32 a1);
|
||||
extern void func_80054514(s32 a0, s32 a1);
|
||||
extern void func_80132784(s32 a0, s32 a1, u32 a2);
|
||||
extern s32 VectorNormalSS(void *a0, void *a1);
|
||||
extern void func_80132DC4(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_80132E6C(s16 *a0);
|
||||
extern void func_80132EC4(void *a0, s16 a1);
|
||||
extern s32 func_80132EF4(s32 a0, s32 a1);
|
||||
extern void func_801330E0(void * param_1, s16 * param_2, s32 param_3);
|
||||
extern void func_80133060(u8 *a0, s32 *a1, s32 a2);
|
||||
extern void func_8013339C(short *param_1, short *param_2);
|
||||
extern s32 func_8013361C(s16 *a0, s16 *a1, s16 *a2, s16 *a3);
|
||||
extern s32 D_801D2F58;
|
||||
extern s32 D_801D2F5C[];
|
||||
extern int D_801D2F60;
|
||||
extern void func_80136BC4(s32 a0);
|
||||
extern void func_801336E8(void *a0, int a1, int a2);
|
||||
extern void func_80136BC4(s32);
|
||||
extern void func_8013373C(s16 arg0);
|
||||
extern s32 func_80133784(s32 arg0, void *arg1, s32 arg2);
|
||||
extern s32 func_80133CD4();
|
||||
extern s32 func_80134310(Vec3s *a0, Vec3s *a1, s32 a2);
|
||||
extern s32 func_8013435C(s16 *a0, s16 *a1, s32 a2, s16 *a3);
|
||||
extern s32 func_801343C4(s32 angle, s32 p1, s32 p2);
|
||||
extern s32 func_80134510(s32 param);
|
||||
extern s32 func_801345F8(s32 arg);
|
||||
extern s32 func_801347A0(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern s32 func_80134A28(s32 a0, s32 a1, s32 a2);
|
||||
extern int func_80134A74(int param_1, s16 param_2, s16 param_3, int param_4);
|
||||
extern s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern s32 func_80134FB8(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_80135004(s32 arg0, s32 p1, s32 p2);
|
||||
extern u8 D_80189EFC;
|
||||
extern u8 D_80189EF8;
|
||||
extern s16 *D_80189F00;
|
||||
extern u8 D_80189F04;
|
||||
extern int D_801D2F58;
|
||||
extern u16 D_801D2F68;
|
||||
extern int func_80134A74(int, s16, s16, int);
|
||||
extern int func_80135168(u16 arg0, u16 *p1, u16 *p2);
|
||||
extern s16 func_80135480(void *param_1, s32 param_2, s16 *param_3, s16 *param_4);
|
||||
/* ==== end §8b carried decl layer ==== */
|
||||
|
||||
|
||||
s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
|
||||
typedef struct { s8 c[8]; } Blk8;
|
||||
extern s16 func_80135480(void *param_1, s32 param_2, s16 *param_3, s16 *param_4);
|
||||
extern s32 func_80135EB0(void *arg0, s32 arg1_);
|
||||
extern s32 func_80136A94(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern s32 func_80133AB0(s16, s16, s16, s32);
|
||||
extern u8 D_80189EF8;
|
||||
extern u8 D_80189EFC;
|
||||
extern s16 *D_80189F00;
|
||||
extern s16 D_801D2F64;
|
||||
extern u16 D_801D2F68;
|
||||
extern s32 D_801D2F6C;
|
||||
extern s32 D_801D2F8C;
|
||||
extern u8 D_801152A8[];
|
||||
extern u8 D_801152B0;
|
||||
|
||||
s32 *p;
|
||||
register s32 s7 __asm__("$23");
|
||||
s32 flag;
|
||||
s32 acc;
|
||||
s16 i;
|
||||
s32 eq;
|
||||
s32 ret;
|
||||
s32 frame_pad[8];
|
||||
(void)&frame_pad;
|
||||
|
||||
switch (((s32 (*)(void))func_80135480)()) {
|
||||
case 0:
|
||||
return 0;
|
||||
case 1:
|
||||
s7 = a0 + 0x34;
|
||||
p = (s32 *)((a1 & 0xFFFFFFF) | 0x80000000);
|
||||
flag = 0;
|
||||
break;
|
||||
case 2:
|
||||
s7 = a0 + 0x34;
|
||||
p = (s32 *)((a1 & 0xFFFFFFF) | 0x80000000);
|
||||
flag = 1;
|
||||
break;
|
||||
case 3:
|
||||
s7 = a0 + 0x34;
|
||||
p = (s32 *)&D_801D2F8C;
|
||||
flag = 0;
|
||||
break;
|
||||
case 4:
|
||||
s7 = (s32)&D_801D2F6C;
|
||||
p = (s32 *)&D_801D2F8C;
|
||||
flag = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
acc = 0;
|
||||
if (a1 < 0) {
|
||||
if (func_80135EB0(p, -0x8000) == 0) {
|
||||
p = (s32 *)*p;
|
||||
if (p == 0) return 0;
|
||||
loop:
|
||||
if (func_80135EB0(p, -0x8000) == 0) goto next;
|
||||
}
|
||||
docall:
|
||||
func_80136A94(flag, a0, a3, s7);
|
||||
return 1;
|
||||
next:
|
||||
p = (s32 *)*p;
|
||||
__asm__ __volatile__("");
|
||||
if (p != 0) goto loop;
|
||||
return 0;
|
||||
}
|
||||
|
||||
i = 0;
|
||||
*(s16 *)((*(u8 **)&D_80189EF8) + 6) = -0x7FFF;
|
||||
*(s16 *)((*(u8 **)&D_80189EFC) + 6) = 0x7FFF;
|
||||
D_801D2F68 = 0;
|
||||
D_801D2F64 = 0;
|
||||
{
|
||||
s32 t = 0;
|
||||
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
|
||||
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
|
||||
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
|
||||
}
|
||||
eq = t;
|
||||
}
|
||||
|
||||
while (1) {
|
||||
ret = func_80133AB0(0, (s16)(*(Box **)&D_80189EF8)->f0, (s16)(*(Box **)&D_80189EF8)->f4, (s32)p);
|
||||
if (ret == 0) goto out;
|
||||
acc |= ret;
|
||||
if (eq != 0) goto out;
|
||||
{
|
||||
s16 old = i;
|
||||
i = i + 1;
|
||||
if (old >= 5) return 0;
|
||||
}
|
||||
}
|
||||
|
||||
out:
|
||||
if ((s16)acc != 0 || D_801D2F64 != 0) {
|
||||
if ((*(Box **)&D_80189EF8)->f6 >= -0xBCB) {
|
||||
*(Blk8 *)D_801152A8 = *(Blk8 *)&D_801152B0;
|
||||
}
|
||||
(*(Box **)&D_80189F00)->f0 = (*(Box **)&D_80189EFC)->f0;
|
||||
(*(Box **)&D_80189F00)->f2 = (*(Box **)&D_80189EFC)->f2;
|
||||
(*(Box **)&D_80189F00)->f4 = (*(Box **)&D_80189EFC)->f4;
|
||||
goto docall;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,30 +0,0 @@
|
||||
#include "common.h"
|
||||
#include "../shared/func_80144B9C.h"
|
||||
|
||||
|
||||
/* func_801457A4 @ 0x801457A4 — an -O0 function stranded at the whale's end boundary (it is the
|
||||
* FIRST fn of the -O2 "after" segment, but its target is -O0: frame-pointer + per-case stack
|
||||
* reloads). It can only bank in an -O0 object, so it lives here: _o0b is already -O0-compiled and
|
||||
* its .text ends exactly at 0x801457A4 (right after func_80144B9C), placing this fn at its true
|
||||
* address with no linker/Makefile change. Its stub was removed from ov_SC01_077_after.c. Def sig
|
||||
* conformed byte-neutrally to func_80144B9C.h's decl `void *func_801457A4(s32)` (the whale calls it
|
||||
* that way); byte-proven at -O0 (match_one --o0 79/79) and by the whole-binary gate. Phase-29 bank. */
|
||||
extern int D_8018991C;
|
||||
|
||||
void *func_801457A4(s32 param_1) {
|
||||
switch (param_1) {
|
||||
case 0x1010:
|
||||
case 0x1052:
|
||||
case 0x1077:
|
||||
case 0x1094:
|
||||
case 0x2013:
|
||||
case 0x2015 ... 0x201a:
|
||||
case 0x2055 ... 0x205b:
|
||||
case 0x207a ... 0x2080:
|
||||
case 0x2097 ... 0x209d:
|
||||
return (void *)(&D_8018991C)[param_1 & 0xffff0fff];
|
||||
default:
|
||||
return (void *)D_8018991C;
|
||||
break;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user