summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/boot/boot_main.c5
-rw-r--r--src/boot/viconfig.c45
2 files changed, 46 insertions, 4 deletions
diff --git a/src/boot/boot_main.c b/src/boot/boot_main.c
index 6951860..3ccd5e6 100644
--- a/src/boot/boot_main.c
+++ b/src/boot/boot_main.c
@@ -1,5 +1,4 @@
-#include "libc/stdint.h"
-#include "ultra64.h"
+#include "global.h"
#include "idle.h"
#include "m_thread.h"
@@ -7,8 +6,6 @@
#include "stack.h"
#include "stackcheck.h"
-extern OSPiHandle* gCartHandle; // TODO: Determine where this goes
-
STACK(sIdleStack, 0x400);
StackEntry sIdleStackInfo;
StackEntry sBootStackInfo;
diff --git a/src/boot/viconfig.c b/src/boot/viconfig.c
new file mode 100644
index 0000000..cb58def
--- /dev/null
+++ b/src/boot/viconfig.c
@@ -0,0 +1,45 @@
+#include "global.h"
+#include "idle.h"
+
+u8 gViConfigBlackNext;
+u8 gViConfigBlack;
+
+void ViConfig_UpdateVi(u32 black) {
+ if ((black || (D_8010EFB0_jp == 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;
+ }
+}