From 6021e3ec9ad3b1c898d9a671a5c97d835c4b6812 Mon Sep 17 00:00:00 2001 From: Felipe Correa da Silva Sanches Date: Tue, 4 Nov 2025 04:06:11 -0300 Subject: [PATCH 1/3] [Access Virus B] Fix small mistake in assignment of knobs --- src/mame/access/acvirus.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mame/access/acvirus.cpp b/src/mame/access/acvirus.cpp index d88618d3e745b..cb6a79a2051ac 100644 --- a/src/mame/access/acvirus.cpp +++ b/src/mame/access/acvirus.cpp @@ -377,10 +377,10 @@ INPUT_PORTS_START( virusa_knobs ) PORT_ADJUSTER(64, "Osc 2: Wave/PW") PORT_MINMAX(0, 127) PORT_START("knob_9") - PORT_ADJUSTER(64, "Osc 2 Semitone") PORT_MINMAX(0, 127) + PORT_ADJUSTER(64, "Osc 2 Detune") PORT_MINMAX(0, 127) PORT_START("knob_10") - PORT_ADJUSTER(64, "Osc 2 Detune") PORT_MINMAX(0, 127) + PORT_ADJUSTER(64, "Osc 2 Semitone") PORT_MINMAX(0, 127) PORT_START("knob_11") PORT_ADJUSTER(64, "Osc 2 FM Amount") PORT_MINMAX(0, 127) From bdc1085b417d5653507f0f9eb46935f94413bba2 Mon Sep 17 00:00:00 2001 From: Felipe Correa da Silva Sanches Date: Tue, 4 Nov 2025 04:24:18 -0300 Subject: [PATCH 2/3] [Access Virus B] layout: Fix simplecounter maxstate value. Following suggestion by @m1macrophage at https://github.com/mamedev/mame/pull/14461#pullrequestreview-3409076859 --- src/mame/layout/virusb.lay | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mame/layout/virusb.lay b/src/mame/layout/virusb.lay index eaa737cebebb3..2b90414d882a0 100644 --- a/src/mame/layout/virusb.lay +++ b/src/mame/layout/virusb.lay @@ -64,7 +64,7 @@ license:CC0-1.0 - + From 86a39743c6ce0a7b4d5909ccc0fedacd0635e041 Mon Sep 17 00:00:00 2001 From: Felipe Correa da Silva Sanches Date: Tue, 4 Nov 2025 04:05:36 -0300 Subject: [PATCH 3/3] [Access Virus] Implement RAM banking --- src/mame/access/acvirus.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/mame/access/acvirus.cpp b/src/mame/access/acvirus.cpp index cb6a79a2051ac..744559b1f0a97 100644 --- a/src/mame/access/acvirus.cpp +++ b/src/mame/access/acvirus.cpp @@ -87,9 +87,11 @@ class acvirus_state : public driver_device acvirus_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), + m_banked_ram(*this, "banked_ram", 4 * 0x8000, ENDIANNESS_LITTLE), m_lcdc(*this, "lcdc"), m_dsp(*this, "dsp"), m_rombank(*this, "rombank"), + m_rambank(*this, "rambank"), m_row(*this, "ROW%u", 0U), m_knob(*this, "knob_%u", 0U), m_leds(*this, "leds"), @@ -110,9 +112,11 @@ class acvirus_state : public driver_device private: required_device m_maincpu; + memory_share_creator m_banked_ram; required_device m_lcdc; required_device m_dsp; required_memory_bank m_rombank; + required_memory_bank m_rambank; required_ioport_array<4> m_row; void prog_map(address_map &map) ATTR_COLD; @@ -146,6 +150,9 @@ void acvirus_state::machine_start() m_rombank->configure_entries(0, 16, memregion("maincpu")->base(), 0x8000); m_rombank->set_entry(3); + m_rambank->configure_entries(0, 4, m_banked_ram, 0x8000); + m_rambank->set_entry(0); + save_item(NAME(m_scan)); save_item(NAME(m_an_select)); save_item(NAME(m_led_pattern)); @@ -190,6 +197,9 @@ void acvirus_state::p5_w(u8 data) { m_rombank->set_entry((data >> 4) & 15); + if (BIT(data, 3)) + m_rambank->set_entry((data >> 4) & 3); + m_scan = data & 15; m_leds->matrix(1 << m_scan, m_led_pattern); } @@ -204,7 +214,7 @@ void acvirus_state::data_map(address_map &map) { map(0x0000, 0x7fff).ram(); map(0x0400, 0x0407).rw(m_dsp, FUNC(dsp563xx_device::hi08_r), FUNC(dsp563xx_device::hi08_w)); - map(0x8000, 0xffff).ram(); // TODO: RAM banks + map(0x8000, 0xffff).bankrw(m_rambank); } void acvirus_state::dsp_p_map(address_map &map)