mirror of
https://github.com/holub/mame
synced 2025-04-21 07:52:35 +03:00
Moved moonwar and moonwara from scobra.c to galaxian.c
This commit is contained in:
parent
a701f8537e
commit
284b13c277
@ -154,6 +154,18 @@ Notes about 'calipso' :
|
||||
It's possible that there is a cocktail version of the game.
|
||||
|
||||
|
||||
Notes about 'moonwar' :
|
||||
---------------------
|
||||
|
||||
Moonwar: 8255 Port C bit 4 was originally designed so when bit4=0, 1P spinner
|
||||
is selected, and when bit4=1, 2P spinner gets selected. But they forgot to
|
||||
change the 8255 initialization value and Port C was set to input, setting the
|
||||
spinner select bit to HI regardless what was written to it. This bug has been
|
||||
corrected in the newer set, but, to maintain hardware compatibility with
|
||||
older PCB's, they had to reverse to active status of the select bit. So in the
|
||||
newer set, Bit4=1 selects the 1P spinner and Bit4=0 selects the 2P spinner.
|
||||
|
||||
|
||||
|
||||
TO DO :
|
||||
-------
|
||||
@ -207,6 +219,8 @@ static UINT8 protection_result;
|
||||
static UINT8 konami_sound_control;
|
||||
static UINT8 sfx_sample_control;
|
||||
|
||||
static UINT8 moonwar_port_select;
|
||||
|
||||
static UINT8 irq_enabled;
|
||||
static int irq_line;
|
||||
|
||||
@ -1094,6 +1108,51 @@ static READ8_HANDLER( dingoe_3001_r )
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Moon War I/O
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static WRITE8_HANDLER( moonwar_port_select_w )
|
||||
{
|
||||
moonwar_port_select = data & 0x10;
|
||||
}
|
||||
|
||||
|
||||
static READ8_HANDLER( moonwar_input_port_0_r )
|
||||
{
|
||||
UINT8 sign;
|
||||
UINT8 delta;
|
||||
|
||||
delta = (moonwar_port_select ? input_port_read(machine, "IN3") : input_port_read(machine, "IN4"));
|
||||
|
||||
sign = (delta & 0x80) >> 3;
|
||||
delta &= 0x0f;
|
||||
|
||||
return ((input_port_read(machine, "IN0") & 0xe0) | delta | sign );
|
||||
}
|
||||
|
||||
|
||||
static const ppi8255_interface moonwar_ppi8255_intf[2] =
|
||||
{
|
||||
{
|
||||
moonwar_input_port_0_r, /* Port A read */
|
||||
konami_portb_0_r, /* Port B read */
|
||||
konami_portc_0_r, /* Port C read */
|
||||
NULL, /* Port A write */
|
||||
NULL, /* Port B write */
|
||||
moonwar_port_select_w /* Port C write */
|
||||
},
|
||||
{
|
||||
NULL, /* Port A read */
|
||||
NULL, /* Port B read */
|
||||
konami_portc_1_r, /* Port C read */
|
||||
soundlatch_w, /* Port A write */
|
||||
konami_sound_control_w, /* Port B write */
|
||||
konami_portc_1_w /* Port C write */
|
||||
}
|
||||
};
|
||||
|
||||
/*************************************
|
||||
*
|
||||
@ -2084,6 +2143,22 @@ static MACHINE_DRIVER_START( anteater )
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.1)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
static MACHINE_DRIVER_START( moonwar )
|
||||
|
||||
/* basic machine hardware */
|
||||
/* same as regular type 1, the only difference is that the bullets are less yellow */
|
||||
MDRV_IMPORT_FROM(scobra)
|
||||
|
||||
/* device config overrides */
|
||||
MDRV_DEVICE_MODIFY( "ppi8255_0", PPI8255 )
|
||||
MDRV_DEVICE_CONFIG( moonwar_ppi8255_intf[0] )
|
||||
|
||||
MDRV_DEVICE_MODIFY( "ppi8255_1", PPI8255 )
|
||||
MDRV_DEVICE_CONFIG( moonwar_ppi8255_intf[1] )
|
||||
|
||||
MDRV_PALETTE_INIT(moonwar)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
@ -2848,4 +2923,15 @@ static DRIVER_INIT( calipso )
|
||||
|
||||
}
|
||||
|
||||
|
||||
static DRIVER_INIT( moonwar )
|
||||
{
|
||||
/* video extensions */
|
||||
common_init(machine, scramble_draw_bullet, scramble_draw_background, NULL, NULL);
|
||||
|
||||
state_save_register_global(moonwar_port_select);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#include "galdrvr.c"
|
||||
|
@ -2196,6 +2196,74 @@ static INPUT_PORTS_START( calipso )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( moonwar_common )
|
||||
PORT_START_TAG("IN0")
|
||||
PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_SPECIAL ) /* the spinner */
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
|
||||
PORT_START_TAG("IN1")
|
||||
PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
|
||||
PORT_DIPSETTING( 0x00, "3" )
|
||||
PORT_DIPSETTING( 0x01, "4" )
|
||||
PORT_DIPSETTING( 0x02, "5" )
|
||||
PORT_DIPSETTING( 0x03, DEF_STR( Free_Play ) )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( moonwar )
|
||||
PORT_INCLUDE( moonwar_common )
|
||||
|
||||
PORT_START_TAG("IN2")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
|
||||
PORT_DIPNAME( 0x06, 0x02, DEF_STR( Coinage ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0x06, DEF_STR( 1C_4C ) )
|
||||
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
|
||||
PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) /* output bits */
|
||||
|
||||
PORT_START_TAG("IN3") /* IN3/4 - dummy ports for the dial */
|
||||
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_RESET
|
||||
|
||||
PORT_START_TAG("IN4")
|
||||
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_RESET PORT_COCKTAIL
|
||||
INPUT_PORTS_END
|
||||
|
||||
/* same as above, but coinage is different */
|
||||
static INPUT_PORTS_START( moonwara )
|
||||
PORT_INCLUDE( moonwar_common )
|
||||
|
||||
PORT_START_TAG("IN2")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
|
||||
PORT_DIPNAME( 0x06, 0x00, DEF_STR( Coinage ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0x06, DEF_STR( 1C_4C ) )
|
||||
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
|
||||
PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) /* output bits */
|
||||
|
||||
PORT_START_TAG("IN3") /* IN3/4 - dummy ports for the dial */
|
||||
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_RESET
|
||||
|
||||
PORT_START_TAG("IN4") /* doesn't actually work due to bug in game code */
|
||||
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_RESET PORT_COCKTAIL
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* ROM definitions
|
||||
@ -4780,6 +4848,45 @@ ROM_START( calipso )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( moonwar )
|
||||
ROM_REGION( 0x10000, REGION_CPU1, 0 )
|
||||
ROM_LOAD( "mw2.2c", 0x0000, 0x1000, CRC(7c11b4d9) SHA1(a27bdff6ce728647ec811df843ac235c32c293d6) )
|
||||
ROM_LOAD( "mw2.2e", 0x1000, 0x1000, CRC(1b6362be) SHA1(2fbd95869146adcc0c8be1df653251fda8849e8e) )
|
||||
ROM_LOAD( "mw2.2f", 0x2000, 0x1000, CRC(4fd8ba4b) SHA1(3da784267a96d05f66b00626a22cb3f06211d202) )
|
||||
ROM_LOAD( "mw2.2h", 0x3000, 0x1000, CRC(56879f0d) SHA1(d1e9932863aebc5761e71fca8d24f3c400e1250d) )
|
||||
|
||||
ROM_REGION( 0x10000, REGION_CPU2, 0 )
|
||||
ROM_LOAD( "mw2.5c", 0x0000, 0x0800, CRC(c26231eb) SHA1(5b19edfaefe1a535059311d067ea53405879d627) )
|
||||
ROM_LOAD( "mw2.5d", 0x0800, 0x0800, CRC(bb48a646) SHA1(cf51202d16b03bbed12ff24501be68683f28c992) )
|
||||
|
||||
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
|
||||
ROM_LOAD( "mw2.5f", 0x0000, 0x0800, CRC(c5fa1aa0) SHA1(6c6b5b2ce5de278ff436d3e7252ece5b086cc41d) )
|
||||
ROM_LOAD( "mw2.5h", 0x0800, 0x0800, CRC(a6ccc652) SHA1(286b3dc1f3a7da3ac66664e774b441ef075745f1) )
|
||||
|
||||
ROM_REGION( 0x0020, REGION_PROMS, 0 )
|
||||
ROM_LOAD( "mw2.clr", 0x0000, 0x0020, CRC(99614c6c) SHA1(f068985f3c5e0cd88551a02c32f9baeabfd50241) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( moonwara )
|
||||
ROM_REGION( 0x10000, REGION_CPU1, 0 )
|
||||
ROM_LOAD( "2c", 0x0000, 0x1000, CRC(bc20b734) SHA1(c6fe550987d0052979aad43c67aa1b9248049669) )
|
||||
ROM_LOAD( "2e", 0x1000, 0x1000, CRC(db6ffec2) SHA1(0fcd55b1e415e2e7041d10778052a235251f85fe) )
|
||||
ROM_LOAD( "2f", 0x2000, 0x1000, CRC(378931b8) SHA1(663f1eea9b0e8dc38de818df66c5211dac41c33b) )
|
||||
ROM_LOAD( "2h", 0x3000, 0x1000, CRC(031dbc2c) SHA1(5f2ca8b8763398bf161ee0c2c748a12d36cb40ec) )
|
||||
|
||||
ROM_REGION( 0x10000, REGION_CPU2, 0 )
|
||||
ROM_LOAD( "mw2.5c", 0x0000, 0x0800, CRC(c26231eb) SHA1(5b19edfaefe1a535059311d067ea53405879d627) )
|
||||
ROM_LOAD( "mw2.5d", 0x0800, 0x0800, CRC(bb48a646) SHA1(cf51202d16b03bbed12ff24501be68683f28c992) )
|
||||
|
||||
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
|
||||
ROM_LOAD( "mw2.5f", 0x0000, 0x0800, CRC(c5fa1aa0) SHA1(6c6b5b2ce5de278ff436d3e7252ece5b086cc41d) )
|
||||
ROM_LOAD( "mw2.5h", 0x0800, 0x0800, CRC(a6ccc652) SHA1(286b3dc1f3a7da3ac66664e774b441ef075745f1) )
|
||||
|
||||
ROM_REGION( 0x0020, REGION_PROMS, 0 )
|
||||
ROM_LOAD( "moonwara.clr", 0x0000, 0x0020, CRC(f58d4f58) SHA1(12a80d1edf3c80dafa0e1e3622d2a03224b62f14) ) /* olive, instead of white */
|
||||
ROM_END
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Game drivers
|
||||
@ -4987,6 +5094,9 @@ GAME( 1985, superbon, 0, scobra, superbon, superbon, ROT90, "Signatron
|
||||
|
||||
GAME( 1982, calipso, 0, scobra, calipso, calipso, ROT90, "[Stern] (Tago license)", "Calipso", GAME_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1981, moonwar, 0, moonwar, moonwar, moonwar, ROT90, "Stern", "Moonwar", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1981, moonwara, moonwar, moonwar, moonwara, moonwar, ROT90, "Stern", "Moonwar (older)", GAME_SUPPORTS_SAVE )
|
||||
|
||||
|
||||
|
||||
/* currently in galaxold.c and should be moved here */
|
||||
@ -5036,8 +5146,6 @@ GAME( 1982, calipso, 0, scobra, calipso, calipso, ROT90, "[Stern] (
|
||||
/* currently in scobra.c and should be moved here */
|
||||
//GAME( 1981, stratgyx, 0, scobra/*stratgyx*/, stratgyx, stratgyx, ROT0, "Konami", "Strategy X", GAME_SUPPORTS_SAVE )
|
||||
//GAME( 1981, stratgys, stratgyx, scobra/*stratgyx*/, stratgyx, stratgyx, ROT0, "[Konami] (Stern license)", "Strategy X (Stern)", GAME_SUPPORTS_SAVE )
|
||||
//GAME( 1981, moonwar, 0, scobra/*moonwar*/, moonwar, moonwar, ROT90, "Stern", "Moonwar", GAME_SUPPORTS_SAVE )
|
||||
//GAME( 1981, moonwara, moonwar, scobra/*moonwar*/, moonwara, moonwar, ROT90, "Stern", "Moonwar (older)", GAME_SUPPORTS_SAVE )
|
||||
//GAME( 1982, darkplnt, 0, scobra/*darkplnt*/, darkplnt, darkplnt, ROT180, "Stern", "Dark Planet", GAME_SUPPORTS_SAVE )
|
||||
//GAME( 1982, tazmani2, tazmania, scobra/*type2*/, tazmania, tazmani2, ROT90, "Stern", "Tazz-Mania (set 2)", GAME_SUPPORTS_SAVE )
|
||||
//GAME( 1983, anteatg, anteater, scobra/*anteatg*/, anteatg, scramble_ppi, ROT90, "TV-Tuning (F.E.G. license)", "Ameisenbaer (German)", GAME_SUPPORTS_SAVE )
|
||||
|
@ -19,14 +19,6 @@ TODO:
|
||||
Notes/Tidbits:
|
||||
-------------
|
||||
|
||||
- Moonwar: 8255 Port C bit 4 was originally designed so when bit4=0, 1P spinner
|
||||
is selected, and when bit4=1, 2P spinner gets selected. But they forgot to
|
||||
change the 8255 initialization value and Port C was set to input, setting the
|
||||
spinner select bit to HI regardless what was written to it. This bug has been
|
||||
corrected in the newer set, but, to maintain hardware compatibility with
|
||||
older PCB's, they had to reverse to active status of the select bit. So in the
|
||||
newer set, Bit4=1 selects the 1P spinner and Bit4=0 selects the 2P spinner.
|
||||
|
||||
- Armored Car sets Port C as well, but it's input only and the games uses other
|
||||
bits for the 2nd player controls. Maybe the games was meant to use 2 joysticks
|
||||
at one time.
|
||||
@ -596,69 +588,6 @@ SCOBRA_IN0
|
||||
PORT_DIPSETTING( 0x00, "A 1/99 B 1/3" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
#define MOONWAR_COMMON\
|
||||
PORT_START_TAG("IN0")\
|
||||
PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_SPECIAL ) /* the spinner */\
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL\
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )\
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )\
|
||||
PORT_START_TAG("IN1")\
|
||||
PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )\
|
||||
PORT_DIPSETTING( 0x00, "3" )\
|
||||
PORT_DIPSETTING( 0x01, "4" )\
|
||||
PORT_DIPSETTING( 0x02, "5" )\
|
||||
PORT_DIPSETTING( 0x03, DEF_STR( Free_Play ) )\
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 )\
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 )\
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL\
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )\
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )\
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
|
||||
|
||||
static INPUT_PORTS_START( moonwar )
|
||||
MOONWAR_COMMON
|
||||
|
||||
PORT_START_TAG("IN2")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
|
||||
PORT_DIPNAME( 0x06, 0x02, DEF_STR( Coinage ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0x06, DEF_STR( 1C_4C ) )
|
||||
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
|
||||
PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) /* output bits */
|
||||
|
||||
PORT_START_TAG("IN3") /* IN3/4 - dummy ports for the dial */
|
||||
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_RESET
|
||||
|
||||
PORT_START_TAG("IN4")
|
||||
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_RESET PORT_COCKTAIL
|
||||
INPUT_PORTS_END
|
||||
|
||||
/* same as above, but coinage is different */
|
||||
static INPUT_PORTS_START( moonwara )
|
||||
MOONWAR_COMMON
|
||||
|
||||
PORT_START_TAG("IN2")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
|
||||
PORT_DIPNAME( 0x06, 0x00, DEF_STR( Coinage ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0x06, DEF_STR( 1C_4C ) )
|
||||
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
|
||||
PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) /* output bits */
|
||||
|
||||
PORT_START_TAG("IN3") /* IN3/4 - dummy ports for the dial */
|
||||
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_RESET
|
||||
|
||||
PORT_START_TAG("IN4") /* doesn't actually work due to bug in game code */
|
||||
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_RESET PORT_COCKTAIL
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
/* cocktail mode is N/A */
|
||||
@ -1228,26 +1157,6 @@ MACHINE_DRIVER_END
|
||||
|
||||
|
||||
|
||||
/* same as regular type 1, the only difference is that the bullets are less yellow */
|
||||
static MACHINE_DRIVER_START( moonwar )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_IMPORT_FROM(type1)
|
||||
|
||||
/* device config overrides */
|
||||
MDRV_DEVICE_MODIFY( "ppi8255_0", PPI8255 )
|
||||
MDRV_DEVICE_CONFIG( moonwar_ppi8255_intf[0] )
|
||||
|
||||
MDRV_DEVICE_MODIFY( "ppi8255_1", PPI8255 )
|
||||
MDRV_DEVICE_CONFIG( moonwar_ppi8255_intf[1] )
|
||||
|
||||
/* video hardware */
|
||||
MDRV_PALETTE_LENGTH(32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 1 for bg */
|
||||
|
||||
MDRV_PALETTE_INIT(moonwar)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
|
||||
/* Rescue, Minefield and Strategy X have extra colors, and custom video initialise */
|
||||
/* routines to set up the graduated color backgound they use */
|
||||
static MACHINE_DRIVER_START( rescue )
|
||||
@ -1559,44 +1468,6 @@ ROM_START( stratgys )
|
||||
ROM_LOAD( "strategy.10k", 0x0000, 0x0020, CRC(d95c0318) SHA1(83e5355fdca7b4e1fb5a0e6eeaacfbf9561e2c36) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( moonwar )
|
||||
ROM_REGION( 0x10000, REGION_CPU1, 0 )
|
||||
ROM_LOAD( "mw2.2c", 0x0000, 0x1000, CRC(7c11b4d9) SHA1(a27bdff6ce728647ec811df843ac235c32c293d6) )
|
||||
ROM_LOAD( "mw2.2e", 0x1000, 0x1000, CRC(1b6362be) SHA1(2fbd95869146adcc0c8be1df653251fda8849e8e) )
|
||||
ROM_LOAD( "mw2.2f", 0x2000, 0x1000, CRC(4fd8ba4b) SHA1(3da784267a96d05f66b00626a22cb3f06211d202) )
|
||||
ROM_LOAD( "mw2.2h", 0x3000, 0x1000, CRC(56879f0d) SHA1(d1e9932863aebc5761e71fca8d24f3c400e1250d) )
|
||||
|
||||
ROM_REGION( 0x10000, REGION_CPU2, 0 )
|
||||
ROM_LOAD( "mw2.5c", 0x0000, 0x0800, CRC(c26231eb) SHA1(5b19edfaefe1a535059311d067ea53405879d627) )
|
||||
ROM_LOAD( "mw2.5d", 0x0800, 0x0800, CRC(bb48a646) SHA1(cf51202d16b03bbed12ff24501be68683f28c992) )
|
||||
|
||||
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
|
||||
ROM_LOAD( "mw2.5f", 0x0000, 0x0800, CRC(c5fa1aa0) SHA1(6c6b5b2ce5de278ff436d3e7252ece5b086cc41d) )
|
||||
ROM_LOAD( "mw2.5h", 0x0800, 0x0800, CRC(a6ccc652) SHA1(286b3dc1f3a7da3ac66664e774b441ef075745f1) )
|
||||
|
||||
ROM_REGION( 0x0020, REGION_PROMS, 0 )
|
||||
ROM_LOAD( "mw2.clr", 0x0000, 0x0020, CRC(99614c6c) SHA1(f068985f3c5e0cd88551a02c32f9baeabfd50241) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( moonwara )
|
||||
ROM_REGION( 0x10000, REGION_CPU1, 0 )
|
||||
ROM_LOAD( "2c", 0x0000, 0x1000, CRC(bc20b734) SHA1(c6fe550987d0052979aad43c67aa1b9248049669) )
|
||||
ROM_LOAD( "2e", 0x1000, 0x1000, CRC(db6ffec2) SHA1(0fcd55b1e415e2e7041d10778052a235251f85fe) )
|
||||
ROM_LOAD( "2f", 0x2000, 0x1000, CRC(378931b8) SHA1(663f1eea9b0e8dc38de818df66c5211dac41c33b) )
|
||||
ROM_LOAD( "2h", 0x3000, 0x1000, CRC(031dbc2c) SHA1(5f2ca8b8763398bf161ee0c2c748a12d36cb40ec) )
|
||||
|
||||
ROM_REGION( 0x10000, REGION_CPU2, 0 )
|
||||
ROM_LOAD( "mw2.5c", 0x0000, 0x0800, CRC(c26231eb) SHA1(5b19edfaefe1a535059311d067ea53405879d627) )
|
||||
ROM_LOAD( "mw2.5d", 0x0800, 0x0800, CRC(bb48a646) SHA1(cf51202d16b03bbed12ff24501be68683f28c992) )
|
||||
|
||||
ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )
|
||||
ROM_LOAD( "mw2.5f", 0x0000, 0x0800, CRC(c5fa1aa0) SHA1(6c6b5b2ce5de278ff436d3e7252ece5b086cc41d) )
|
||||
ROM_LOAD( "mw2.5h", 0x0800, 0x0800, CRC(a6ccc652) SHA1(286b3dc1f3a7da3ac66664e774b441ef075745f1) )
|
||||
|
||||
ROM_REGION( 0x0020, REGION_PROMS, 0 )
|
||||
ROM_LOAD( "moonwara.clr", 0x0000, 0x0020, CRC(f58d4f58) SHA1(12a80d1edf3c80dafa0e1e3622d2a03224b62f14) ) /* olive, instead of white */
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( darkplnt )
|
||||
ROM_REGION( 0x10000, REGION_CPU1, 0 )
|
||||
@ -1935,8 +1806,6 @@ ROM_END
|
||||
|
||||
GAME( 1981, stratgyx, 0, stratgyx, stratgyx, stratgyx, ROT0, "Konami", "Strategy X", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1981, stratgys, stratgyx, stratgyx, stratgyx, stratgyx, ROT0, "[Konami] (Stern license)", "Strategy X (Stern)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1981, moonwar, 0, moonwar, moonwar, moonwar, ROT90, "Stern", "Moonwar", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1981, moonwara, moonwar, moonwar, moonwara, moonwar, ROT90, "Stern", "Moonwar (older)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1982, darkplnt, 0, darkplnt, darkplnt, darkplnt, ROT180, "Stern", "Dark Planet", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1982, tazmani2, tazmania, type2, tazmania, tazmani2, ROT90, "Stern", "Tazz-Mania (set 2)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1983, anteatg, anteater, anteatg, anteatg, scramble_ppi, ROT90, "TV-Tuning (F.E.G. license)", "Ameisenbaer (German)", GAME_SUPPORTS_SAVE )
|
||||
|
@ -34,6 +34,7 @@ extern UINT8 galaxian_sprite_clip_start;
|
||||
extern UINT8 galaxian_sprite_clip_end;
|
||||
|
||||
PALETTE_INIT( galaxian );
|
||||
PALETTE_INIT( moonwar );
|
||||
|
||||
VIDEO_START( galaxian );
|
||||
VIDEO_UPDATE( galaxian );
|
||||
|
@ -31,7 +31,6 @@ extern UINT8 galaxold_stars_on;
|
||||
|
||||
PALETTE_INIT( galaxold );
|
||||
PALETTE_INIT( scrambold );
|
||||
PALETTE_INIT( moonwar );
|
||||
PALETTE_INIT( darkplnt );
|
||||
PALETTE_INIT( rescue );
|
||||
PALETTE_INIT( minefld );
|
||||
@ -154,7 +153,6 @@ READ8_HANDLER( gmgalax_input_port_2_r );
|
||||
|
||||
extern const ppi8255_interface scramble_ppi_ppi8255_intf[2];
|
||||
extern const ppi8255_interface stratgyx_ppi8255_intf[2];
|
||||
extern const ppi8255_interface moonwar_ppi8255_intf[2];
|
||||
extern const ppi8255_interface darkplnt_ppi8255_intf[2];
|
||||
extern const ppi8255_interface scramble_ppi8255_intf[2];
|
||||
extern const ppi8255_interface ckongs_ppi8255_intf[2];
|
||||
@ -176,7 +174,6 @@ DRIVER_INIT( devilfsh );
|
||||
DRIVER_INIT( mars );
|
||||
DRIVER_INIT( hotshock );
|
||||
DRIVER_INIT( cavelon );
|
||||
DRIVER_INIT( moonwar );
|
||||
DRIVER_INIT( darkplnt );
|
||||
DRIVER_INIT( mimonkey );
|
||||
DRIVER_INIT( mimonsco );
|
||||
|
@ -12,8 +12,6 @@
|
||||
#include "machine/8255ppi.h"
|
||||
#include "includes/galaxold.h"
|
||||
|
||||
static UINT8 moonwar_port_select;
|
||||
|
||||
static UINT8 cavelon_bank;
|
||||
|
||||
static UINT8 security_2B_counter;
|
||||
@ -76,25 +74,6 @@ static READ8_HANDLER( ckongs_input_port_2_r )
|
||||
}
|
||||
|
||||
|
||||
static WRITE8_HANDLER( moonwar_port_select_w )
|
||||
{
|
||||
moonwar_port_select = data & 0x10;
|
||||
}
|
||||
|
||||
static READ8_HANDLER( moonwar_input_port_0_r )
|
||||
{
|
||||
UINT8 sign;
|
||||
UINT8 delta;
|
||||
|
||||
delta = (moonwar_port_select ? input_port_read_indexed(machine, 3) : input_port_read_indexed(machine, 4));
|
||||
|
||||
sign = (delta & 0x80) >> 3;
|
||||
delta &= 0x0f;
|
||||
|
||||
return ((input_port_read_indexed(machine, 0) & 0xe0) | delta | sign );
|
||||
}
|
||||
|
||||
|
||||
/* the coinage DIPs are spread accross two input ports */
|
||||
static READ8_HANDLER( stratgyx_input_port_2_r )
|
||||
{
|
||||
@ -265,27 +244,6 @@ const ppi8255_interface stratgyx_ppi8255_intf[2] =
|
||||
};
|
||||
|
||||
|
||||
const ppi8255_interface moonwar_ppi8255_intf[2] =
|
||||
{
|
||||
{
|
||||
moonwar_input_port_0_r, /* Port A read */
|
||||
input_port_1_r, /* Port B read */
|
||||
input_port_2_r, /* Port C read */
|
||||
NULL, /* Port A write */
|
||||
NULL, /* Port B write */
|
||||
moonwar_port_select_w /* Port C write */
|
||||
},
|
||||
{
|
||||
NULL, /* Port A read */
|
||||
NULL, /* Port B read */
|
||||
NULL, /* Port C read */
|
||||
soundlatch_w, /* Port A write */
|
||||
scramble_sh_irqtrigger_w, /* Port B write */
|
||||
NULL /* Port C write */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
const ppi8255_interface darkplnt_ppi8255_intf[2] =
|
||||
{
|
||||
{
|
||||
@ -525,10 +483,7 @@ DRIVER_INIT( cavelon )
|
||||
state_save_register_global(cavelon_bank);
|
||||
}
|
||||
|
||||
DRIVER_INIT( moonwar )
|
||||
{
|
||||
state_save_register_global(moonwar_port_select);
|
||||
}
|
||||
|
||||
|
||||
DRIVER_INIT( darkplnt )
|
||||
{
|
||||
|
@ -423,8 +423,15 @@ PALETTE_INIT( galaxian )
|
||||
bullet_color[7] = MAKE_RGB(0xff,0xff,0x00);
|
||||
}
|
||||
|
||||
PALETTE_INIT( moonwar )
|
||||
{
|
||||
PALETTE_INIT_CALL(galaxian);
|
||||
|
||||
|
||||
/* wire mod to connect the bullet blue output to the 220 ohm resistor */
|
||||
bullet_color[7] = MAKE_RGB(0xef,0xef,0x97);
|
||||
}
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Common video init
|
||||
|
@ -211,14 +211,6 @@ PALETTE_INIT( scrambold )
|
||||
palette_set_color(machine,BACKGROUND_COLOR_BASE,MAKE_RGB(0,0,0x56));
|
||||
}
|
||||
|
||||
PALETTE_INIT( moonwar )
|
||||
{
|
||||
PALETTE_INIT_CALL(scrambold);
|
||||
|
||||
|
||||
/* wire mod to connect the bullet blue output to the 220 ohm resistor */
|
||||
palette_set_color(machine,BULLETS_COLOR_BASE+0,MAKE_RGB(0xef,0xef,0x97));
|
||||
}
|
||||
|
||||
PALETTE_INIT( stratgyx )
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user