Skip to content

Commit ab96366

Browse files
committed
Match 3 more dispatcher families x4 (hw60|= + preamble variants via dispgen)
1 parent c688c0e commit ab96366

8 files changed

Lines changed: 243 additions & 524 deletions

File tree

src/overlays/ov173/asm_stubs/calls/func_ov173_020ccc60.c

Lines changed: 0 additions & 163 deletions
This file was deleted.
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
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_ov173_020ccf3c(void);
5+
extern void func_ov173_020cd028(void);
6+
extern void func_ov173_020cd200(void);
7+
extern void func_ov173_020cd5f0(void);
8+
extern void func_ov173_020cd7f4(void);
9+
extern void func_ov173_020cda14(void);
10+
extern void func_ov173_020ce300(void);
11+
extern void func_ov173_020cdbec(void);
12+
extern void func_ov173_020ce478(void);
13+
extern void func_ov173_020ce52c(void);
14+
extern void func_ov173_020cdf2c(void);
15+
extern void func_ov173_020ce91c(void);
16+
extern void func_ov173_020ce950(void);
17+
extern void func_ov173_020ceb64(void);
18+
extern void func_ov173_020cea78(void);
19+
20+
void func_ov173_020ccc60(int *node) {
21+
int *state = (int *)node[1];
22+
int c = *(signed char *)(*state + 0x1c7);
23+
if (c != -1) {
24+
*(signed char *)(*state + 0x1c6) = (signed char)c;
25+
*(unsigned short *)(*state + 0x1ae) &= ~0x1;
26+
((struct bf *)(*(int *)(*state + 0x388) + 8))->b |= 1;
27+
{ unsigned short *p = (unsigned short *)(*state + 0x60); unsigned int u = *p;
28+
*p = (unsigned short)((u & ~0xff00) | ((((u << 0x10) >> 0x18 | 0x40) << 0x18) >> 0x10)); }
29+
((struct hw60 *)(*state + 0x60))->hi &= ~0x8e;
30+
switch (*(signed char *)(*state + 0x1c6)) {
31+
case 0:
32+
func_0203c634(node, 1, func_ov173_020ccf3c);
33+
break;
34+
case 1:
35+
func_0203c634(node, 1, func_ov173_020cd028);
36+
break;
37+
case 2:
38+
func_0203c634(node, 1, func_ov173_020cd200);
39+
break;
40+
case 4:
41+
func_0203c634(node, 1, func_ov173_020cd5f0);
42+
break;
43+
case 5:
44+
func_0203c634(node, 1, func_ov173_020cd7f4);
45+
break;
46+
case 6:
47+
func_0203c634(node, 1, func_ov173_020cda14);
48+
break;
49+
case 8:
50+
func_0203c634(node, 1, func_ov173_020ce300);
51+
break;
52+
case 7:
53+
func_0203c634(node, 1, func_ov173_020cdbec);
54+
break;
55+
case 0xa:
56+
func_0203c634(node, 1, func_ov173_020ce478);
57+
break;
58+
case 0xb:
59+
func_0203c634(node, 1, func_ov173_020ce52c);
60+
break;
61+
case 9:
62+
func_0203c634(node, 1, func_ov173_020cdf2c);
63+
break;
64+
case 0xc:
65+
func_0203c634(node, 1, func_ov173_020ce91c);
66+
break;
67+
case 0xd:
68+
func_0203c634(node, 1, func_ov173_020ce950);
69+
break;
70+
case 0xe:
71+
func_0203c634(node, 1, func_ov173_020ceb64);
72+
break;
73+
case 3:
74+
func_0203c634(node, 1, func_ov173_020cea78);
75+
break;
76+
}
77+
}
78+
*(signed char *)(*state + 0x1c7) = -1;
79+
}

0 commit comments

Comments
 (0)