diff render_sdl.c @ 135:a81c548cf353

Fix 68K->VDP DMA
author Mike Pavone <pavone@retrodev.com>
date Sun, 30 Dec 2012 11:54:25 -0800
parents 7a22a0e6c004
children 209a37eed3e7
line wrap: on
line diff
--- a/render_sdl.c	Sun Dec 30 09:55:18 2012 -0800
+++ b/render_sdl.c	Sun Dec 30 11:54:25 2012 -0800
@@ -6,6 +6,7 @@
 
 SDL_Surface *screen;
 uint8_t render_dbg = 0;
+uint8_t debug_pal = 0;
 
 uint32_t last_frame = 0;
 
@@ -122,6 +123,12 @@
 					} else {
 						if (render_dbg == 2) {
 							gen_color = context->cram[(y/30)*8 + x/40];
+						} else if(render_dbg == 3) {
+							if (x & 1) {
+								gen_color = context->cram[ (debug_pal << 4) | (context->vdpmem[(x/8)*32 + (y/8)*32*40 + (x%8)/2 + (y%8)*4] & 0xF) ];
+							} else {
+								gen_color = context->cram[ (debug_pal << 4) | (context->vdpmem[(x/8)*32 + (y/8)*32*40 + (x%8)/2 + (y%8)*4] >> 4) ];
+							}
 						}
 						b = ((gen_color >> 8) & 0xE) * 18;
 						g = ((gen_color >> 4) & 0xE) * 18;
@@ -149,10 +156,15 @@
 		case SDL_KEYDOWN:
 			if (event.key.keysym.sym == SDLK_LEFTBRACKET) {
 				render_dbg++;
-				if (render_dbg == 3) {
+				if (render_dbg == 4) {
 					render_dbg = 0;
 				}
 				render_context(context);
+			} else if(event.key.keysym.sym ==  SDLK_RIGHTBRACKET) {
+				debug_pal++;
+				if (debug_pal == 4) {
+					debug_pal = 0;
+				}
 			}
 			break;
 		case SDL_QUIT:
@@ -189,10 +201,16 @@
 			{
 			case SDLK_LEFTBRACKET:
 				render_dbg++;
-				if (render_dbg == 3) {
+				if (render_dbg == 4) {
 					render_dbg = 0;
 				}
 				break;
+			case SDLK_RIGHTBRACKET:
+				debug_pal++;
+				if (debug_pal == 4) {
+					debug_pal = 0;
+				}
+				break;
 			case SDLK_t:
 				outfile = fopen("state.gst", "wb");
 				fwrite("GST\0\0\0\xE0\x40", 1, 8, outfile);