blob: e8851ce0bddc2b8bd2012e8296b35673512af18c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
#include "cfbinfo.h"
#include "libc/stdbool.h"
#include "libc64/sleep.h"
#include "libu64/debug.h"
#include "idle.h"
#include "irqmgr.h"
#include "macros.h"
#include "viconfig.h"
#include "6FD410.h"
CfbInfo sCfbInfos[3];
CfbInfo* func_800D2C10_jp(void) {
s32 i;
CfbInfo* cfb;
s32 attempts = 0;
retry:
i = 0;
while (true) {
cfb = &sCfbInfos[i];
if (cfb->state == 0) {
break;
}
i++;
if (i == ARRAY_COUNT(sCfbInfos)) {
if (attempts++ > 10000) {
_dbg_hungup("../cfbinfo.c", 0x27);
}
usleep(100);
(void)"";
goto retry;
}
}
bzero(cfb, sizeof(CfbInfo));
cfb->state = 1;
// (reservation)
(void)"(予約)";
return cfb;
}
void func_800D2CB4_jp(CfbInfo* cfb) {
if (cfb->unk_0B != 0) {
cfb->unk_0B = 0;
B_80146080_jp = 3;
}
cfb->state = 0;
}
void func_800D2CDC_jp(CfbInfo* cfb) {
if ((ResetStatus < 2) && (cfb->swapBuffer != NULL)) {
osViSwapBuffer(cfb->swapBuffer);
cfb->unk_0A = cfb->unk_09;
cfb->state = 4;
if (cfb->viMode != NULL) {
gViConfigMode = *cfb->viMode;
gViConfigFeatures = cfb->viFeatures;
gViConfigXScale = cfb->xScale;
gViConfigYScale = cfb->yScale;
if (!gViConfigBlack) {
osViSetMode(cfb->viMode);
osViSetSpecialFeatures(cfb->viFeatures);
osViSetXScale(cfb->xScale);
osViSetYScale(cfb->yScale);
}
if (!gViConfigBlack) {}
}
} else {
func_800D2CB4_jp(cfb);
}
}
|