mirror of
https://github.com/AntonioND/nitro-engine.git
synced 2025-06-19 00:55:38 -04:00
library: Cleanup of NE shutdown code
Make sure to disable the DMA when leaving dual 3D DMA mode!
This commit is contained in:
parent
50091b0111
commit
efaf04dadd
@ -33,6 +33,11 @@ static int fov;
|
|||||||
|
|
||||||
static int ne_main_screen = 1; // 1 = top, 0 = bottom
|
static int ne_main_screen = 1; // 1 = top, 0 = bottom
|
||||||
|
|
||||||
|
static uint32_t ne_dma_enabled = 0;
|
||||||
|
static uint32_t ne_dma_src = 0;
|
||||||
|
static uint32_t ne_dma_dst = 0;
|
||||||
|
static uint32_t ne_dma_cr = 0;
|
||||||
|
|
||||||
NE_ExecutionModes NE_CurrentExecutionMode(void)
|
NE_ExecutionModes NE_CurrentExecutionMode(void)
|
||||||
{
|
{
|
||||||
return ne_execution_mode;
|
return ne_execution_mode;
|
||||||
@ -43,9 +48,6 @@ void NE_End(void)
|
|||||||
if (ne_execution_mode == NE_ModeUninitialized)
|
if (ne_execution_mode == NE_ModeUninitialized)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Hide BG0
|
|
||||||
REG_DISPCNT &= ~(DISPLAY_BG0_ACTIVE | ENABLE_3D);
|
|
||||||
|
|
||||||
vramSetBankA(VRAM_A_LCD);
|
vramSetBankA(VRAM_A_LCD);
|
||||||
vramSetBankB(VRAM_B_LCD);
|
vramSetBankB(VRAM_B_LCD);
|
||||||
|
|
||||||
@ -53,6 +55,8 @@ void NE_End(void)
|
|||||||
{
|
{
|
||||||
case NE_ModeSingle3D:
|
case NE_ModeSingle3D:
|
||||||
{
|
{
|
||||||
|
videoSetMode(0);
|
||||||
|
|
||||||
if (GFX_CONTROL & GL_CLEAR_BMP)
|
if (GFX_CONTROL & GL_CLEAR_BMP)
|
||||||
NE_ClearBMPEnable(false);
|
NE_ClearBMPEnable(false);
|
||||||
|
|
||||||
@ -64,6 +68,9 @@ void NE_End(void)
|
|||||||
|
|
||||||
case NE_ModeDual3D:
|
case NE_ModeDual3D:
|
||||||
{
|
{
|
||||||
|
videoSetMode(0);
|
||||||
|
videoSetModeSub(0);
|
||||||
|
|
||||||
vramSetBankC(VRAM_C_LCD);
|
vramSetBankC(VRAM_C_LCD);
|
||||||
vramSetBankD(VRAM_D_LCD);
|
vramSetBankD(VRAM_D_LCD);
|
||||||
|
|
||||||
@ -83,10 +90,17 @@ void NE_End(void)
|
|||||||
|
|
||||||
case NE_ModeDual3D_DMA:
|
case NE_ModeDual3D_DMA:
|
||||||
{
|
{
|
||||||
|
ne_dma_enabled = 0;
|
||||||
|
DMA_CR(2) = 0;
|
||||||
|
|
||||||
|
videoSetMode(0);
|
||||||
|
videoSetModeSub(0);
|
||||||
|
|
||||||
vramSetBankC(VRAM_C_LCD);
|
vramSetBankC(VRAM_C_LCD);
|
||||||
vramSetBankD(VRAM_D_LCD);
|
vramSetBankD(VRAM_D_LCD);
|
||||||
|
|
||||||
vramSetBankI(VRAM_I_LCD); // The console goes here
|
// A pseudo framebuffer and the debug console go here
|
||||||
|
vramSetBankI(VRAM_I_LCD);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -431,8 +445,6 @@ void NE_InitConsole(void)
|
|||||||
|
|
||||||
case NE_ModeDual3D_DMA:
|
case NE_ModeDual3D_DMA:
|
||||||
{
|
{
|
||||||
NE_UsingConsole = true;
|
|
||||||
|
|
||||||
BG_PALETTE[255] = 0xFFFF;
|
BG_PALETTE[255] = 0xFFFF;
|
||||||
|
|
||||||
vramSetBankF(VRAM_F_LCD);
|
vramSetBankF(VRAM_F_LCD);
|
||||||
@ -560,10 +572,6 @@ static void ne_process_dual_3d(NE_Voidfunc mainscreen, NE_Voidfunc subscreen)
|
|||||||
NE_Screen ^= 1;
|
NE_Screen ^= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32_t ne_dma_enabled = 0;
|
|
||||||
static uint32_t ne_dma_src = 0;
|
|
||||||
static uint32_t ne_dma_dst = 0;
|
|
||||||
static uint32_t ne_dma_cr = 0;
|
|
||||||
|
|
||||||
static void ne_do_dma(void)
|
static void ne_do_dma(void)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user