changeset 2286:5d3411f52d00

Fix ui.reload for locked-on ROMs
author Michael Pavone <pavone@retrodev.com>
date Fri, 13 Jan 2023 23:42:46 -0800
parents dec3287c9394
children 8a918eb95ba8
files bindings.c blastem.c genesis.c
diffstat 3 files changed, 16 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/bindings.c	Fri Jan 13 19:19:40 2023 -0800
+++ b/bindings.c	Fri Jan 13 23:42:46 2023 -0800
@@ -386,7 +386,20 @@
 			break;
 		case UI_RELOAD:
 			if (allow_content_binds) {
-				reload_media();
+				system_media *lock = current_media()->chain;
+				if (lock) {
+					const char* parts[] = {lock->dir, PATH_SEP, lock->name, ".", lock->extension};
+					char const **start = parts[0] ? parts : parts + 2;
+					int num_parts = parts[0] ? 5 : 3;
+					if (!parts[4]) {
+						num_parts -= 2;
+					}
+					char *path = alloc_concat_m(num_parts, start);
+					lockon_media(path);
+					free(path);
+				} else {
+					reload_media();
+				}
 			}
 			break;
 		case UI_SMS_PAUSE:
--- a/blastem.c	Fri Jan 13 19:19:40 2023 -0800
+++ b/blastem.c	Fri Jan 13 23:42:46 2023 -0800
@@ -427,7 +427,7 @@
 	char const **start = parts[0] ? parts : parts + 2;
 	int num_parts = parts[0] ? 5 : 3;
 	if (!parts[4]) {
-		num_parts--;
+		num_parts -= 2;
 	}
 	current_system->next_rom = alloc_concat_m(num_parts, start);
 	system_request_exit(current_system, 1);
--- a/genesis.c	Fri Jan 13 19:19:40 2023 -0800
+++ b/genesis.c	Fri Jan 13 23:42:46 2023 -0800
@@ -2103,6 +2103,7 @@
 		gen->save_ram_mask = info.save_mask;
 		gen->save_size = info.save_size;
 		gen->save_storage = info.save_buffer;
+		gen->header.info.save_buffer = info.save_buffer = NULL;
 		gen->eeprom_map = info.eeprom_map;
 		gen->num_eeprom = info.num_eeprom;
 		if (gen->save_type == SAVE_I2C) {