From 5b54707958ca7fe5455436cf732cdf034232cd50 Mon Sep 17 00:00:00 2001 From: Derek Hensley Date: Fri, 4 Aug 2023 09:02:33 -0700 Subject: Viconfig OK (#29) --- src/boot/boot_main.c | 5 +---- src/boot/viconfig.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 src/boot/viconfig.c (limited to 'src') 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; + } +} -- cgit v1.2.3