changeset 885:e3f5ec336432

Allow menu ROM to be debugged
author Michael Pavone <pavone@retrodev.com>
date Sat, 14 Nov 2015 09:49:39 -0800
parents 252dfd29831d
children fb1f11fd0692
files blastem.c
diffstat 1 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/blastem.c	Fri Nov 13 22:56:59 2015 -0800
+++ b/blastem.c	Sat Nov 14 09:49:39 2015 -0800
@@ -969,6 +969,7 @@
 	int rom_size;
 	uint8_t * debuggerfun = NULL;
 	uint8_t fullscreen = FULLSCREEN_DEFAULT, use_gl = 1;
+	uint8_t debug_target = 0;
 	for (int i = 1; i < argc; i++) {
 		if (argv[i][0] == '-') {
 			switch(argv[i][1]) {
@@ -982,6 +983,10 @@
 				break;
 			case 'd':
 				debuggerfun = (uint8_t *)debugger;
+				//allow debugging the menu
+				if (argv[i][2] == 'm') {
+					debug_target = 1;
+				}
 				break;
 			case 'D':
 				gdb_remote_init();
@@ -1141,7 +1146,7 @@
 	}
 
 	set_keybindings(genesis->ports);
-	start_genesis(genesis, menu ? NULL : statefile, menu ? NULL : debuggerfun);
+	start_genesis(genesis, menu ? NULL : statefile, menu == debug_target ? debuggerfun : NULL);
 	for(;;)
 	{
 		if (menu && menu_context->next_rom) {
@@ -1193,7 +1198,7 @@
 			genesis = game_context;
 			genesis->m68k->options->address_log = address_log;
 			map_all_bindings(genesis->ports);
-			start_genesis(genesis, statefile, debuggerfun);
+			start_genesis(genesis, statefile, menu == debug_target ? debuggerfun : NULL);
 		}
 		else if (menu && game_context) {
 			genesis->arena = set_current_arena(game_context->arena);