diff options
author | 2017-12-07 02:44:50 +0100 | |
---|---|---|
committer | 2017-12-07 02:45:18 +0100 | |
commit | 76bd4b9b3f5d8ea288307657f11fb82ae8d61a7f (patch) | |
tree | b122775f3d614f4e6fdc172c98340d6e5886ddc3 | |
parent | 46edbee6ed30c8a6cb16acb5c833d467117917c4 (diff) |
New working machines
-----------
Gakken Invader 2000 [hap, Sean Riddle]
-rw-r--r-- | src/devices/cpu/tms1000/tms1100.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/hh_hmcs40.cpp | 124 | ||||
-rw-r--r-- | src/mame/drivers/hh_melps4.cpp | 8 | ||||
-rw-r--r-- | src/mame/drivers/hh_sm510.cpp | 12 | ||||
-rw-r--r-- | src/mame/drivers/hh_tms1k.cpp | 165 | ||||
-rw-r--r-- | src/mame/drivers/hh_ucom4.cpp | 78 | ||||
-rw-r--r-- | src/mame/mame.lst | 1 |
7 files changed, 271 insertions, 119 deletions
diff --git a/src/devices/cpu/tms1000/tms1100.cpp b/src/devices/cpu/tms1000/tms1100.cpp index 8f329a3c725..9f654009bbe 100644 --- a/src/devices/cpu/tms1000/tms1100.cpp +++ b/src/devices/cpu/tms1000/tms1100.cpp @@ -18,7 +18,7 @@ DEFINE_DEVICE_TYPE(TMS1100, tms1100_cpu_device, "tms1100", "TMS1100") // 28-pin DIP, 11 R pins DEFINE_DEVICE_TYPE(TMS1170, tms1170_cpu_device, "tms1170", "TMS1170") // high voltage version DEFINE_DEVICE_TYPE(TMS1300, tms1300_cpu_device, "tms1300", "TMS1300") // 40-pin DIP, 16 R pins -DEFINE_DEVICE_TYPE(TMS1370, tms1370_cpu_device, "tms1370", "TMS1370") // high voltage version +DEFINE_DEVICE_TYPE(TMS1370, tms1370_cpu_device, "tms1370", "TMS1370") // high voltage version, also seen in 28-pin package(some O/R pins unavailable) // internal memory maps diff --git a/src/mame/drivers/hh_hmcs40.cpp b/src/mame/drivers/hh_hmcs40.cpp index 3888a877904..8d6dddefe55 100644 --- a/src/mame/drivers/hh_hmcs40.cpp +++ b/src/mame/drivers/hh_hmcs40.cpp @@ -85,7 +85,7 @@ On MAME they will show with full brightness, see eg. building explosions. Currently there's a workaround in place. - bzaxxon 3D effect is difficult to simulate - - improve SVGs of bzaxxon, bpengo, bbtime + - improve/redo SVGs of: bzaxxon, bpengo, bbtime ***************************************************************************/ @@ -370,7 +370,7 @@ public: WRITE8_MEMBER(bambball_state::plate_w) { - // R1x-R3x(,D0-D3): vfd matrix plate + // R1x-R3x(,D0-D3): vfd plate int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); @@ -387,7 +387,7 @@ WRITE16_MEMBER(bambball_state::grid_w) // D7-D10: input mux m_inp_mux = data >> 7 & 0xf; - // D7-D15: vfd matrix grid + // D7-D15: vfd grid m_grid = data >> 7 & 0x1ff; // D0-D3: more plates (update display there) @@ -491,7 +491,7 @@ void bmboxing_state::prepare_display() WRITE8_MEMBER(bmboxing_state::plate_w) { - // R1x-R3x: vfd matrix plate + // R1x-R3x: vfd plate int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -505,7 +505,7 @@ WRITE16_MEMBER(bmboxing_state::grid_w) // D9-D12: input mux m_inp_mux = data >> 9 & 0xf; - // D4-D12: vfd matrix grid + // D4-D12: vfd grid m_grid = data >> 4 & 0x1ff; prepare_display(); } @@ -630,7 +630,7 @@ void bfriskyt_state::prepare_display() WRITE8_MEMBER(bfriskyt_state::plate_w) { - // R0x-R3x: vfd matrix plate + // R0x-R3x: vfd plate int shift = offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -649,7 +649,7 @@ WRITE16_MEMBER(bfriskyt_state::grid_w) update_int1(); } - // D8-D15: vfd matrix grid + // D8-D15: vfd grid m_grid = data >> 8 & 0xff; // D0-D5: more plates @@ -750,7 +750,7 @@ public: WRITE8_MEMBER(packmon_state::plate_w) { - // R0x-R3x(,D0-D3): vfd matrix plate + // R0x-R3x(,D0-D3): vfd plate int shift = offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); @@ -768,7 +768,7 @@ WRITE16_MEMBER(packmon_state::grid_w) // D11-D15: input mux m_inp_mux = data >> 11 & 0x1f; - // D6-D15: vfd matrix grid + // D6-D15: vfd grid m_grid = data >> 6 & 0x3ff; // D0-D3: plate 9-12 (update display there) @@ -872,7 +872,7 @@ void msthawk_state::prepare_display() WRITE8_MEMBER(msthawk_state::plate_w) { - // R0x-R3x: vfd matrix plate + // R0x-R3x: vfd plate int shift = offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -891,7 +891,7 @@ WRITE16_MEMBER(msthawk_state::grid_w) update_int0(); } - // D6-D15: vfd matrix grid + // D6-D15: vfd grid m_grid = data >> 6 & 0x3ff; // D0-D4: more plates @@ -992,7 +992,7 @@ public: WRITE8_MEMBER(bzaxxon_state::plate_w) { - // R0x-R3x(,D0-D2): vfd matrix plate + // R0x-R3x(,D0-D2): vfd plate int shift = offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); @@ -1015,7 +1015,7 @@ WRITE16_MEMBER(bzaxxon_state::grid_w) update_int1(); } - // D5-D15: vfd matrix grid + // D5-D15: vfd grid m_grid = data >> 5 & 0x7ff; // D0-D2: plate 7-9 (update display there) @@ -1112,7 +1112,7 @@ public: WRITE8_MEMBER(zackman_state::plate_w) { - // R0x-R6x(,D0,D1): vfd matrix plate + // R0x-R6x(,D0,D1): vfd plate int shift = offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); @@ -1135,7 +1135,7 @@ WRITE16_MEMBER(zackman_state::grid_w) update_int0(); } - // D8-D15: vfd matrix grid + // D8-D15: vfd grid m_grid = data >> 8 & 0xff; // D0,D1: plate 12,13 (update display there) @@ -1239,7 +1239,7 @@ void bpengo_state::prepare_display() WRITE8_MEMBER(bpengo_state::plate_w) { - // R0x-R6x: vfd matrix plate + // R0x-R6x: vfd plate int shift = offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -1258,7 +1258,7 @@ WRITE16_MEMBER(bpengo_state::grid_w) update_int0(); } - // D0-D7: vfd matrix grid + // D0-D7: vfd grid m_grid = data & 0xff; prepare_display(); } @@ -1367,7 +1367,7 @@ void bbtime_state::prepare_display() WRITE8_MEMBER(bbtime_state::plate_w) { - // R0x-R6x: vfd matrix plate + // R0x-R6x: vfd plate int shift = offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -1386,7 +1386,7 @@ WRITE16_MEMBER(bbtime_state::grid_w) update_int0(); } - // D4-D9: vfd matrix grid + // D4-D9: vfd grid m_grid = data >> 4 & 0x3f; prepare_display(); } @@ -1480,7 +1480,7 @@ public: WRITE8_MEMBER(bdoramon_state::plate_w) { - // R0x-R3x(,D0-D3): vfd matrix plate + // R0x-R3x(,D0-D3): vfd plate int shift = offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); @@ -1495,7 +1495,7 @@ WRITE16_MEMBER(bdoramon_state::grid_w) // D7: speaker out m_speaker->level_w(data >> 7 & 1); - // D8-D15: vfd matrix grid + // D8-D15: vfd grid m_grid = data >> 8 & 0xff; // D0-D3: plate 15-18 (update display there) @@ -1579,7 +1579,7 @@ public: WRITE8_MEMBER(bultrman_state::plate_w) { - // R0x-R3x(,D0-D2): vfd matrix plate + // R0x-R3x(,D0-D2): vfd plate int shift = offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); @@ -1594,7 +1594,7 @@ WRITE16_MEMBER(bultrman_state::grid_w) // D7: speaker out m_speaker->level_w(data >> 7 & 1); - // D8-D15: vfd matrix grid + // D8-D15: vfd grid m_grid = data >> 8 & 0xff; // D0-D2: plate 15-17 (update display there) @@ -1678,7 +1678,7 @@ void machiman_state::prepare_display() WRITE8_MEMBER(machiman_state::plate_w) { - // R0x-R3x,R6012: vfd matrix plate + // R0x-R3x,R6012: vfd plate int shift = (offset == hmcs40_cpu_device::PORT_R6X) ? 16 : offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -1689,7 +1689,7 @@ WRITE16_MEMBER(machiman_state::grid_w) // D13: speaker out m_speaker->level_w(data >> 13 & 1); - // D0-D4: vfd matrix grid + // D0-D4: vfd grid m_grid = data & 0x1f; prepare_display(); } @@ -1771,7 +1771,7 @@ public: WRITE8_MEMBER(pairmtch_state::plate_w) { - // R2x,R3x,R6x: vfd matrix plate + // R2x,R3x,R6x: vfd plate int shift = (offset == hmcs40_cpu_device::PORT_R6X) ? 8 : (offset-2) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); display_matrix(12, 6, m_plate, m_grid); @@ -1788,7 +1788,7 @@ WRITE16_MEMBER(pairmtch_state::grid_w) // D10,D15: input mux m_inp_mux = (data >> 10 & 1) | (data >> 14 & 2); - // D0-D5: vfd matrix grid + // D0-D5: vfd grid m_grid = data & 0x3f; display_matrix(12, 6, m_plate, m_grid); } @@ -1919,7 +1919,7 @@ public: WRITE8_MEMBER(alnattck_state::plate_w) { - // R0x-R3x(,D0-D3): vfd matrix plate + // R0x-R3x(,D0-D3): vfd plate int shift = offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); @@ -1936,7 +1936,7 @@ WRITE16_MEMBER(alnattck_state::grid_w) // D7-D13: input mux m_inp_mux = data >> 7 & 0x7f; - // D6-D15: vfd matrix grid + // D6-D15: vfd grid m_grid = data >> 6 & 0x3ff; // D0-D3: plate 16-19 (update display there) @@ -2064,7 +2064,7 @@ WRITE8_MEMBER(cdkong_state::plate_w) m_r[offset] = data; speaker_decay_reset(); - // R0x-R6x: vfd matrix plate + // R0x-R6x: vfd plate int shift = offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -2075,7 +2075,7 @@ WRITE16_MEMBER(cdkong_state::grid_w) // D3: speaker out m_speaker->level_w(data >> 3 & 1); - // D4-D14: vfd matrix grid + // D4-D14: vfd grid m_grid = data >> 4 & 0x7ff; prepare_display(); } @@ -2183,7 +2183,7 @@ WRITE8_MEMBER(cgalaxn_state::grid_w) if (offset == hmcs40_cpu_device::PORT_R1X) m_inp_mux = data & 3; - // R1x-R3x: vfd matrix grid + // R1x-R3x: vfd grid int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -2196,7 +2196,7 @@ WRITE16_MEMBER(cgalaxn_state::plate_w) // D1: start alien attack whine sound effect (edge triggered) - // D2-D15: vfd matrix plate + // D2-D15: vfd plate m_plate = (m_plate & 0x4000) | (data >> 2 & 0x3fff); prepare_display(); } @@ -2302,7 +2302,7 @@ public: WRITE8_MEMBER(cpacman_state::plate_w) { - // R1x-R6x(,D1,D2): vfd matrix plate + // R1x-R6x(,D1,D2): vfd plate int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); @@ -2320,7 +2320,7 @@ WRITE16_MEMBER(cpacman_state::grid_w) // D13-D15: input mux m_inp_mux = data >> 13 & 7; - // D5-D15: vfd matrix grid + // D5-D15: vfd grid m_grid = data >> 5 & 0x7ff; // D1,D2: plate 8,14 (update display there) @@ -2419,7 +2419,7 @@ public: WRITE8_MEMBER(cmspacmn_state::plate_w) { - // R1x-R6x(,D0,D1): vfd matrix plate + // R1x-R6x(,D0,D1): vfd plate int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); @@ -2437,7 +2437,7 @@ WRITE16_MEMBER(cmspacmn_state::grid_w) // D13-D15: input mux m_inp_mux = data >> 13 & 7; - // D5-D15: vfd matrix grid + // D5-D15: vfd grid m_grid = data >> 5 & 0x7ff; // D0,D1: more plates (update display there) @@ -2550,7 +2550,7 @@ void sag_state::prepare_display() WRITE8_MEMBER(sag_state::plate_w) { - // R0x-R3x: vfd matrix plate + // R0x-R3x: vfd plate int shift = offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -2564,7 +2564,7 @@ WRITE16_MEMBER(sag_state::grid_w) // D2-D7: input mux m_inp_mux = data >> 2 & 0x3f; - // D1-D12: vfd matrix grid + // D1-D12: vfd grid m_grid = data >> 1 & 0xfff; prepare_display(); } @@ -2683,14 +2683,14 @@ WRITE16_MEMBER(egalaxn2_state::grid_w) // D1-D4: input mux m_inp_mux = data >> 1 & 0xf; - // D1-D15: vfd matrix grid + // D1-D15: vfd grid m_grid = data >> 1 & 0x7fff; prepare_display(); } WRITE8_MEMBER(egalaxn2_state::plate_w) { - // R1x-R6x: vfd matrix plate + // R1x-R6x: vfd plate int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -2879,7 +2879,7 @@ WRITE8_MEMBER(eturtles_state::plate_w) { m_r[offset] = data; - // R0x-R6x: vfd matrix plate + // R0x-R6x: vfd plate int shift = offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -2897,7 +2897,7 @@ WRITE16_MEMBER(eturtles_state::grid_w) update_int(); } - // D1-D15: vfd matrix grid + // D1-D15: vfd grid m_grid = data >> 1 & 0x7fff; prepare_display(); } @@ -3161,7 +3161,7 @@ public: WRITE8_MEMBER(ghalien_state::plate_w) { - // R0x-R3x(,D10-D13): vfd matrix plate + // R0x-R3x(,D10-D13): vfd plate int shift = offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); @@ -3179,7 +3179,7 @@ WRITE16_MEMBER(ghalien_state::grid_w) // D0-D6: input mux m_inp_mux = data & 0x7f; - // D0-D9: vfd matrix grid + // D0-D9: vfd grid m_grid = data & 0x3ff; // D10-D13: more plates (update display there) @@ -3280,7 +3280,7 @@ public: WRITE8_MEMBER(gckong_state::plate_w) { - // R0x-R3x(,D0,D1): vfd matrix plate + // R0x-R3x(,D0,D1): vfd plate int shift = offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); @@ -3303,7 +3303,7 @@ WRITE16_MEMBER(gckong_state::grid_w) update_int1(); } - // D5-D15: vfd matrix grid + // D5-D15: vfd grid m_grid = data >> 5 & 0x7ff; // D0,D1: more plates (update display there) @@ -3403,7 +3403,7 @@ public: WRITE8_MEMBER(gdigdug_state::plate_w) { - // R0x-R6x(,D0-D3): vfd matrix plate + // R0x-R6x(,D0-D3): vfd plate int shift = offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); @@ -3425,7 +3425,7 @@ WRITE16_MEMBER(gdigdug_state::grid_w) update_int1(); } - // D7-D15: vfd matrix grid + // D7-D15: vfd grid m_grid = data >> 7 & 0x1ff; // D0-D3: more plates (update display there) @@ -3534,7 +3534,7 @@ void mwcbaseb_state::prepare_display() WRITE8_MEMBER(mwcbaseb_state::plate_w) { - // R1x-R3x,R6x: vfd matrix plate + // R1x-R3x,R6x: vfd plate int shift = (offset == hmcs40_cpu_device::PORT_R6X) ? 12 : (offset - hmcs40_cpu_device::PORT_R1X) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -3545,7 +3545,7 @@ WRITE16_MEMBER(mwcbaseb_state::grid_w) // D9-D15: input mux m_inp_mux = data >> 9 & 0x7f; - // D0-D7: vfd matrix grid + // D0-D7: vfd grid m_grid = data & 0xff; prepare_display(); } @@ -3683,7 +3683,7 @@ public: WRITE8_MEMBER(pbqbert_state::plate_w) { - // R0x-R6x(,D8): vfd matrix plate + // R0x-R6x(,D8): vfd plate int shift = offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); @@ -3697,7 +3697,7 @@ WRITE16_MEMBER(pbqbert_state::grid_w) // D14: speaker out m_speaker->level_w(data >> 14 & 1); - // D0-D7: vfd matrix grid + // D0-D7: vfd grid m_grid = data & 0xff; // D8: plate 25 (update display there) @@ -3783,7 +3783,7 @@ void kingman_state::prepare_display() WRITE8_MEMBER(kingman_state::plate_w) { - // R0x-R3x: vfd matrix plate + // R0x-R3x: vfd plate int shift = offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -3802,7 +3802,7 @@ WRITE16_MEMBER(kingman_state::grid_w) update_int0(); } - // D7-D15: vfd matrix grid + // D7-D15: vfd grid m_grid = data >> 7 & 0x1ff; // D0-D4: more plates @@ -3904,7 +3904,7 @@ void tmtron_state::prepare_display() WRITE8_MEMBER(tmtron_state::plate_w) { - // R0x-R3x: vfd matrix plate + // R0x-R3x: vfd plate int shift = offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -3923,7 +3923,7 @@ WRITE16_MEMBER(tmtron_state::grid_w) update_int1(); } - // D6-D15: vfd matrix grid + // D6-D15: vfd grid m_grid = data >> 6 & 0x3ff; // D0-D3,D5: more plates @@ -4018,7 +4018,7 @@ public: WRITE8_MEMBER(vinvader_state::plate_w) { - // R1x-R3x(,D4-D6): vfd matrix plate + // R1x-R3x(,D4-D6): vfd plate int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); @@ -4032,7 +4032,7 @@ WRITE16_MEMBER(vinvader_state::grid_w) // D0: speaker out m_speaker->level_w(data & 1); - // D7-D15: vfd matrix grid + // D7-D15: vfd grid m_grid = data >> 7 & 0x1ff; // D4-D6: more plates (update display there) @@ -4147,7 +4147,7 @@ ROM_START( bzaxxon ) ROM_CONTINUE( 0x1e80, 0x0100 ) ROM_REGION( 521080, "svg", 0) - ROM_LOAD( "bzaxxon.svg", 0, 521080, CRC(f4fbb2de) SHA1(83db400e67d91ae4bfee3e8568ae9df94ebede19) ) + ROM_LOAD( "bzaxxon.svg", 0, 521080, BAD_DUMP CRC(f4fbb2de) SHA1(83db400e67d91ae4bfee3e8568ae9df94ebede19) ) ROM_END @@ -4167,7 +4167,7 @@ ROM_START( bpengo ) ROM_CONTINUE( 0x1e80, 0x0100 ) ROM_REGION( 744461, "svg", 0) - ROM_LOAD( "bpengo.svg", 0, 744461, CRC(2b9abaa5) SHA1(c70a6ac1fa757fdd3ababfe6e00573ef1410c1eb) ) + ROM_LOAD( "bpengo.svg", 0, 744461, BAD_DUMP CRC(2b9abaa5) SHA1(c70a6ac1fa757fdd3ababfe6e00573ef1410c1eb) ) ROM_END @@ -4177,7 +4177,7 @@ ROM_START( bbtime ) ROM_CONTINUE( 0x1e80, 0x0100 ) ROM_REGION( 461605, "svg", 0) - ROM_LOAD( "bbtime.svg", 0, 461605, CRC(5b335271) SHA1(46c45b711358e8397ae707668aecead9e341ab8a) ) + ROM_LOAD( "bbtime.svg", 0, 461605, BAD_DUMP CRC(5b335271) SHA1(46c45b711358e8397ae707668aecead9e341ab8a) ) ROM_END diff --git a/src/mame/drivers/hh_melps4.cpp b/src/mame/drivers/hh_melps4.cpp index f233dc064d7..f5028008831 100644 --- a/src/mame/drivers/hh_melps4.cpp +++ b/src/mame/drivers/hh_melps4.cpp @@ -246,7 +246,7 @@ WRITE8_MEMBER(cfrogger_state::plate_w) if (offset == MELPS4_PORTF) m_inp_mux = data & 3; - // Sx,Fx,Gx: vfd matrix plate + // Sx,Fx,Gx: vfd plate int mask = (offset == MELPS4_PORTS) ? 0xff : 0xf; // port S is 8-bit int shift = (offset == MELPS4_PORTS) ? 0 : (offset + 1) * 4; m_plate = (m_plate & ~(mask << shift)) | (data << shift); @@ -255,7 +255,7 @@ WRITE8_MEMBER(cfrogger_state::plate_w) WRITE16_MEMBER(cfrogger_state::grid_w) { - // D0-D11: vfd matrix grid + // D0-D11: vfd grid m_grid = data; prepare_display(); } @@ -362,7 +362,7 @@ WRITE8_MEMBER(gjungler_state::plate_w) if (offset == MELPS4_PORTG) m_inp_mux = data & 3; - // Sx,Fx,Gx,U: vfd matrix plate + // Sx,Fx,Gx,U: vfd plate int mask = (offset == MELPS4_PORTS) ? 0xff : 0xf; // port S is 8-bit int shift = (offset == MELPS4_PORTS) ? 0 : (offset + 1) * 4; m_plate = (m_plate & ~(mask << shift)) | (data << shift); @@ -371,7 +371,7 @@ WRITE8_MEMBER(gjungler_state::plate_w) WRITE16_MEMBER(gjungler_state::grid_w) { - // D0-D11: vfd matrix grid + // D0-D11: vfd grid m_grid = data; prepare_display(); } diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp index c7637b3653e..6ee872aa1d6 100644 --- a/src/mame/drivers/hh_sm510.cpp +++ b/src/mame/drivers/hh_sm510.cpp @@ -11,7 +11,7 @@ MAME external artwork is recommended for the backgrounds inlays. TODO: - - improve LCD segments in SVGs for: gnw_mc25, gnw_eg26, exospace + - improve/redo SVGs of: gnw_mc25, gnw_eg26, exospace - confirm gnw_mc25/gnw_eg26 rom (dumped from Soviet clone, but pretty confident that it's same) ***************************************************************************/ @@ -2677,7 +2677,7 @@ ROM_START( gnw_mc25 ) ROM_LOAD( "mc-25", 0x0000, 0x0740, BAD_DUMP CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) ) // dumped from Soviet clone ROM_REGION( 102453, "svg", 0) - ROM_LOAD( "gnw_mc25.svg", 0, 102453, CRC(88cc7c49) SHA1(c000d51d1b99750116b97f9bafc0314ea506366d) ) + ROM_LOAD( "gnw_mc25.svg", 0, 102453, BAD_DUMP CRC(88cc7c49) SHA1(c000d51d1b99750116b97f9bafc0314ea506366d) ) ROM_END ROM_START( gnw_eg26 ) @@ -2685,7 +2685,7 @@ ROM_START( gnw_eg26 ) ROM_LOAD( "eg-26", 0x0000, 0x0740, BAD_DUMP CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) ) // dumped from Soviet clone ROM_REGION( 102848, "svg", 0) - ROM_LOAD( "gnw_eg26.svg", 0, 102848, CRC(742c2605) SHA1(984d430ad2ff47ad7a3f9b25b7d3f3d51b10cca5) ) + ROM_LOAD( "gnw_eg26.svg", 0, 102848, BAD_DUMP CRC(742c2605) SHA1(984d430ad2ff47ad7a3f9b25b7d3f3d51b10cca5) ) ROM_END ROM_START( nupogodi ) @@ -2701,7 +2701,7 @@ ROM_START( exospace ) ROM_LOAD( "exospace.bin", 0x0000, 0x0740, CRC(553e2b09) SHA1(2b74f8437b881fbb62b61f25435a5bfc66872a9a) ) ROM_REGION( 66790, "svg", 0) - ROM_LOAD( "exospace.svg", 0, 66790, CRC(df31043a) SHA1(2d8caf42894df699e469652e5f448beaebbcc1ae) ) + ROM_LOAD( "exospace.svg", 0, 66790, BAD_DUMP CRC(df31043a) SHA1(2d8caf42894df699e469652e5f448beaebbcc1ae) ) ROM_END @@ -2811,8 +2811,8 @@ ROM_START( taltbeast ) ROM_REGION( 0x1000, "maincpu", 0 ) ROM_LOAD( "m88", 0x0000, 0x1000, CRC(1b3d15e7) SHA1(78371230dff872d6c07eefdbc4856c2a3336eb61) ) - ROM_REGION( 668221, "svg", 0) - ROM_LOAD( "taltbeast.svg", 0, 668221, CRC(9b41b5b9) SHA1(4c520f917572894a2f0ab92efbd344c6bc6deccc) ) + ROM_REGION( 667887, "svg", 0) + ROM_LOAD( "taltbeast.svg", 0, 667887, CRC(1ca9bbf1) SHA1(be844dddee4a95f70ea2adf875d3ee6cda2a6633) ) ROM_END diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp index 89c6af6bd94..be2a9f5bf23 100644 --- a/src/mame/drivers/hh_tms1k.cpp +++ b/src/mame/drivers/hh_tms1k.cpp @@ -53,10 +53,10 @@ @MP1312 TMS1100 1983, Gakken FX-Micom R-165/Tandy Radio Shack Science Fair Microcomputer Trainer *MP1359 TMS1100? 1985, Capsela CRC2000 @MP1525 TMS1170 1980, Coleco Head to Head Baseball - *MP1604 TMS1370 1982, Gakken Invader 2000/Tandy Cosmic Fire Away 3000 + @MP1604 TMS1370 1982, Gakken Invader 2000/Tandy Cosmic Fire Away 3000 @MP1801 TMS1700 1981, Tiger Ditto/Tandy Pocket Repeat (model 60-2152) @MP2105 TMS1370 1979, Gakken/Entex Poker (6005) - @MP2139 TMS1370 1982, Gakken Galaxy Invader 1000/Tandy Cosmic 1000 Fire Away + @MP2139 TMS1370 1981, Gakken Galaxy Invader 1000/Tandy Cosmic 1000 Fire Away @MP2726 TMS1040 1979, Tomy Break Up *MP2788 TMS1040? 1980, Bandai Flight Time (? note: VFD-capable) @MP3005 TMS1730 1989, Tiger Copy Cat (model 7-522) @@ -4398,8 +4398,8 @@ WRITE16_MEMBER(ginv1000_state::write_r) // R8,R15: input mux m_inp_mux = (data >> 8 & 1) | (data >> 14 & 2); - // R1-R10: VFD matrix grid - // R11-R14: VFD matrix plate + // R1-R10: VFD grid + // R11-R14: VFD plate m_grid = data >> 1 & 0x3ff; m_plate = (m_plate & 0xff) | (data >> 3 & 0xf00); prepare_display(); @@ -4407,14 +4407,14 @@ WRITE16_MEMBER(ginv1000_state::write_r) WRITE16_MEMBER(ginv1000_state::write_o) { - // O0-O7: VFD matrix plate + // O0-O7: VFD plate m_plate = (m_plate & ~0xff) | data; prepare_display(); } READ8_MEMBER(ginv1000_state::read_k) { - // K: multiplexed inputs (K8 is fire button) + // K1,K2: multiplexed inputs (K8 is fire button) return m_inp_matrix[2]->read() | read_inputs(2); } @@ -4466,6 +4466,142 @@ MACHINE_CONFIG_END /*************************************************************************** + Gakken Invader 2000 + * TMS1370(28 pins) MP1604 (die label 1370A MP1604) + * TMS1024 I/O expander + * cyan/red/green VFD display, 1-bit sound + + known releases: + - World: Invader 2000 + - USA(1): Galaxy Invader 10000, published by CGL + - USA(2): Cosmic 3000 Fire Away, published by Tandy + +***************************************************************************/ + +class ginv2000_state : public hh_tms1k_state +{ +public: + ginv2000_state(const machine_config &mconfig, device_type type, const char *tag) + : hh_tms1k_state(mconfig, type, tag), + m_expander(*this, "expander") + { } + + required_device<tms1024_device> m_expander; + DECLARE_WRITE8_MEMBER(expander_w); + + void prepare_display(); + virtual DECLARE_WRITE16_MEMBER(write_r); + virtual DECLARE_WRITE16_MEMBER(write_o); + virtual DECLARE_READ8_MEMBER(read_k); + +protected: + virtual void machine_reset() override; +}; + +// handlers + +void ginv2000_state::prepare_display() +{ + display_matrix(16, 10, m_plate, m_grid); +} + +WRITE8_MEMBER(ginv2000_state::expander_w) +{ + // TMS1024 port 4-7: VFD plate + int shift = (offset - tms1024_device::PORT4) * 4; + m_plate = (m_plate & ~(0xf << shift)) | (data << shift); + prepare_display(); +} + +WRITE16_MEMBER(ginv2000_state::write_r) +{ + // R0: speaker out + m_speaker->level_w(data & 1); + + // R11,R12: input mux + m_inp_mux = data >> 11 & 3; + + // R11,R12: TMS1024 S1,S0 (S2 forced high) + // R13: TMS1024 STD + m_expander->write_s(space, 0, (data >> 12 & 1) | (data >> 10 & 2) | 4); + m_expander->write_std(data >> 13 & 1); + + // R1-R10: VFD grid + m_grid = data >> 1 & 0x3ff; + prepare_display(); +} + +WRITE16_MEMBER(ginv2000_state::write_o) +{ + // O4-O7: TMS1024 H1-H4 + m_expander->write_h(space, 0, data >> 4 & 0xf); +} + +READ8_MEMBER(ginv2000_state::read_k) +{ + // K1,K2: multiplexed inputs (K8 is fire button) + return m_inp_matrix[2]->read() | read_inputs(2); +} + + +// config + +static INPUT_PORTS_START( ginv2000 ) + PORT_START("IN.0") // R11 + PORT_CONFNAME( 0x03, 0x01, DEF_STR( Difficulty ) ) + PORT_CONFSETTING( 0x01, "1" ) + PORT_CONFSETTING( 0x02, "2" ) + PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("IN.1") // R12 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) + PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("IN.2") // K8 + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) +INPUT_PORTS_END + +void ginv2000_state::machine_reset() +{ + hh_tms1k_state::machine_reset(); + m_expander->write_ms(1); // Vss +} + +static MACHINE_CONFIG_START( ginv2000 ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", TMS1370, 425000) // approximation - RC osc. R=36K, C=47pF + MCFG_TMS1XXX_READ_K_CB(READ8(ginv2000_state, read_k)) + MCFG_TMS1XXX_WRITE_R_CB(WRITE16(ginv2000_state, write_r)) + MCFG_TMS1XXX_WRITE_O_CB(WRITE16(ginv2000_state, write_o)) + + MCFG_DEVICE_ADD("expander", TMS1024, 0) + MCFG_TMS1025_WRITE_PORT_CB(PORT4, WRITE8(ginv2000_state, expander_w)) + MCFG_TMS1025_WRITE_PORT_CB(PORT5, WRITE8(ginv2000_state, expander_w)) + MCFG_TMS1025_WRITE_PORT_CB(PORT6, WRITE8(ginv2000_state, expander_w)) + MCFG_TMS1025_WRITE_PORT_CB(PORT7, WRITE8(ginv2000_state, expander_w)) + + /* video hardware */ + MCFG_SCREEN_SVG_ADD("screen", "svg") + MCFG_SCREEN_REFRESH_RATE(50) + MCFG_SCREEN_SIZE(364, 1080) + MCFG_SCREEN_VISIBLE_AREA(0, 364-1, 0, 1080-1) + MCFG_DEFAULT_LAYOUT(layout_svg) + MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1)) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) +MACHINE_CONFIG_END + + + + + +/*************************************************************************** + Gakken FX-Micom R-165 * TMS1100 MCU, label MP1312 (die label MP1312A) * 1 7seg led, 6 other leds, 1-bit sound @@ -9335,6 +9471,20 @@ ROM_START( ginv1000 ) ROM_END +ROM_START( ginv2000 ) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "mp1604", 0x0000, 0x0800, CRC(f1646d0b) SHA1(65601931d81e3eef7bf22a08de5a146910ce8137) ) + + ROM_REGION( 867, "maincpu:mpla", 0 ) + ROM_LOAD( "tms1100_common2_micro.pla", 0, 867, CRC(7cc90264) SHA1(c6e1cf1ffb178061da9e31858514f7cd94e86990) ) + ROM_REGION( 365, "maincpu:opla", 0 ) + ROM_LOAD( "tms1100_ginv2000_output.pla", 0, 365, CRC(520bb003) SHA1(1640ae54f8dcc257e0ad0cbe0281b38fcbd8da35) ) + + ROM_REGION( 374443, "svg", 0) + ROM_LOAD( "ginv2000.svg", 0, 374443, CRC(a4ce1e6d) SHA1(57d9ff05d634a8d495b9d544a2a959790cd10b6b) ) +ROM_END + + ROM_START( fxmcr165 ) ROM_REGION( 0x0800, "maincpu", 0 ) ROM_LOAD( "mp1312", 0x0000, 0x0800, CRC(6efc8bcc) SHA1(ced8a02b472a3178073691d3dccc0f19f57428fd) ) @@ -9809,7 +9959,8 @@ CONS( 1979, f3in1, 0, 0, f3in1, f3in1, f3in1_state, 0, CONS( 1979, gpoker, 0, 0, gpoker, gpoker, gpoker_state, 0, "Gakken", "Poker (Gakken, 1979 version)", MACHINE_SUPPORTS_SAVE ) CONS( 1980, gjackpot, 0, 0, gjackpot, gjackpot, gjackpot_state, 0, "Gakken", "Jackpot: Gin Rummy & Black Jack", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, ginv1000, 0, 0, ginv1000, ginv1000, ginv1000_state, 0, "Gakken", "Galaxy Invader 1000", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, ginv1000, 0, 0, ginv1000, ginv1000, ginv1000_state, 0, "Gakken", "Galaxy Invader 1000", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, ginv2000, 0, 0, ginv2000, ginv2000, ginv2000_state, 0, "Gakken", "Invader 2000", MACHINE_SUPPORTS_SAVE ) COMP( 1983, fxmcr165, 0, 0, fxmcr165, fxmcr165, fxmcr165_state, 0, "Gakken", "FX-Micom R-165", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1979, elecdet, 0, 0, elecdet, elecdet, elecdet_state, 0, "Ideal", "Electronic Detective", MACHINE_SUPPORTS_SAVE ) // *** diff --git a/src/mame/drivers/hh_ucom4.cpp b/src/mame/drivers/hh_ucom4.cpp index 11a92566f36..bad818daab8 100644 --- a/src/mame/drivers/hh_ucom4.cpp +++ b/src/mame/drivers/hh_ucom4.cpp @@ -288,7 +288,7 @@ void ufombs_state::prepare_display() WRITE8_MEMBER(ufombs_state::grid_w) { - // F,G,H0: vfd matrix grid + // F,G,H0: vfd grid int shift = (offset - NEC_UCOM4_PORTF) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -296,7 +296,7 @@ WRITE8_MEMBER(ufombs_state::grid_w) WRITE8_MEMBER(ufombs_state::plate_w) { - // C,D012,I: vfd matrix plate + // C,D012,I: vfd plate int shift = (offset == NEC_UCOM4_PORTI) ? 8 : (offset - NEC_UCOM4_PORTC) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -400,7 +400,7 @@ void ssfball_state::prepare_display() WRITE8_MEMBER(ssfball_state::grid_w) { - // C,D(,E3): vfd matrix grid 0-7(,8) + // C,D(,E3): vfd grid 0-7(,8) int shift = (offset - NEC_UCOM4_PORTC) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -410,7 +410,7 @@ WRITE8_MEMBER(ssfball_state::plate_w) { m_port[offset] = data; - // E,F,G,H,I(not all!): vfd matrix plate + // E,F,G,H,I(not all!): vfd plate int shift = (offset - NEC_UCOM4_PORTE) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); @@ -418,7 +418,7 @@ WRITE8_MEMBER(ssfball_state::plate_w) m_inp_mux = (m_port[NEC_UCOM4_PORTF] >> 3 & 1) | (m_port[NEC_UCOM4_PORTG] >> 2 & 2); m_speaker->level_w(m_inp_mux); - // E3: vfd matrix grid 8 + // E3: vfd grid 8 if (offset == NEC_UCOM4_PORTE) grid_w(space, offset, data >> 3 & 1); else @@ -548,7 +548,7 @@ WRITE8_MEMBER(bmsoccer_state::grid_w) if (offset == NEC_UCOM4_PORTC) m_inp_mux = data & 3; - // C,D(,E3): vfd matrix grid + // C,D(,E3): vfd grid int shift = (offset - NEC_UCOM4_PORTC) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -560,7 +560,7 @@ WRITE8_MEMBER(bmsoccer_state::plate_w) if (offset == NEC_UCOM4_PORTG) m_speaker->level_w(data >> 3 & 1); - // E012,F012,G012,H,I: vfd matrix plate + // E012,F012,G012,H,I: vfd plate int shift = (offset - NEC_UCOM4_PORTE) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); @@ -668,7 +668,7 @@ void bmsafari_state::prepare_display() WRITE8_MEMBER(bmsafari_state::grid_w) { - // C,D(,E3): vfd matrix grid + // C,D(,E3): vfd grid int shift = (offset - NEC_UCOM4_PORTC) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -676,7 +676,7 @@ WRITE8_MEMBER(bmsafari_state::grid_w) WRITE8_MEMBER(bmsafari_state::plate_w) { - // E012,H,I: vfd matrix plate + // E012,H,I: vfd plate int shift = (offset == NEC_UCOM4_PORTE) ? 8 : (offset - NEC_UCOM4_PORTH) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); @@ -777,14 +777,14 @@ void splasfgt_state::prepare_display() WRITE8_MEMBER(splasfgt_state::grid_w) { - // G,H,I0: vfd matrix grid + // G,H,I0: vfd grid int shift = (offset - NEC_UCOM4_PORTG) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); // G(grid 0-3): input mux m_inp_mux = m_grid & 0xf; - // I2: vfd matrix plate 6 + // I2: vfd plate 6 if (offset == NEC_UCOM4_PORTI) plate_w(space, 4 + NEC_UCOM4_PORTC, data >> 2 & 1); else @@ -797,7 +797,7 @@ WRITE8_MEMBER(splasfgt_state::plate_w) if (offset == NEC_UCOM4_PORTF) m_speaker->level_w(data & 3); - // C,D,E,F23(,I2): vfd matrix plate + // C,D,E,F23(,I2): vfd plate int shift = (offset - NEC_UCOM4_PORTC) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -934,7 +934,7 @@ WRITE8_MEMBER(bcclimbr_state::grid_w) if (offset == NEC_UCOM4_PORTI) m_speaker->level_w(data >> 2 & 1); - // H,I01: vfd matrix grid + // H,I01: vfd grid int shift = (offset - NEC_UCOM4_PORTH) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -942,7 +942,7 @@ WRITE8_MEMBER(bcclimbr_state::grid_w) WRITE8_MEMBER(bcclimbr_state::plate_w) { - // C,D,E,F: vfd matrix plate + // C,D,E,F: vfd plate int shift = (offset - NEC_UCOM4_PORTC) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -1152,7 +1152,7 @@ WRITE8_MEMBER(invspace_state::grid_w) if (offset == NEC_UCOM4_PORTI) m_speaker->level_w(data & 1); - // C,D,I1: vfd matrix grid + // C,D,I1: vfd grid int shift = (offset == NEC_UCOM4_PORTI) ? 8 : (offset - NEC_UCOM4_PORTC) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -1160,7 +1160,7 @@ WRITE8_MEMBER(invspace_state::grid_w) WRITE8_MEMBER(invspace_state::plate_w) { - // E,F,G,H123: vfd matrix plate + // E,F,G,H123: vfd plate int shift = (offset - NEC_UCOM4_PORTE) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -1253,7 +1253,7 @@ WRITE8_MEMBER(efball_state::grid_w) if (offset == NEC_UCOM4_PORTH) m_speaker->level_w(data >> 2 & 1); - // F,G,H01: vfd matrix grid + // F,G,H01: vfd grid int shift = (offset - NEC_UCOM4_PORTF) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -1261,7 +1261,7 @@ WRITE8_MEMBER(efball_state::grid_w) WRITE8_MEMBER(efball_state::plate_w) { - // D,E,I: vfd matrix plate + // D,E,I: vfd plate int shift = (offset == NEC_UCOM4_PORTI) ? 8 : (offset - NEC_UCOM4_PORTD) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -1367,7 +1367,7 @@ WRITE8_MEMBER(galaxy2_state::grid_w) if (offset == NEC_UCOM4_PORTE) m_speaker->level_w(data >> 3 & 1); - // C,D,E01: vfd matrix grid + // C,D,E01: vfd grid int shift = (offset - NEC_UCOM4_PORTC) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -1375,7 +1375,7 @@ WRITE8_MEMBER(galaxy2_state::grid_w) WRITE8_MEMBER(galaxy2_state::plate_w) { - // F,G,H,I: vfd matrix plate + // F,G,H,I: vfd plate int shift = (offset - NEC_UCOM4_PORTF) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -1474,7 +1474,7 @@ void astrocmd_state::prepare_display() WRITE8_MEMBER(astrocmd_state::grid_w) { - // C,D(,E3): vfd matrix grid + // C,D(,E3): vfd grid int shift = (offset - NEC_UCOM4_PORTC) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -1482,7 +1482,7 @@ WRITE8_MEMBER(astrocmd_state::grid_w) WRITE8_MEMBER(astrocmd_state::plate_w) { - // E01,F,G,H,I: vfd matrix plate + // E01,F,G,H,I: vfd plate int shift = (offset - NEC_UCOM4_PORTE) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); @@ -1491,7 +1491,7 @@ WRITE8_MEMBER(astrocmd_state::plate_w) // E2: speaker out m_speaker->level_w(data >> 2 & 1); - // E3: vfd matrix grid 8 + // E3: vfd grid 8 grid_w(space, offset, data >> 3 & 1); } else @@ -1576,7 +1576,7 @@ public: WRITE8_MEMBER(edracula_state::grid_w) { - // C,D: vfd matrix grid + // C,D: vfd grid int shift = (offset - NEC_UCOM4_PORTC) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); display_matrix(18, 8, m_plate, m_grid); @@ -1588,7 +1588,7 @@ WRITE8_MEMBER(edracula_state::plate_w) if (offset == NEC_UCOM4_PORTI) m_speaker->level_w(data >> 2 & 1); - // E,F,G,H,I01: vfd matrix plate + // E,F,G,H,I01: vfd plate int shift = (offset - NEC_UCOM4_PORTE) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); display_matrix(18, 8, m_plate, m_grid); @@ -1753,7 +1753,7 @@ void mvbfree_state::prepare_display() WRITE8_MEMBER(mvbfree_state::grid_w) { - // E23,F,G,H: vfd matrix grid + // E23,F,G,H: vfd grid int shift = (offset - NEC_UCOM4_PORTE) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); @@ -1766,7 +1766,7 @@ WRITE8_MEMBER(mvbfree_state::grid_w) WRITE8_MEMBER(mvbfree_state::plate_w) { - // C,D(,E01): vfd matrix plate + // C,D(,E01): vfd plate int shift = (offset - NEC_UCOM4_PORTC) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -1978,7 +1978,7 @@ WRITE8_MEMBER(tccombat_state::grid_w) if (offset == NEC_UCOM4_PORTI) m_speaker->level_w(data >> 1 & 1); - // C,D,I0: vfd matrix grid + // C,D,I0: vfd grid int shift = (offset == NEC_UCOM4_PORTI) ? 8 : (offset - NEC_UCOM4_PORTC) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -1986,7 +1986,7 @@ WRITE8_MEMBER(tccombat_state::grid_w) WRITE8_MEMBER(tccombat_state::plate_w) { - // E,F123,G,H: vfd matrix plate + // E,F123,G,H: vfd plate int shift = (offset - NEC_UCOM4_PORTE) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -2074,7 +2074,7 @@ protected: WRITE8_MEMBER(tmtennis_state::grid_w) { - // G,H,I: vfd matrix grid + // G,H,I: vfd grid int shift = (offset - NEC_UCOM4_PORTG) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); display_matrix(12, 12, m_plate, m_grid); @@ -2082,7 +2082,7 @@ WRITE8_MEMBER(tmtennis_state::grid_w) WRITE8_MEMBER(tmtennis_state::plate_w) { - // C,D,F: vfd matrix plate + // C,D,F: vfd plate int shift = (offset == NEC_UCOM4_PORTF) ? 8 : (offset - NEC_UCOM4_PORTC) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); display_matrix(12, 12, m_plate, m_grid); @@ -2236,7 +2236,7 @@ void tmpacman_state::prepare_display() WRITE8_MEMBER(tmpacman_state::grid_w) { - // C,D: vfd matrix grid + // C,D: vfd grid int shift = (offset - NEC_UCOM4_PORTC) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -2248,7 +2248,7 @@ WRITE8_MEMBER(tmpacman_state::plate_w) if (offset == NEC_UCOM4_PORTE) m_speaker->level_w(data >> 1 & 1); - // E023,F,G,H,I: vfd matrix plate + // E023,F,G,H,I: vfd plate int shift = (offset - NEC_UCOM4_PORTE) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -2344,7 +2344,7 @@ WRITE8_MEMBER(tmscramb_state::grid_w) if (offset == NEC_UCOM4_PORTI) m_speaker->level_w(data >> 2 & 1); - // C,D,I01: vfd matrix grid + // C,D,I01: vfd grid int shift = (offset == NEC_UCOM4_PORTI) ? 8 : (offset - NEC_UCOM4_PORTC) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -2352,7 +2352,7 @@ WRITE8_MEMBER(tmscramb_state::grid_w) WRITE8_MEMBER(tmscramb_state::plate_w) { - // E,F,G,H: vfd matrix plate + // E,F,G,H: vfd plate int shift = (offset - NEC_UCOM4_PORTE) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -2443,7 +2443,7 @@ void tcaveman_state::prepare_display() WRITE8_MEMBER(tcaveman_state::grid_w) { - // C,D: vfd matrix grid + // C,D: vfd grid int shift = (offset - NEC_UCOM4_PORTC) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -2455,7 +2455,7 @@ WRITE8_MEMBER(tcaveman_state::plate_w) if (offset == NEC_UCOM4_PORTE) m_speaker->level_w(data >> 3 & 1); - // E012,F,G,H,I: vfd matrix plate + // E012,F,G,H,I: vfd plate int shift = (offset - NEC_UCOM4_PORTE) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); @@ -2537,7 +2537,7 @@ WRITE8_MEMBER(alnchase_state::output_w) { if (offset <= NEC_UCOM4_PORTE) { - // C,D,E0: vfd matrix grid + // C,D,E0: vfd grid int shift = (offset - NEC_UCOM4_PORTC) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); @@ -2552,7 +2552,7 @@ WRITE8_MEMBER(alnchase_state::output_w) if (offset >= NEC_UCOM4_PORTE) { - // E23,F,G,H,I: vfd matrix plate + // E23,F,G,H,I: vfd plate int shift = (offset - NEC_UCOM4_PORTE) * 4; m_plate = ((m_plate << 2 & ~(0xf << shift)) | (data << shift)) >> 2; } diff --git a/src/mame/mame.lst b/src/mame/mame.lst index d60e4454791..485c5582acc 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -14756,6 +14756,7 @@ f2pbball // Fonas f3in1 // Fonas fxmcr165 // Gakken ginv1000 // Gakken +ginv2000 // Gakken gjackpot // Gakken gpoker // Gakken h2hbaseb // Coleco |