summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2009-03-19 05:58:04 +0000
committer Aaron Giles <aaron@aarongiles.com>2009-03-19 05:58:04 +0000
commit7d5e308e2c0b62dfd3bf8506ac9456e181611643 (patch)
tree07699bb2427a310ce0681e0d1379b87267167245
parent5c8f9fb5700be9517f171918d8e5bfbc4d0ee9e4 (diff)
From: Robert [mailto:pac0446@bigpond.net.au]
Sent: Friday, March 13, 2009 4:26 AM To: Aaron Giles Subject: Submission for mame This change adds inputs for galaxia and astrowar. Galaxia is semi-playable. Note: After inserting a coin, it can take a few seconds to respond. - Robbbert
-rw-r--r--src/mame/drivers/galaxia.c99
1 files changed, 74 insertions, 25 deletions
diff --git a/src/mame/drivers/galaxia.c b/src/mame/drivers/galaxia.c
index 32a82e56df2..ee553dd11c8 100644
--- a/src/mame/drivers/galaxia.c
+++ b/src/mame/drivers/galaxia.c
@@ -43,7 +43,7 @@ static VIDEO_START( galaxia )
/* configure the S2636 chips */
s2636_0 = s2636_config(galaxia_s2636_0_ram, height, width, 3, -27);
s2636_1 = s2636_config(galaxia_s2636_1_ram, height, width, 3, -27);
- s2636_2 = s2636_config(galaxia_s2636_1_ram, height, width, 3, -27);
+ s2636_2 = s2636_config(galaxia_s2636_2_ram, height, width, 3, -27);
}
static VIDEO_UPDATE( galaxia )
@@ -124,40 +124,86 @@ static ADDRESS_MAP_START( mem_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_READWRITE(galaxia_video_r, galaxia_video_w) AM_BASE(&galaxia_video)
AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM
AM_RANGE(0x2000, 0x33ff) AM_ROM
+ AM_RANGE(0x7214, 0x7214) AM_READ_PORT("IN0")
ADDRESS_MAP_END
-
static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x02, 0x02) AM_READ_PORT("IN0")
+ AM_RANGE(0x00, 0x00) AM_READ_PORT("IN7")
+ AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
+ AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2")
+ AM_RANGE(0x05, 0x05) AM_READ_PORT("IN5")
+ AM_RANGE(0x06, 0x06) AM_READ_PORT("IN6")
+ AM_RANGE(0xac, 0xac) AM_READ_PORT("IN3")
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( astrowar_mem, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x13ff) AM_ROM
+ AM_RANGE(0x1400, 0x14ff) AM_MIRROR(0x6000) AM_RAM
+ AM_RANGE(0x1500, 0x15ff) AM_MIRROR(0x6000) AM_RAM AM_BASE(&galaxia_s2636_0_ram)
+ AM_RANGE(0x1600, 0x16ff) AM_MIRROR(0x6000) AM_RAM AM_BASE(&galaxia_s2636_1_ram)
+ AM_RANGE(0x1700, 0x17ff) AM_MIRROR(0x6000) AM_RAM AM_BASE(&galaxia_s2636_2_ram)
+ AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_READWRITE(galaxia_video_r, galaxia_video_w) AM_BASE(&galaxia_video)
+ AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM
+ AM_RANGE(0x2000, 0x33ff) AM_ROM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( astrowar_io, ADDRESS_SPACE_IO, 8 )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
+ AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
+ AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2")
+ AM_RANGE(0x06, 0x06) AM_READ_PORT("IN6")
+ AM_RANGE(0x07, 0x07) AM_READ_PORT("IN7")
ADDRESS_MAP_END
static INPUT_PORTS_START( galaxia )
PORT_START("IN0")
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+ PORT_START("IN1")
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("IN2")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
+ PORT_DIPNAME( 0x80, 0x80, "Freeze" )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_BIT( 0x43, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+ PORT_START("IN3")
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("IN5")
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN6")
+ PORT_DIPNAME( 0x07, 0x00, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x00, "A 1C_1C B 2C_1C" )
+ PORT_DIPSETTING( 0x01, "A 1C_2C B 2C_1C" )
+ PORT_DIPSETTING( 0x02, "A 1C_3C B 2C_1C" )
+ PORT_DIPSETTING( 0x03, "A 1C_5C B 2C_1C" )
+ PORT_DIPSETTING( 0x04, "A 1C_1C B 1C_1C" )
+ PORT_DIPSETTING( 0x05, "A 1C_2C B 1C_1C" )
+ PORT_DIPSETTING( 0x06, "A 1C_3C B 1C_1C" )
+ PORT_DIPSETTING( 0x07, "A 1C_5C B 1C_1C" )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x08, "5" )
+ PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+ PORT_START("IN7")
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
static const gfx_layout tiles8x8x1_layout =
@@ -220,6 +266,9 @@ MACHINE_DRIVER_END
static MACHINE_DRIVER_START( astrowar )
MDRV_IMPORT_FROM( galaxia )
+ MDRV_CPU_MODIFY("maincpu")
+ MDRV_CPU_PROGRAM_MAP(astrowar_mem, 0)
+ MDRV_CPU_IO_MAP(astrowar_io, 0)
MDRV_GFXDECODE(astrowar)
MACHINE_DRIVER_END