summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/jaleco/fcombat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/jaleco/fcombat.cpp')
-rw-r--r--src/mame/jaleco/fcombat.cpp37
1 files changed, 18 insertions, 19 deletions
diff --git a/src/mame/jaleco/fcombat.cpp b/src/mame/jaleco/fcombat.cpp
index a113c583931..adaabf056b2 100644
--- a/src/mame/jaleco/fcombat.cpp
+++ b/src/mame/jaleco/fcombat.cpp
@@ -11,10 +11,7 @@ TS 2004.10.22.
(press buttons 1+2 at the same time, to release 'army' ;)
-TODO:
-- verify sprite colors, not many PCB references online, but comparing with
- the small amount of photos that are there, they match
-
+Colors match available references (i.e. https://www.youtube.com/watch?v=kMfaYrmoOc4)
PCB Notes:
@@ -119,7 +116,7 @@ private:
// this is copied from Exerion, but it should be correct
-static constexpr XTAL MASTER_CLOCK = 20_MHz_XTAL;
+static constexpr XTAL MASTER_CLOCK = 19.968_MHz_XTAL;
static constexpr XTAL CPU_CLOCK = MASTER_CLOCK / 6;
static constexpr XTAL AY8910_CLOCK = CPU_CLOCK / 2;
static constexpr XTAL PIXEL_CLOCK = MASTER_CLOCK / 3;
@@ -491,32 +488,33 @@ static INPUT_PORTS_START( fcombat )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_START("DSW0") // dip switches (0xe100)
- PORT_DIPNAME( 0x07, 0x02, DEF_STR( Lives ) )
+ PORT_START("DSW0") // 8-position DIP switch (0xe100)
+ PORT_DIPNAME( 0x07, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2,3")
PORT_DIPSETTING( 0x00, "1" )
PORT_DIPSETTING( 0x01, "2" )
PORT_DIPSETTING( 0x02, "3" )
PORT_DIPSETTING( 0x03, "4" )
PORT_DIPSETTING( 0x04, "5" )
- PORT_DIPSETTING( 0x07, "Infinite (Cheat)")
- PORT_DIPNAME( 0x18, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x05, "5" ) // duplicate
+ PORT_DIPSETTING( 0x06, "5" ) // duplicate
+ PORT_DIPSETTING( 0x07, "Infinite (Cheat)") // probably really 254 or 255
+ PORT_DIPNAME( 0x18, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:4,5")
PORT_DIPSETTING( 0x00, "10000" )
PORT_DIPSETTING( 0x08, "20000" )
PORT_DIPSETTING( 0x10, "30000" )
PORT_DIPSETTING( 0x18, "40000" )
- PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) )
+ PORT_DIPNAME( 0x60, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:6,7")
+ PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x60, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:8")
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) )
- PORT_START("DSW1") // dip switches/VBLANK (0xe200)
+ PORT_START("DSW1") // 4-position DIP switch / VBLANK (0xe200)
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("screen", FUNC(screen_device::vblank))
- PORT_DIPNAME( 0x0e, 0x00, DEF_STR( Coinage ) )
+ PORT_DIPNAME( 0x0e, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:1,2,3")
PORT_DIPSETTING( 0x0e, DEF_STR( 5C_1C ) )
PORT_DIPSETTING( 0x0a, DEF_STR( 4C_1C ) )
PORT_DIPSETTING( 0x06, DEF_STR( 3C_1C ) )
@@ -525,7 +523,8 @@ static INPUT_PORTS_START( fcombat )
PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) )
PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) )
- PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_DIPLOCATION("SW2:4")
+ PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("COIN")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(fcombat_state::coin_inserted), 0)