mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
neogeo/neogeo.cpp: Hooked up memory card bank register.
This commit is contained in:
parent
92ae20be98
commit
a0b859e452
@ -925,15 +925,20 @@ CUSTOM_INPUT_MEMBER(ngarcade_base_state::startsel_edge_joy_r)
|
||||
|
||||
void neogeo_base_state::io_control_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
if ((offset & 0x38) == 0x00) // TODO: the mask is supposedly less restrictive on AES?
|
||||
switch (offset & 0x38) // TODO: the mask is supposedly less restrictive on AES?
|
||||
{
|
||||
case 0x00:
|
||||
if (m_ctrl1) m_ctrl1->write_ctrlsel(data & 0x07);
|
||||
if (m_ctrl2) m_ctrl2->write_ctrlsel((data >> 3) & 0x07);
|
||||
if (m_edge) m_edge->write_ctrlsel(data & 0x3f); // FIXME: only MV-1B and MV-1C have this output
|
||||
}
|
||||
else
|
||||
{
|
||||
logerror("PC: %x Unmapped I/O control write. Offset: %x Data: %x\n", m_maincpu->pc(), offset, data);
|
||||
break;
|
||||
|
||||
case 0x08:
|
||||
m_card_bank = data & 0x07;
|
||||
break;
|
||||
|
||||
default:
|
||||
logerror("%s: Unmapped I/O control write. Offset: %02x Data: %02x\n", machine().describe_context(), offset, data);
|
||||
}
|
||||
}
|
||||
|
||||
@ -942,6 +947,7 @@ void ngarcade_base_state::io_control_w(offs_t offset, uint8_t data)
|
||||
switch (offset & 0x78)
|
||||
{
|
||||
case 0x00:
|
||||
case 0x08:
|
||||
neogeo_base_state::io_control_w(offset, data);
|
||||
break;
|
||||
|
||||
@ -960,7 +966,7 @@ void ngarcade_base_state::io_control_w(offs_t offset, uint8_t data)
|
||||
break;
|
||||
|
||||
default:
|
||||
logerror("PC: %x Unmapped I/O control write. Offset: %x Data: %x\n", m_maincpu->pc(), offset, data);
|
||||
logerror("%s: Unmapped I/O control write. Offset: %02x Data: %02x\n", machine().describe_context(), offset, data);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1065,7 +1071,7 @@ uint16_t neogeo_base_state::memcard_r(offs_t offset, uint16_t mem_mask)
|
||||
|
||||
// memory card enabled by /UDS
|
||||
if (ACCESSING_BITS_8_15 && m_memcard->present())
|
||||
return m_memcard->read(offset);
|
||||
return m_memcard->read((offs_t(m_card_bank) << 21) | offset);
|
||||
else
|
||||
return 0xffff;
|
||||
}
|
||||
@ -1077,7 +1083,7 @@ void neogeo_base_state::memcard_w(offs_t offset, uint16_t data, uint16_t mem_mas
|
||||
|
||||
// memory card enabled by /UDS
|
||||
if (ACCESSING_BITS_8_15 && m_memcard->present())
|
||||
m_memcard->write(offset, data);
|
||||
m_memcard->write((offs_t(m_card_bank) << 21) | offset, data);
|
||||
}
|
||||
|
||||
/*************************************
|
||||
@ -1559,6 +1565,7 @@ void neogeo_base_state::machine_start()
|
||||
save_item(NAME(m_bank_base));
|
||||
save_item(NAME(m_use_cart_vectors));
|
||||
save_item(NAME(m_use_cart_audio));
|
||||
save_item(NAME(m_card_bank));
|
||||
}
|
||||
|
||||
void ngarcade_base_state::machine_start()
|
||||
|
@ -66,8 +66,6 @@ protected:
|
||||
, m_edge(*this, "edge")
|
||||
, m_ctrl1(*this, "ctrl1")
|
||||
, m_ctrl2(*this, "ctrl2")
|
||||
, m_use_cart_vectors(0)
|
||||
, m_use_cart_audio(0)
|
||||
, m_slots(*this, "cslot%u", 1U)
|
||||
, m_audionmi(*this, "audionmi")
|
||||
{ }
|
||||
@ -158,8 +156,9 @@ protected:
|
||||
uint8_t m_vblank_level = 0;
|
||||
uint8_t m_raster_level = 0;
|
||||
|
||||
int m_use_cart_vectors = 0;
|
||||
int m_use_cart_audio = 0;
|
||||
uint8_t m_use_cart_vectors = 0;
|
||||
uint8_t m_use_cart_audio = 0;
|
||||
uint8_t m_card_bank = 0;
|
||||
|
||||
void set_slot_idx(int slot);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user