mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-09-08 20:12:43 -04:00
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>
This commit is contained in:
+98
-7
@@ -2658,15 +2658,106 @@ GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008BFC0.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
/*
|
||||
Failed to decompile function func_8008BFFC:
|
||||
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
|
||||
? func_80086F60(); /* extern */
|
||||
? func_80088228(); /* extern */
|
||||
? func_80088364(); /* extern */
|
||||
? func_8008B620(); /* extern */
|
||||
? func_8008B6A4(); /* extern */
|
||||
extern ? D_80165C18;
|
||||
|
||||
Unable to determine jump table for jr instruction at func_8008BFFC.s line 17.
|
||||
void func_8008BFFC(s32 arg0) {
|
||||
s16 temp_v0;
|
||||
s16 temp_v0_2;
|
||||
s16 temp_v0_3;
|
||||
s16 temp_v0_4;
|
||||
s16 temp_v0_5;
|
||||
s16 temp_v0_6;
|
||||
u8 temp_t8;
|
||||
void *temp_v1;
|
||||
|
||||
There must be a read of a variable in the same block as
|
||||
the instruction, which has a name starting with "jtbl"/"jpt_".
|
||||
*/
|
||||
temp_v1 = (arg0 * 0xE0) + &D_80165C18;
|
||||
temp_t8 = temp_v1->unkDE;
|
||||
switch (temp_t8) {
|
||||
case 1:
|
||||
if (temp_v1->unkAE == 1) {
|
||||
func_8008B620();
|
||||
return;
|
||||
}
|
||||
default:
|
||||
return;
|
||||
case 2:
|
||||
temp_v0 = temp_v1->unkAE;
|
||||
if ((temp_v0 != 0) && (temp_v0 == 1)) {
|
||||
func_8008B6A4();
|
||||
return;
|
||||
}
|
||||
/* Duplicate return node #31. Try simplifying control flow for better match */
|
||||
return;
|
||||
case 3:
|
||||
temp_v0_2 = temp_v1->unkAE;
|
||||
if ((temp_v0_2 != 0) && (temp_v0_2 == 1)) {
|
||||
func_8008B620();
|
||||
return;
|
||||
}
|
||||
/* Duplicate return node #31. Try simplifying control flow for better match */
|
||||
return;
|
||||
case 4:
|
||||
temp_v0_3 = temp_v1->unkAE;
|
||||
if (temp_v0_3 != 0) {
|
||||
if (temp_v0_3 != 1) {
|
||||
if (temp_v0_3 != 2) {
|
||||
return;
|
||||
}
|
||||
func_80086F60();
|
||||
return;
|
||||
}
|
||||
func_8008B620();
|
||||
return;
|
||||
}
|
||||
/* Duplicate return node #31. Try simplifying control flow for better match */
|
||||
return;
|
||||
case 5:
|
||||
temp_v0_4 = temp_v1->unkAE;
|
||||
if (temp_v0_4 != 0) {
|
||||
if (temp_v0_4 != 1) {
|
||||
if (temp_v0_4 != 2) {
|
||||
return;
|
||||
}
|
||||
func_80086F60();
|
||||
return;
|
||||
}
|
||||
func_8008B620();
|
||||
return;
|
||||
}
|
||||
/* Duplicate return node #31. Try simplifying control flow for better match */
|
||||
return;
|
||||
case 6:
|
||||
temp_v0_5 = temp_v1->unkAE;
|
||||
if ((temp_v0_5 != 0) && (temp_v0_5 == 1)) {
|
||||
func_8008B620();
|
||||
return;
|
||||
}
|
||||
/* Duplicate return node #31. Try simplifying control flow for better match */
|
||||
return;
|
||||
case 7:
|
||||
temp_v0_6 = temp_v1->unkAE;
|
||||
if (temp_v0_6 != 0) {
|
||||
if (temp_v0_6 != 1) {
|
||||
if (temp_v0_6 != 2) {
|
||||
return;
|
||||
}
|
||||
func_80088364();
|
||||
/* Duplicate return node #31. Try simplifying control flow for better match */
|
||||
return;
|
||||
}
|
||||
func_80088228();
|
||||
return;
|
||||
}
|
||||
/* Duplicate return node #31. Try simplifying control flow for better match */
|
||||
return;
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008BFFC.s")
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user