diff options
| author | 2012-09-16 11:11:29 +0000 | |
|---|---|---|
| committer | 2012-09-16 11:11:29 +0000 | |
| commit | 3361d9e4dd3da3f564c820d4d482379c5441dd84 (patch) | |
| tree | e8f52216653853ee16e8274acfab18da9f00460b /src | |
| parent | 96ebed6493073be4ea3a4281a3bfb01a131f7835 (diff) | |
heavymtl: saving my work so far
Diffstat (limited to 'src')
| -rw-r--r-- | src/mame/drivers/rowamet.c | 57 | ||||
| -rw-r--r-- | src/mame/layout/rowamet.lay | 38 |
2 files changed, 50 insertions, 45 deletions
diff --git a/src/mame/drivers/rowamet.c b/src/mame/drivers/rowamet.c index 11293e1a93e..c316f0d313a 100644 --- a/src/mame/drivers/rowamet.c +++ b/src/mame/drivers/rowamet.c @@ -5,6 +5,11 @@ PinMAME used as reference (couldn't find a manual) +ToDO: +- Inputs +- Outputs +- Fix display +- Doesn't boot properly *************************************************************************************/ @@ -26,7 +31,11 @@ public: DECLARE_READ8_MEMBER(sound_r); DECLARE_READ8_MEMBER(switch_r); DECLARE_WRITE8_MEMBER(mute_w); + DECLARE_READ8_MEMBER(io_r); + DECLARE_WRITE8_MEMBER(io_w); UINT8 m_out_offs; + UINT8 m_sndcmd; + UINT8 m_io[16]; required_device<cpu_device> m_maincpu; required_device<cpu_device> m_cpu2; required_shared_ptr<UINT8> m_p_ram; @@ -46,7 +55,10 @@ public: static ADDRESS_MAP_START( rowamet_map, AS_PROGRAM, 8, rowamet_state ) AM_RANGE(0x0000, 0x1fff) AM_ROM AM_RANGE(0x2800, 0x2808) AM_READ(switch_r) - AM_RANGE(0x4000, 0x40ff) AM_RAM AM_SHARE("ram") + AM_RANGE(0x4000, 0x407f) AM_RAM + AM_RANGE(0x4080, 0x408f) AM_RAM AM_SHARE("ram") + AM_RANGE(0x4090, 0x409f) AM_READWRITE(io_r,io_w) + AM_RANGE(0x40a0, 0x40ff) AM_RAM ADDRESS_MAP_END static ADDRESS_MAP_START( rowamet_sub_map, AS_PROGRAM, 8, rowamet_state ) @@ -66,7 +78,7 @@ INPUT_PORTS_END READ8_MEMBER( rowamet_state::sound_r ) { - return (m_p_ram[0x92] >> 4) | (m_p_ram[0x93] & 0xf0); + return m_sndcmd; } READ8_MEMBER( rowamet_state::switch_r ) @@ -77,10 +89,28 @@ READ8_MEMBER( rowamet_state::switch_r ) WRITE8_MEMBER( rowamet_state::mute_w ) { machine().sound().system_enable(~data); - printf("%X ",data); } -//m_cpu2->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); +READ8_MEMBER( rowamet_state::io_r ) +{ + return m_io[offset]; +} + +WRITE8_MEMBER( rowamet_state::io_w ) +{ + m_io[offset] = data; + + if (offset == 2) + { + UINT8 cmd = (m_io[2]>>4) | (m_io[3] & 0xf0); + if (cmd != m_sndcmd) + { + m_sndcmd = cmd; + machine().device("cpu2")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); + } + } +} + void rowamet_state::machine_reset() { } @@ -93,22 +123,11 @@ static TIMER_DEVICE_CALLBACK( rowamet_timer ) { static const UINT8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0, 0, 0, 0, 0, 0 }; rowamet_state *state = timer.machine().driver_data<rowamet_state>(); - state->m_out_offs++; - if (state->m_out_offs > 0x9f) - state->m_out_offs = 0x80; + state->m_out_offs &= 15; - if (state->m_out_offs < 0x90) - { - UINT8 digit = state->m_out_offs << 1; - output_set_digit_value(digit, patterns[state->m_p_ram[state->m_out_offs]>>4]); - output_set_digit_value(++digit, patterns[state->m_p_ram[state->m_out_offs]&15]); - } - //else - //if (state->m_out_offs == 0x90) - // timer.machine().device("maincpu")->execute().set_input_line(0, HOLD_LINE); - //else - //if (state->m_out_offs == 0x9f) - // timer.machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE); + UINT8 digit = state->m_out_offs << 1; + output_set_digit_value(digit, patterns[state->m_p_ram[state->m_out_offs]>>4]); + output_set_digit_value(++digit, patterns[state->m_p_ram[state->m_out_offs++]&15]); } static MACHINE_CONFIG_START( rowamet, rowamet_state ) diff --git a/src/mame/layout/rowamet.lay b/src/mame/layout/rowamet.lay index 5c8a9996db3..39fd1c49127 100644 --- a/src/mame/layout/rowamet.lay +++ b/src/mame/layout/rowamet.lay @@ -16,13 +16,14 @@ <color red="0.0" green="0.0" blue="0.0" /> </rect> </element> - <element name="P0"><text string="Balls"><color red="1.0" green="1.0" blue="1.0" /></text></element> + <element name="P0"><text string="Ball"><color red="1.0" green="1.0" blue="1.0" /></text></element> <element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element> <element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element> <element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element> <element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element> <element name="P6"><text string="Player 4"><color red="1.0" green="1.0" blue="1.0" /></text></element> - <element name="P7"><text string="High Score"><color red="1.0" green="1.0" blue="1.0" /></text></element> + <element name="P7"><text string="Match"><color red="1.0" green="1.0" blue="1.0" /></text></element> + <element name="P8"><text string="Player"><color red="1.0" green="1.0" blue="1.0" /></text></element> <view name="Default Layout"> @@ -114,39 +115,23 @@ <bounds left="230" top="225" right="264" bottom="264" /> </bezel> - <!-- High Score --> - <bezel name="digit24" element="digit"> + <!-- Player --> + <bezel name="digit27" element="digit"> <bounds left="10" top="285" right="44" bottom="324" /> </bezel> - <bezel name="digit25" element="digit"> - <bounds left="54" top="285" right="88" bottom="324" /> - </bezel> + + <!-- Match --> <bezel name="digit26" element="digit"> - <bounds left="98" top="285" right="132" bottom="324" /> - </bezel> - <bezel name="digit27" element="digit"> - <bounds left="142" top="285" right="176" bottom="324" /> - </bezel> - <bezel name="digit28" element="digit"> - <bounds left="186" top="285" right="220" bottom="324" /> - </bezel> - <bezel name="digit29" element="digit"> <bounds left="230" top="285" right="264" bottom="324" /> </bezel> <!-- Credits --> - <bezel name="digit30" element="digit"> + <bezel name="digit25" element="digit"> <bounds left="10" top="345" right="44" bottom="384" /> </bezel> - <bezel name="digit31" element="digit"> - <bounds left="54" top="345" right="88" bottom="384" /> - </bezel> - <!-- Match / Balls Left --> - <bezel name="digit32" element="digit"> - <bounds left="186" top="345" right="220" bottom="384" /> - </bezel> - <bezel name="digit33" element="digit"> + <!-- Ball --> + <bezel name="digit24" element="digit"> <bounds left="230" top="345" right="264" bottom="384" /> </bezel> <bezel element="P0"><bounds left="200" right="258" top="330" bottom="342" /></bezel> @@ -155,6 +140,7 @@ <bezel element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel> <bezel element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel> <bezel element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel> - <bezel element="P7"><bounds left="100" right="180" top="270" bottom="282" /></bezel> + <bezel element="P7"><bounds left="200" right="258" top="270" bottom="282" /></bezel> + <bezel element="P8"><bounds left="30" right="88" top="270" bottom="282" /></bezel> </view> </mamelayout> |
