Mercurial > repos > blastem
diff romdb.c @ 2041:638eb2d25696 mame_interp
Merge from default
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 05 Aug 2021 09:29:33 -0700 |
parents | 8b2ef428d1aa |
children | b119e0de9a70 3748a2a8a4b7 |
line wrap: on
line diff
--- a/romdb.c Sun May 10 00:16:00 2020 -0700 +++ b/romdb.c Thu Aug 05 09:29:33 2021 -0700 @@ -32,6 +32,8 @@ return "EEPROM"; } else if(save_type == SAVE_NOR) { return "NOR Flash"; + } else if(save_type == SAVE_HBPT) { + return "Heartbeat Personal Trainer"; } return "SRAM"; } @@ -364,6 +366,8 @@ info->map[1].flags |= MMAP_ONLY_ODD; } else if (info->save_type == RAM_FLAG_EVEN) { info->map[1].flags |= MMAP_ONLY_EVEN; + } else { + info->map[1].flags |= MMAP_CODE; } info->map[1].buffer = info->save_buffer; } else { @@ -717,6 +721,8 @@ map->flags |= MMAP_ONLY_ODD; } else if(state->info->save_type == RAM_FLAG_EVEN) { map->flags |= MMAP_ONLY_EVEN; + } else { + map->flags |= MMAP_CODE; } map->mask = calc_mask(state->info->save_size, start, end); } else if (!strcmp(dtype, "RAM")) { @@ -986,6 +992,19 @@ info.port1_override = tern_find_ptr(device_overrides, "1"); info.port2_override = tern_find_ptr(device_overrides, "2"); info.ext_override = tern_find_ptr(device_overrides, "ext"); + if ( + info.save_type == SAVE_NONE + && ( + (info.port1_override && startswith(info.port1_override, "heartbeat_trainer.")) + || (info.port2_override && startswith(info.port2_override, "heartbeat_trainer.")) + || (info.ext_override && startswith(info.ext_override, "heartbeat_trainer.")) + ) + ) { + info.save_type = SAVE_HBPT; + info.save_size = atoi(tern_find_path_default(entry, "HeartbeatTrainer\0size\0", (tern_val){.ptrval="512"}, TVAL_PTR).ptrval); + info.save_buffer = calloc(info.save_size + 5 + 8, 1); + memset(info.save_buffer, 0xFF, info.save_size); + } } else { info.port1_override = info.port2_override = info.ext_override = NULL; }