diff bindings.c @ 1638:f27142c48567

Initial stab at CRAM debug in a detached window
author Michael Pavone <pavone@retrodev.com>
date Wed, 14 Nov 2018 22:16:35 -0800
parents e397766c3028
children bc9bb4e5856f
line wrap: on
line diff
--- a/bindings.c	Sun Nov 11 22:39:29 2018 -0800
+++ b/bindings.c	Wed Nov 14 22:16:35 2018 -0800
@@ -38,7 +38,8 @@
 	UI_SCREENSHOT,
 	UI_EXIT,
 	UI_PLANE_DEBUG,
-	UI_VRAM_DEBUG
+	UI_VRAM_DEBUG,
+	UI_CRAM_DEBUG,
 } ui_action;
 
 typedef struct {
@@ -375,7 +376,9 @@
 			}
 #endif
 			break;
-		case UI_PLANE_DEBUG: {
+		case UI_PLANE_DEBUG: 
+		case UI_VRAM_DEBUG: 
+		case UI_CRAM_DEBUG: {
 			vdp_context *vdp = NULL;
 			if (current_system->type == SYSTEM_GENESIS) {
 				genesis_context *gen = (genesis_context *)current_system;
@@ -385,21 +388,15 @@
 				vdp = sms->vdp;
 			}
 			if (vdp) {
-				vdp_toggle_debug_view(vdp, VDP_DEBUG_PLANE);
-			}
-			break;
-		}
-		case UI_VRAM_DEBUG: {
-			vdp_context *vdp = NULL;
-			if (current_system->type == SYSTEM_GENESIS) {
-				genesis_context *gen = (genesis_context *)current_system;
-				vdp = gen->vdp;
-			} else if (current_system->type == SYSTEM_SMS) {
-				sms_context *sms = (sms_context *)current_system;
-				vdp = sms->vdp;
-			}
-			if (vdp) {
-				vdp_toggle_debug_view(vdp, VDP_DEBUG_VRAM);
+				uint8_t debug_type;
+				switch(binding->subtype_a)
+				{
+				case UI_PLANE_DEBUG: debug_type = VDP_DEBUG_PLANE; break;
+				case UI_VRAM_DEBUG: debug_type = VDP_DEBUG_VRAM; break;
+				case UI_CRAM_DEBUG: debug_type = VDP_DEBUG_CRAM; break;
+				default: return;
+				}
+				vdp_toggle_debug_view(vdp, debug_type);
 			}
 			break;
 		}
@@ -610,7 +607,9 @@
 			*subtype_a = UI_PLANE_DEBUG;
 		} else if (!strcmp(target + 3, "vram_debug")) {
 			*subtype_a = UI_VRAM_DEBUG;
-		}  else {
+		} else if (!strcmp(target + 3, "cram_debug")) {
+			*subtype_a = UI_CRAM_DEBUG;
+		} else {
 			warning("Unreconized UI binding type %s\n", target);
 			return 0;
 		}