Mercurial > repos > blastem
changeset 949:5e4fb650de58
Make Exit option in menu work
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 19 Mar 2016 17:53:50 -0700 |
parents | 6b90ec50daf3 |
children | 938c72a2f7a9 |
files | blastem.c blastem.h menu.c menu.s68 |
diffstat | 4 files changed, 11 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/blastem.c Sat Mar 19 17:40:17 2016 -0700 +++ b/blastem.c Sat Mar 19 17:53:50 2016 -0700 @@ -1170,6 +1170,9 @@ start_genesis(genesis, menu ? NULL : statefile, menu == debug_target ? debuggerfun : NULL); for(;;) { + if (genesis->should_exit) { + break; + } if (menu && menu_context->next_rom) { if (game_context) { if (game_context->save_type != SAVE_NONE) { @@ -1222,8 +1225,7 @@ genesis->m68k->options->address_log = address_log; map_all_bindings(genesis->ports); start_genesis(genesis, statefile, menu == debug_target ? debuggerfun : NULL); - } - else if (menu && game_context) { + } else if (menu && game_context) { genesis->arena = set_current_arena(game_context->arena); genesis = game_context; cart = genesis->cart;
--- a/blastem.h Sat Mar 19 17:40:17 2016 -0700 +++ b/blastem.h Sat Mar 19 17:53:50 2016 -0700 @@ -43,6 +43,7 @@ uint8_t save_type; io_port ports[3]; uint8_t bus_busy; + uint8_t should_exit; eeprom_state eeprom; } genesis_context;
--- a/menu.c Sat Mar 19 17:40:17 2016 -0700 +++ b/menu.c Sat Mar 19 17:53:50 2016 -0700 @@ -190,6 +190,11 @@ gen->next_rom = alloc_concat_m(3, pieces); m68k->should_return = 1; break; + case 3: { + m68k->should_return = 1; + gen->should_exit = 1; + break; + } } default: fprintf(stderr, "WARNING: write to undefined menu port %X\n", address);