previous sc2 pull requests cleaned up and reduced to a single update

makes the DMD be treated as a screen, avoids tag lookups, adds correct dmd rom to some sets etc.
This commit is contained in:
David Haywood 2016-08-25 14:36:52 +01:00
parent cf8060d762
commit d53f5dec3c
10 changed files with 219 additions and 41127 deletions

View File

@ -202,24 +202,18 @@ public:
m_reel3(*this, "reel3"),
m_reel4(*this, "reel4"),
m_reel5(*this, "reel5"),
m_strobein0(*this, "STROBE0"),
m_strobein1(*this, "STROBE1"),
m_strobein2(*this, "STROBE2"),
m_strobein3(*this, "STROBE3"),
m_strobein4(*this, "STROBE4"),
m_strobein5(*this, "STROBE5"),
m_strobein6(*this, "STROBE6"),
m_strobein7(*this, "STROBE7"),
m_strobein8(*this, "STROBE8"),
m_strobein9(*this, "STROBE9"),
m_strobein10(*this, "STROBE10"),
m_strobein11(*this, "STROBE11"),
m_strobein(*this, { "STROBE0", "STROBE1", "STROBE2", "STROBE3", "STROBE4", "STROBE5", "STROBE6", "STROBE7", "STROBE8", "STROBE9", "STROBE10", "STROBE11" }),
m_rombank1(*this, "bank1"),
m_ym2413(*this, "ymsnd"),
m_upd7759(*this, "upd"),
m_vfd0(*this, "vfd0"),
m_vfd1(*this, "vfd1"),
m_dm01(*this, "dm01"),
m_meters(*this, "meters") { }
m_meters(*this, "meters")
{
for (auto & elem : m_lamps_old)
elem = 0;
}
required_device<cpu_device> m_maincpu;
optional_device<stepper_device> m_reel0;
@ -228,8 +222,10 @@ public:
optional_device<stepper_device> m_reel3;
optional_device<stepper_device> m_reel4;
optional_device<stepper_device> m_reel5;
required_ioport m_strobein0, m_strobein1, m_strobein2, m_strobein3, m_strobein4, m_strobein5, m_strobein6, m_strobein7, m_strobein8, m_strobein9, m_strobein10, m_strobein11;
required_ioport_array<12> m_strobein;
optional_memory_bank m_rombank1;
optional_device<ym2413_device> m_ym2413;
required_device<upd7759_device> m_upd7759;
optional_device<bfm_bd1_t> m_vfd0;
@ -286,6 +282,7 @@ public:
int m_e2dummywrite;
int m_e2data_to_read;
UINT8 m_codec_data[256];
UINT8 m_lamps_old[0x20];
void e2ram_init(nvram_device &nvram, void *data, size_t size);
DECLARE_WRITE_LINE_MEMBER(bfmdm01_busy);
DECLARE_WRITE8_MEMBER(bankswitch_w);
@ -433,7 +430,8 @@ void bfm_sc2_state::on_scorpion2_reset()
e2ram_reset();
machine().device("ymsnd")->reset();
if (m_ym2413)
m_ym2413->reset();
// make sure no inputs are overidden ////////////////////////////////////
memset(m_input_override, 0, sizeof(m_input_override));
@ -643,12 +641,24 @@ WRITE8_MEMBER(bfm_sc2_state::mmtr_w)
WRITE8_MEMBER(bfm_sc2_state::mux_output_w)
{
// this is a useful profiler point to make sure the artwork writes / lookups are performing properly.
g_profiler.start(PROFILER_USER6);
int i;
int off = offset<<3;
for (i=0; i<8; i++)
output().set_lamp_value(off+i, ((data & (1 << i)) != 0));
for (i = 0; i < 8; i++)
{
int oldbit = m_lamps_old[offset] & (1 << i);
int newbit = data & (1 << i);
if (oldbit != newbit)
output().set_lamp_value(off + i, newbit != 0);
}
m_lamps_old[offset] = data;
g_profiler.stop();
}
///////////////////////////////////////////////////////////////////////////
@ -657,8 +667,6 @@ READ8_MEMBER(bfm_sc2_state::mux_input_r)
{
int result = 0xFF,t1,t2;
required_ioport m_strobein[12] = { m_strobein0, m_strobein1, m_strobein2, m_strobein3, m_strobein4, m_strobein5, m_strobein6, m_strobein7, m_strobein8, m_strobein9, m_strobein10, m_strobein11 };
if (offset < 8)
{
int idx = (offset & 4) ? 4 : 8;
@ -713,7 +721,11 @@ WRITE8_MEMBER(bfm_sc2_state::volume_override_w)
if ( old != m_volume_override )
{
ym2413_device *ym = machine().device<ym2413_device>("ymsnd");
ym2413_device *ym = m_ym2413;
if (!m_ym2413)
return;
float percent = m_volume_override? 1.0f : (32-m_global_volume)/32.0f;
ym->set_output_gain(0, percent);
@ -809,12 +821,16 @@ WRITE8_MEMBER(bfm_sc2_state::expansion_latch_w)
}
{
ym2413_device *ym = machine().device<ym2413_device>("ymsnd");
float percent = m_volume_override ? 1.0f : (32-m_global_volume)/32.0f;
ym2413_device *ym = m_ym2413;
ym->set_output_gain(0, percent);
ym->set_output_gain(1, percent);
m_upd7759->set_output_gain(0, percent);
if (m_ym2413)
{
float percent = m_volume_override ? 1.0f : (32 - m_global_volume) / 32.0f;
ym->set_output_gain(0, percent);
ym->set_output_gain(1, percent);
m_upd7759->set_output_gain(0, percent);
}
}
}
}
@ -3695,10 +3711,12 @@ static MACHINE_CONFIG_START( scorpion2, bfm_sc2_state )
MCFG_FRAGMENT_ADD(_8meters)
MACHINE_CONFIG_END
#if 0
static MACHINE_CONFIG_DERIVED( scorpion2_3m, scorpion2 )
MCFG_DEVICE_REMOVE("meters")
MCFG_FRAGMENT_ADD(_3meters)
MACHINE_CONFIG_END
#endif
/* machine driver for scorpion3 board */
static MACHINE_CONFIG_DERIVED( scorpion3, scorpion2 )
@ -5301,7 +5319,7 @@ ROM_START( sc2cpe3 )
ROM_LOAD( "club-public-enemy-no1_std_ac_200pnd_ass.bin", 0x0000, 0x010000, CRC(5704e52d) SHA1(dfae48734794cea2e9a952d808dedb96fd5204b3) )
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "matrix.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) ) // seems to be from a cops+robbers instead, will say 'wrong display prom' during attract cycle
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) ) // WRONG this is from cops and robbers
sc2_cpe_sound_alt2
ROM_END
@ -5311,7 +5329,7 @@ ROM_START( sc2cpe3p )
ROM_LOAD( "club-public-enemy-no1_dat_ac_200pnd_ass.bin", 0x0000, 0x010000, CRC(fec925a3) SHA1(5ce3b6f1236f511ae8975c7ecd1549e8d427a245) )
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "matrix.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) ) // see above comment
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) ) // see above comment
sc2_cpe_sound_alt2
ROM_END
@ -5321,7 +5339,7 @@ ROM_START( sc2cpe4 )
ROM_LOAD( "95750273.p1", 0x0000, 0x010000, CRC(950da13c) SHA1(2c544e06112969f7914a5b4fd15e6b0dfedf6b0b) )
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "matrix.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) ) // see above comment
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) ) // see above comment
sc2_cpe_sound_alt2
ROM_END
@ -5331,7 +5349,7 @@ ROM_START( sc2cpe4p )
ROM_LOAD( "club-public-enemy-no1_dat_fe_ac_200pnd_p65_rot_ass.bin", 0x0000, 0x010000, CRC(8d5ff953) SHA1(bdf6b5e014c46f6abac792a5913e98cb897b2a73) )
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "matrix.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) ) // see above comment
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) ) // see above comment
sc2_cpe_sound_alt2
ROM_END
@ -5481,120 +5499,180 @@ ROM_START( sc2copcl )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "club-cops-and-robbers_std_ac_250pnd-25p_phx_ass.bin", 0x0000, 0x010000, CRC(668def2e) SHA1(802ca565a20d0fce2f5e4340c646429af6aadff6) )
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copclp )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "club-cops-and-robbers_dat_ac_250pnd-25p_phx_ass.bin", 0x0000, 0x010000, CRC(f6e9a013) SHA1(02b6c203c3facdd7015ba1119bcb70bf34b4ec00) )
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copcl1 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "club-cops-and-robbers_std_ac_250pnd-20p_rot_ass.bin", 0x0000, 0x010000, CRC(078651b5) SHA1(2acc45e5d66625753e5869f6f3ac1379d0c9dfcd) )
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copcl1p )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "club-cops-and-robbers_dat_ac_250pnd-20p_rot_ass.bin", 0x0000, 0x010000, CRC(05635f8b) SHA1(d3cf98e3858189db725621d4ba07728a585d7a3b) )
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copcl2 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "club-cops-and-robbers_std_ac_250pnd-20p_ass.bin", 0x0000, 0x010000, CRC(229c65c1) SHA1(8052c4b8702275235545807e7b075571fc97d4f3) )
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copcl3 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "club-cops-and-robbers_std_fe_ac_p67_ass.bin", 0x0000, 0x010000, CRC(4906d170) SHA1(c304a2986560d675b2e776965fdf444e4d56f104) )
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copcl3p )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "club-cops-and-robbers_dat_fe_ac_p67_ass.bin", 0x0000, 0x010000, CRC(327db998) SHA1(aa8583cedd52a3cd06be6423a32e48273ec6218a) )
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copcl4 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "club-cops-and-robbers_std_ac_var_p65_ass.bin", 0x0000, 0x010000, CRC(23d80392) SHA1(d7f5bab4fc8f42c1a38e26b54bc519e0f03d20bc) )
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copcl5 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "club-cops-and-robbers_std_fe_ac_p63_ass.bin", 0x0000, 0x010000, CRC(fc7f9b85) SHA1(d9f940bca29919d097fa7d128869725e01d6dbc3) )
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copcl6 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "club-cops-and-robbers_std_ac_200pnd-20p_ass.bin", 0x0000, 0x010000, CRC(214cda40) SHA1(fc585f211256495bfaaa6cb6c4d9c8a110ab5051) )
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copcl6p )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "club-cops-and-robbers_dat_ac_200pnd-20p_ass.bin", 0x0000, 0x010000, CRC(b4071611) SHA1(2596ccee2b94bb56aa629ee892bd357b706005b0) )
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copcl7 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "club-cops-and-robbers_std_ac_var_200pnd_ijf_ass.bin", 0x0000, 0x010000, CRC(db5a287e) SHA1(5615480767348061b7f08a709a16aa0b9cf0658e) )
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copcl8 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "club-cops-and-robbers_std_ac_ffp_ass.bin", 0x0000, 0x010000, CRC(347255bf) SHA1(7f96277579e68bdf1e21788cc5e35941d98df87f) )
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copcl8p )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "club-cops-and-robbers_dat_ac_ffp_ass.bin", 0x0000, 0x010000, CRC(ec92b62d) SHA1(f10bc8fa55cd59127f179a35a61c1a57597856b6) )
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copcl9 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "club-cops-and-robbers_std_fe_ac_ass.bin", 0x0000, 0x010000, CRC(c7461e95) SHA1(f4088056e848742d3795f5b067476b56071f99bd) )
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copcl9p )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "club-cops-and-robbers_dat_fe_ac_ass.bin", 0x0000, 0x010000, CRC(ead8cbe5) SHA1(5594eb9a736e0f15a6f0f097a8cbbd8352e46fc4) )
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copcl10 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "club-cops-and-robbers_std_ac_npr_ass.bin", 0x0000, 0x010000, CRC(b9c0bcb4) SHA1(c1a398bd58097411b80d36030760e7820dc346f4) )
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copcl11 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "cops200", 0x0000, 0x010000, CRC(05d29adc) SHA1(06a986356c1b48ad5ee92c9a7f6fb2531e1806af) )
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copcl11p )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "club-cops-and-robbers_dat_fr_ac_p63_ass.bin", 0x0000, 0x010000, CRC(93965bfc) SHA1(52af75234f56a77f082132d9532d3ffcaef5d271) )
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copcl12 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "premier-club-manager_dat_ac_250pnd-25p_ass.bin", 0x0000, 0x010000, CRC(6446176c) SHA1(17cccc00d443ffde11943ebda112ef1e79134455) ) // filename is wrong, this is a club cops n robbers
sc2_copcl_sound
ROM_REGION( 0x20000, "dm01:matrix", 0 )
ROM_LOAD( "95000569.bin", 0x0000, 0x010000, CRC(64014f73) SHA1(67d44db91944738fcadc38bfd0d2b7c0536adb9a) )
ROM_END
ROM_START( sc2copdc )
@ -7749,37 +7827,37 @@ GAME( 199?, sc2gsclb6p , sc2gsclb , scorpion2 , drwho , bfm_sc2_st
********************************************************************************************************************************************************************************************************************/
// PROJECT PR6231 CLUB COPS AND ROBBERS - 20-JUL-1993 15:15:32
GAMEL( 199?, sc2copcl11 , sc2copcl , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 1, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-118
GAMEL( 199?, sc2copcl11 , sc2copcl , scorpion2_dm01 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 1, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-118
// PROJECT PR6231 CLUB COPS AND ROBBERS 150 POUND JACKPOT - 16-NOV-1993 12:34:10
GAMEL( 199?, sc2copcl1 , sc2copcl , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 2, UK, 250GBP Jackpot) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-154
GAMEL( 199?, sc2copcl1p , sc2copcl , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-751-154
GAMEL( 199?, sc2copcl1 , sc2copcl , scorpion2_dm01 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 2, UK, 250GBP Jackpot) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-154
GAMEL( 199?, sc2copcl1p , sc2copcl , scorpion2_dm01 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-751-154
// PROJECT NUMBER PR6231 CLUB COPS AND ROBBERS FIXED 65% - 16-NOV-1993 12:35:38
GAMEL( 199?, sc2copcl4 , sc2copcl , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 3, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-156
GAMEL( 199?, sc2copcl4 , sc2copcl , scorpion2_dm01 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 3, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-156
// PROJECT PR6231 CLUB COPS AND ROBBERS - 16-NOV-1993 12:39:31
GAMEL( 199?, sc2copcl6 , sc2copcl , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 4, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-153
GAMEL( 199?, sc2copcl6p , sc2copcl , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 4, UK, Protocol) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-751-153
GAMEL( 199?, sc2copcl6 , sc2copcl , scorpion2_dm01 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 4, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-153
GAMEL( 199?, sc2copcl6p , sc2copcl , scorpion2_dm01 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 4, UK, Protocol) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-751-153
// PROJECT PR6231 CLUB COPS AND ROBBERS GENEROUS 5P - 20-JAN-1994 11:13:45
GAMEL( 199?, sc2copcl7 , sc2copcl , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 5, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-190
GAMEL( 199?, sc2copcl7 , sc2copcl , scorpion2_dm01 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 5, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-190
// PROJECT PR6231 CLUB COPS AND ROBBERS - 4-AUG-1994 16:23:21
GAMEL( 199?, sc2copcl10 , sc2copcl , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 6, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-268
GAMEL( 199?, sc2copcl10 , sc2copcl , scorpion2_dm01 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 6, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-268
// PROJECT PR6231 CLUB COPS AND ROBBERS SEALINK VERSION - 22-MAY-1995 11:47:58
GAMEL( 199?, sc2copcl9 , sc2copcl , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 7, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-409
GAMEL( 199?, sc2copcl9p , sc2copcl , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 7, UK, Protocol) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-751-409
GAMEL( 199?, sc2copcl9 , sc2copcl , scorpion2_dm01 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 7, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-409
GAMEL( 199?, sc2copcl9p , sc2copcl , scorpion2_dm01 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 7, UK, Protocol) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-751-409
// PROJECT NUMBER 6231 CLUB COPS AND ROBBERS GENEROUS 5P NPO - 2-FEB-1996 12:39:22
GAMEL( 199?, sc2copcl8 , sc2copcl , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 8, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-628
GAMEL( 199?, sc2copcl8p , sc2copcl , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 8, UK, Protocol) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-751-628
GAMEL( 199?, sc2copcl8 , sc2copcl , scorpion2_dm01 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 8, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-628
GAMEL( 199?, sc2copcl8p , sc2copcl , scorpion2_dm01 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 8, UK, Protocol) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-751-628
// PROJECT NUMBER PR6231 CLUB COPS AND ROBBERS 25P/#250 - 2-SEP-1996 17:17:50
GAMEL( 199?, sc2copcl , 0 , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 9, UK, 250GBP Jackpot) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-859
GAMEL( 199?, sc2copclp , sc2copcl , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 9, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-751-859
GAMEL( 199?, sc2copcl , 0 , scorpion2_dm01 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 9, UK, 250GBP Jackpot) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-859
GAMEL( 199?, sc2copclp , sc2copcl , scorpion2_dm01 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 9, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-751-859
// PROJECT NUMBER PR6231 CLUB COPS AND ROBBERS 20P/#250 - 2-SEP-1996 17:26:44
GAMEL( 199?, sc2copcl2 , sc2copcl , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 10, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-858
GAMEL( 199?, sc2copcl12 , sc2copcl , scorpion2_3m , drwho , bfm_sc2_state, prom , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 10, UK, Protocol) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-751-858
GAMEL( 199?, sc2copcl2 , sc2copcl , scorpion2_dm01 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 10, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-750-858
GAMEL( 199?, sc2copcl12 , sc2copcl , scorpion2_dm01_3m , drwho , bfm_sc2_state, prom , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 10, UK, Protocol) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-751-858
// PROJECT PR6231 CLUB COPS AND ROBBERS NPO 63% SEALINK VERSION - 5-JAN-1998 11:53:49
GAMEL( 199?, sc2copcl5 , sc2copcl , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 11, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-752-015
GAMEL( 199?, sc2copcl11p , sc2copcl , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 11, UK, Protocol) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-753-015
GAMEL( 199?, sc2copcl5 , sc2copcl , scorpion2_dm01 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 11, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-752-015
GAMEL( 199?, sc2copcl11p , sc2copcl , scorpion2_dm01 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 11, UK, Protocol) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-753-015
// PROJECT PR6231 CLUB COPS AND ROBBERS NPO 67% SEALINK VERSION - 5-JAN-1998 11:56:01
GAMEL( 199?, sc2copcl3 , sc2copcl , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 12, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-752-014
GAMEL( 199?, sc2copcl3p , sc2copcl , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 12, UK, Protocol) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-753-014
GAMEL( 199?, sc2copcl3 , sc2copcl , scorpion2_dm01 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 12, UK) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-752-014
GAMEL( 199?, sc2copcl3p , sc2copcl , scorpion2_dm01 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Cops 'n' Robbers Club (Bellfruit) (set 12, UK, Protocol) (Scorpion 2/3)", GAME_FLAGS, layout_sc2copcl7) // GAME No 95-753-014
/********************************************************************************************************************************************************************************************************************

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -57,6 +57,8 @@ const device_type BF_DM01 = &device_creator<bfmdm01_device>;
bfmdm01_device::bfmdm01_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, BF_DM01, "BFM Dotmatrix 01", tag, owner, clock, "bfm_dm01", __FILE__),
m_matrixcpu(*this, "matrix"),
m_screen(*this, "dmd"),
m_palette(*this, "palette_lcd"),
m_data_avail(0),
m_control(0),
m_xcounter(0),
@ -77,6 +79,12 @@ bfmdm01_device::bfmdm01_device(const machine_config &mconfig, const char *tag, d
void bfmdm01_device::device_start()
{
if(!m_screen->started())
throw device_missing_dependencies();
if(!m_palette->started())
throw device_missing_dependencies();
m_busy_cb.resolve_safe();
save_item(NAME(m_data_avail));
@ -90,8 +98,15 @@ void bfmdm01_device::device_start()
for (int i = 0; i < DM_BYTESPERROW; i++)
save_item(NAME(m_scanline), i);
m_screen->register_screen_bitmap(m_tmpbitmap);
m_palette->set_pen_color(0, rgb_t(10, 5, 0));
m_palette->set_pen_color(1, rgb_t(100, 50, 0));
m_palette->set_pen_color(2, rgb_t(255, 127, 0));
}
//-------------------------------------------------
// device_reset - device-specific reset
//-------------------------------------------------
@ -162,6 +177,8 @@ READ8_MEMBER( bfmdm01_device::mux_r )
WRITE8_MEMBER( bfmdm01_device::mux_w )
{
g_profiler.start(PROFILER_USER2);
if ( m_xcounter < DM_BYTESPERROW )
{
m_scanline[m_xcounter] = data;
@ -190,16 +207,19 @@ WRITE8_MEMBER( bfmdm01_device::mux_w )
p++;
}
g_profiler.start(PROFILER_USER1);
UINT16* pix = &m_tmpbitmap.pix16(row*2);
UINT16* pix2 = &m_tmpbitmap.pix16((row*2)+1);
for (int pos=0;pos<65;pos++)
{
machine().output().set_indexed_value("dotmatrix", pos +(65*row), m_segbuffer[(pos)]);
}
g_profiler.stop();
pix[0 + (pos * 2)] = m_segbuffer[(pos)]+1;
pix[1 + (pos * 2)] = 0;
pix2[0 + (pos * 2)] = 0;
pix2[1 + (pos * 2)] = 0;
}
}
}
g_profiler.stop();
}
///////////////////////////////////////////////////////////////////////////
@ -253,6 +273,15 @@ ADDRESS_MAP_START( bfm_dm01_memmap, AS_PROGRAM, 8, bfmdm01_device )
AM_RANGE(0x4000, 0xFfff) AM_ROM // 48k ROM
ADDRESS_MAP_END
UINT32 bfmdm01_device::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
copybitmap(bitmap, m_tmpbitmap, 0, 0, 0, 0, cliprect);
return 0;
}
INTERRUPT_GEN_MEMBER( bfmdm01_device::nmi_line_assert )
{
m_matrixcpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
@ -263,7 +292,16 @@ static MACHINE_CONFIG_FRAGMENT( bdmdm01 )
MCFG_CPU_PROGRAM_MAP(bfm_dm01_memmap)
MCFG_CPU_PERIODIC_INT_DRIVER(bfmdm01_device, nmi_line_assert, 1500 ) /* generate 1500 NMI's per second ?? what is the exact freq?? */
MCFG_PALETTE_ADD("palette_lcd", 3)
MCFG_SCREEN_ADD("dmd", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(65*2, 21*2)
MCFG_SCREEN_VISIBLE_AREA(0, 65*2-1, 0, 21*2-1)
MCFG_SCREEN_UPDATE_DRIVER(bfmdm01_device, screen_update)
MCFG_SCREEN_PALETTE("palette_lcd")
MACHINE_CONFIG_END
machine_config_constructor bfmdm01_device::device_mconfig_additions() const

View File

@ -35,6 +35,8 @@ public:
INTERRUPT_GEN_MEMBER(nmi_line_assert);
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
protected:
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const override;
@ -43,6 +45,8 @@ protected:
private:
required_device<cpu_device> m_matrixcpu;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
// internal state
int m_data_avail;
@ -57,6 +61,8 @@ private:
devcb_write_line m_busy_cb;
int read_data(void);
bitmap_ind16 m_tmpbitmap;
};