diff options
| author | Tyler McGavran <tyler.taggerung@gmail.com> | 2021-11-23 04:47:54 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-11-23 01:47:54 -0800 |
| commit | a2dc62ccf8856863da8d0f2f95a8b75986f63c3a (patch) | |
| tree | 0f9bb2b0ae2f783fd81dc07d6f29729c7afa2e97 /src/code_8003DC40.c | |
| parent | bed14f61c389675e11f5364b5c00c9a73f043106 (diff) | |
Jump Table Related Disassembly (#60)
* Part 1, Commit 1 of 24
audio/effects
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 2 of 24
audio/external
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 3 of 24
audio/heap
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 4 of 24
audio/port_eu
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 5 of 24
audio/seqplayer
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 6 of 24
code_80005FD0
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 7 of 24
code_8001C4D0
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 8 of 24
code_80027D00
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 9 of 24
code_800393C0
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 10 of 24
code_8003DC40
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 11 of 24
code_800431B0
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 12 of 24
code_80057C60
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 13 of 24
code_8006E9C0
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 14 of 24
code_80071F00
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 15 of 24
code_80086E70
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 16 of 24
code_8008C1D0
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 17 of 24
code_80091750
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 18 of 24
code_800AF9B0
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 19 of 24
code_8028DF00
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 20 of 24
code_80290C20
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 21 of 24
code_802B0210
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 22 of 24
code_actors
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 23 of 24
memory
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 1, Commit 24 of 24
os/__osException
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 1 of 20
audio/effects.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 2 of 20
audio/external.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 3 of 24
audio/heap.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 4 of 20
audio/port_eu.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 5 of 20
audio/seqplayer.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 6 of 20
code_80005FD0.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 7 of 20
code_8001C4D0.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 8 of 20
code_80027D00.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 9 of 20
code_8003DC40.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 10 of 20
code_800431B0.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 11 of 20
code_80057C60.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 12 of 20
code_8006E9C0.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 13 of 20
code_80071F00.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 14 of 20
code_80086E70.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 15 of 20
code_80091750.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 16 of 20
code_800AF9B0.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 17 of 20
code_80290C20.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 18 of 20
code_802B0210.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 19 of 20
code_80296A50.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 2, Commit 20 of 20
memory.c
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 3, Commit 1 of 4
code_8008C1D0
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 3, Commit 2 of 4
code_8028DF00
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 3, Commit 3 of 4
math_util
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Part 3, Commit 4 of 4
crash_screen
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Recreated disassemblies with a context file
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
Diffstat (limited to 'src/code_8003DC40.c')
| -rw-r--r-- | src/code_8003DC40.c | 60 |
1 files changed, 53 insertions, 7 deletions
diff --git a/src/code_8003DC40.c b/src/code_8003DC40.c index dae20a944..312aef32f 100644 --- a/src/code_8003DC40.c +++ b/src/code_8003DC40.c @@ -240,15 +240,61 @@ GLOBAL_ASM("asm/non_matchings/code_8003DC40/func_8003F138.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -/* -Failed to decompile function func_8003F46C: +//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 +? func_8002A5F4(void *, f32, ?, f32); /* extern */ +? func_8003E048(Player *, void *, f32 *, f32 *, f32 *, f32 *); /* extern */ +? func_8003E37C(Player *, void *, f32 *, f32 *, f32 *, f32 *); /* extern */ +? func_8003E6EC(Player *, void *, f32 *, f32 *, f32 *, f32 *); /* extern */ +? func_8003E9EC(Player *, void *, f32 *, f32 *, f32 *, f32 *); /* extern */ +? func_8003EE2C(Player *, void *, f32 *, f32 *, f32 *, f32 *); /* extern */ +? func_8003F138(Player *, void *, f32 *, f32 *, f32 *, f32 *); /* extern */ +u16 gCurrentCourseId; /* unable to generate initializer */ -Unable to determine jump table for jr instruction at func_8003F46C.s line 77. +void func_8003F46C(Player *arg0, void *arg1, s32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7, f32 *arg6, f32 *arg7) { + u16 temp_t9; -There must be a read of a variable in the same block as -the instruction, which has a name starting with "jtbl"/"jpt_". -*/ + arg1->unk0 = -arg0->unk_140; + arg1->unk4 = -arg0->unk_144; + arg1->unk8 = -arg0->unk_148; + if ((arg0->unk_144 < 0.0f) && ((arg0->unk_0CA & 2) == 0)) { + *arg7 += arg1->unk0 * arg0->unk_124 * 1.0f; + *arg6 += arg1->unk4 * arg0->unk_124 * 1.0f; + *arg7 += arg1->unk8 * arg0->unk_124 * 1.0f; + func_8002A5F4(arg1, *arg6, 0x3F99999A, 0.0f); + arg0->kartHopJerk = 0.0f; + arg0->kartHopAcceleration = 0.0f; + arg0->kartHopVelocity = 0.0f; + return; + } + temp_t9 = gCurrentCourseId; + switch (temp_t9) { + case 0: + func_8003E048(arg0, arg1, arg6, arg7, arg6, arg7); + break; + case 1: + case 6: + func_8003E37C(arg0, arg1, arg6, arg7, arg6, arg7); + break; + case 2: + func_8003E6EC(arg0, arg1, arg6, arg7, arg6, arg7); + break; + case 8: + func_8003E9EC(arg0, arg1, arg6, arg7, arg6, arg7); + break; + case 14: + func_8003EE2C(arg0, arg1, arg6, arg7, arg6, arg7); + break; + case 18: + func_8003F138(arg0, arg1, arg6, arg7, arg6, arg7); + break; + default: + func_8003E048(arg0, arg1, arg6, arg7, arg6, arg7); + break; + } + if (arg0->unk_0BC & 0x10000) { + arg0->unk_DAC = 0.5f; + } +} #else GLOBAL_ASM("asm/non_matchings/code_8003DC40/func_8003F46C.s") #endif |
