summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2022-08-26 19:26:32 +1000
committer Vas Crabb <vas@vastheman.com>2022-08-26 19:26:32 +1000
commit1c2266ce553928e1d48777add980eef6873e6d5d (patch)
tree24608b04f3ad2b8e0b10eafa103f2dc114d2fab0 /src
parent4761e5ebb04c8f3a9398a1ddd223d8ed41ad71e5 (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.cpp39
-rw-r--r--src/mame/nintendo/vboy.cpp1
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);