diff --git a/user_io.cpp b/user_io.cpp index 52cee8a..22acb31 100644 --- a/user_io.cpp +++ b/user_io.cpp @@ -148,6 +148,11 @@ char is_x86_core() return (is_x86_type == 1); } +char is_cpc_core() +{ + return !strcasecmp(core_name, "amstrad"); +} + static int is_no_type = 0; static int disable_osd = 0; char has_menu() @@ -482,7 +487,7 @@ void user_io_init(const char *path) { // check for multipart rom sprintf(mainpath, "%s/boot0.rom", user_io_get_core_name()); - if (user_io_file_tx(mainpath)) + if (!is_cpc_core() && user_io_file_tx(mainpath)) { sprintf(mainpath, "%s/boot1.rom", user_io_get_core_name()); if (user_io_file_tx(mainpath, 0x40)) @@ -514,6 +519,19 @@ void user_io_init(const char *path) } } + if (is_cpc_core()) + { + sprintf(mainpath, "%s/boot.eZZ", user_io_get_core_name()); + user_io_file_tx(mainpath, 0x40); + sprintf(mainpath, "%s/boot.eZ0", user_io_get_core_name()); + user_io_file_tx(mainpath, 0x40); + for (int i = 0; i < 256; i++) + { + sprintf(mainpath, "%s/boot.e%02X", user_io_get_core_name(), i); + user_io_file_tx(mainpath, 0x40); + } + } + // check if vhd present sprintf(mainpath, "%s/boot.vhd", user_io_get_core_name()); user_io_set_index(0);