diff options
author | 2022-05-12 23:31:36 -0800 | |
---|---|---|
committer | 2022-05-13 17:31:36 +1000 | |
commit | fcf0540fdcb20cb261f726df3407b3ab5f0e5128 (patch) | |
tree | 03b826b4bd31ef2d0a09f765d148c67adc0d2f8c /src/devices/bus/nes/konami.cpp | |
parent | 72a70602d7efc1239257a8dce9f98b6325aa8fbc (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.cpp | 15 |
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; } |