mirror of
https://github.com/holub/mame
synced 2025-04-24 09:20:02 +03:00
hh_hmcs40: update serials list (nw)
This commit is contained in:
parent
198d2a40cc
commit
48900a3840
@ -503,7 +503,7 @@ void eag_state::eag2100(machine_config &config)
|
||||
|
||||
ROM_START( feasbu )
|
||||
ROM_REGION( 0x10000, "mainmap", 0 )
|
||||
ROM_LOAD("mh_6", 0x8000, 0x0800, CRC(93dcc23b) SHA1(2eb8c5a85e566948bc256d6b1804694e6b0ffa6f) ) // ST M27C64A
|
||||
ROM_LOAD("hm_6", 0x8000, 0x0800, CRC(93dcc23b) SHA1(2eb8c5a85e566948bc256d6b1804694e6b0ffa6f) ) // ST M27C64A
|
||||
ROM_CONTINUE( 0x9000, 0x0800 )
|
||||
ROM_CONTINUE( 0x8800, 0x0800 )
|
||||
ROM_CONTINUE( 0x9800, 0x0800 )
|
||||
|
@ -8,64 +8,65 @@
|
||||
|
||||
known chips:
|
||||
|
||||
serial device etc.
|
||||
serial device etc.
|
||||
----------------------------------------------------------------
|
||||
@07 HD38750A 1979, Bambino Knock-Em Out Boxing (ET-06B)
|
||||
@08 HD38750A 1979, Bambino Dribble Away Basketball (ET-05)
|
||||
@45 HD38750A 1981, VTech Invaders
|
||||
*56 HD38750A 1981, Actronics(Hanzawa) Twinvader (small brown version)
|
||||
*58 HD38750A 1981, Actronics(Hanzawa) Challenge Racer/Ludotronic(Hanzawa) Grand Prix Turbo
|
||||
*62 HD38750A 1982, Actronics(Hanzawa) Pack'n Maze
|
||||
@A07 HD38750 1979, Bambino Knock-Em Out Boxing (ET-06B)
|
||||
@A08 HD38750 1979, Bambino Dribble Away Basketball (ET-05)
|
||||
@A45 HD38750 1981, VTech Invaders
|
||||
*A56 HD38750 1981, Actronics(Hanzawa) Twinvader (small brown version)
|
||||
*A58 HD38750 1981, Actronics(Hanzawa) Challenge Racer/Ludotronic(Hanzawa) Grand Prix Turbo
|
||||
*A62 HD38750 1982, Actronics(Hanzawa) Pack'n Maze
|
||||
|
||||
@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 -> sag.cpp
|
||||
37 HD38800A 1981, Entex Select-A-Game cartridge: Baseball 4 -> "
|
||||
38 HD38800A 1981, Entex Select-A-Game cartridge: Pinball -> "
|
||||
*41 HD38800A 1982, Gakken Puck Monster
|
||||
*51 HD38800A 1981, Actronics(Hanzawa) Twinvader (larger white version)
|
||||
@70 HD38800A 1982, Coleco Galaxian
|
||||
@73 HD38800A 1982, Mattel Star Hawk (PT-317B)
|
||||
@77 HD38800A 1982, Bandai Frisky Tom (PT-327A)
|
||||
@88 HD38800A 1984, Tomy Tron (THN-02)
|
||||
@A04 HD38800 1980, Gakken Heiankyo Alien
|
||||
@A25 HD38800 1981, Coleco Alien Attack
|
||||
@A27 HD38800 1981, Bandai Packri Monster
|
||||
A31 HD38800 1981, Entex Select-A-Game cartridge: Space Invader 2 -> sag.cpp
|
||||
A37 HD38800 1981, Entex Select-A-Game cartridge: Baseball 4 -> "
|
||||
A38 HD38800 1981, Entex Select-A-Game cartridge: Pinball -> "
|
||||
*A41 HD38800 1982, Gakken Puck Monster
|
||||
*A42 HD38800 1981, Akai GX-77
|
||||
*A51 HD38800 1981, Actronics(Hanzawa) Twinvader (larger white version)
|
||||
@A70 HD38800 1982, Coleco Galaxian
|
||||
@A73 HD38800 1982, Mattel Star Hawk (PT-317B)
|
||||
@A77 HD38800 1982, Bandai Frisky Tom (PT-327A)
|
||||
@A88 HD38800 1982, Tomy Tron (THN-02)
|
||||
@B01 HD38800 1982, Gakken Crazy Kong
|
||||
@B19 HD38800 1982, Bandai Zaxxon
|
||||
@B23 HD38800 1982, Tomy Kingman (THF-01II)
|
||||
*B24 HD38800 1982, Actronics(Hanzawa) Wanted G-Man
|
||||
*B29 HD38800 1984, Tomy Portable 6000 Bombman
|
||||
*B31 HD38800 1983, Gongoll Frog Prince (ET-806)
|
||||
*B35 HD38800 1983, Bandai Gundam vs Gelgoog Zaku
|
||||
@B43 HD38800 1983, Bandai Dokodemo Dorayaki Doraemon (PT-412)
|
||||
@B52 HD38800 1983, Bandai Ultraman Monster Battle (PT-424)
|
||||
|
||||
@01 HD38800B 1982, Gakken Crazy Kong
|
||||
@19 HD38800B 1982, Bandai Zaxxon
|
||||
@23 HD38800B 1982, Tomy Kingman (THF-01II)
|
||||
*24 HD38800B 1982, Actronics(Hanzawa) Wanted G-Man
|
||||
*29 HD38800B 1984, Tomy Portable 6000 Bombman
|
||||
*31 HD38800B 1983, Gongoll Frog Prince (ET-806)
|
||||
*35 HD38800B 1983, Bandai Gundam vs Gelgoog Zaku
|
||||
@43 HD38800B 1983, Bandai Dokodemo Dorayaki Doraemon (PT-412)
|
||||
@52 HD38800B 1983, Bandai Ultraman Monster Battle (PT-424)
|
||||
@A09 HD38820 1980, Mattel World Championship Baseball
|
||||
@A13 HD38820 1981, Entex Galaxian 2
|
||||
@A23 HD38820 1981, Entex Pac Man 2
|
||||
@A28 HD38820 1981, Coleco Pac-Man (ver 1)
|
||||
@A29 HD38820 1981, Coleco Pac-Man (ver 2)
|
||||
*A32 HD38820 198?, Gakken Super Cobra
|
||||
*A38 HD38820 1982, Entex Crazy Climber
|
||||
@A42 HD38820 1982, Entex Stargate
|
||||
@A43 HD38820 1982, Entex Turtles
|
||||
@A45 HD38820 1982, Coleco Donkey Kong
|
||||
@A49 HD38820 1983, Bandai Zackman
|
||||
@A61 HD38820 1983, Coleco Ms. Pac-Man
|
||||
@A63 HD38820 1983, Bandai Pengo
|
||||
@A65 HD38820 1983, Bandai Burger Time (PT-389)
|
||||
@A69 HD38820 1983, Gakken Dig Dug
|
||||
@A70 HD38820 1983, Parker Brothers Q*Bert
|
||||
@A85 HD38820 1984, Bandai Machine Man (PT-438)
|
||||
@A88 HD38820 1984, Bandai Pair Match (PT-460) (1/2)
|
||||
@A89 HD38820 1984, Bandai Pair Match (PT-460) (2/2)
|
||||
|
||||
@09 HD38820A 1980, Mattel World Championship Baseball
|
||||
@13 HD38820A 1981, Entex Galaxian 2
|
||||
@23 HD38820A 1981, Entex Pac Man 2
|
||||
@28 HD38820A 1981, Coleco Pac-Man (ver 1)
|
||||
@29 HD38820A 1981, Coleco Pac-Man (ver 2)
|
||||
*32 HD38820A 198?, Gakken Super Cobra
|
||||
*38 HD38820A 1982, Entex Crazy Climber
|
||||
@42 HD38820A 1982, Entex Stargate
|
||||
@43 HD38820A 1982, Entex Turtles
|
||||
@45 HD38820A 1982, Coleco Donkey Kong
|
||||
@49 HD38820A 1983, Bandai Zackman
|
||||
@61 HD38820A 1983, Coleco Ms. Pac-Man
|
||||
@63 HD38820A 1983, Bandai Pengo
|
||||
@65 HD38820A 1983, Bandai Burger Time (PT-389)
|
||||
@69 HD38820A 1983, Gakken Dig Dug
|
||||
@70 HD38820A 1983, Parker Brothers Q*Bert
|
||||
@85 HD38820A 1984, Bandai Machine Man (PT-438)
|
||||
@88 HD38820A 1984, Bandai Pair Match (PT-460) (1/2)
|
||||
@89 HD38820A 1984, Bandai Pair Match (PT-460) (2/2)
|
||||
A75 HD44801 1982, Alpha 8201 protection MCU -> machine/alpha8201.*
|
||||
B35 HD44801 1983, Alpha 8302 protection MCU (see 8201)
|
||||
B42 HD44801 1983, Alpha 8303 protection MCU (see 8201)
|
||||
*C57 HD44801 1985, Alpha 8505 protection MCU (see 8201)
|
||||
*C89 HD44801 1986, CXG Computachess IV
|
||||
|
||||
75 HD44801A 1982, Alpha 8201 protection MCU -> machine/alpha8201.*
|
||||
|
||||
35 HD44801B 1983, Alpha 8302 protection MCU (see 8201)
|
||||
42 HD44801B 1984, Alpha 8303 protection MCU (see 8201)
|
||||
|
||||
*89 HD44801C 1985, CXG Advanced Portachess
|
||||
*A14 HD44840 1982, CXG Advanced Portachess
|
||||
|
||||
(* means undumped unless noted, @ denotes it's in this driver)
|
||||
|
||||
@ -3771,132 +3772,6 @@ ROM_END
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Tomy Kingman (manufactured in Japan)
|
||||
* PCB label THF-01II 2E138E01/2E128E02
|
||||
* Hitachi HD38800B23 MCU
|
||||
* cyan/red/blue VFD display Futaba DM-65ZK 3A
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
class kingman_state : public hh_hmcs40_state
|
||||
{
|
||||
public:
|
||||
kingman_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
hh_hmcs40_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void update_display();
|
||||
DECLARE_WRITE8_MEMBER(plate_w);
|
||||
DECLARE_WRITE16_MEMBER(grid_w);
|
||||
|
||||
void update_int0();
|
||||
DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int0(); }
|
||||
void kingman(machine_config &config);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
void kingman_state::update_display()
|
||||
{
|
||||
u16 grid = bitswap<16>(m_grid,15,14,13,12,11,10,9,0,1,2,3,4,5,6,7,8);
|
||||
u32 plate = bitswap<24>(m_plate,23,6,7,5,4,3,2,1,0,13,12,20,19,18,17,16,10,11,9,8,14,15,13,12);
|
||||
m_display->matrix(grid, plate);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(kingman_state::plate_w)
|
||||
{
|
||||
// R0x-R3x: vfd plate
|
||||
int shift = offset * 4;
|
||||
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
|
||||
update_display();
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(kingman_state::grid_w)
|
||||
{
|
||||
// D6: speaker out
|
||||
m_speaker->level_w(data >> 6 & 1);
|
||||
|
||||
// D12-D15: input mux
|
||||
u8 inp_mux = data >> 12 & 0xf;
|
||||
if (inp_mux != m_inp_mux)
|
||||
{
|
||||
m_inp_mux = inp_mux;
|
||||
update_int0();
|
||||
}
|
||||
|
||||
// D7-D15: vfd grid
|
||||
m_grid = data >> 7 & 0x1ff;
|
||||
|
||||
// D0-D4: more plates
|
||||
m_plate = (m_plate & 0x00ffff) | (data << 16 & 0x1f0000);
|
||||
update_display();
|
||||
}
|
||||
|
||||
void kingman_state::update_int0()
|
||||
{
|
||||
// INT0 on multiplexed inputs
|
||||
set_interrupt(0, read_inputs(4));
|
||||
}
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( kingman )
|
||||
PORT_START("IN.0") // D12 INT0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, kingman_state, input_changed, 0)
|
||||
|
||||
PORT_START("IN.1") // D13 INT0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, kingman_state, input_changed, 0)
|
||||
|
||||
PORT_START("IN.2") // D14 INT0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, kingman_state, input_changed, 0)
|
||||
|
||||
PORT_START("IN.3") // D15 INT0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, kingman_state, input_changed, 0)
|
||||
|
||||
PORT_START("IN.4") // INT1
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, single_interrupt_line, 1)
|
||||
INPUT_PORTS_END
|
||||
|
||||
void kingman_state::kingman(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
HD38800(config, m_maincpu, 400000); // approximation
|
||||
m_maincpu->write_r<0>().set(FUNC(kingman_state::plate_w));
|
||||
m_maincpu->write_r<1>().set(FUNC(kingman_state::plate_w));
|
||||
m_maincpu->write_r<2>().set(FUNC(kingman_state::plate_w));
|
||||
m_maincpu->write_r<3>().set(FUNC(kingman_state::plate_w));
|
||||
m_maincpu->write_d().set(FUNC(kingman_state::grid_w));
|
||||
|
||||
/* video hardware */
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_size(374, 1080);
|
||||
screen.set_visarea_full();
|
||||
|
||||
PWM_DISPLAY(config, m_display).set_size(9, 23);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
}
|
||||
|
||||
// roms
|
||||
|
||||
ROM_START( kingman )
|
||||
ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "hd38800b23", 0x0000, 0x1000, CRC(f8dfe14f) SHA1(660610d92ae7e5f92bddf5a3bcc2296b2ec3946b) )
|
||||
ROM_CONTINUE( 0x1e80, 0x0100 )
|
||||
|
||||
ROM_REGION( 396320, "screen", 0)
|
||||
ROM_LOAD( "kingman.svg", 0, 396320, CRC(3f52d2a9) SHA1(9291f1a1da3d19c3d6dedb995de0a5feba75b442) )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Tomy(tronic) Tron (manufactured in Japan)
|
||||
@ -4023,6 +3898,132 @@ ROM_END
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Tomy Kingman (manufactured in Japan)
|
||||
* PCB label THF-01II 2E138E01/2E128E02
|
||||
* Hitachi HD38800B23 MCU
|
||||
* cyan/red/blue VFD display Futaba DM-65ZK 3A
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
class kingman_state : public hh_hmcs40_state
|
||||
{
|
||||
public:
|
||||
kingman_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
hh_hmcs40_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void update_display();
|
||||
DECLARE_WRITE8_MEMBER(plate_w);
|
||||
DECLARE_WRITE16_MEMBER(grid_w);
|
||||
|
||||
void update_int0();
|
||||
DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int0(); }
|
||||
void kingman(machine_config &config);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
void kingman_state::update_display()
|
||||
{
|
||||
u16 grid = bitswap<16>(m_grid,15,14,13,12,11,10,9,0,1,2,3,4,5,6,7,8);
|
||||
u32 plate = bitswap<24>(m_plate,23,6,7,5,4,3,2,1,0,13,12,20,19,18,17,16,10,11,9,8,14,15,13,12);
|
||||
m_display->matrix(grid, plate);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(kingman_state::plate_w)
|
||||
{
|
||||
// R0x-R3x: vfd plate
|
||||
int shift = offset * 4;
|
||||
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
|
||||
update_display();
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(kingman_state::grid_w)
|
||||
{
|
||||
// D6: speaker out
|
||||
m_speaker->level_w(data >> 6 & 1);
|
||||
|
||||
// D12-D15: input mux
|
||||
u8 inp_mux = data >> 12 & 0xf;
|
||||
if (inp_mux != m_inp_mux)
|
||||
{
|
||||
m_inp_mux = inp_mux;
|
||||
update_int0();
|
||||
}
|
||||
|
||||
// D7-D15: vfd grid
|
||||
m_grid = data >> 7 & 0x1ff;
|
||||
|
||||
// D0-D4: more plates
|
||||
m_plate = (m_plate & 0x00ffff) | (data << 16 & 0x1f0000);
|
||||
update_display();
|
||||
}
|
||||
|
||||
void kingman_state::update_int0()
|
||||
{
|
||||
// INT0 on multiplexed inputs
|
||||
set_interrupt(0, read_inputs(4));
|
||||
}
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( kingman )
|
||||
PORT_START("IN.0") // D12 INT0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, kingman_state, input_changed, 0)
|
||||
|
||||
PORT_START("IN.1") // D13 INT0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, kingman_state, input_changed, 0)
|
||||
|
||||
PORT_START("IN.2") // D14 INT0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, kingman_state, input_changed, 0)
|
||||
|
||||
PORT_START("IN.3") // D15 INT0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, kingman_state, input_changed, 0)
|
||||
|
||||
PORT_START("IN.4") // INT1
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, single_interrupt_line, 1)
|
||||
INPUT_PORTS_END
|
||||
|
||||
void kingman_state::kingman(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
HD38800(config, m_maincpu, 400000); // approximation
|
||||
m_maincpu->write_r<0>().set(FUNC(kingman_state::plate_w));
|
||||
m_maincpu->write_r<1>().set(FUNC(kingman_state::plate_w));
|
||||
m_maincpu->write_r<2>().set(FUNC(kingman_state::plate_w));
|
||||
m_maincpu->write_r<3>().set(FUNC(kingman_state::plate_w));
|
||||
m_maincpu->write_d().set(FUNC(kingman_state::grid_w));
|
||||
|
||||
/* video hardware */
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_size(374, 1080);
|
||||
screen.set_visarea_full();
|
||||
|
||||
PWM_DISPLAY(config, m_display).set_size(9, 23);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
}
|
||||
|
||||
// roms
|
||||
|
||||
ROM_START( kingman )
|
||||
ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "hd38800b23", 0x0000, 0x1000, CRC(f8dfe14f) SHA1(660610d92ae7e5f92bddf5a3bcc2296b2ec3946b) )
|
||||
ROM_CONTINUE( 0x1e80, 0x0100 )
|
||||
|
||||
ROM_REGION( 396320, "screen", 0)
|
||||
ROM_LOAD( "kingman.svg", 0, 396320, CRC(3f52d2a9) SHA1(9291f1a1da3d19c3d6dedb995de0a5feba75b442) )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
VTech Invaders (manufactured in Taiwan)
|
||||
@ -4171,7 +4172,7 @@ CONS( 1982, msthawk, 0, 0, msthawk, msthawk, msthawk_state, empty_in
|
||||
|
||||
CONS( 1983, pbqbert, 0, 0, pbqbert, pbqbert, pbqbert_state, empty_init, "Parker Brothers", "Q*Bert (Parker Brothers)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
CONS( 1982, tmtron, 0, 0, tmtron, tmtron, tmtron_state, empty_init, "Tomy", "Tron (Tomy)", MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1982, kingman, 0, 0, kingman, kingman, kingman_state, empty_init, "Tomy", "Kingman", MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1984, tmtron, 0, 0, tmtron, tmtron, tmtron_state, empty_init, "Tomy", "Tron (Tomy)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
CONS( 1981, vinvader, 0, 0, vinvader, vinvader, vinvader_state, empty_init, "VTech", "Invaders (VTech)", MACHINE_SUPPORTS_SAVE )
|
||||
|
Loading…
Reference in New Issue
Block a user