Skip to content

Commit f63332b

Browse files
[Access virus] RAM banking + small fix to knob assignment + knob maxstate=127 on .lay file (#14482)
1 parent 1b16df1 commit f63332b

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

src/mame/access/acvirus.cpp

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,11 @@ class acvirus_state : public driver_device
8787
acvirus_state(const machine_config &mconfig, device_type type, const char *tag) :
8888
driver_device(mconfig, type, tag),
8989
m_maincpu(*this, "maincpu"),
90+
m_banked_ram(*this, "banked_ram", 4 * 0x8000, ENDIANNESS_LITTLE),
9091
m_lcdc(*this, "lcdc"),
9192
m_dsp(*this, "dsp"),
9293
m_rombank(*this, "rombank"),
94+
m_rambank(*this, "rambank"),
9395
m_row(*this, "ROW%u", 0U),
9496
m_knob(*this, "knob_%u", 0U),
9597
m_leds(*this, "leds"),
@@ -110,9 +112,11 @@ class acvirus_state : public driver_device
110112

111113
private:
112114
required_device<sab80c535_device> m_maincpu;
115+
memory_share_creator<u8> m_banked_ram;
113116
required_device<hd44780_device> m_lcdc;
114117
required_device<dsp563xx_device> m_dsp;
115118
required_memory_bank m_rombank;
119+
required_memory_bank m_rambank;
116120
required_ioport_array<4> m_row;
117121

118122
void prog_map(address_map &map) ATTR_COLD;
@@ -146,6 +150,9 @@ void acvirus_state::machine_start()
146150
m_rombank->configure_entries(0, 16, memregion("maincpu")->base(), 0x8000);
147151
m_rombank->set_entry(3);
148152

153+
m_rambank->configure_entries(0, 4, m_banked_ram, 0x8000);
154+
m_rambank->set_entry(0);
155+
149156
save_item(NAME(m_scan));
150157
save_item(NAME(m_an_select));
151158
save_item(NAME(m_led_pattern));
@@ -190,6 +197,9 @@ void acvirus_state::p5_w(u8 data)
190197
{
191198
m_rombank->set_entry((data >> 4) & 15);
192199

200+
if (BIT(data, 3))
201+
m_rambank->set_entry((data >> 4) & 3);
202+
193203
m_scan = data & 15;
194204
m_leds->matrix(1 << m_scan, m_led_pattern);
195205
}
@@ -204,7 +214,7 @@ void acvirus_state::data_map(address_map &map)
204214
{
205215
map(0x0000, 0x7fff).ram();
206216
map(0x0400, 0x0407).rw(m_dsp, FUNC(dsp563xx_device::hi08_r), FUNC(dsp563xx_device::hi08_w));
207-
map(0x8000, 0xffff).ram(); // TODO: RAM banks
217+
map(0x8000, 0xffff).bankrw(m_rambank);
208218
}
209219

210220
void acvirus_state::dsp_p_map(address_map &map)
@@ -377,10 +387,10 @@ INPUT_PORTS_START( virusa_knobs )
377387
PORT_ADJUSTER(64, "Osc 2: Wave/PW") PORT_MINMAX(0, 127)
378388

379389
PORT_START("knob_9")
380-
PORT_ADJUSTER(64, "Osc 2 Semitone") PORT_MINMAX(0, 127)
390+
PORT_ADJUSTER(64, "Osc 2 Detune") PORT_MINMAX(0, 127)
381391

382392
PORT_START("knob_10")
383-
PORT_ADJUSTER(64, "Osc 2 Detune") PORT_MINMAX(0, 127)
393+
PORT_ADJUSTER(64, "Osc 2 Semitone") PORT_MINMAX(0, 127)
384394

385395
PORT_START("knob_11")
386396
PORT_ADJUSTER(64, "Osc 2 FM Amount") PORT_MINMAX(0, 127)

src/mame/layout/virusb.lay

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ license:CC0-1.0
6464
<element name="transparent"><rect><color red="0.0" green="0.0" blue="0.0" alpha="0.0"/></rect></element>
6565
<element name="knob_outer"><disk><color red="0.0" green="0.0" blue="0.0" alpha="0.0"/></disk></element>
6666
<element name="knob_value">
67-
<simplecounter maxstate="100" digits="1"><color red="0.8" green="0.8" blue="0.8"/></simplecounter>
67+
<simplecounter maxstate="127" digits="1"><color red="0.8" green="0.8" blue="0.8"/></simplecounter>
6868
</element>
6969
<group name="knob">
7070
<element ref="knob_outer" id="knob_~knob_input~"><bounds x="0" y="0" width="68" height="68"/></element>

0 commit comments

Comments
 (0)