diff options
author | Ivan Vangelista <mesgnet@yahoo.it> | 2017-06-26 18:47:29 +0200 |
---|---|---|
committer | Ivan Vangelista <mesgnet@yahoo.it> | 2017-06-26 18:47:29 +0200 |
commit | 0d03fa94540236fa6b9293d177c3a58beaca96c9 (patch) | |
tree | 113f19629586b6a8092a167363a730da88dc0ba8 | |
parent | b7c01c669d2ef3af3786006314f1e9ee351270ff (diff) |
galaxian.cpp: added preliminary controls / dips for froggeram, though for some reason I can get them to work through the i8255 device (nw)
-rw-r--r-- | src/mame/drivers/galaxian.cpp | 76 |
1 files changed, 58 insertions, 18 deletions
diff --git a/src/mame/drivers/galaxian.cpp b/src/mame/drivers/galaxian.cpp index 1071e142911..7ed0ec5aa32 100644 --- a/src/mame/drivers/galaxian.cpp +++ b/src/mame/drivers/galaxian.cpp @@ -2068,17 +2068,20 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( froggeram_map, AS_PROGRAM, 8, galaxian_state ) ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x0000, 0x3fff) AM_ROM + AM_RANGE(0x0000, 0x2fff) AM_ROM + // AM_RANGE(0x4100, 0x4103) // ppi8255_0 ? + AM_RANGE(0x4100, 0x4100) AM_READ_PORT("IN0") // why using the i8255_device doesn't work? + AM_RANGE(0x4101, 0x4101) AM_READ_PORT("IN1") + AM_RANGE(0x4102, 0x4102) AM_READ_PORT("IN2") + // AM_RANGE(0x4200, 0x4203) // ppi8255_1 ? AM_RANGE(0x8000, 0x87ff) AM_RAM AM_RANGE(0x8800, 0x8800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_RANGE(0xa800, 0xabff) AM_RAM_WRITE(galaxian_videoram_w) AM_SHARE("videoram") AM_RANGE(0xb000, 0xb0ff) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram") AM_RANGE(0xb801, 0xb801) AM_WRITE(irq_enable_w) - AM_RANGE(0xb806, 0xb806) AM_WRITE(galaxian_flip_screen_x_w) - AM_RANGE(0xb807, 0xb807) AM_WRITE(galaxian_flip_screen_y_w) -// AM_RANGE(0xb818, 0xb818) AM_WRITE(coin_count_0_w) /* IOPC7 */ -// AM_RANGE(0xb81c, 0xb81c) AM_WRITE(coin_count_1_w) /* POUT1 */ - // todo, map inputs properly for this version + AM_RANGE(0xb802, 0xb802) AM_WRITE(coin_count_0_w) + AM_RANGE(0xb806, 0xb806) AM_WRITE(galaxian_flip_screen_x_w) // always set to 0? + AM_RANGE(0xb807, 0xb807) AM_WRITE(galaxian_flip_screen_y_w) // always set to 0? ADDRESS_MAP_END /************************************* @@ -4298,6 +4301,43 @@ static INPUT_PORTS_START( frogg ) PORT_DIPUNUSED( 0x08, 0x00 ) INPUT_PORTS_END +static INPUT_PORTS_START( froggeram ) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY + PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0xc0, "5" ) + PORT_DIPSETTING( 0x80, "4" ) + PORT_DIPSETTING( 0x40, "3" ) + PORT_DIPSETTING( 0x00, "2") + + PORT_START("IN2") + PORT_DIPUNKNOWN( 0x01, 0x00 ) + PORT_DIPUNKNOWN( 0x02, 0x00 ) + PORT_DIPUNKNOWN( 0x04, 0x00 ) + PORT_DIPUNKNOWN( 0x08, 0x00 ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coinage ) ) + PORT_DIPSETTING( 0x30, "A 1/2 B 1/1" ) + PORT_DIPSETTING( 0x00, "A 1/1 B 1/1" ) + PORT_DIPSETTING( 0x10, "A 2/1 B 2/1" ) + PORT_DIPSETTING( 0x20, "A 1/1 B 2/1" ) + PORT_DIPUNKNOWN( 0x40, 0x00 ) + PORT_DIPUNKNOWN( 0x80, 0x00 ) +INPUT_PORTS_END static INPUT_PORTS_START( turtles ) PORT_START("IN0") @@ -10381,21 +10421,21 @@ ROM_END ROM_START( froggeram ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "1.d2", 0x0000, 0x0800, CRC(b680e622) SHA1(233dbefa2aae6e85cb61acd60c49480bd4a3388d) ) - ROM_LOAD( "2.e2", 0x0800, 0x0800, CRC(32c56a50) SHA1(4d215fff6ff002e23aa889292c9c5eb242975f5d) ) - ROM_LOAD( "3.f2", 0x1000, 0x0800, CRC(4223a053) SHA1(c19555d2fee4172dff99d7cf65ebb44d1336c06e) ) - ROM_LOAD( "4.h2", 0x1800, 0x0800, CRC(bcd02aa7) SHA1(987c35bf9af8bb1083ccbf4d9f912be8d74b3d1f) ) - ROM_LOAD( "5.j2", 0x2000, 0x0800, CRC(b11b36f7) SHA1(d4e9342be7fa23f30565d7b75fa0fb8c6c82669d) ) - ROM_LOAD( "6.l2", 0x2800, 0x0800, CRC(a239048a) SHA1(a8dcc0b4bdb51f6e391832d69ba3a8727be59ae7) ) + ROM_LOAD( "1.d2", 0x0000, 0x0800, CRC(b680e622) SHA1(233dbefa2aae6e85cb61acd60c49480bd4a3388d) ) + ROM_LOAD( "2.e2", 0x0800, 0x0800, CRC(32c56a50) SHA1(4d215fff6ff002e23aa889292c9c5eb242975f5d) ) + ROM_LOAD( "3.f2", 0x1000, 0x0800, CRC(4223a053) SHA1(c19555d2fee4172dff99d7cf65ebb44d1336c06e) ) + ROM_LOAD( "4.h2", 0x1800, 0x0800, CRC(bcd02aa7) SHA1(987c35bf9af8bb1083ccbf4d9f912be8d74b3d1f) ) + ROM_LOAD( "5.j2", 0x2000, 0x0800, CRC(b11b36f7) SHA1(d4e9342be7fa23f30565d7b75fa0fb8c6c82669d) ) + ROM_LOAD( "6.l2", 0x2800, 0x0800, CRC(a239048a) SHA1(a8dcc0b4bdb51f6e391832d69ba3a8727be59ae7) ) ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "top7.c5", 0x0000, 0x0800, CRC(b4c2180e) SHA1(25894481ef3b55b11a875ab08c665d5d541f1a06) ) // only this sound rom was present in the dump, it matches quaak above - ROM_LOAD( "b.bin", 0x0800, 0x0800, CRC(a1aae0bc) SHA1(1cb06b0cfde9fdd7f176f4a51de801d97785d279) ) // so let's assume the rest do too. - ROM_LOAD( "c.bin", 0x1000, 0x0800, CRC(9d88fd0a) SHA1(ecfb8ddf67cd7755cbdbc1cc5e7788e1b5b3c882) ) + ROM_LOAD( "top7.c5", 0x0000, 0x0800, CRC(b4c2180e) SHA1(25894481ef3b55b11a875ab08c665d5d541f1a06) ) // only this sound rom was present in the dump, it matches quaak above + ROM_LOAD( "b.bin", 0x0800, 0x0800, BAD_DUMP CRC(a1aae0bc) SHA1(1cb06b0cfde9fdd7f176f4a51de801d97785d279) ) // so let's assume the rest do too (but mark them as BAD_DUMP). + ROM_LOAD( "c.bin", 0x1000, 0x0800, BAD_DUMP CRC(9d88fd0a) SHA1(ecfb8ddf67cd7755cbdbc1cc5e7788e1b5b3c882) ) ROM_REGION( 0x1000, "gfx1", 0 ) - ROM_LOAD( "bl7h", 0x0000, 0x0800, CRC(05f7d883) SHA1(78831fd287da18928651a8adb7e578d291493eff) ) - ROM_LOAD( "bl8h", 0x0800, 0x0800, CRC(658745f8) SHA1(e4e5c3e011c8a7233a36d29e10e08905873500aa) ) + ROM_LOAD( "bl7h", 0x0000, 0x0800, CRC(05f7d883) SHA1(78831fd287da18928651a8adb7e578d291493eff) ) + ROM_LOAD( "bl8h", 0x0800, 0x0800, CRC(658745f8) SHA1(e4e5c3e011c8a7233a36d29e10e08905873500aa) ) ROM_REGION( 0x0020, "proms", 0 ) ROM_LOAD( "n82s123.bin", 0x0000, 0x0020, CRC(a35ec965) SHA1(ea5851f3e0e54f043347c7ae9869db8f6711d031) ) @@ -12072,7 +12112,7 @@ GAME( 1981, frogf, frogger, frogf, frogger, galaxian_state, frogg GAME( 1981, frogg, frogger, galaxian, frogg, galaxian_state, frogg, ROT90, "bootleg", "Frog (Galaxian hardware)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, froggrs, frogger, froggers, frogger, galaxian_state, froggrs, ROT90, "bootleg (Coin Music)", "Frogger (Scramble hardware)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, quaak, frogger, quaak, frogger, galaxian_state, quaak, ROT90, "bootleg", "Quaak (bootleg of Frogger)", MACHINE_SUPPORTS_SAVE ) // closest to Super Cobra hardware, presumably a bootleg from Germany (Quaak is the German frog sound) -GAME( 1981, froggeram, frogger, froggeram, frogger, galaxian_state, quaak, ROT90, "bootleg", "Frogger (bootleg on Amigo? hardware)", MACHINE_NOT_WORKING ) // meant to be Amigo hardware, but maybe a different bootleg than the one we have? +GAME( 1981, froggeram, frogger, froggeram, froggeram, galaxian_state, quaak, ROT90, "bootleg", "Frogger (bootleg on Amigo? hardware)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // meant to be Amigo hardware, but maybe a different bootleg than the one we have? /* |