aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorStapleButter <thetotalworm@gmail.com>2017-09-21 04:08:03 +0200
committerStapleButter <thetotalworm@gmail.com>2017-09-21 04:08:03 +0200
commit48cf9eb80552798f22986c60d9c66c5b74e46aab (patch)
tree6a632d6618663e4984902966aeb1aafaa7bb9f39 /src
parent495d0ba12d140fc205fbfbe491b6ddd8d6dbe891 (diff)
make it a menu option while we're at it
Diffstat (limited to 'src')
-rw-r--r--src/GPU.cpp5
-rw-r--r--src/GPU.h1
-rw-r--r--src/NDS.cpp1
-rw-r--r--src/libui_sdl/main.cpp13
4 files changed, 20 insertions, 0 deletions
diff --git a/src/GPU.cpp b/src/GPU.cpp
index af8c5d8..8ac3e74 100644
--- a/src/GPU.cpp
+++ b/src/GPU.cpp
@@ -151,6 +151,11 @@ void Reset()
GPU2D_B->SetFramebuffer(&Framebuffer[256*0]);
}
+void Stop()
+{
+ memset(Framebuffer, 0, 256*192*2*4);
+}
+
// VRAM mapping notes
//
diff --git a/src/GPU.h b/src/GPU.h
index 4624495..d45f383 100644
--- a/src/GPU.h
+++ b/src/GPU.h
@@ -70,6 +70,7 @@ extern GPU2D* GPU2D_B;
bool Init();
void DeInit();
void Reset();
+void Stop();
void MapVRAM_AB(u32 bank, u8 cnt);
void MapVRAM_CD(u32 bank, u8 cnt);
diff --git a/src/NDS.cpp b/src/NDS.cpp
index 9b096b8..bee3a8d 100644
--- a/src/NDS.cpp
+++ b/src/NDS.cpp
@@ -347,6 +347,7 @@ void Stop()
{
printf("Stopping: shutdown\n");
Platform::StopEmu();
+ GPU::Stop();
SPU::Stop();
}
diff --git a/src/libui_sdl/main.cpp b/src/libui_sdl/main.cpp
index 1068f92..c61cebe 100644
--- a/src/libui_sdl/main.cpp
+++ b/src/libui_sdl/main.cpp
@@ -37,6 +37,7 @@ uiArea* MainDrawArea;
uiMenuItem* MenuItem_Pause;
uiMenuItem* MenuItem_Reset;
+uiMenuItem* MenuItem_Stop;
SDL_Thread* EmuThread;
int EmuRunning;
@@ -261,6 +262,7 @@ void Run()
uiMenuItemEnable(MenuItem_Pause);
uiMenuItemEnable(MenuItem_Reset);
+ uiMenuItemEnable(MenuItem_Stop);
uiMenuItemSetChecked(MenuItem_Pause, 0);
}
@@ -271,6 +273,7 @@ void Stop()
uiMenuItemDisable(MenuItem_Pause);
uiMenuItemDisable(MenuItem_Reset);
+ uiMenuItemDisable(MenuItem_Stop);
uiMenuItemSetChecked(MenuItem_Pause, 0);
memset(ScreenBuffer, 256*384*4, 0);
@@ -355,6 +358,13 @@ void OnReset(uiMenuItem* item, uiWindow* window, void* blarg)
Run();
}
+void OnStop(uiMenuItem* item, uiWindow* window, void* blarg)
+{
+ if (!RunningSomething) return;
+
+ Stop();
+}
+
int main(int argc, char** argv)
{
@@ -404,6 +414,9 @@ int main(int argc, char** argv)
menuitem = uiMenuAppendItem(menu, "Reset");
uiMenuItemOnClicked(menuitem, OnReset, NULL);
MenuItem_Reset = menuitem;
+ menuitem = uiMenuAppendItem(menu, "Stop");
+ uiMenuItemOnClicked(menuitem, OnStop, NULL);
+ MenuItem_Stop = menuitem;
MainWindow = uiNewWindow("melonDS " MELONDS_VERSION, 256, 384, 1);
uiWindowOnClosing(MainWindow, OnCloseWindow, NULL);