summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/neogeo/slot.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/neogeo/slot.cpp')
-rw-r--r--src/devices/bus/neogeo/slot.cpp54
1 files changed, 26 insertions, 28 deletions
diff --git a/src/devices/bus/neogeo/slot.cpp b/src/devices/bus/neogeo/slot.cpp
index a15fb9eab5d..ce8fd3acf6e 100644
--- a/src/devices/bus/neogeo/slot.cpp
+++ b/src/devices/bus/neogeo/slot.cpp
@@ -27,8 +27,8 @@ device_neogeo_cart_interface::device_neogeo_cart_interface(const machine_config
m_region_audio(*this, "^audiocpu"),
m_region_audiocrypt(*this, "^audiocrypt"),
m_region_spr(*this, "^sprites"),
- m_region_ym(*this, "^ymsnd"),
- m_region_ymd(*this, "^ymsnd.deltat")
+ m_region_ym(*this, "^ymsnd:adpcma"),
+ m_region_ymd(*this, "^ymsnd:adpcmb")
{
}
@@ -99,7 +99,7 @@ void device_neogeo_cart_interface::optimize_sprites(uint8_t* region_sprites, uin
//-------------------------------------------------
neogeo_cart_slot_device::neogeo_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) :
device_t(mconfig, NEOGEO_CART_SLOT, tag, owner, clock),
- device_image_interface(mconfig, *this),
+ device_cartrom_image_interface(mconfig, *this),
device_single_card_slot_interface<device_neogeo_cart_interface>(mconfig, *this),
m_cart(nullptr)
{
@@ -196,6 +196,7 @@ static const neogeo_slot slot_list[] =
{ NEOGEO_SAMSHO5B, "boot_samsho5b" },
{ NEOGEO_MSLUG3B6, "boot_mslug3b6" },
{ NEOGEO_MSLUG5P, "boot_ms5plus" },
+ { NEOGEO_MSLUG5B, "boot_mslug5b" },
{ NEOGEO_KOG, "boot_kog" },
{ NEOGEO_SBP, "boot_sbp" },
{ NEOGEO_KOF10TH, "boot_kf10th" },
@@ -206,7 +207,7 @@ static int neogeo_get_pcb_id(const char *slot)
{
for (auto & elem : slot_list)
{
- if (!core_stricmp(elem.slot_option, slot))
+ if (!strcmp(elem.slot_option, slot))
return elem.pcb_id;
}
@@ -223,8 +224,7 @@ void neogeo_cart_slot_device::set_cart_type(const char *slot)
call load
-------------------------------------------------*/
-
-image_init_result neogeo_cart_slot_device::call_load()
+std::pair<std::error_condition, std::string> neogeo_cart_slot_device::call_load()
{
if (m_cart)
{
@@ -258,17 +258,17 @@ image_init_result neogeo_cart_slot_device::call_load()
memcpy(ROM8 + 0x10000, get_software_region("audiocpu"), len); // avoid reloading in XML, should just improve banking instead tho?
}
- len = get_software_region_length("ymsnd");
+ len = get_software_region_length("ymsnd:adpcma");
m_cart->ym_alloc(len);
ROM8 = m_cart->get_ym_base();
- memcpy(ROM8, get_software_region("ymsnd"), len);
+ memcpy(ROM8, get_software_region("ymsnd:adpcma"), len);
- if (get_software_region("ymsnd.deltat") != nullptr)
+ if (get_software_region("ymsnd:adpcmb") != nullptr)
{
- len = get_software_region_length("ymsnd.deltat");
+ len = get_software_region_length("ymsnd:adpcmb");
m_cart->ymdelta_alloc(len);
ROM8 = m_cart->get_ymdelta_base();
- memcpy(ROM8, get_software_region("ymsnd.deltat"), len);
+ memcpy(ROM8, get_software_region("ymsnd:adpcmb"), len);
}
else
{
@@ -303,12 +303,10 @@ image_init_result neogeo_cart_slot_device::call_load()
// SPEED UP WORKAROUND: to speed up sprite drawing routine, let us store the sprite data in
// a different format (we then always access such alt format for drawing)
m_cart->optimize_sprites(m_cart->get_sprites_base(), m_cart->get_sprites_size());
-
- return image_init_result::PASS;
}
}
- return image_init_result::PASS;
+ return std::make_pair(std::error_condition(), std::string());
}
@@ -333,10 +331,10 @@ std::string neogeo_cart_slot_device::get_default_card_software(get_default_card_
rom_r
-------------------------------------------------*/
-READ16_MEMBER(neogeo_cart_slot_device::rom_r)
+uint16_t neogeo_cart_slot_device::rom_r(offs_t offset)
{
if (m_cart)
- return m_cart->rom_r(space, offset, mem_mask);
+ return m_cart->rom_r(offset);
else
return 0xffff;
}
@@ -345,20 +343,20 @@ READ16_MEMBER(neogeo_cart_slot_device::rom_r)
write_banksel
-------------------------------------------------*/
-WRITE16_MEMBER(neogeo_cart_slot_device::banksel_w)
+void neogeo_cart_slot_device::banksel_w(uint16_t data)
{
if (m_cart)
- m_cart->banksel_w(space, offset, data, mem_mask);
+ m_cart->banksel_w(data);
}
/*-------------------------------------------------
ram_r
-------------------------------------------------*/
-READ16_MEMBER(neogeo_cart_slot_device::ram_r)
+uint16_t neogeo_cart_slot_device::ram_r(offs_t offset)
{
if (m_cart)
- return m_cart->ram_r(space, offset, mem_mask);
+ return m_cart->ram_r(offset);
else
return 0xffff;
}
@@ -367,20 +365,20 @@ READ16_MEMBER(neogeo_cart_slot_device::ram_r)
ram_w
-------------------------------------------------*/
-WRITE16_MEMBER(neogeo_cart_slot_device::ram_w)
+void neogeo_cart_slot_device::ram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
if (m_cart)
- m_cart->ram_w(space, offset, data, mem_mask);
+ m_cart->ram_w(offset, data, mem_mask);
}
/*-------------------------------------------------
addon_r
-------------------------------------------------*/
-READ16_MEMBER(neogeo_cart_slot_device::addon_r)
+uint16_t neogeo_cart_slot_device::addon_r(offs_t offset)
{
if (m_cart)
- return m_cart->addon_r(space, offset, mem_mask);
+ return m_cart->addon_r(offset);
else
return 0xffff;
}
@@ -389,10 +387,10 @@ READ16_MEMBER(neogeo_cart_slot_device::addon_r)
protection_r
-------------------------------------------------*/
-READ16_MEMBER(neogeo_cart_slot_device::protection_r)
+uint16_t neogeo_cart_slot_device::protection_r(address_space &space, offs_t offset)
{
if (m_cart)
- return m_cart->protection_r(space, offset, mem_mask);
+ return m_cart->protection_r(space, offset);
else
return 0xffff;
}
@@ -401,8 +399,8 @@ READ16_MEMBER(neogeo_cart_slot_device::protection_r)
protection_w
-------------------------------------------------*/
-WRITE16_MEMBER(neogeo_cart_slot_device::protection_w)
+void neogeo_cart_slot_device::protection_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
if (m_cart)
- m_cart->protection_w(space, offset, data, mem_mask);
+ m_cart->protection_w(offset, data, mem_mask);
}