New NOT_WORKING clone added

------------
Electronic Battleship (1977 version, model 4750A) [hap, Sean Riddle]
This commit is contained in:
hap 2016-09-12 17:18:08 +02:00
parent ebd70cd0e8
commit ff33510ff7
2 changed files with 135 additions and 52 deletions

View File

@ -51,8 +51,8 @@
@MP2726 TMS1040 1979, Tomy Break Up
*MP2788 TMS1040? 1980, Bandai Flight Time (? note: VFD-capable)
@MP3005 TMS1730 1989, Tiger Copy Cat (model 7-522)
*MP3201 TMS1000 1977, Milton Bradley Electronic Battleship (1977, 1st version)
@MP3208 TMS1000 1977, Milton Bradley Electronic Battleship (1977, model 4750A or B)
@MP3201 TMS1000 1977, Milton Bradley Electronic Battleship (1977, model 4750A)
@MP3208 TMS1000 1977, Milton Bradley Electronic Battleship (1977, model 4750B)
@MP3226 TMS1000 1978, Milton Bradley Simon (model 4850)
*MP3232 TMS1000 1979, Fonas 2-Player Baseball (no "MP" on chip label)
*MP3300 TMS1000 1980, Estrela Genius (from Brazil, looks and plays identical to Simon)
@ -118,7 +118,8 @@
brighter: tc4/h2hfootb(offense), bankshot(cue ball), ...
- stopthiep: unable to start a game (may be intentional?)
- tbreakup: some of the leds flicker (rom and PLAs doublechecked)
- finish bship SN76477 sound
- bship discrete sound, netlist is documented
- finish bshipb SN76477 sound
***************************************************************************/
@ -3723,18 +3724,18 @@ MACHINE_CONFIG_END
/***************************************************************************
Milton Bradley Electronic Battleship (1977 version)
* PCB label MB 4750B
* TMS1000NLL MP3208 (die label 1000C, MP3208)
* SN75494N (acting as inverters), SN76477 sound
Milton Bradley Electronic Battleship (1977 version, model 4750A)
* PCB label 4750A
* TMS1000NL MP3201 (die label 1000C, MP3201)
* LM324N, MC14016CP/TP4016AN, NE555P, discrete sound
* 4 sliding buttons, light bulb
This is a 2-player electronic board game. It still needs game pieces like the
original Battleship board game.
It went through 4 hardware revisions:
1977: TODO
1977: model 4750A or B, see notes above
1977: model 4750A, see notes above
1977: model 4750B, see notes at bshipb (driver below this)
1979: model 4750C: cost-reduced single chip design, lesser quality game board.
The chip is assumed to be custom, no MCU: 28-pin DIP, label 4750, SCUS 0462
1982: back to MCU, COP420 instead of choosing TI, emulated in hh_cop400.cpp
@ -3745,12 +3746,9 @@ class bship_state : public hh_tms1k_state
{
public:
bship_state(const machine_config &mconfig, device_type type, const char *tag)
: hh_tms1k_state(mconfig, type, tag),
m_sn(*this, "sn76477")
: hh_tms1k_state(mconfig, type, tag)
{ }
required_device<sn76477_device> m_sn;
DECLARE_WRITE16_MEMBER(write_r);
DECLARE_WRITE16_MEMBER(write_o);
DECLARE_READ8_MEMBER(read_k);
@ -3762,44 +3760,14 @@ WRITE16_MEMBER(bship_state::write_r)
{
// R0-R10: input mux
m_inp_mux = data;
// R4: 75494 to R12 33K to SN76477 pin 20
m_sn->slf_res_w((data & 0x10) ? RES_INF : RES_K(33));
}
WRITE16_MEMBER(bship_state::write_o)
{
//printf("%X ", m_maincpu->debug_peek_o_index() & 0xf);
// O0: SN76477 pin 9
m_sn->enable_w(data & 1);
// O1: 75494 to R4 100K to SN76477 pin 18
// O2: 75494 to R3 150K to SN76477 pin 18
double o12 = RES_INF;
switch (~data >> 1 & 3)
{
case 0: o12 = RES_INF; break;
case 1: o12 = RES_K(100); break;
case 2: o12 = RES_K(150); break;
case 3: o12 = RES_2_PARALLEL(RES_K(100), RES_K(150)); break;
}
m_sn->vco_res_w(o12);
// O2,O6: (TODO) to SN76477 pin 21
//m_sn->slf_cap_w(x);
// O4: SN76477 pin 22
m_sn->vco_w(data >> 4 & 1);
// O5: R11 27K to SN76477 pin 23
m_sn->one_shot_cap_w((data & 0x20) ? RES_K(27) : RES_INF);
// O6: SN76477 pin 25
m_sn->mixer_b_w(data >> 6 & 1);
// O7: 75494 to light bulb
display_matrix(1, 1, data >> 7 & 1, 1);
// O4: explosion light bulb
display_matrix(1, 1, data >> 4 & 1, 1);
// other: sound
}
READ8_MEMBER(bship_state::read_k)
@ -3888,7 +3856,7 @@ INPUT_PORTS_END
static MACHINE_CONFIG_START( bship, bship_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", TMS1000, 225000) // approximation - RC osc. R=47K, C=100pf
MCFG_CPU_ADD("maincpu", TMS1000, 200000) // approximation - RC osc. R=100K, C=47pf
MCFG_TMS1XXX_READ_K_CB(READ8(bship_state, read_k))
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(bship_state, write_r))
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(bship_state, write_o))
@ -3896,6 +3864,109 @@ static MACHINE_CONFIG_START( bship, bship_state )
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
MCFG_DEFAULT_LAYOUT(layout_bship)
/* sound hardware */
// TODO
MACHINE_CONFIG_END
/***************************************************************************
Milton Bradley Electronic Battleship (1977 version, model 4750B)
* PCB label MB 4750B
* TMS1000NLL MP3208 (die label 1000C, MP3208)
* SN75494N (acting as inverters), SN76477 sound
* 4 sliding buttons, light bulb
This is the 2nd version. The sound hardware was changed to a SN76477.
***************************************************************************/
class bshipb_state : public hh_tms1k_state
{
public:
bshipb_state(const machine_config &mconfig, device_type type, const char *tag)
: hh_tms1k_state(mconfig, type, tag),
m_sn(*this, "sn76477")
{ }
required_device<sn76477_device> m_sn;
DECLARE_WRITE16_MEMBER(write_r);
DECLARE_WRITE16_MEMBER(write_o);
DECLARE_READ8_MEMBER(read_k);
};
// handlers
WRITE16_MEMBER(bshipb_state::write_r)
{
// R0-R10: input mux
m_inp_mux = data;
// R4: 75494 to R12 33K to SN76477 pin 20
m_sn->slf_res_w((data & 0x10) ? RES_INF : RES_K(33));
}
WRITE16_MEMBER(bshipb_state::write_o)
{
//printf("%X ", m_maincpu->debug_peek_o_index() & 0xf);
// O0: SN76477 pin 9
m_sn->enable_w(data & 1);
// O1: 75494 to R4 100K to SN76477 pin 18
// O2: 75494 to R3 150K to SN76477 pin 18
double o12 = RES_INF;
switch (~data >> 1 & 3)
{
case 0: o12 = RES_INF; break;
case 1: o12 = RES_K(100); break;
case 2: o12 = RES_K(150); break;
case 3: o12 = RES_2_PARALLEL(RES_K(100), RES_K(150)); break;
}
m_sn->vco_res_w(o12);
// O2,O6: (TODO) to SN76477 pin 21
//m_sn->slf_cap_w(x);
// O4: SN76477 pin 22
m_sn->vco_w(data >> 4 & 1);
// O5: R11 27K to SN76477 pin 23
m_sn->one_shot_cap_w((data & 0x20) ? RES_K(27) : RES_INF);
// O6: SN76477 pin 25
m_sn->mixer_b_w(data >> 6 & 1);
// O7: 75494 to light bulb
display_matrix(1, 1, data >> 7 & 1, 1);
}
READ8_MEMBER(bshipb_state::read_k)
{
// K: multiplexed inputs (note: the Vss row is always on)
return m_inp_matrix[11]->read() | read_inputs(11);
}
// config
// buttons are same as bship set
static MACHINE_CONFIG_START( bshipb, bshipb_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", TMS1000, 200000) // approximation - RC osc. R=100K, C=47pf
MCFG_TMS1XXX_READ_K_CB(READ8(bshipb_state, read_k))
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(bshipb_state, write_r))
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(bshipb_state, write_o))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
MCFG_DEFAULT_LAYOUT(layout_bship)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("sn76477", SN76477, 0)
@ -6350,13 +6421,23 @@ ROM_END
ROM_START( bship )
ROM_REGION( 0x0400, "maincpu", 0 )
ROM_LOAD( "mp3201", 0x0000, 0x0400, CRC(bf6104a6) SHA1(8d28b43a2aa39dcbbe71f669cdafc518715812c9) )
ROM_REGION( 867, "maincpu:mpla", 0 )
ROM_LOAD( "tms1000_common1_micro.pla", 0, 867, CRC(4becec19) SHA1(3c8a9be0f00c88c81f378b76886c39b10304f330) )
ROM_REGION( 365, "maincpu:opla", 0 )
ROM_LOAD( "tms1000_bship_output.pla", 0, 365, CRC(ea0570b0) SHA1(6eb803b40717486d7b24939985f245327ac8a7e9) )
ROM_END
ROM_START( bshipb )
ROM_REGION( 0x0400, "maincpu", 0 )
ROM_LOAD( "mp3208", 0x0000, 0x0400, CRC(982fa720) SHA1(1c6dbbe7b9e55d62a510225a88cd2de55fe9b181) )
ROM_REGION( 867, "maincpu:mpla", 0 )
ROM_LOAD( "tms1000_bship_micro.pla", 0, 867, CRC(4becec19) SHA1(3c8a9be0f00c88c81f378b76886c39b10304f330) )
ROM_LOAD( "tms1000_common1_micro.pla", 0, 867, CRC(4becec19) SHA1(3c8a9be0f00c88c81f378b76886c39b10304f330) )
ROM_REGION( 365, "maincpu:opla", 0 )
ROM_LOAD( "tms1000_bship_output.pla", 0, 365, BAD_DUMP CRC(74a9a244) SHA1(479c1f1e37cf8f75352e10226b20322906bee813) ) // part of decap photo was obscured
ROM_LOAD( "tms1000_bshipb_output.pla", 0, 365, BAD_DUMP CRC(74a9a244) SHA1(479c1f1e37cf8f75352e10226b20322906bee813) ) // part of decap photo was obscured
ROM_END
@ -6508,7 +6589,7 @@ ROM_START( speechp )
ROM_LOAD( "tms1007nl", 0x0000, 0x0400, CRC(c2669d5c) SHA1(7943d6f39508a9a82bc21e4fe34a5b9f86e3add2) )
ROM_REGION( 867, "maincpu:mpla", 0 )
ROM_LOAD( "tms1000_speechp_micro.pla", 0, 867, CRC(4becec19) SHA1(3c8a9be0f00c88c81f378b76886c39b10304f330) )
ROM_LOAD( "tms1000_common1_micro.pla", 0, 867, CRC(4becec19) SHA1(3c8a9be0f00c88c81f378b76886c39b10304f330) )
ROM_REGION( 365, "maincpu:opla", 0 )
ROM_LOAD( "tms1000_speechp_output.pla", 0, 365, CRC(e1b4197f) SHA1(258f4276a9f15c9bfbfa58df2f7202aed1542fdc) )
@ -6608,7 +6689,8 @@ COMP( 1979, astro, 0, 0, astro, astro, driver_device, 0, "Kos
CONS( 1980, mdndclab, 0, 0, mdndclab, mdndclab, driver_device, 0, "Mattel", "Dungeons & Dragons - Computer Labyrinth Game", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // ***
CONS( 1977, comp4, 0, 0, comp4, comp4, driver_device, 0, "Milton Bradley", "Comp IV", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND_HW )
CONS( 1977, bship, 0, 0, bship, bship, driver_device, 0, "Milton Bradley", "Electronic Battleship (1977 version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // ***
CONS( 1977, bship, 0, 0, bship, bship, driver_device, 0, "Milton Bradley", "Electronic Battleship (1977 version, model 4750A)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) // ***
CONS( 1977, bshipb, bship, 0, bshipb, bship, driver_device, 0, "Milton Bradley", "Electronic Battleship (1977 version, model 4750B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // ***
CONS( 1978, simon, 0, 0, simon, simon, driver_device, 0, "Milton Bradley", "Simon (Rev. A)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1979, ssimon, 0, 0, ssimon, ssimon, driver_device, 0, "Milton Bradley", "Super Simon", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1979, bigtrak, 0, 0, bigtrak, bigtrak, driver_device, 0, "Milton Bradley", "Big Trak", MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL ) // ***

View File

@ -14139,6 +14139,7 @@ astro // Kosmos
bankshot // Parker Bros
bigtrak // Milton Bradley
bship // Milton Bradley
bshipb // Milton Bradley
copycat // Tiger Electronics
copycatm2 // Tiger Electronics
cnfball // Conic