mirror of
https://github.com/holub/mame
synced 2025-10-07 01:16:22 +03:00
(MESS)New games added or promoted to working
----------------- Coleco Galaxian [hap, Kevin Horton, Olivier Galibert] Bambino Soccer [hap, Kevin Horton] Bambino Safari [hap, Kevin Horton] Epoch Invader From Space [hap, Kevin Horton] Epoch Football [hap, Kevin Horton] Epoch Galaxy II [hap, Kevin Horton] Tomy Cosmic Combat [hap, Kevin Horton] Gakken Heiankyo Alien [hap, Kevin Horton, Rik] Gakken Dig Dug [hap, Kevin Horton, Rik] Added as Not-working: -------------------- Gakken Crazy Kong [hap, Kevin Horton, Rik]
This commit is contained in:
parent
500a31ad57
commit
c61b2d707d
@ -10,20 +10,23 @@
|
||||
serial device etc.
|
||||
----------------------------------------------------------------
|
||||
@07 HD38750A 1979, Bambino Knock-Em Out Boxing (ET-06B)
|
||||
@08 HD38750A 1979, Bambino Basketball (ET-05)
|
||||
@08 HD38750A 1979, Bambino Dribble Away Basketball (ET-05)
|
||||
@45 HD38750A 1981, VTech Invaders
|
||||
*58 HD38750A 1982, Ludotronic(Hanzawa) Grand Prix Turbo
|
||||
*62 HD38750A 1982, Actronics(Hanzawa) Pack'n Maze
|
||||
|
||||
*04 HD38800A 1980, Gakken Heiankyo Alien
|
||||
@04 HD38800A 1980, Gakken Heiankyo Alien
|
||||
@25 HD38800A 1981, Coleco Alien Attack
|
||||
@27 HD38800A 1981, Bandai Packri Monster
|
||||
*31 HD38800A 1981, Entex Select-a-Game cartridge: Space Invader 2 (have dump)
|
||||
*41 HD38800A 1982, Gakken Puck Monster
|
||||
*51 HD38800A 1981, Actronics(Hanzawa) Twinvader
|
||||
@70 HD38800A 1982, Coleco Galaxian
|
||||
@73 HD38800A 1982, Bandai(Mattel) Star Hawk
|
||||
@77 HD38800A 1982, Bandai Frisky Tom
|
||||
@88 HD38800A 1984, Tomy Tron (THN-02)
|
||||
|
||||
@01 HD38800B 1982, Gakken Crazy Kong
|
||||
@23 HD38800B 1982, Tomy Kingman (THF-01II)
|
||||
*24 HD38800B 1982, Actronics(Hanzawa) Wanted G-Man
|
||||
*29 HD38800B 1984, Tomy Portable 6000 Bombman
|
||||
@ -41,11 +44,24 @@
|
||||
@45 HD38820A 1982, Coleco Donkey Kong
|
||||
@49 HD38820A 1983, Bandai Zackman
|
||||
@61 HD38820A 1983, Coleco Ms. Pac-Man
|
||||
@69 HD38820A 1983, Gakken Dig Dug
|
||||
@70 HD38820A 1983, Parker Brothers Q*Bert
|
||||
@88 HD38820A 1984, Tomy Tron (THN-02)
|
||||
|
||||
(* denotes not yet emulated by MESS, @ denotes it's in this driver)
|
||||
|
||||
|
||||
TODO:
|
||||
- cdkong discrete sound (simple volume decay, simulated for now)
|
||||
- cgalaxn discrete sound (alien attacking sound effect)
|
||||
- vinvader locks up at boot
|
||||
- gckong random lockups (tap the jump button repeatedly): mcu stack overflow,
|
||||
works ok if stack levels is increased, 38800 B rev. has more stack levels?
|
||||
- epacman booting the game in demo mode, pacman should go straight to the
|
||||
upper-left power pill: mcu cycle/interrupt timing related
|
||||
- Though very uncommon when compared to games with LED/lamp display,
|
||||
some games may manipulate VFD plate brightness by strobing it longer,
|
||||
eg. cgalaxn when the player ship explodes.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
@ -291,7 +307,7 @@ INPUT_CHANGED_MEMBER(hh_hmcs40_state::single_interrupt_line)
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Bambino Basketball - Dribble Away (manufactured in Japan)
|
||||
Bambino Dribble Away Basketball (manufactured in Japan)
|
||||
* PCBs are labeled Emix Corp. ET-05
|
||||
* Hitachi HD38750A08 MCU
|
||||
* green VFD display Emix-106, with bezel overlay
|
||||
@ -501,14 +517,14 @@ static INPUT_PORTS_START( bmboxing )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN.4") // port D
|
||||
PORT_CONFNAME( 0x01, 0x00, "Players" )
|
||||
PORT_CONFSETTING( 0x00, "1" )
|
||||
PORT_CONFSETTING( 0x01, "2" )
|
||||
PORT_CONFNAME( 0x02, 0x00, "Skill Level" )
|
||||
PORT_CONFSETTING( 0x00, "1" )
|
||||
PORT_CONFSETTING( 0x02, "2" )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_CONFNAME( 0x0001, 0x0000, "Players" )
|
||||
PORT_CONFSETTING( 0x0000, "1" )
|
||||
PORT_CONFSETTING( 0x0001, "2" )
|
||||
PORT_CONFNAME( 0x0002, 0x0000, "Skill Level" )
|
||||
PORT_CONFSETTING( 0x0000, "1" )
|
||||
PORT_CONFSETTING( 0x0002, "2" )
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_START )
|
||||
PORT_BIT( 0xfff8, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( bmboxing, bmboxing_state )
|
||||
@ -722,7 +738,7 @@ WRITE16_MEMBER(packmon_state::grid_w)
|
||||
READ16_MEMBER(packmon_state::input_r)
|
||||
{
|
||||
// D5: multiplexed inputs
|
||||
return read_inputs(5);
|
||||
return read_inputs(5) & 0x20;
|
||||
}
|
||||
|
||||
|
||||
@ -773,10 +789,10 @@ MACHINE_CONFIG_END
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Bandai(Mattel) Star Hawk (manufactured in Japan)
|
||||
Bandai/Mattel Star Hawk (manufactured in Japan)
|
||||
* PCBs are labeled Kaken, PT-317B
|
||||
* Hitachi HD38800A73 MCU
|
||||
* cyan/red VFD display Futaba DM-41ZK, with partial color overlay
|
||||
* cyan/red VFD display Futaba DM-41ZK, with partial color overlay + bezel
|
||||
|
||||
Kaken was a subsidiary of Bandai. The original Japanese release is unknown,
|
||||
was it canceled and only released in the USA?
|
||||
@ -908,7 +924,7 @@ MACHINE_CONFIG_END
|
||||
/***************************************************************************
|
||||
|
||||
Bandai Zackman "The Pit, FL Exploration of Space" (manufactured in Japan)
|
||||
* Hitachi HD38820A49 MCU
|
||||
* Hitachi QFP HD38820A49 MCU
|
||||
* cyan/red/yellow VFD display Futaba DM-53Z 3E, with color overlay
|
||||
|
||||
NOTE!: MESS external artwork is recommended
|
||||
@ -1057,7 +1073,7 @@ WRITE8_MEMBER(alnattck_state::plate_w)
|
||||
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
|
||||
|
||||
// update display
|
||||
UINT32 plate = BITSWAP16(m_plate,11,9,8,10,7,2,0,1,3,4,5,6,12,13,14,15) | (m_plate & 0xf0000);
|
||||
UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,18,17,16,11,9,8,10,7,2,0,1,3,4,5,6,12,13,14,15);
|
||||
display_matrix(20, 10, plate, m_grid);
|
||||
}
|
||||
|
||||
@ -1079,14 +1095,14 @@ WRITE16_MEMBER(alnattck_state::grid_w)
|
||||
READ16_MEMBER(alnattck_state::input_r)
|
||||
{
|
||||
// D5: multiplexed inputs
|
||||
return read_inputs(7);
|
||||
return read_inputs(7) & 0x20;
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( alnattck )
|
||||
PORT_START("IN.0") // D5 D7
|
||||
PORT_START("IN.0") // D7 line D5
|
||||
PORT_CONFNAME( 0x20, 0x00, "Skill Level" )
|
||||
PORT_CONFSETTING( 0x00, "1" )
|
||||
PORT_CONFSETTING( 0x20, "2" )
|
||||
@ -1104,10 +1120,10 @@ static INPUT_PORTS_START( alnattck )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
|
||||
|
||||
PORT_START("IN.5") // D12 line D5
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Move")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Move")
|
||||
|
||||
PORT_START("IN.6") // D13 line D5
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Fire")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Fire")
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( alnattck, alnattck_state )
|
||||
@ -1140,7 +1156,7 @@ MACHINE_CONFIG_END
|
||||
|
||||
Coleco Donkey Kong (manufactured in Taiwan)
|
||||
* PCB label Coleco Rev C 75790 DK
|
||||
* Hitachi HD38820A45 MCU
|
||||
* Hitachi QFP HD38820A45 MCU
|
||||
* cyan/red VFD display Futaba DM-47ZK 2K, with color overlay
|
||||
|
||||
NOTE!: MESS external artwork is recommended
|
||||
@ -1213,15 +1229,15 @@ WRITE16_MEMBER(cdkong_state::grid_w)
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( cdkong )
|
||||
PORT_START("IN.0") // port D
|
||||
PORT_START("IN.0") // INT0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, single_interrupt_line, (void *)0)
|
||||
|
||||
PORT_START("IN.1") // port D
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
|
||||
PORT_BIT( 0x7ff8, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
|
||||
|
||||
PORT_START("IN.1") // INT0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, single_interrupt_line, (void *)0)
|
||||
PORT_BIT( 0x7ff8, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -1246,7 +1262,7 @@ static MACHINE_CONFIG_START( cdkong, cdkong_state )
|
||||
MCFG_HMCS40_WRITE_R_CB(5, WRITE8(cdkong_state, plate_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(6, WRITE8(cdkong_state, plate_w))
|
||||
MCFG_HMCS40_WRITE_D_CB(WRITE16(cdkong_state, grid_w))
|
||||
MCFG_HMCS40_READ_D_CB(IOPORT("IN.0"))
|
||||
MCFG_HMCS40_READ_D_CB(IOPORT("IN.1"))
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("speaker_decay", cdkong_state, speaker_decay_sim, attotime::from_msec(CDKONG_SPEAKER_DECAY))
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_hmcs40_state, display_decay_tick, attotime::from_msec(1))
|
||||
@ -1289,9 +1305,11 @@ public:
|
||||
{ }
|
||||
|
||||
void prepare_display();
|
||||
DECLARE_WRITE16_MEMBER(plate_w);
|
||||
DECLARE_WRITE8_MEMBER(grid_w);
|
||||
DECLARE_WRITE16_MEMBER(plate_w);
|
||||
DECLARE_READ8_MEMBER(input_r);
|
||||
|
||||
DECLARE_INPUT_CHANGED_MEMBER(player_switch);
|
||||
};
|
||||
|
||||
// handlers
|
||||
@ -1299,23 +1317,11 @@ public:
|
||||
void cgalaxn_state::prepare_display()
|
||||
{
|
||||
UINT16 grid = BITSWAP16(m_grid,15,14,13,12,1,2,0,11,10,9,8,7,6,5,4,3);
|
||||
UINT16 plate = BITSWAP16(m_plate,15,14,5,4,3,2,1,0,7,11,12,9,8,10,6,13);
|
||||
display_matrix(14, 12, plate, grid);
|
||||
UINT16 plate = BITSWAP16(m_plate,15,14,6,5,4,3,2,1,7,8,9,10,11,0,12,13);
|
||||
display_matrix(15, 12, plate, grid);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(cgalaxn_state::grid_w)
|
||||
{
|
||||
// D0: speaker out
|
||||
m_speaker->level_w(data & 1);
|
||||
|
||||
// D1: speaker on?
|
||||
|
||||
// D2-D15: vfd matrix plate
|
||||
m_plate = data >> 2 & 0x3fff;
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(cgalaxn_state::plate_w)
|
||||
{
|
||||
// R10,R11: input mux
|
||||
if (offset == HMCS40_PORT_R1X)
|
||||
@ -1327,6 +1333,18 @@ WRITE16_MEMBER(cgalaxn_state::plate_w)
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(cgalaxn_state::plate_w)
|
||||
{
|
||||
// D0: speaker out
|
||||
m_speaker->level_w(data & 1);
|
||||
|
||||
// D1: start alien attack whine sound effect (edge triggered)
|
||||
|
||||
// D2-D15: vfd matrix plate
|
||||
m_plate = (m_plate & 0x4000) | (data >> 2 & 0x3fff);
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
READ8_MEMBER(cgalaxn_state::input_r)
|
||||
{
|
||||
// R0x: multiplexed inputs
|
||||
@ -1344,7 +1362,7 @@ static INPUT_PORTS_START( cgalaxn )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
|
||||
|
||||
PORT_START("IN.1") // R11 port R0x
|
||||
PORT_CONFNAME( 0x01, 0x01, "Players" )
|
||||
PORT_CONFNAME( 0x01, 0x01, "Players" ) PORT_CHANGED_MEMBER(DEVICE_SELF, cgalaxn_state, player_switch, NULL)
|
||||
PORT_CONFSETTING( 0x01, "1" )
|
||||
PORT_CONFSETTING( 0x00, "2" )
|
||||
PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
@ -1356,6 +1374,13 @@ static INPUT_PORTS_START( cgalaxn )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, single_interrupt_line, (void *)1)
|
||||
INPUT_PORTS_END
|
||||
|
||||
INPUT_CHANGED_MEMBER(cgalaxn_state::player_switch)
|
||||
{
|
||||
// 2-player switch directly enables plate 14
|
||||
m_plate = (m_plate & 0x3fff) | (newval ? 0 : 0x4000);
|
||||
}
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( cgalaxn, cgalaxn_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -1385,7 +1410,7 @@ MACHINE_CONFIG_END
|
||||
|
||||
Coleco Pac-Man (manufactured in Taiwan)
|
||||
* PCB label Coleco 75690
|
||||
* Hitachi HD38820A28/29 MCU
|
||||
* Hitachi QFP HD38820A28/29 MCU
|
||||
* cyan/red VFD display Futaba DM-34Z 2A, with color overlay
|
||||
|
||||
known releases:
|
||||
@ -1506,7 +1531,7 @@ MACHINE_CONFIG_END
|
||||
|
||||
Coleco Ms. Pac-Man (manufactured in Taiwan)
|
||||
* PCB label Coleco 911171
|
||||
* Hitachi HD38820A61 MCU
|
||||
* Hitachi QFP HD38820A61 MCU
|
||||
* cyan/red VFD display Futaba DM-60Z 3I, with color overlay
|
||||
|
||||
Select game mode on start:
|
||||
@ -1557,7 +1582,7 @@ WRITE16_MEMBER(cmspacmn_state::grid_w)
|
||||
// D5-D15: vfd matrix grid
|
||||
m_grid = data >> 5 & 0x7ff;
|
||||
|
||||
// D0,D1: plate 11+17,6+22 (update display there)
|
||||
// D0,D1: more plates (update display there)
|
||||
plate_w(space, 6 + HMCS40_PORT_R1X, data & 3);
|
||||
}
|
||||
|
||||
@ -1621,7 +1646,8 @@ MACHINE_CONFIG_END
|
||||
/***************************************************************************
|
||||
|
||||
Entex Galaxian 2 (manufactured in Japan)
|
||||
* Hitachi HD38820A13 MCU
|
||||
* PCB labels ENTEX GALAXIAN PB-118/116/097 80-210137/135/114
|
||||
* Hitachi QFP HD38820A13 MCU
|
||||
* cyan/red/green VFD display Futaba DM-20
|
||||
|
||||
NOTE!: MESS external artwork is recommended
|
||||
@ -1688,7 +1714,7 @@ static INPUT_PORTS_START( egalaxn2 )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY // "
|
||||
|
||||
PORT_START("IN.1") // D2 port R0x
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL PORT_16WAY // separate directional buttons, hence 16way
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL PORT_16WAY // "
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL PORT_16WAY // "
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_COCKTAIL PORT_16WAY // "
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL PORT_16WAY // "
|
||||
@ -1742,8 +1768,9 @@ MACHINE_CONFIG_END
|
||||
/***************************************************************************
|
||||
|
||||
Entex Pac Man 2 (manufactured in Japan)
|
||||
* Hitachi HD38820A23 MCU
|
||||
* cyan/red VFD display Futaba DM-28Z 1G
|
||||
* PCB labels ENTEX PAC-MAN PB-093/094 80-210149/50/51
|
||||
* Hitachi QFP HD38820A23 MCU
|
||||
* cyan/red VFD display Futaba DM-28Z 1G(cyan Pac-Man) or DM-28 1K(orange Pac-Man)
|
||||
|
||||
2 VFD revisions are known, the difference is Pac-Man's color: cyan or red.
|
||||
|
||||
@ -1821,10 +1848,374 @@ MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Gakken Heiankyo Alien (manufactured in Japan)
|
||||
* Hitachi HD38800A04 MCU
|
||||
* cyan/red VFD display Futaba DM-11Z 1H
|
||||
|
||||
known releases:
|
||||
- Japan: Heiankyo Alien
|
||||
- USA: Earth Invaders, published by CGL
|
||||
|
||||
NOTE!: MESS external artwork is recommended
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
class ghalien_state : public hh_hmcs40_state
|
||||
{
|
||||
public:
|
||||
ghalien_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: hh_hmcs40_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
DECLARE_WRITE8_MEMBER(plate_w);
|
||||
DECLARE_WRITE16_MEMBER(grid_w);
|
||||
DECLARE_READ16_MEMBER(input_r);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
WRITE8_MEMBER(ghalien_state::plate_w)
|
||||
{
|
||||
// R0x-R3x(,D10-D13): vfd matrix plate
|
||||
int shift = offset * 4;
|
||||
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
|
||||
|
||||
// update display
|
||||
UINT16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,0,1,2,3,4,5,6,7,8,9);
|
||||
UINT32 plate = BITSWAP24(m_plate,23,22,21,20,14,12,10,8,9,13,15,2,0,1,3,11,7,5,4,6,19,17,16,18);
|
||||
display_matrix(20, 10, plate, grid);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ghalien_state::grid_w)
|
||||
{
|
||||
// D14: speaker out
|
||||
m_speaker->level_w(data >> 14 & 1);
|
||||
|
||||
// D0-D6: input mux
|
||||
m_inp_mux = data & 0x7f;
|
||||
|
||||
// D0-D9: vfd matrix grid
|
||||
m_grid = data & 0x3ff;
|
||||
|
||||
// D10-D13: more plates (update display there)
|
||||
plate_w(space, 4, data >> 10 & 0xf);
|
||||
}
|
||||
|
||||
READ16_MEMBER(ghalien_state::input_r)
|
||||
{
|
||||
// D15: multiplexed inputs
|
||||
return read_inputs(7) & 0x8000;
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( ghalien )
|
||||
PORT_START("IN.0") // D0 line D15
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY // separate directional buttons, hence 16way
|
||||
|
||||
PORT_START("IN.1") // D1 line D15
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY // "
|
||||
|
||||
PORT_START("IN.2") // D2 line D15
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY // "
|
||||
|
||||
PORT_START("IN.3") // D3 line D15
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY // "
|
||||
|
||||
PORT_START("IN.4") // D4 line D15
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Dig")
|
||||
|
||||
PORT_START("IN.5") // D5 line D15
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Bury")
|
||||
|
||||
PORT_START("IN.6") // D6 line D15
|
||||
PORT_CONFNAME( 0x8000, 0x0000, DEF_STR( Difficulty ) )
|
||||
PORT_CONFSETTING( 0x0000, "Amateur" )
|
||||
PORT_CONFSETTING( 0x8000, "Professional" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( ghalien, ghalien_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", HD38800, 400000) // approximation
|
||||
MCFG_HMCS40_WRITE_R_CB(0, WRITE8(ghalien_state, plate_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(1, WRITE8(ghalien_state, plate_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(2, WRITE8(ghalien_state, plate_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(3, WRITE8(ghalien_state, plate_w))
|
||||
MCFG_HMCS40_WRITE_D_CB(WRITE16(ghalien_state, grid_w))
|
||||
MCFG_HMCS40_READ_D_CB(READ16(ghalien_state, input_r))
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Gakken Crazy Kong (manufactured in Japan)
|
||||
* PCB label ZENY 5603601
|
||||
* Hitachi HD38800B01 MCU
|
||||
* cyan/red/blue VFD display Futaba DM-54Z 2H, with bezel overlay
|
||||
|
||||
known releases:
|
||||
- Japan: Crazy Kong
|
||||
- USA: Super Kong, published by CGL
|
||||
|
||||
NOTE!: MESS external artwork is recommended
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
class gckong_state : public hh_hmcs40_state
|
||||
{
|
||||
public:
|
||||
gckong_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: hh_hmcs40_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
DECLARE_WRITE8_MEMBER(plate_w);
|
||||
DECLARE_WRITE16_MEMBER(grid_w);
|
||||
|
||||
void update_int1();
|
||||
DECLARE_INPUT_CHANGED_MEMBER(input_changed);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
WRITE8_MEMBER(gckong_state::plate_w)
|
||||
{
|
||||
// R0x-R3x(,D0,D1): vfd matrix plate
|
||||
int shift = offset * 4;
|
||||
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
|
||||
|
||||
// update display
|
||||
UINT16 grid = BITSWAP16(m_grid,15,14,13,12,11,0,1,2,3,4,5,6,7,8,9,10);
|
||||
UINT32 plate = BITSWAP32(m_plate,31,30,29,28,27,26,25,6,7,8,12,13,14,15,16,17,18,17,16,12,11,10,9,8,7,6,5,4,3,2,1,0);
|
||||
display_matrix(32, 11, plate, grid);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(gckong_state::grid_w)
|
||||
{
|
||||
// D2: speaker out
|
||||
m_speaker->level_w(data >> 2 & 1);
|
||||
|
||||
// D5-D8: input mux
|
||||
UINT8 inp_mux = data >> 5 & 0xf;
|
||||
if (inp_mux != m_inp_mux)
|
||||
{
|
||||
m_inp_mux = inp_mux;
|
||||
update_int1();
|
||||
}
|
||||
|
||||
// D5-D15: vfd matrix grid
|
||||
m_grid = data >> 5 & 0x7ff;
|
||||
|
||||
// D0,D1: more plates (update display there)
|
||||
plate_w(space, 4, data & 3);
|
||||
}
|
||||
|
||||
void gckong_state::update_int1()
|
||||
{
|
||||
// INT1 on multiplexed inputs
|
||||
set_interrupt(1, read_inputs(4));
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( gckong )
|
||||
PORT_START("IN.0") // D5 INT1
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, gckong_state, input_changed, NULL)
|
||||
|
||||
PORT_START("IN.1") // D6 INT1
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, gckong_state, input_changed, NULL)
|
||||
|
||||
PORT_START("IN.2") // D7 INT1
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, gckong_state, input_changed, NULL)
|
||||
|
||||
PORT_START("IN.3") // D8 INT1
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, gckong_state, input_changed, NULL)
|
||||
|
||||
PORT_START("IN.4") // INT0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, single_interrupt_line, (void *)0)
|
||||
|
||||
PORT_START("IN.5") // port D
|
||||
PORT_CONFNAME( 0x0010, 0x0000, "Skill Level" )
|
||||
PORT_CONFSETTING( 0x0000, "A" )
|
||||
PORT_CONFSETTING( 0x0010, "B" )
|
||||
PORT_BIT( 0xffef, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
INPUT_CHANGED_MEMBER(gckong_state::input_changed)
|
||||
{
|
||||
update_int1();
|
||||
}
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( gckong, gckong_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", HD38800, 400000) // approximation
|
||||
MCFG_HMCS40_WRITE_R_CB(0, WRITE8(gckong_state, plate_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(1, WRITE8(gckong_state, plate_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(2, WRITE8(gckong_state, plate_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(3, WRITE8(gckong_state, plate_w))
|
||||
MCFG_HMCS40_WRITE_D_CB(WRITE16(gckong_state, grid_w))
|
||||
MCFG_HMCS40_READ_D_CB(IOPORT("IN.5"))
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Gakken Dig Dug (manufactured in Japan)
|
||||
* PCB label Gakken DIG-DAG KS-004283(A/B)
|
||||
* Hitachi QFP HD38820A69 MCU
|
||||
* cyan/red/green VFD display Futaba DM-69Z 3F, with color overlay
|
||||
|
||||
NOTE!: MESS external artwork is recommended
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
class gdigdug_state : public hh_hmcs40_state
|
||||
{
|
||||
public:
|
||||
gdigdug_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: hh_hmcs40_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
DECLARE_WRITE8_MEMBER(plate_w);
|
||||
DECLARE_WRITE16_MEMBER(grid_w);
|
||||
|
||||
void update_int1();
|
||||
DECLARE_INPUT_CHANGED_MEMBER(input_changed);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
WRITE8_MEMBER(gdigdug_state::plate_w)
|
||||
{
|
||||
// R0x-R6x(,D0-D3): vfd matrix plate
|
||||
int shift = offset * 4;
|
||||
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
|
||||
|
||||
// update display
|
||||
UINT32 plate = BITSWAP32(m_plate,30,31,0,1,2,3,4,5,6,7,20,21,22,27,26,25,28,29,24,23,15,14,13,12,8,9,10,11,19,18,17,16);
|
||||
display_matrix(32, 9, plate, m_grid);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(gdigdug_state::grid_w)
|
||||
{
|
||||
// D6: speaker out
|
||||
m_speaker->level_w(data >> 6 & 1);
|
||||
|
||||
// D11-D15: input mux
|
||||
UINT8 inp_mux = data >> 11 & 0x1f;
|
||||
if (inp_mux != m_inp_mux)
|
||||
{
|
||||
m_inp_mux = inp_mux;
|
||||
update_int1();
|
||||
}
|
||||
|
||||
// D7-D15: vfd matrix grid
|
||||
m_grid = data >> 7 & 0x1ff;
|
||||
|
||||
// D0-D3: more plates (update display there)
|
||||
plate_w(space, 7, data & 0xf);
|
||||
}
|
||||
|
||||
void gdigdug_state::update_int1()
|
||||
{
|
||||
// INT1 on multiplexed inputs
|
||||
set_interrupt(1, read_inputs(5));
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( gdigdug )
|
||||
PORT_START("IN.0") // D11 INT1
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, gdigdug_state, input_changed, NULL)
|
||||
|
||||
PORT_START("IN.1") // D12 INT1
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, gdigdug_state, input_changed, NULL)
|
||||
|
||||
PORT_START("IN.2") // D13 INT1
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, gdigdug_state, input_changed, NULL)
|
||||
|
||||
PORT_START("IN.3") // D14 INT1
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, gdigdug_state, input_changed, NULL)
|
||||
|
||||
PORT_START("IN.4") // D15 INT1
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, gdigdug_state, input_changed, NULL)
|
||||
|
||||
PORT_START("IN.5") // INT0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, single_interrupt_line, (void *)0)
|
||||
INPUT_PORTS_END
|
||||
|
||||
INPUT_CHANGED_MEMBER(gdigdug_state::input_changed)
|
||||
{
|
||||
update_int1();
|
||||
}
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( gdigdug, gdigdug_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation
|
||||
MCFG_HMCS40_WRITE_R_CB(0, WRITE8(gdigdug_state, plate_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(1, WRITE8(gdigdug_state, plate_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(2, WRITE8(gdigdug_state, plate_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(3, WRITE8(gdigdug_state, plate_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(4, WRITE8(gdigdug_state, plate_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(5, WRITE8(gdigdug_state, plate_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(6, WRITE8(gdigdug_state, plate_w))
|
||||
MCFG_HMCS40_WRITE_D_CB(WRITE16(gdigdug_state, grid_w))
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Parker Brothers Q*Bert
|
||||
* Hitachi HD38820A70 MCU
|
||||
* PCB label 13662 REV-4
|
||||
* Hitachi QFP HD38820A70 MCU
|
||||
* cyan/red/green/darkgreen VFD display Itron CP5137
|
||||
|
||||
NOTE!: MESS external artwork is recommended
|
||||
@ -2211,11 +2602,11 @@ static INPUT_PORTS_START( vinvader )
|
||||
PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN.1") // port D
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
||||
PORT_CONFNAME( 0x08, 0x00, "Skill Level")
|
||||
PORT_CONFSETTING( 0x00, "1" )
|
||||
PORT_CONFSETTING( 0x08, "2" )
|
||||
PORT_BIT( 0x05, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_CONFNAME( 0x0002, 0x0000, "Skill Level")
|
||||
PORT_CONFSETTING( 0x0000, "1" )
|
||||
PORT_CONFSETTING( 0x0002, "2" )
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
||||
PORT_BIT( 0xfff5, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( vinvader, vinvader_state )
|
||||
@ -2278,6 +2669,13 @@ ROM_START( packmon )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( msthawk )
|
||||
ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "hd38800a73", 0x0000, 0x1000, CRC(a4f9a523) SHA1(465f06b02e2e7d2277218fd447830725790a816c) )
|
||||
ROM_CONTINUE( 0x1e80, 0x0100 )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( zackman )
|
||||
ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "hd38820a49", 0x0000, 0x1000, CRC(b97f5ef6) SHA1(7fe20e8107361caf9ea657e504be1f8b10b8b03f) )
|
||||
@ -2340,9 +2738,23 @@ ROM_START( epacman2 )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( msthawk )
|
||||
ROM_START( ghalien )
|
||||
ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "hd38800a73", 0x0000, 0x1000, CRC(a4f9a523) SHA1(465f06b02e2e7d2277218fd447830725790a816c) )
|
||||
ROM_LOAD( "hd38800a04", 0x0000, 0x1000, CRC(019c3328) SHA1(9f1029c5c479f78350952c4f18747341ba5ea7a0) )
|
||||
ROM_CONTINUE( 0x1e80, 0x0100 )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( gckong )
|
||||
ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "hd38800b01", 0x0000, 0x1000, CRC(d5a2cca3) SHA1(37bb5784383daab672ed1e0e2362c7a40d8d9b3f) )
|
||||
ROM_CONTINUE( 0x1e80, 0x0100 )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( gdigdug )
|
||||
ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "hd38820a69", 0x0000, 0x1000, CRC(501165a9) SHA1(8a15d00c4aa66e870cadde33148426463560d2e6) )
|
||||
ROM_CONTINUE( 0x1e80, 0x0100 )
|
||||
ROM_END
|
||||
|
||||
@ -2377,7 +2789,7 @@ ROM_END
|
||||
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
|
||||
CONS( 1979, bambball, 0, 0, bambball, bambball, driver_device, 0, "Bambino", "Basketball - Dribble Away", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
CONS( 1979, bambball, 0, 0, bambball, bambball, driver_device, 0, "Bambino", "Dribble Away Basketball", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
CONS( 1979, bmboxing, 0, 0, bmboxing, bmboxing, driver_device, 0, "Bambino", "Knock-Em Out Boxing", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
|
||||
CONS( 1982, bfriskyt, 0, 0, bfriskyt, bfriskyt, driver_device, 0, "Bandai", "Frisky Tom (Bandai)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
@ -2387,7 +2799,7 @@ CONS( 1983, zackman, 0, 0, zackman, zackman, driver_device, 0, "Banda
|
||||
|
||||
CONS( 1981, alnattck, 0, 0, alnattck, alnattck, driver_device, 0, "Coleco", "Alien Attack", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
CONS( 1982, cdkong, 0, 0, cdkong, cdkong, driver_device, 0, "Coleco", "Donkey Kong (Coleco)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_IMPERFECT_SOUND )
|
||||
CONS( 1982, cgalaxn, 0, 0, cgalaxn, cgalaxn, driver_device, 0, "Coleco", "Galaxian (Coleco)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
|
||||
CONS( 1982, cgalaxn, 0, 0, cgalaxn, cgalaxn, driver_device, 0, "Coleco", "Galaxian (Coleco)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_IMPERFECT_SOUND )
|
||||
CONS( 1981, cpacman, 0, 0, cpacman, cpacman, driver_device, 0, "Coleco", "Pac-Man (Coleco, Rev. 29)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
CONS( 1981, cpacmanr1, cpacman, 0, cpacman, cpacman, driver_device, 0, "Coleco", "Pac-Man (Coleco, Rev. 28)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
CONS( 1983, cmspacmn, 0, 0, cmspacmn, cmspacmn, driver_device, 0, "Coleco", "Ms. Pac-Man (Coleco)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
@ -2395,6 +2807,10 @@ CONS( 1983, cmspacmn, 0, 0, cmspacmn, cmspacmn, driver_device, 0, "Colec
|
||||
CONS( 1981, egalaxn2, 0, 0, egalaxn2, egalaxn2, driver_device, 0, "Entex", "Galaxian 2 (Entex)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
CONS( 1981, epacman2, 0, 0, epacman2, epacman2, driver_device, 0, "Entex", "Pac Man 2 (Entex)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
|
||||
CONS( 1980, ghalien, 0, 0, ghalien, ghalien, driver_device, 0, "Gakken", "Heiankyo Alien (Gakken)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
CONS( 1982, gckong, 0, 0, gckong, gckong, driver_device, 0, "Gakken", "Crazy Kong (Gakken)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
|
||||
CONS( 1983, gdigdug, 0, 0, gdigdug, gdigdug, driver_device, 0, "Gakken", "Dig Dug (Gakken)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
|
||||
CONS( 1983, pbqbert, 0, 0, pbqbert, pbqbert, driver_device, 0, "Parker Brothers", "Q*Bert (Parker Brothers)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
|
||||
CONS( 1982, kingman, 0, 0, kingman, kingman, driver_device, 0, "Tomy", "Kingman", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
|
@ -9,6 +9,7 @@
|
||||
serial device etc.
|
||||
-----------------------------------------------------------
|
||||
@036 1655A 1979, Ideal Maniac
|
||||
*061 1655A 1980, Lakeside Le Boom (have dump)
|
||||
*110 1650A 1979, Tiger Rocket Pinball
|
||||
*192 1650 19??, (a phone dialer, have dump)
|
||||
*255 1655 19??, (a talking clock, have dump)
|
||||
@ -147,7 +148,7 @@ void hh_pic16_state::display_update()
|
||||
int state = active_state[y] >> x & 1;
|
||||
char buf1[0x10]; // lampyx
|
||||
char buf2[0x10]; // y.x
|
||||
|
||||
|
||||
if (x == m_display_maxx)
|
||||
{
|
||||
// always-on if selected
|
||||
|
@ -54,7 +54,7 @@
|
||||
*MP7324 TMS1400? 1985, Coleco Talking Teacher
|
||||
MP7332 TMS1400 1981, Milton Bradley Dark Tower -> mbdtower.c
|
||||
@MP7334 TMS1400 1981, Coleco Total Control 4
|
||||
*MP7573 ? 1981, Entex Select-a-Game cartridge: Football (? note: 40-pin, VFD-capable)
|
||||
*MP7573 ? 1981, Entex Select-a-Game cartridge: Football 4 (? note: 40-pin, VFD-capable)
|
||||
|
||||
inconsistent:
|
||||
|
||||
|
@ -2,7 +2,19 @@
|
||||
// copyright-holders:hap, Kevin Horton
|
||||
/***************************************************************************
|
||||
|
||||
NEC uCOM4 MCU tabletops/handhelds or other simple devices.
|
||||
NEC uCOM4 MCU tabletops/handhelds or other simple devices,
|
||||
most of them are VFD electronic games/toys.
|
||||
|
||||
Commonly used VFD(vacuum fluorescent display) are by NEC or Futaba.
|
||||
|
||||
NEC FIP9AM20T (example, Epoch Astro Command)
|
||||
grcss
|
||||
|
||||
FIP = fluorescent indicator panel
|
||||
g = number of grids
|
||||
A = revision of the VFD
|
||||
M = custom display
|
||||
20 = unique display part number
|
||||
|
||||
|
||||
known chips:
|
||||
@ -10,16 +22,19 @@
|
||||
serial device etc.
|
||||
----------------------------------------------------------------
|
||||
@017 uPD552C 1979, Bambino UFO Master-Blaster Station (ET-02)
|
||||
@031 uPD553C 1979, Bambino Superstar Football (ET-03)
|
||||
*042 uPD552C 1979, Tomy Space Attack
|
||||
@042 uPD552C 1980, Tomy Cosmic Combat (TN-??)
|
||||
@043 uPD552C 1979, Bambino Kick The Goal Soccer (ET-10)
|
||||
*044 uPD552C 1979, Bambino Lucky Puck Ice Hockey (ET-08)
|
||||
@048 uPD552C 1980, Tomy Tennis (TN-04)
|
||||
@049 uPD552C 1981, Bambino Safari (ET-11)
|
||||
@054 uPD552C 1980, Epoch Invader From Space
|
||||
|
||||
@031 uPD553C 1979, Bambino Superstar Football (ET-03)
|
||||
@049 uPD553C 1979, Mego Mini-Vid Break Free
|
||||
@055 uPD553C 1980, Bambino Laser Fight (ET-12)
|
||||
*085 uPD650C 1980, Roland TR-808
|
||||
@055 uPD553C 1980, Bambino Space Laser Fight (ET-12)
|
||||
@080 uPD553C 1980, Epoch Electronic Football
|
||||
*102 uPD553C 1981, Bandai Block Out
|
||||
*127 uPD650C 198? Sony OA-S1100 Typecorder (subcpu, have dump)
|
||||
*128 uPD650C 1982, Roland TR-606
|
||||
133 uPD650C 1982, Roland TB-303 -> tb303.c
|
||||
@153 uPD553C 1981, Epoch Galaxy II
|
||||
@160 uPD553C 1982, Tomy Pac Man (TN-08)
|
||||
@170 uPD553C 1982, Bandai Crazy Climber
|
||||
@192 uPD553C 1982, Tomy Scramble (TN-10)
|
||||
@ -28,6 +43,11 @@
|
||||
@209 uPD553C 1982, Tomy Caveman (TN-12)
|
||||
@258 uPD553C 1984, Tomy Alien Chase (TN-16)
|
||||
|
||||
*085 uPD650C 1980, Roland TR-808
|
||||
*127 uPD650C 198? Sony OA-S1100 Typecorder (subcpu, have dump)
|
||||
*128 uPD650C 1982, Roland TR-606
|
||||
133 uPD650C 1982, Roland TB-303 -> tb303.c
|
||||
|
||||
(* denotes not yet emulated by MESS, @ denotes it's in this driver)
|
||||
|
||||
***************************************************************************/
|
||||
@ -245,7 +265,7 @@ UINT8 hh_ucom4_state::read_inputs(int columns)
|
||||
|
||||
This is Bambino's first game, it is not known if ET-01 exists. Emix Corp.
|
||||
wasn't initially a toy company, the first release was through Tomy. Emix
|
||||
created the Bambino brand afterwards. The manual claims it to be the first
|
||||
created the Bambino brand afterwards. It is claimed to be the first
|
||||
computerized VFD game (true, unless TI's Speak & Spell is considered a game?)
|
||||
|
||||
known releases:
|
||||
@ -357,7 +377,9 @@ MACHINE_CONFIG_END
|
||||
Bambino Superstar Football (manufactured in Japan)
|
||||
* PCB label Emix Corp. ET-03
|
||||
* NEC uCOM-43 MCU, labeled D553C 031
|
||||
* cyan VFD display Emix-102
|
||||
* cyan VFD display Emix-102, with bezel
|
||||
|
||||
The game was rereleased in 1982 as Classic Football, with an improved VFD.
|
||||
|
||||
Press the Kick button to start the game, an automatic sequence follows.
|
||||
Then choose a formation(A,B,C) and either pass the ball, and/or start
|
||||
@ -424,6 +446,17 @@ READ8_MEMBER(ssfball_state::input_b_r)
|
||||
|
||||
// config
|
||||
|
||||
/* physical button layout and labels is like this:
|
||||
|
||||
[A] [B] [C] [PASS] [KICK/
|
||||
^FORMATION^ DISPLAY]
|
||||
|
||||
[^]
|
||||
[<>]
|
||||
(game lvl sw) [v]
|
||||
1<---OFF--->2
|
||||
*/
|
||||
|
||||
static INPUT_PORTS_START( ssfball )
|
||||
PORT_START("IN.0") // F3 port B3
|
||||
PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
@ -431,7 +464,7 @@ static INPUT_PORTS_START( ssfball )
|
||||
|
||||
PORT_START("IN.1") // G3 port B3
|
||||
PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_CONFNAME( 0x08, 0x00, "Skill Level" )
|
||||
PORT_CONFNAME( 0x08, 0x00, "Game Level" )
|
||||
PORT_CONFSETTING( 0x00, "1" )
|
||||
PORT_CONFSETTING( 0x08, "2" )
|
||||
|
||||
@ -439,12 +472,12 @@ static INPUT_PORTS_START( ssfball )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_NAME("Kick/Display")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("Formation C")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("Formation B")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) // multiplexed, handled in ssfball_input_b_r
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) // multiplexed, handled in input_b_r
|
||||
|
||||
PORT_START("IN.3") // port A
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("Left/Right")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_UP) PORT_NAME("Up")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_DOWN) PORT_NAME("Down")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_NAME("Ball-carrier Left/Right") PORT_16WAY // separate directional buttons, hence 16way
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_NAME("Ball-carrier Up") PORT_16WAY // "
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_NAME("Ball-carrier Down") PORT_16WAY // "
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Pass")
|
||||
INPUT_PORTS_END
|
||||
|
||||
@ -481,12 +514,247 @@ MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Bambino Kick The Goal Soccer
|
||||
* PCB label Emix Corp. ET-10/08 (PCB is for 2 possible games)
|
||||
* NEC uCOM-44 MCU, labeled D552C 043
|
||||
* cyan VFD display Emix-105, with bezel overlay
|
||||
|
||||
Press the Display button twice to start the game. Action won't start until
|
||||
player 1 presses one of the directional keys. In 2-player mode, player 2
|
||||
controls the goalkeeper, defensive players are still controlled by the CPU.
|
||||
|
||||
NOTE!: MESS external artwork is recommended
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
class bmsoccer_state : public hh_ucom4_state
|
||||
{
|
||||
public:
|
||||
bmsoccer_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: hh_ucom4_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void prepare_display();
|
||||
DECLARE_WRITE8_MEMBER(grid_w);
|
||||
DECLARE_WRITE8_MEMBER(plate_w);
|
||||
DECLARE_READ8_MEMBER(input_a_r);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
void bmsoccer_state::prepare_display()
|
||||
{
|
||||
UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,11,7,3,12,17,13,18,16,14,15,8,4,0,9,5,1,10,6,2);
|
||||
display_matrix(16, 9, plate, m_grid);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(bmsoccer_state::grid_w)
|
||||
{
|
||||
// C01: input mux
|
||||
if (offset == NEC_UCOM4_PORTC)
|
||||
m_inp_mux = data & 3;
|
||||
|
||||
// C,D(,E3): vfd matrix grid
|
||||
int shift = (offset - NEC_UCOM4_PORTC) * 4;
|
||||
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(bmsoccer_state::plate_w)
|
||||
{
|
||||
// G3: speaker out
|
||||
if (offset == NEC_UCOM4_PORTG)
|
||||
m_speaker->level_w(data >> 3 & 1);
|
||||
|
||||
// E012,F012,G012,H,I: vfd matrix plate
|
||||
int shift = (offset - NEC_UCOM4_PORTE) * 4;
|
||||
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
|
||||
|
||||
// E3: grid 8
|
||||
if (offset == NEC_UCOM4_PORTE)
|
||||
grid_w(space, offset, data >> 3 & 1);
|
||||
else
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
READ8_MEMBER(bmsoccer_state::input_a_r)
|
||||
{
|
||||
// port A: multiplexed inputs
|
||||
return read_inputs(2);
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( bmsoccer )
|
||||
PORT_START("IN.0") // C0 port A
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_NAME("Ball-carrier Right") PORT_16WAY // separate directional buttons, hence 16way
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_NAME("Ball-carrier Down") PORT_16WAY // "
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_NAME("Ball-carrier Left") PORT_16WAY // "
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_NAME("Ball-carrier Up") PORT_16WAY // "
|
||||
|
||||
PORT_START("IN.1") // C1 port A
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL PORT_NAME("Goalkeeper Left") PORT_16WAY // " + note: swap buttons if viewed from the same angle as player 1
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL PORT_NAME("Goalkeeper Right") PORT_16WAY // "
|
||||
PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN.2") // port B
|
||||
PORT_CONFNAME( 0x01, 0x00, "Skill Level" )
|
||||
PORT_CONFSETTING( 0x00, "1" )
|
||||
PORT_CONFSETTING( 0x01, "2" )
|
||||
PORT_CONFNAME( 0x02, 0x00, "Players" )
|
||||
PORT_CONFSETTING( 0x00, "1" )
|
||||
PORT_CONFSETTING( 0x02, "2" )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Display/Banana Shoot")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Shoot")
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( bmsoccer, bmsoccer_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", NEC_D552, 400000) // approximation
|
||||
MCFG_UCOM4_READ_A_CB(READ8(bmsoccer_state, input_a_r))
|
||||
MCFG_UCOM4_READ_B_CB(IOPORT("IN.2"))
|
||||
MCFG_UCOM4_WRITE_C_CB(WRITE8(bmsoccer_state, grid_w))
|
||||
MCFG_UCOM4_WRITE_D_CB(WRITE8(bmsoccer_state, grid_w))
|
||||
MCFG_UCOM4_WRITE_E_CB(WRITE8(bmsoccer_state, plate_w))
|
||||
MCFG_UCOM4_WRITE_F_CB(WRITE8(bmsoccer_state, plate_w))
|
||||
MCFG_UCOM4_WRITE_G_CB(WRITE8(bmsoccer_state, plate_w))
|
||||
MCFG_UCOM4_WRITE_H_CB(WRITE8(bmsoccer_state, plate_w))
|
||||
MCFG_UCOM4_WRITE_I_CB(WRITE8(bmsoccer_state, 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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Bambino Safari (manufactured in Japan)
|
||||
* PCB label Emix Corp. ET-11
|
||||
* NEC uCOM-44 MCU, labeled EMIX D552C 049
|
||||
* cyan VFD display Emix-108
|
||||
|
||||
NOTE!: MESS external artwork is recommended
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
class bmsafari_state : public hh_ucom4_state
|
||||
{
|
||||
public:
|
||||
bmsafari_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: hh_ucom4_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void prepare_display();
|
||||
DECLARE_WRITE8_MEMBER(grid_w);
|
||||
DECLARE_WRITE8_MEMBER(plate_w);
|
||||
DECLARE_WRITE8_MEMBER(speaker_w);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
void bmsafari_state::prepare_display()
|
||||
{
|
||||
UINT16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,9,0,1,2,3,4,5,6,7,8);
|
||||
UINT16 plate = BITSWAP16(m_plate,15,14,13,12,11,7,10,2,9,5,8,4,0,1,6,3);
|
||||
display_matrix(10, 9, plate, grid);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(bmsafari_state::grid_w)
|
||||
{
|
||||
// C,D(,E3): vfd matrix grid
|
||||
int shift = (offset - NEC_UCOM4_PORTC) * 4;
|
||||
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(bmsafari_state::plate_w)
|
||||
{
|
||||
// E012,H,I: vfd matrix plate
|
||||
int shift = (offset == NEC_UCOM4_PORTE) ? 8 : (offset - NEC_UCOM4_PORTH) * 4;
|
||||
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
|
||||
|
||||
// E3: grid 0
|
||||
if (offset == NEC_UCOM4_PORTE)
|
||||
grid_w(space, offset, data >> 3 & 1);
|
||||
else
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(bmsafari_state::speaker_w)
|
||||
{
|
||||
// G0: speaker out
|
||||
m_speaker->level_w(data & 1);
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( bmsafari )
|
||||
PORT_START("IN.0") // port A
|
||||
PORT_CONFNAME( 0x07, 0x04, "Skill Level" )
|
||||
PORT_CONFSETTING( 0x04, "1" )
|
||||
PORT_CONFSETTING( 0x02, "2" )
|
||||
PORT_CONFSETTING( 0x01, "3" )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
||||
|
||||
PORT_START("IN.1") // port B
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY // separate directional buttons, hence 16way
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY // "
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY // "
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY // "
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( bmsafari, bmsafari_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", NEC_D552, 400000) // approximation
|
||||
MCFG_UCOM4_READ_A_CB(IOPORT("IN.0"))
|
||||
MCFG_UCOM4_READ_B_CB(IOPORT("IN.1"))
|
||||
MCFG_UCOM4_WRITE_C_CB(WRITE8(bmsafari_state, grid_w))
|
||||
MCFG_UCOM4_WRITE_D_CB(WRITE8(bmsafari_state, grid_w))
|
||||
MCFG_UCOM4_WRITE_E_CB(WRITE8(bmsafari_state, plate_w))
|
||||
MCFG_UCOM4_WRITE_G_CB(WRITE8(bmsafari_state, speaker_w))
|
||||
MCFG_UCOM4_WRITE_H_CB(WRITE8(bmsafari_state, plate_w))
|
||||
MCFG_UCOM4_WRITE_I_CB(WRITE8(bmsafari_state, 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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Bambino Space Laser Fight (manufactured in Japan)
|
||||
* PCB label Emix Corp. ET-12
|
||||
* NEC uCOM-43 MCU, labeled D553C 055
|
||||
* cyan VFD display Emix-104, with color overlay (blue or green overlay, depending on region)
|
||||
* cyan VFD display Emix-104, with blue or green color overlay
|
||||
|
||||
This is basically a revamp of their earlier Boxing game (ET-06), case and
|
||||
buttons are exactly the same.
|
||||
|
||||
NOTE!: MESS external artwork is recommended
|
||||
|
||||
@ -732,12 +1000,327 @@ MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Epoch Invader From Space (manufactured in Japan)
|
||||
* PCB labels 36010(A/B)
|
||||
* NEC uCOM-44 MCU, labeled D552C 054
|
||||
* cyan VFD display NEC FIP9AM18T tube no. 0D, with color overlay
|
||||
|
||||
known releases:
|
||||
- USA: Invader From Space
|
||||
- UK: Invader From Space, published by Grandstand
|
||||
|
||||
NOTE!: MESS external artwork is recommended
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
class invspace_state : public hh_ucom4_state
|
||||
{
|
||||
public:
|
||||
invspace_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: hh_ucom4_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void prepare_display();
|
||||
DECLARE_WRITE8_MEMBER(grid_w);
|
||||
DECLARE_WRITE8_MEMBER(plate_w);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
void invspace_state::prepare_display()
|
||||
{
|
||||
UINT16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,8,9,7,6,5,4,3,2,1,0);
|
||||
UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,9,14,13,8,15,11,10,7,11,3,2,6,10,1,5,9,0,4,8);
|
||||
display_matrix(19, 9, plate, grid);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(invspace_state::grid_w)
|
||||
{
|
||||
// I0: speaker out
|
||||
if (offset == NEC_UCOM4_PORTI)
|
||||
m_speaker->level_w(data & 1);
|
||||
|
||||
// C,D,I1: vfd matrix grid
|
||||
int shift = (offset == NEC_UCOM4_PORTI) ? 8 : (offset - NEC_UCOM4_PORTC) * 4;
|
||||
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(invspace_state::plate_w)
|
||||
{
|
||||
// E,F,G,H123: vfd matrix plate
|
||||
int shift = (offset - NEC_UCOM4_PORTE) * 4;
|
||||
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( invspace )
|
||||
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_UNUSED )
|
||||
|
||||
PORT_START("IN.1") // port B
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
|
||||
PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( invspace, invspace_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", NEC_D552, XTAL_400kHz)
|
||||
MCFG_UCOM4_READ_A_CB(IOPORT("IN.0"))
|
||||
MCFG_UCOM4_READ_B_CB(IOPORT("IN.1"))
|
||||
MCFG_UCOM4_WRITE_C_CB(WRITE8(invspace_state, grid_w))
|
||||
MCFG_UCOM4_WRITE_D_CB(WRITE8(invspace_state, grid_w))
|
||||
MCFG_UCOM4_WRITE_E_CB(WRITE8(invspace_state, plate_w))
|
||||
MCFG_UCOM4_WRITE_F_CB(WRITE8(invspace_state, plate_w))
|
||||
MCFG_UCOM4_WRITE_G_CB(WRITE8(invspace_state, plate_w))
|
||||
MCFG_UCOM4_WRITE_H_CB(WRITE8(invspace_state, plate_w))
|
||||
MCFG_UCOM4_WRITE_I_CB(WRITE8(invspace_state, grid_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 Electronic Football (manufactured in Japan)
|
||||
* PCB labels 36020(A/B/C)
|
||||
* NEC uCOM-43 MCU, labeled D553C 080
|
||||
* cyan VFD display NEC FIP10AM15T tube no. 0F, with bezel overlay
|
||||
|
||||
known releases:
|
||||
- USA: Electronic Football (aka Pro-Bowl Football)
|
||||
- Japan: American Football
|
||||
|
||||
NOTE!: MESS external artwork is recommended
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
class efball_state : public hh_ucom4_state
|
||||
{
|
||||
public:
|
||||
efball_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: hh_ucom4_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void prepare_display();
|
||||
DECLARE_WRITE8_MEMBER(grid_w);
|
||||
DECLARE_WRITE8_MEMBER(plate_w);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
void efball_state::prepare_display()
|
||||
{
|
||||
UINT16 plate = BITSWAP16(m_plate,15,14,13,12,11,4,3,0,2,1,6,10,9,5,8,7);
|
||||
display_matrix(11, 10, plate, m_grid);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(efball_state::grid_w)
|
||||
{
|
||||
// H2: speaker out
|
||||
if (offset == NEC_UCOM4_PORTH)
|
||||
m_speaker->level_w(data >> 2 & 1);
|
||||
|
||||
// F,G,H01: vfd matrix grid
|
||||
int shift = (offset - NEC_UCOM4_PORTF) * 4;
|
||||
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(efball_state::plate_w)
|
||||
{
|
||||
// D,E,I: vfd matrix plate
|
||||
int shift = (offset == NEC_UCOM4_PORTI) ? 8 : (offset - NEC_UCOM4_PORTD) * 4;
|
||||
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( efball )
|
||||
PORT_START("IN.0") // port A
|
||||
PORT_CONFNAME( 0x01, 0x00, DEF_STR( Difficulty ) )
|
||||
PORT_CONFSETTING( 0x00, "Amateur" )
|
||||
PORT_CONFSETTING( 0x01, "Professional" )
|
||||
PORT_CONFNAME( 0x02, 0x02, "Players" )
|
||||
PORT_CONFSETTING( 0x02, "1" )
|
||||
PORT_CONFSETTING( 0x00, "2" )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Down Field")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("P1 Score/Time")
|
||||
|
||||
PORT_START("IN.1") // port B
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY // separate directional buttons, hence 16way
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY // "
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P1 Pass")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("P1 Kick")
|
||||
|
||||
PORT_START("IN.2") // port C
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL PORT_16WAY // "
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_COCKTAIL PORT_16WAY // "
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Return")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_NAME("P1 Left/Right") PORT_16WAY // "
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( efball, efball_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_READ_C_CB(IOPORT("IN.2"))
|
||||
MCFG_UCOM4_WRITE_D_CB(WRITE8(efball_state, plate_w))
|
||||
MCFG_UCOM4_WRITE_E_CB(WRITE8(efball_state, plate_w))
|
||||
MCFG_UCOM4_WRITE_F_CB(WRITE8(efball_state, grid_w))
|
||||
MCFG_UCOM4_WRITE_G_CB(WRITE8(efball_state, grid_w))
|
||||
MCFG_UCOM4_WRITE_H_CB(WRITE8(efball_state, grid_w))
|
||||
MCFG_UCOM4_WRITE_I_CB(WRITE8(efball_state, 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 Galaxy II (manufactured in Japan)
|
||||
* PCB labels 19096/96062
|
||||
* NEC uCOM-43 MCU, labeled D553C 153
|
||||
* cyan/red VFD display NEC FIP10xM20T, with color overlay. x = multiple VFD
|
||||
revisions exist, with different graphics: rev B no. 1-8, rev. D no. 2-21.
|
||||
|
||||
known releases:
|
||||
- USA: Galaxy II
|
||||
- Japan: Astro Wars
|
||||
- UK: Astro Wars, published by Grandstand
|
||||
|
||||
NOTE!: MESS external artwork is recommended
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
class galaxy2_state : public hh_ucom4_state
|
||||
{
|
||||
public:
|
||||
galaxy2_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: hh_ucom4_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void prepare_display();
|
||||
DECLARE_WRITE8_MEMBER(grid_w);
|
||||
DECLARE_WRITE8_MEMBER(plate_w);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
void galaxy2_state::prepare_display()
|
||||
{
|
||||
UINT16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,0,1,2,3,4,5,6,7,8,9);
|
||||
UINT16 plate = BITSWAP16(m_plate,15,3,2,6,1,5,4,0,11,10,7,12,14,13,8,9);
|
||||
display_matrix(15, 10, plate, grid);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(galaxy2_state::grid_w)
|
||||
{
|
||||
// E3: speaker out
|
||||
if (offset == NEC_UCOM4_PORTE)
|
||||
m_speaker->level_w(data >> 3 & 1);
|
||||
|
||||
// C,D,E01: vfd matrix grid
|
||||
int shift = (offset - NEC_UCOM4_PORTC) * 4;
|
||||
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(galaxy2_state::plate_w)
|
||||
{
|
||||
// F,G,H,I: vfd matrix plate
|
||||
int shift = (offset - NEC_UCOM4_PORTF) * 4;
|
||||
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( galaxy2 )
|
||||
PORT_START("IN.0") // port A
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN.1") // port B
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START )
|
||||
PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( galaxy2, galaxy2_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(galaxy2_state, grid_w))
|
||||
MCFG_UCOM4_WRITE_D_CB(WRITE8(galaxy2_state, grid_w))
|
||||
MCFG_UCOM4_WRITE_E_CB(WRITE8(galaxy2_state, grid_w))
|
||||
MCFG_UCOM4_WRITE_F_CB(WRITE8(galaxy2_state, plate_w))
|
||||
MCFG_UCOM4_WRITE_G_CB(WRITE8(galaxy2_state, plate_w))
|
||||
MCFG_UCOM4_WRITE_H_CB(WRITE8(galaxy2_state, plate_w))
|
||||
MCFG_UCOM4_WRITE_I_CB(WRITE8(galaxy2_state, 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 Astro Command (manufactured in Japan)
|
||||
* PCB label 96111
|
||||
* PCB labels 96111/96112
|
||||
* NEC uCOM-43 MCU, labeled D553C 202
|
||||
* cyan/red VFD display NEC FIP9AM20T no. 42-42, with color overlay (FIP=fluorescent indicator panel)
|
||||
* cyan/red VFD display NEC FIP9AM20T no. 42-42, with color overlay + bezel
|
||||
|
||||
known releases:
|
||||
- Japan: Astro Command
|
||||
@ -1043,6 +1626,103 @@ MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Tomy(tronic) Cosmic Combat (manufactured in Japan)
|
||||
* PCBs are labeled 2E1019-E01
|
||||
* NEC uCOM-44 MCU, labeled D552C 042
|
||||
* cyan VFD display NEC FIP32AM18Y tube no. 0E, with color overlay
|
||||
|
||||
known releases:
|
||||
- USA: Cosmic Combat
|
||||
- Japan: Space Attack
|
||||
|
||||
NOTE!: MESS external artwork is recommended
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
class tccombat_state : public hh_ucom4_state
|
||||
{
|
||||
public:
|
||||
tccombat_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: hh_ucom4_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void prepare_display();
|
||||
DECLARE_WRITE8_MEMBER(grid_w);
|
||||
DECLARE_WRITE8_MEMBER(plate_w);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
void tccombat_state::prepare_display()
|
||||
{
|
||||
UINT16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,9,8,3,2,1,0,7,6,5,4);
|
||||
UINT32 plate = BITSWAP24(m_plate,23,22,21,20,11,15,3,10,14,2,9,13,1,0,12,8,15,1,5,0,3,7,2,6);
|
||||
display_matrix(20, 9, plate, grid);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(tccombat_state::grid_w)
|
||||
{
|
||||
// I1: speaker out
|
||||
if (offset == NEC_UCOM4_PORTI)
|
||||
m_speaker->level_w(data >> 1 & 1);
|
||||
|
||||
// C,D,I0: vfd matrix grid
|
||||
int shift = (offset == NEC_UCOM4_PORTI) ? 8 : (offset - NEC_UCOM4_PORTC) * 4;
|
||||
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(tccombat_state::plate_w)
|
||||
{
|
||||
// E,F123,G,H: vfd matrix plate
|
||||
int shift = (offset - NEC_UCOM4_PORTE) * 4;
|
||||
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( tccombat )
|
||||
PORT_START("IN.0") // port A
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
||||
PORT_CONFNAME( 0x02, 0x02, "Skill Level" )
|
||||
PORT_CONFSETTING( 0x02, "1" )
|
||||
PORT_CONFSETTING( 0x00, "2" )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( tccombat, tccombat_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", NEC_D552, 400000) // approximation
|
||||
MCFG_UCOM4_READ_A_CB(IOPORT("IN.0"))
|
||||
MCFG_UCOM4_WRITE_C_CB(WRITE8(tccombat_state, grid_w))
|
||||
MCFG_UCOM4_WRITE_D_CB(WRITE8(tccombat_state, grid_w))
|
||||
MCFG_UCOM4_WRITE_E_CB(WRITE8(tccombat_state, plate_w))
|
||||
MCFG_UCOM4_WRITE_F_CB(WRITE8(tccombat_state, plate_w))
|
||||
MCFG_UCOM4_WRITE_G_CB(WRITE8(tccombat_state, plate_w))
|
||||
MCFG_UCOM4_WRITE_H_CB(WRITE8(tccombat_state, plate_w))
|
||||
MCFG_UCOM4_WRITE_I_CB(WRITE8(tccombat_state, grid_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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Tomy(tronic) Tennis (manufactured in Japan)
|
||||
@ -1377,8 +2057,8 @@ static INPUT_PORTS_START( tmscramb )
|
||||
PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
||||
|
||||
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( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_2WAY
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_2WAY
|
||||
PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
@ -1568,7 +2248,7 @@ WRITE8_MEMBER(alnchase_state::output_w)
|
||||
|
||||
READ8_MEMBER(alnchase_state::input_r)
|
||||
{
|
||||
// A: buttons
|
||||
// A: multiplexed buttons
|
||||
return read_inputs(2);
|
||||
}
|
||||
|
||||
@ -1659,6 +2339,18 @@ ROM_START( ssfball )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( bmsoccer )
|
||||
ROM_REGION( 0x0400, "maincpu", 0 )
|
||||
ROM_LOAD( "d552c-043", 0x0000, 0x0400, CRC(10c2a4ea) SHA1(6ebca7d406e22ff7a8cd529579b55a700da487b4) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( bmsafari )
|
||||
ROM_REGION( 0x0400, "maincpu", 0 )
|
||||
ROM_LOAD( "d552c-049", 0x0000, 0x0400, CRC(82fa3cbe) SHA1(019e7ec784e977eba09997fc46af253054fb222c) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( splasfgt )
|
||||
ROM_REGION( 0x0800, "maincpu", 0 )
|
||||
ROM_LOAD( "d553c-055", 0x0000, 0x0800, CRC(eb471fbd) SHA1(f06cfe567bf6f9ed4dcdc88acdcfad50cd370a02) )
|
||||
@ -1671,6 +2363,24 @@ ROM_START( bcclimbr )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( invspace )
|
||||
ROM_REGION( 0x0400, "maincpu", 0 )
|
||||
ROM_LOAD( "d552c-054", 0x0000, 0x0400, CRC(913d9c13) SHA1(f20edb5458e54d2f6d4e45e5d59efd87e05a6f3f) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( efball )
|
||||
ROM_REGION( 0x0800, "maincpu", 0 )
|
||||
ROM_LOAD( "d553c-080", 0x0000, 0x0800, CRC(54c1027f) SHA1(6cc98074dae9361fa8c0ed6501b6a57ad325ccbd) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( galaxy2 )
|
||||
ROM_REGION( 0x0800, "maincpu", 0 )
|
||||
ROM_LOAD( "d553c-153.s01", 0x0000, 0x0800, CRC(70d552b3) SHA1(72d50647701cb4bf85ea947a149a317aaec0f52c) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( astrocmd )
|
||||
ROM_REGION( 0x0800, "maincpu", 0 )
|
||||
ROM_LOAD( "d553c-202.s01", 0x0000, 0x0800, CRC(b4b34883) SHA1(6246d561c2df1f2124575d2ca671ef85b1819edd) )
|
||||
@ -1689,6 +2399,12 @@ ROM_START( mvbfree )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( tccombat )
|
||||
ROM_REGION( 0x0400, "maincpu", 0 )
|
||||
ROM_LOAD( "d552c-042", 0x0000, 0x0400, CRC(d7b5cfeb) SHA1(a267be8e43b7740758eb0881b655b1cc8aec43da) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( tmtennis )
|
||||
ROM_REGION( 0x0400, "maincpu", 0 )
|
||||
ROM_LOAD( "d552c-048", 0x0000, 0x0400, CRC(78702003) SHA1(4d427d4dbeed901770c682338867f58c7b54eee3) )
|
||||
@ -1723,15 +2439,21 @@ ROM_END
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
|
||||
CONS( 1979, ufombs, 0, 0, ufombs, ufombs, driver_device, 0, "Bambino", "UFO Master-Blaster Station", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
CONS( 1979, ssfball, 0, 0, ssfball, ssfball, driver_device, 0, "Bambino", "Superstar Football", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
CONS( 1979, bmsoccer, 0, 0, bmsoccer, bmsoccer, driver_device, 0, "Bambino", "Kick The Goal Soccer", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
CONS( 1981, bmsafari, 0, 0, bmsafari, bmsafari, driver_device, 0, "Bambino", "Safari (Bambino)", 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, bcclimbr, 0, 0, bcclimbr, bcclimbr, driver_device, 0, "Bandai", "Crazy Climber (Bandai)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
|
||||
CONS( 1980, invspace, 0, 0, invspace, invspace, driver_device, 0, "Epoch", "Invader From Space", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
CONS( 1980, efball, 0, 0, efball, efball, driver_device, 0, "Epoch", "Electronic Football (Epoch)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
CONS( 1981, galaxy2, 0, 0, galaxy2, galaxy2, driver_device, 0, "Epoch", "Galaxy II", 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 )
|
||||
CONS( 1982, edracula, 0, 0, edracula, edracula, driver_device, 0, "Epoch", "Dracula (Epoch)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
|
||||
CONS( 1979, mvbfree, 0, 0, mvbfree, mvbfree, driver_device, 0, "Mego", "Mini-Vid Break Free", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
|
||||
CONS( 1980, tccombat, 0, 0, tccombat, tccombat, driver_device, 0, "Tomy", "Cosmic Combat", 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 )
|
||||
CONS( 1982, tmpacman, 0, 0, tmpacman, tmpacman, driver_device, 0, "Tomy", "Pac Man (Tomy)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
CONS( 1982, tmscramb, 0, 0, tmscramb, tmscramb, driver_device, 0, "Tomy", "Scramble (Tomy)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
|
@ -2186,7 +2186,7 @@ bambball // Bambino
|
||||
bmboxing // Bambino
|
||||
bfriskyt // Bandai
|
||||
packmon // Bandai
|
||||
msthawk // Bandai(Mattel)
|
||||
msthawk // Bandai/Mattel
|
||||
zackman // Bandai
|
||||
alnattck // Coleco
|
||||
cdkong // Coleco
|
||||
@ -2196,6 +2196,9 @@ cpacmanr1 // Coleco (rev 1)
|
||||
cmspacmn // Coleco
|
||||
egalaxn2 // Entex
|
||||
epacman2 // Entex
|
||||
ghalien // Gakken
|
||||
gckong // Gakken
|
||||
gdigdug // Gakken
|
||||
pbqbert // Parker Brothers
|
||||
mvbfree // Mego
|
||||
kingman // Tomy
|
||||
@ -2231,10 +2234,16 @@ mbdtower // Milton Bradley
|
||||
|
||||
ufombs // Bambino
|
||||
ssfball // Bambino
|
||||
bmsoccer // Bambino
|
||||
bmsafari // Bambino
|
||||
splasfgt // Bambino
|
||||
bcclimbr // Bandai
|
||||
invspace // Epoch
|
||||
efball // Epoch
|
||||
galaxy2 // Epoch
|
||||
astrocmd // Epoch
|
||||
edracula // Epoch
|
||||
tccombat // Tomy
|
||||
tmpacman // Tomy
|
||||
tmtennis // Tomy
|
||||
tmscramb // Tomy
|
||||
|
Loading…
Reference in New Issue
Block a user