Skip to content

Commit fb2afc0

Browse files
committed
Add support for zx-spectrum
Adds ROM extension support, but until someone creates a specific emulator, just uses a generic filename.
1 parent f2cff4c commit fb2afc0

File tree

5 files changed

+13
-3
lines changed

5 files changed

+13
-3
lines changed

src/menu/cart_load.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,10 @@ cart_load_err_t cart_load_emulator (menu_t *menu, cart_load_emu_type_t emu_type,
184184
path_push(path, "Press-F.z64");
185185
save_type = FLASHCART_SAVE_TYPE_NONE;
186186
break;
187+
case CART_LOAD_EMU_TYPE_SINCLAIR_ZXSPECTRUM:
188+
path_push(path, "zx-spectrum.z64");
189+
save_type = FLASHCART_SAVE_TYPE_NONE;
190+
break;
187191
}
188192

189193
if (!file_exists(path_get(path))) {

src/menu/cart_load.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ typedef enum {
5656
CART_LOAD_EMU_TYPE_SEGA_GENERIC_8BIT,
5757
/** @brief The ROM is designed for a Fairchild Channel F system. */
5858
CART_LOAD_EMU_TYPE_FAIRCHILD_CHANNELF,
59+
/** @brief The ROM is designed for a Sinclair ZX Spectrum system. */
60+
CART_LOAD_EMU_TYPE_SINCLAIR_ZXSPECTRUM,
5961
} cart_load_emu_type_t;
6062

6163

@@ -64,5 +66,4 @@ cart_load_err_t cart_load_n64_rom_and_save (menu_t *menu, flashcart_progress_cal
6466
cart_load_err_t cart_load_64dd_ipl_and_disk (menu_t *menu, flashcart_progress_callback_t progress);
6567
cart_load_err_t cart_load_emulator (menu_t *menu, cart_load_emu_type_t emu_type, flashcart_progress_callback_t progress);
6668

67-
6869
#endif

src/menu/views/browser.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
static const char *rom_extensions[] = { "z64", "n64", "v64", "rom", NULL };
1313
static const char *disk_extensions[] = { "ndd", NULL };
14-
static const char *emulator_extensions[] = { "nes", "sfc", "smc", "gb", "gbc", "sms", "gg", "sg", "chf", NULL };
14+
static const char *emulator_extensions[] = { "nes", "sfc", "smc", "gb", "gbc", "sms", "gg", "sg", "chf", "rzx", NULL };
1515
// TODO: "eep", "sra", "srm", "fla" could be used if transfered from different flashcarts.
1616
static const char *save_extensions[] = { "sav", NULL };
1717
static const char *image_extensions[] = { "png", NULL };

src/menu/views/file_info.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ static const char *archive_extensions[] = { "zip", "rar", "7z", "tar", "gz", NUL
1414
static const char *image_extensions[] = { "png", "jpg", "gif", NULL };
1515
static const char *music_extensions[] = { "mp3", "wav", "ogg", "wma", "flac", NULL };
1616
static const char *controller_pak_extensions[] = { "mpk", "pak", NULL };
17-
static const char *emulator_extensions[] = { "nes", "smc", "gb", "gbc", "sms", "gg", "chf", NULL };
17+
static const char *emulator_extensions[] = { "nes", "smc", "gb", "gbc", "sms", "gg", "chf", "rzx", NULL };
1818

1919

2020
static struct stat st;

src/menu/views/load_emulator.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ static const char *emu_gameboy_rom_extensions[] = { "gb", NULL };
1111
static const char *emu_gameboy_color_rom_extensions[] = { "gbc", NULL };
1212
static const char *emu_sega_8bit_rom_extensions[] = { "sms", "gg", "sg", NULL };
1313
static const char *emu_fairchild_channelf_rom_extensions[] = { "chf", NULL };
14+
static const char *emu_sinclair_zxspectrum_rom_extensions[] = { "rzx", NULL };
1415

1516
static cart_load_emu_type_t emu_type;
1617

@@ -28,6 +29,8 @@ static char *format_emulator_name (cart_load_emu_type_t emulator_info) {
2829
return "SEGA 8bit system";
2930
case CART_LOAD_EMU_TYPE_FAIRCHILD_CHANNELF:
3031
return "Fairchild Channel F";
32+
case CART_LOAD_EMU_TYPE_SINCLAIR_ZXSPECTRUM:
33+
return "Sinclair ZX Spectrum";
3134
default:
3235
return "Unknown";
3336
}
@@ -125,6 +128,8 @@ void view_load_emulator_init (menu_t *menu) {
125128
emu_type = CART_LOAD_EMU_TYPE_SEGA_GENERIC_8BIT;
126129
} else if (file_has_extensions(path_get(path), emu_fairchild_channelf_rom_extensions)) {
127130
emu_type = CART_LOAD_EMU_TYPE_FAIRCHILD_CHANNELF;
131+
} else if (file_has_extensions(path_get(path), emu_sinclair_zxspectrum_rom_extensions)) {
132+
emu_type = CART_LOAD_EMU_TYPE_SINCLAIR_ZXSPECTRUM;
128133
} else {
129134
menu_show_error(menu, "Unsupported ROM");
130135
}

0 commit comments

Comments
 (0)