summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/nes/konami.cpp
diff options
context:
space:
mode:
author 0kmg <9137159+0kmg@users.noreply.github.com>2022-05-12 23:31:36 -0800
committer GitHub <noreply@github.com>2022-05-13 17:31:36 +1000
commitfcf0540fdcb20cb261f726df3407b3ab5f0e5128 (patch)
tree03b826b4bd31ef2d0a09f765d148c67adc0d2f8c /src/devices/bus/nes/konami.cpp
parent72a70602d7efc1239257a8dce9f98b6325aa8fbc (diff)
bus/nes: Various minor cleanups. (#9641)
* MMC1: Made mirroring bits overridable for derivative boards. Also removed code for rumored MMC1C variant. * Moved various boards' hardwired mirroring from pcb_reset() to the software list. * Removed redundant banking of VRAM for non-banking boards and redundant variable setting.
Diffstat (limited to 'src/devices/bus/nes/konami.cpp')
-rw-r--r--src/devices/bus/nes/konami.cpp15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/devices/bus/nes/konami.cpp b/src/devices/bus/nes/konami.cpp
index c35f4caed33..ae7c30dcb9b 100644
--- a/src/devices/bus/nes/konami.cpp
+++ b/src/devices/bus/nes/konami.cpp
@@ -95,7 +95,6 @@ void nes_konami_vrc1_device::device_start()
void nes_konami_vrc1_device::pcb_reset()
{
- m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM;
prg16_89ab(0);
prg16_cdef(m_prg_chunks - 1);
chr8(0, m_chr_source);
@@ -112,7 +111,6 @@ void nes_konami_vrc2_device::device_start()
void nes_konami_vrc2_device::pcb_reset()
{
- m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM;
prg16_89ab(0);
prg16_cdef(m_prg_chunks - 1);
chr8(0, m_chr_source);
@@ -136,7 +134,6 @@ void nes_konami_vrc3_device::device_start()
void nes_konami_vrc3_device::pcb_reset()
{
- m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM;
prg16_89ab(0);
prg16_cdef(m_prg_chunks - 1);
chr8(0, m_chr_source);
@@ -251,10 +248,8 @@ u8 nes_konami_vrc2_device::read_m(offs_t offset)
{
LOG_MMC(("VRC-2 read_m, offset: %04x\n", offset));
- if (!m_battery.empty())
- return m_battery[offset & (m_battery.size() - 1)];
- else if (!m_prgram.empty())
- return m_prgram[offset & (m_prgram.size() - 1)];
+ if (!m_battery.empty() || !m_prgram.empty())
+ return device_nes_cart_interface::read_m(offset);
else // VRC2 was planned with EEPROM support; the non-working feature behaves as a vestigial 1-bit latch in $6000-$6fff on certain boards (contraj, ggoemon2 depend on this)
return (offset < 0x1000) ? (get_open_bus() & 0xfe) | (m_latch & 1) : get_open_bus();
}
@@ -263,10 +258,8 @@ void nes_konami_vrc2_device::write_m(offs_t offset, u8 data)
{
LOG_MMC(("VRC-2 write_m, offset: %04x, data: %02x\n", offset, data));
- if (!m_battery.empty())
- m_battery[offset & (m_battery.size() - 1)] = data;
- else if (!m_prgram.empty())
- m_prgram[offset & (m_prgram.size() - 1)] = data;
+ if (!m_battery.empty() || !m_prgram.empty())
+ device_nes_cart_interface::write_m(offset, data);
else if (offset < 0x1000)
m_latch = data;
}