diff --git a/screen.c b/screen.c
index e2bf5e0..e19baa2 100644
--- a/screen.c
+++ b/screen.c
@@ -1,5 +1,6 @@
 #include "screen.h"
 #include "cpu.h"
+#include "common.h"
 
 #include <SDL2/SDL.h>
 
@@ -52,10 +53,13 @@
 		size * 32,
 		size * 32,
 		0);
+	ASSERT("Create Screen SDL_Window", scr.win);
 	scr.size = size;
 	scr.r = SDL_CreateRenderer(scr.win, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
+	ASSERT("Create SDL_Renderer", scr.r);
 	scr.tex = SDL_CreateTexture(scr.r, SDL_PIXELFORMAT_RGB332, SDL_TEXTUREACCESS_STREAMING,
 		CPU_FB_W, CPU_FB_H);
+	ASSERT("Create SDL_Texture", scr.tex);
 
 	return scr;
 }
@@ -100,12 +104,15 @@
 
 #ifndef NO_PTHREAD
 
+bool g_screen_thread_halt = false;
+
+
 void *screen_thread(uint8_t *mem)
 {
 	sdl_screen_t scr = new_sdl_screen(8);
 	while (true)
 	{
-		if (sdl_screen(&scr, mem, true))
+		if (sdl_screen(&scr, mem, true) || g_screen_thread_halt)
 			break;
 	}
 	free_sdl_screen(&scr);
@@ -115,10 +122,11 @@
 	return NULL;
 }
 
-void start_screen_thread(uint8_t *mem)
+pthread_t start_screen_thread(uint8_t *mem)
 {
 	pthread_t thread;
 	pthread_create(&thread, NULL, (void *(*)(void *))&screen_thread, mem);
+	return thread;
 }
 
 #endif
