diff options
| author | 2022-08-26 19:26:32 +1000 | |
|---|---|---|
| committer | 2022-08-26 19:26:32 +1000 | |
| commit | 1c2266ce553928e1d48777add980eef6873e6d5d (patch) | |
| tree | 24608b04f3ad2b8e0b10eafa103f2dc114d2fab0 /src | |
| parent | 4761e5ebb04c8f3a9398a1ddd223d8ed41ad71e5 (diff) | |
-nintendo/vboy.cpp: Allow it to run unmapped reads with no cartridge.
-hash/gbcolor.xml: Added notes on what happens if you bypass the boot
check for Rocket Games cartridges.
-bus/vboy/slot.cpp: Don't instantiate a cartridge device when no media
is loaded.
Diffstat (limited to 'src')
| -rw-r--r-- | src/devices/bus/vboy/slot.cpp | 39 | ||||
| -rw-r--r-- | src/mame/nintendo/vboy.cpp | 1 |
2 files changed, 25 insertions, 15 deletions
diff --git a/src/devices/bus/vboy/slot.cpp b/src/devices/bus/vboy/slot.cpp index 0c6df96ca61..1313f249781 100644 --- a/src/devices/bus/vboy/slot.cpp +++ b/src/devices/bus/vboy/slot.cpp @@ -126,27 +126,38 @@ void vboy_cart_slot_device::device_start() std::string vboy_cart_slot_device::get_default_card_software(get_default_card_software_hook &hook) const { - std::string const image_name(mconfig().options().image_option(instance_name()).value()); - software_part const *const part(!image_name.empty() ? find_software_item(image_name, true) : nullptr); - if (part) + if (hook.image_file()) { - osd_printf_verbose("[%s] Found software part for image name '%s'\n", tag(), image_name); - for (rom_entry const &entry : part->romdata()) + // TODO: is there a header field or something indicating presence of save RAM? + osd_printf_verbose("[%s] Assuming plain ROM cartridge\n", tag()); + return "flatrom"; + } + else + { + std::string const image_name(mconfig().options().image_option(instance_name()).value()); + software_part const *const part(!image_name.empty() ? find_software_item(image_name, true) : nullptr); + if (part) { - if (ROMENTRY_ISREGION(entry) && (entry.name() == "sram")) + osd_printf_verbose("[%s] Found software part for image name '%s'\n", tag(), image_name); + for (rom_entry const &entry : part->romdata()) { - osd_printf_verbose("[%s] Found 'sram' data area, enabling cartridge backup RAM\n", tag()); - return "flatrom_sram"; + if (ROMENTRY_ISREGION(entry) && (entry.name() == "sram")) + { + osd_printf_verbose("[%s] Found 'sram' data area, enabling cartridge backup RAM\n", tag()); + return "flatrom_sram"; + } } + osd_printf_verbose("[%s] No 'sram' data area found, assuming plain ROM cartridge\n", tag()); + return "flatrom"; + } + else + { + osd_printf_verbose("[%s] No software part found for image name '%s'\n", tag(), image_name); } - } - else - { - osd_printf_verbose("[%s] No software part found for image name '%s'\n", tag(), image_name); } - osd_printf_verbose("[%s] Assuming plain ROM cartridge\n", tag()); - return "flatrom"; + // leave the slot empty + return std::string(); } diff --git a/src/mame/nintendo/vboy.cpp b/src/mame/nintendo/vboy.cpp index 7a17242c9c3..9ac29bedd26 100644 --- a/src/mame/nintendo/vboy.cpp +++ b/src/mame/nintendo/vboy.cpp @@ -1270,7 +1270,6 @@ void vboy_state::vboy(machine_config &config) /* cartridge */ VBOY_CART_SLOT(config, m_cart, vboy_carts, nullptr); - m_cart->set_must_be_loaded(true); m_cart->intcro().set_inputline(m_maincpu, 2); m_cart->set_exp(m_maincpu, AS_PROGRAM, 0x0400'0000); m_cart->set_chip(m_maincpu, AS_PROGRAM, 0x0600'0000); |
