added astrocmd and kingman (Astro Command probably works fine, i just haven't tested it yet)

This commit is contained in:
hap 2015-03-14 05:34:43 +01:00
parent bf61c9a5e2
commit e7ffb8a6b0
3 changed files with 158 additions and 6 deletions

View File

@ -15,7 +15,7 @@
*62 HD38750A 1982, Actronics(Hanzawa) Pack'n Maze
*04 HD38800A 1980, Gakken Heiankyo Alien
*23 HD38800A 198?, Tomy Kingman
@23 HD38800B 1982, Tomy Kingman (THF-01II)
*24 HD38800B 1982, Actronics(Hanzawa) Wanted G-Man
@25 HD38800A 1981, Coleco Alien Attack
@27 HD38800A 1981, Bandai Packri Monster (DM-21Z)
@ -336,7 +336,7 @@ WRITE8_MEMBER(hh_hmcs40_state::alnattck_plate_w)
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
// update display
UINT32 plate = BITSWAP16((UINT16)m_plate,11,9,8,10,7,2,0,1,3,4,5,6,12,13,14,15) | (m_plate & 0xf0000);
UINT32 plate = BITSWAP16(m_plate,11,9,8,10,7,2,0,1,3,4,5,6,12,13,14,15) | (m_plate & 0xf0000);
display_matrix(20, 10, plate, m_grid);
}
@ -622,6 +622,41 @@ MACHINE_CONFIG_END
/***************************************************************************
Tomy Kingman (manufactured in Japan)
* boards are labeled THF-01II 2E138E01/2E128E02
* Hitachi HD38800B23 MCU
* cyan/red/blue VFD display Futaba DM-65ZK 3A
NOTE!: MESS external artwork is recommended
***************************************************************************/
static INPUT_PORTS_START( kingman )
INPUT_PORTS_END
static MACHINE_CONFIG_START( kingman, hh_hmcs40_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", HD38800, 400000) // approximation - RC osc.
// MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_hmcs40_state, display_decay_tick, attotime::from_msec(1))
MCFG_DEFAULT_LAYOUT(layout_hh_hmcs40_test)
/* no video! */
/* 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
/***************************************************************************
Tomy(tronic) Tron (manufactured in Japan)
@ -739,6 +774,13 @@ ROM_START( pbqbert )
ROM_END
ROM_START( kingman )
ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "hd38800b23", 0x0000, 0x1000, CRC(f8dfe14f) SHA1(660610d92ae7e5f92bddf5a3bcc2296b2ec3946b) )
ROM_CONTINUE( 0x1e80, 0x0100 )
ROM_END
ROM_START( tmtron )
ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "hd38800a88", 0x0000, 0x1000, CRC(33db9670) SHA1(d6f747a59356526698784047bcfdbb59e79b9a23) )
@ -763,4 +805,5 @@ CONS( 1981, egalaxn2, 0, 0, egalaxn2, egalaxn2, driver_device, 0, "Entex
CONS( 1981, epacman2, 0, 0, epacman2, epacman2, driver_device, 0, "Entex", "Pac Man 2 (Entex)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
CONS( 1983, pbqbert, 0, 0, pbqbert, pbqbert, driver_device, 0, "Parker Brothers", "Q*Bert (Parker Brothers)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
CONS( 1982, tmtron, 0, 0, tmtron, tmtron, driver_device, 0, "Tomy", "Tron (Tomy)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
CONS( 1982, kingman, 0, 0, kingman, kingman, driver_device, 0, "Tomy", "Kingman", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
CONS( 1984, tmtron, 0, 0, tmtron, tmtron, driver_device, 0, "Tomy", "Tron (Tomy)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )

View File

@ -19,7 +19,7 @@
*128 uPD650C 1982, Roland TR-606
133 uPD650C 1982, Roland TB-303
@160 uPD553C 1982, Tomy Pac Man (TN-08)
*202 uPD553C 1982, Epoch Astro Command
@202 uPD553C 1982, Epoch Astro Command
@206 uPD553C 1982, Epoch Dracula
@258 uPD553C 1984, Tomy Alien Chase (TN-16)
@ -88,6 +88,10 @@ public:
DECLARE_WRITE8_MEMBER(splasfgt_grid_w);
DECLARE_WRITE8_MEMBER(splasfgt_plate_w);
void astrocmd_display();
DECLARE_WRITE8_MEMBER(astrocmd_grid_w);
DECLARE_WRITE8_MEMBER(astrocmd_plate_w);
DECLARE_WRITE8_MEMBER(edracula_grid_w);
DECLARE_WRITE8_MEMBER(edracula_plate_w);
@ -474,6 +478,102 @@ MACHINE_CONFIG_END
/***************************************************************************
Epoch Astro Command (manufactured in Japan)
* PCB label 96111
* NEC uCOM-43 MCU, labeled D553C 202
* cyan/red VFD display NEC FIP9AM20T NO.42, with color overlay
known releases:
- Japan: Astro Command
- USA: Astro Command, published by Tandy
- UK: Scramble, published by Grandstand
NOTE!: MESS external artwork is recommended
***************************************************************************/
void hh_ucom4_state::astrocmd_display()
{
UINT32 grid = BITSWAP16(m_grid,15,14,13,12,11,10,9,8,4,5,6,7,0,1,2,3);
UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,3,2,12,13,14,15,16,17,18,0,1,4,8,5,9,7,11,6,10);
display_matrix(17, 9, plate, grid);
}
WRITE8_MEMBER(hh_ucom4_state::astrocmd_grid_w)
{
// C,D(,E3): vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTC) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
astrocmd_display();
}
WRITE8_MEMBER(hh_ucom4_state::astrocmd_plate_w)
{
// E01,F,G,H,I: vfd matrix plate
int shift = (offset - NEC_UCOM4_PORTE) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
if (offset == NEC_UCOM4_PORTE)
{
// E2: speaker out
m_speaker->level_w(data >> 2 & 1);
// E3: vfd matrix grid 8
astrocmd_grid_w(space, offset, data >> 3 & 1);
}
else
astrocmd_display();
}
static INPUT_PORTS_START( astrocmd )
PORT_START("IN.0") // port A
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 )
PORT_START("IN.1") // port B
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
INPUT_PORTS_END
static MACHINE_CONFIG_START( astrocmd, hh_ucom4_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", NEC_D553, XTAL_400kHz)
MCFG_UCOM4_READ_A_CB(IOPORT("IN.0"))
MCFG_UCOM4_READ_B_CB(IOPORT("IN.1"))
MCFG_UCOM4_WRITE_C_CB(WRITE8(hh_ucom4_state, astrocmd_grid_w))
MCFG_UCOM4_WRITE_D_CB(WRITE8(hh_ucom4_state, astrocmd_grid_w))
MCFG_UCOM4_WRITE_E_CB(WRITE8(hh_ucom4_state, astrocmd_plate_w))
MCFG_UCOM4_WRITE_F_CB(WRITE8(hh_ucom4_state, astrocmd_plate_w))
MCFG_UCOM4_WRITE_G_CB(WRITE8(hh_ucom4_state, astrocmd_plate_w))
MCFG_UCOM4_WRITE_H_CB(WRITE8(hh_ucom4_state, astrocmd_plate_w))
MCFG_UCOM4_WRITE_I_CB(WRITE8(hh_ucom4_state, astrocmd_plate_w))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_ucom4_state, display_decay_tick, attotime::from_msec(1))
MCFG_DEFAULT_LAYOUT(layout_hh_ucom4_test)
/* no video! */
/* 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
/***************************************************************************
Epoch Dracula (manufactured in Japan)
@ -719,7 +819,7 @@ MACHINE_CONFIG_END
void hh_ucom4_state::tmpacman_display()
{
UINT8 grid = BITSWAP8((UINT8)m_grid,0,1,2,3,4,5,6,7);
UINT32 grid = BITSWAP8(m_grid,0,1,2,3,4,5,6,7);
UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,16,17,18,11,10,9,8,0,2,3,1,4,5,6,7,12,13,14,15);
display_matrix(19, 8, plate | 0x100, grid); // plate 8 (maze) is always on
@ -929,9 +1029,15 @@ ROM_START( splasfgt )
ROM_END
ROM_START( astrocmd )
ROM_REGION( 0x0800, "maincpu", 0 )
ROM_LOAD( "d553c-202.s01", 0x0000, 0x0800, CRC(b4b34883) SHA1(6246d561c2df1f2124575d2ca671ef85b1819edd) )
ROM_END
ROM_START( edracula )
ROM_REGION( 0x0800, "maincpu", 0 )
ROM_LOAD( "d553c-206", 0x0000, 0x0800, CRC(b524857b) SHA1(c1c89ed5dd4bb1e6e98462dc8fa5af2aa48d8ede) )
ROM_LOAD( "d553c-206.s01", 0x0000, 0x0800, CRC(b524857b) SHA1(c1c89ed5dd4bb1e6e98462dc8fa5af2aa48d8ede) )
ROM_END
@ -958,6 +1064,7 @@ ROM_END
CONS( 1979, ssfball, 0, 0, ssfball, ssfball, driver_device, 0, "Bambino", "Superstar Football", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
CONS( 1980, splasfgt, 0, 0, splasfgt, splasfgt, driver_device, 0, "Bambino", "Space Laser Fight", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
CONS( 1982, astrocmd, 0, 0, astrocmd, astrocmd, driver_device, 0, "Epoch", "Astro Command", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
CONS( 1982, edracula, 0, 0, edracula, edracula, driver_device, 0, "Epoch", "Dracula (Epoch)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
CONS( 1980, tmtennis, 0, 0, tmtennis, tmtennis, driver_device, 0, "Tomy", "Tennis (Tomy)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )

View File

@ -2184,6 +2184,7 @@ cpacmanr1 //
egalaxn2 // Entex
epacman2 // Entex
pbqbert // Parker Brothers
kingman // Tomy
tmtron // Tomy
maniac // Ideal
@ -2208,6 +2209,7 @@ tandy12 // Tandy Radio Shack
ssfball // Bambino
splasfgt // Bambino
astrocmd // Epoch
edracula // Epoch
tmpacman // Tomy
tmtennis // Tomy