mirror of
https://github.com/holub/mame
synced 2025-04-24 17:30:55 +03:00
New working machine added
-------- Invader (Gakken, cyan version) [hap, Sean Riddle, hydef] (game works, SVG is still WIP)
This commit is contained in:
parent
1567d09701
commit
ba9b483bbb
@ -59,6 +59,7 @@
|
||||
@MP1604 TMS1370 1982, Gakken Invader 2000/Tandy Cosmic Fire Away 3000
|
||||
@MP1801 TMS1700 1981, Tiger Ditto/Tandy Pocket Repeat (model 60-2152)
|
||||
@MP2105 TMS1370 1979, Gakken/Entex Poker (6005)
|
||||
@MP2110 TMS1370 1980, Gakken Invader/Tandy Fire Away
|
||||
@MP2139 TMS1370 1981, Gakken Galaxy Invader 1000/Tandy Cosmic 1000 Fire Away
|
||||
@MP2726 TMS1040 1979, Tomy Break Up
|
||||
*MP2788 TMS1040? 1980, Bandai Flight Time (? note: VFD-capable)
|
||||
@ -4857,7 +4858,136 @@ ROM_END
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Gakken Galaxy Invader 1000
|
||||
Gakken Invader
|
||||
* PCB label GAKKEN, INVADER, KS-00779
|
||||
* TMS1370 MP2110
|
||||
* cyan VFD display Itron? CP5008A, 1-bit sound
|
||||
|
||||
known releases:
|
||||
- World: Invader
|
||||
- USA(1): Galaxy Invader, published by CGL
|
||||
- USA(2): Fire Away, published by Tandy
|
||||
- USA(3): Electron Blaster, published by Vanity Fair
|
||||
|
||||
On the real thing, the joystick is "sticky"(it doesn't autocenter when you let go).
|
||||
There's also a version with a cyan/red VFD, possibly the same ROM.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
class ginv_state : public hh_tms1k_state
|
||||
{
|
||||
public:
|
||||
ginv_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
hh_tms1k_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void prepare_display();
|
||||
virtual DECLARE_WRITE16_MEMBER(write_r);
|
||||
virtual DECLARE_WRITE16_MEMBER(write_o);
|
||||
virtual DECLARE_READ8_MEMBER(read_k);
|
||||
void ginv(machine_config &config);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
void ginv_state::prepare_display()
|
||||
{
|
||||
display_matrix(12, 9, m_plate, m_grid);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ginv_state::write_r)
|
||||
{
|
||||
// R9,R10: input mux
|
||||
m_inp_mux = data >> 9 & 3;
|
||||
|
||||
// R15: speaker out
|
||||
m_speaker->level_w(data >> 15 & 1);
|
||||
|
||||
// R0-R8: VFD grid
|
||||
// R11-R14: VFD plate
|
||||
m_grid = data & 0x1ff;
|
||||
m_plate = (m_plate & 0xff) | (data >> 3 & 0xf00);
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ginv_state::write_o)
|
||||
{
|
||||
// O0-O7: VFD plate
|
||||
m_plate = (m_plate & ~0xff) | data;
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
READ8_MEMBER(ginv_state::read_k)
|
||||
{
|
||||
// K1-K4: multiplexed inputs (K8 is fire button)
|
||||
return m_inp_matrix[2]->read() | read_inputs(2);
|
||||
}
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( ginv )
|
||||
PORT_START("IN.0") // R9
|
||||
PORT_CONFNAME( 0x07, 0x02, DEF_STR( Difficulty ) )
|
||||
PORT_CONFSETTING( 0x01, "1" )
|
||||
PORT_CONFSETTING( 0x02, "2" )
|
||||
PORT_CONFSETTING( 0x04, "3" )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN.1") // R10
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
|
||||
PORT_BIT( 0x04, 0x04, IPT_CUSTOM ) PORT_CONDITION("IN.1", 0x03, EQUALS, 0x00) // joystick centered
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN.2") // K8
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
||||
INPUT_PORTS_END
|
||||
|
||||
void ginv_state::ginv(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
TMS1370(config, m_maincpu, 340000); // approximation - RC osc. R=47K, C=47pF
|
||||
m_maincpu->k().set(FUNC(ginv_state::read_k));
|
||||
m_maincpu->r().set(FUNC(ginv_state::write_r));
|
||||
m_maincpu->o().set(FUNC(ginv_state::write_o));
|
||||
|
||||
/* video hardware */
|
||||
/* screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
|
||||
screen.set_svg_region("svg");
|
||||
screen.set_refresh_hz(50);
|
||||
screen.set_size(226, 1080);
|
||||
screen.set_visarea_full(); */
|
||||
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(hh_tms1k_state::display_decay_tick), attotime::from_msec(1));
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
SPEAKER_SOUND(config, m_speaker);
|
||||
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
}
|
||||
|
||||
// roms
|
||||
|
||||
ROM_START( ginv )
|
||||
ROM_REGION( 0x0800, "maincpu", 0 )
|
||||
ROM_LOAD( "mp2110", 0x0000, 0x0800, CRC(f09c5588) SHA1(06eb8ed512eaf5367ea30c2b633219e105ddfd14) )
|
||||
|
||||
ROM_REGION( 867, "maincpu:mpla", 0 )
|
||||
ROM_LOAD( "tms1100_common2_micro.pla", 0, 867, CRC(7cc90264) SHA1(c6e1cf1ffb178061da9e31858514f7cd94e86990) )
|
||||
ROM_REGION( 365, "maincpu:opla", 0 )
|
||||
ROM_LOAD( "tms1100_ginv_output.pla", 0, 365, CRC(6e33a24e) SHA1(cdf7ecf12ddd3863e6301e20fe80f9737db429e5) )
|
||||
|
||||
//ROM_REGION( 226185, "svg", 0)
|
||||
//ROM_LOAD( "ginv.svg", 0, 226185, CRC(1e1bafd1) SHA1(15868ef0c9dadbf537fed0e2d846451ba99fab7b) )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Gakken Invader 1000
|
||||
* TMS1370 MP2139 (die label 1170 MP2139)
|
||||
* cyan/red VFD display Futaba DM-25Z 2D, 1-bit sound
|
||||
|
||||
@ -10388,6 +10518,7 @@ CONS( 1979, f3in1, 0, 0, f3in1, f3in1, f3in1_state, emp
|
||||
|
||||
CONS( 1979, gpoker, 0, 0, gpoker, gpoker, gpoker_state, empty_init, "Gakken", "Poker (Gakken, 1979 version)", MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1980, gjackpot, 0, 0, gjackpot, gjackpot, gjackpot_state, empty_init, "Gakken", "Jackpot: Gin Rummy & Black Jack", MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1981, ginv, 0, 0, ginv, ginv, ginv_state, empty_init, "Gakken", "Invader (Gakken, cyan version)", MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1981, ginv1000, 0, 0, ginv1000, ginv1000, ginv1000_state, empty_init, "Gakken", "Galaxy Invader 1000", MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1982, ginv2000, 0, 0, ginv2000, ginv2000, ginv2000_state, empty_init, "Gakken", "Invader 2000", MACHINE_SUPPORTS_SAVE )
|
||||
COMP( 1983, fxmcr165, 0, 0, fxmcr165, fxmcr165, fxmcr165_state, empty_init, "Gakken", "FX-Micom R-165", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
@ -15219,6 +15219,7 @@ esoccer // Entex
|
||||
f2pbball // Fonas
|
||||
f3in1 // Fonas
|
||||
fxmcr165 // Gakken
|
||||
ginv // Gakken
|
||||
ginv1000 // Gakken
|
||||
ginv2000 // Gakken
|
||||
gjackpot // Gakken
|
||||
|
Loading…
Reference in New Issue
Block a user