Skip to content

Commit 7336024

Browse files
committed
Match ov115_020cd228 DispatchSubStateByte x5 (512B 15-case sub-state dispatcher)
1 parent c9873ec commit 7336024

10 files changed

Lines changed: 350 additions & 725 deletions

File tree

src/overlays/ov115/asm_stubs/calls/func_ov115_020cd228.c

Lines changed: 0 additions & 145 deletions
This file was deleted.
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
struct bf { unsigned b : 8; };
2+
struct hw60 { unsigned short lo : 8, hi : 8; };
3+
extern void func_0203c634(void *obj, int idx, void *value);
4+
extern void func_ov115_020cd4c8(void);
5+
extern void func_ov115_020cd5b4(void);
6+
extern void func_ov115_020cd78c(void);
7+
extern void func_ov115_020cdbac(void);
8+
extern void func_ov115_020cdde4(void);
9+
extern void func_ov115_020cdfec(void);
10+
extern void func_ov115_020ce5dc(void);
11+
extern void func_ov115_020ce20c(void);
12+
extern void func_ov115_020ce7bc(void);
13+
extern void func_ov115_020ce7f0(void);
14+
extern void func_ov115_020cea04(void);
15+
extern void func_ov115_020ce918(void);
16+
17+
void func_ov115_020cd228(int *node) {
18+
int *state = (int *)node[1];
19+
int c = *(signed char *)(*state + 0x1c7);
20+
if (c != -1) {
21+
*(signed char *)(*state + 0x1c6) = (signed char)c;
22+
*(unsigned short *)(*state + 0x1ae) &= ~1;
23+
((struct bf *)(*(int *)(*state + 0x388) + 8))->b |= 1;
24+
{
25+
unsigned short *p = (unsigned short *)(*state + 0x60);
26+
unsigned int u = *p;
27+
*p = (unsigned short)((u & ~0xff00) | ((((u << 0x10) >> 0x18 | 0x40) << 0x18) >> 0x10));
28+
}
29+
((struct hw60 *)(*state + 0x60))->hi &= ~0x8e;
30+
switch (*(signed char *)(*state + 0x1c6)) {
31+
case 0:
32+
func_0203c634(node, 1, func_ov115_020cd4c8);
33+
break;
34+
case 1:
35+
func_0203c634(node, 1, func_ov115_020cd5b4);
36+
break;
37+
case 2:
38+
func_0203c634(node, 1, func_ov115_020cd78c);
39+
break;
40+
case 4:
41+
func_0203c634(node, 1, func_ov115_020cdbac);
42+
break;
43+
case 5:
44+
func_0203c634(node, 1, func_ov115_020cdde4);
45+
break;
46+
case 6:
47+
func_0203c634(node, 1, func_ov115_020cdfec);
48+
break;
49+
case 8:
50+
func_0203c634(node, 1, func_ov115_020ce5dc);
51+
break;
52+
case 9:
53+
func_0203c634(node, 1, func_ov115_020ce20c);
54+
break;
55+
case 0xc:
56+
func_0203c634(node, 1, func_ov115_020ce7bc);
57+
break;
58+
case 0xd:
59+
func_0203c634(node, 1, func_ov115_020ce7f0);
60+
break;
61+
case 0xe:
62+
func_0203c634(node, 1, func_ov115_020cea04);
63+
break;
64+
case 3:
65+
func_0203c634(node, 1, func_ov115_020ce918);
66+
break;
67+
}
68+
}
69+
*(signed char *)(*state + 0x1c7) = -1;
70+
}

src/overlays/ov116/asm_stubs/calls/func_ov116_020d0e68.c

Lines changed: 0 additions & 145 deletions
This file was deleted.

0 commit comments

Comments
 (0)