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:
Tyler McGavran
2021-11-23 04:47:54 -05:00
committed by GitHub
parent bed14f61c3
commit a2dc62ccf8
328 changed files with 41811 additions and 2150 deletions
+98 -7
View File
@@ -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