From 02c9dac337f986aefeb521577a8b134dd35c94eb Mon Sep 17 00:00:00 2001 From: ekeeke Date: Sun, 26 Nov 2023 17:41:12 +0100 Subject: [PATCH] [Core/CD] added CD hardware model auto-detection when BIOS is loaded as normal ROM file --- core/loadrom.c | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/core/loadrom.c b/core/loadrom.c index 511326f..d83dbc3 100644 --- a/core/loadrom.c +++ b/core/loadrom.c @@ -419,17 +419,17 @@ int load_bios(int system) if (size > 0) { /* auto-detect CD hardware model */ - if (!memcmp (&scd.bootrom[0x120], "WONDER-MEGA BOOT", 16)) + if (!memcmp(&scd.bootrom[0x120], "WONDER-MEGA BOOT", 16)) { /* Wondermega CD hardware */ scd.type = CD_TYPE_WONDERMEGA; } - else if (!memcmp (&scd.bootrom[0x120], "WONDERMEGA2 BOOT", 16)) + else if (!memcmp(&scd.bootrom[0x120], "WONDERMEGA2 BOOT", 16)) { /* Wondermega M2 / X'Eye CD hardware */ scd.type = CD_TYPE_WONDERMEGA_M2; } - else if (!memcmp (&scd.bootrom[0x120], "CDX BOOT ROM ", 16)) + else if (!memcmp(&scd.bootrom[0x120], "CDX BOOT ROM ", 16)) { /* CDX / Multi-Mega CD hardware */ scd.type = CD_TYPE_CDX; @@ -792,6 +792,28 @@ int load_rom(char *filename) /* enable CD hardware */ system_hw = SYSTEM_MCD; + /* auto-detect CD hardware model */ + if (strstr(rominfo.domestic, "WONDER-MEGA BOOT")) + { + /* Wondermega CD hardware */ + scd.type = CD_TYPE_WONDERMEGA; + } + else if (strstr(rominfo.domestic, "WONDERMEGA2 BOOT")) + { + /* Wondermega M2 / X'Eye CD hardware */ + scd.type = CD_TYPE_WONDERMEGA_M2; + } + else if (strstr(rominfo.domestic, "CDX BOOT ROM")) + { + /* CDX / Multi-Mega CD hardware */ + scd.type = CD_TYPE_CDX; + } + else + { + /* default CD hardware */ + scd.type = CD_TYPE_DEFAULT; + } + /* boot from CD hardware */ scd.cartridge.boot = 0x00;