Mercurial > repos > blastem
diff menu.c @ 1111:2eb54e24914e
Mostly working changes to allow support for multiple emulated system types in main blastem program
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 19 Dec 2016 13:28:18 -0800 |
parents | 22e87b739ad6 |
children | 0a34e31c4fd0 |
line wrap: on
line diff
--- a/menu.c Wed Dec 14 23:27:42 2016 -0800 +++ b/menu.c Mon Dec 19 13:28:18 2016 -0800 @@ -269,7 +269,7 @@ char buf[4096]; copy_string_from_guest(m68k, dst, buf, sizeof(buf)); char const *pieces[] = {menu->curpath, PATH_SEP, buf}; - gen->next_rom = alloc_concat_m(3, pieces); + gen->header.next_rom = alloc_concat_m(3, pieces); m68k->should_return = 1; break; } @@ -278,7 +278,7 @@ { case 1: m68k->should_return = 1; - gen->should_exit = 1; + gen->header.should_exit = 1; break; case 2: m68k->should_return = 1; @@ -290,10 +290,10 @@ case 4: { char *buffer = malloc(SAVE_INFO_BUFFER_SIZE); char *cur = buffer; - if (gen->next_context && gen->next_context->save_dir) { + if (gen->header.next_context && gen->header.next_context->save_dir) { char *end = buffer + SAVE_INFO_BUFFER_SIZE; char slotfile[] = "slot_0.gst"; - char const * parts[3] = {gen->next_context->save_dir, PATH_SEP, slotfile}; + char const * parts[3] = {gen->header.next_context->save_dir, PATH_SEP, slotfile}; struct tm ltime; char *fname; time_t modtime; @@ -338,14 +338,14 @@ break; case 5: //save state - if (gen->next_context) { - gen->next_context->save_state = dst + 1; + if (gen->header.next_context) { + gen->header.next_context->save_state = dst + 1; } m68k->should_return = 1; break; case 6: //load state - if (gen->next_context && gen->next_context->save_dir) { + if (gen->header.next_context && gen->header.next_context->save_dir) { char numslotname[] = "slot_0.gst"; char *slotname; if (dst == QUICK_SAVE_SLOT) { @@ -354,14 +354,15 @@ numslotname[5] = '0' + dst; slotname = numslotname; } - char const *parts[] = {gen->next_context->save_dir, PATH_SEP, slotname}; + char const *parts[] = {gen->header.next_context->save_dir, PATH_SEP, slotname}; char *gstpath = alloc_concat_m(3, parts); - uint32_t pc = load_gst(gen->next_context, gstpath); + genesis_context *next = (genesis_context *)gen->header.next_context; + uint32_t pc = load_gst(next, gstpath); free(gstpath); if (!pc) { break; } - gen->next_context->m68k->resume_pc = get_native_address_trans(gen->next_context->m68k, pc); + next->m68k->resume_pc = get_native_address_trans(next->m68k, pc); } m68k->should_return = 1; break;