summaryrefslogtreecommitdiff
path: root/src/boot/viconfig.c
blob: 41aa596c679812cbb449452971789155a5167407 (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
#include "viconfig.h"
#include "idle.h"
#include "irqmgr.h"

u8 gViConfigBlackNext;
u8 gViConfigBlack;

void ViConfig_UpdateVi(u32 black) {
    if ((black || (ResetStatus == 0)) && ((black != gViConfigBlack) || (black != gViConfigBlackNext))) {
        if (black) {
            if (osTvType == OS_TV_PAL) {
                osViSetMode(&osViModePalLan1);
            } else {
                osViSetMode(&osViModeNtscLan1);
            }

            if (gViConfigYScale == 1.0f) {
                osViBlack(1);
            } else {
                osViSetYScale(1.0f);
            }
        } else {
            osViSetMode(&gViConfigMode);

            if (gViConfigFeatures != 0) {
                osViSetSpecialFeatures(gViConfigFeatures);
            }

            if (gViConfigXScale != 1.0f) {
                osViSetXScale(gViConfigXScale);
            }

            if (gViConfigYScale != 1.0f) {
                osViSetYScale(gViConfigYScale);
            }
        }
        gViConfigBlackNext = black;
    }
}

void ViConfig_UpdateBlack(void) {
    if (gViConfigBlackNext != gViConfigBlack) {
        osViBlack(gViConfigBlackNext);
        gViConfigBlack = gViConfigBlackNext;
    }
}