mirror of
https://github.com/holub/mame
synced 2025-07-01 08:18:59 +03:00
fcombat: unknown dipsw is coinage
This commit is contained in:
parent
cedc75b90c
commit
8e8f838b00
@ -1,8 +1,10 @@
|
|||||||
// license:BSD-3-Clause
|
// license:BSD-3-Clause
|
||||||
// copyright-holders: Tomasz Slanina
|
// copyright-holders: David Haywood, Tomasz Slanina
|
||||||
|
|
||||||
/* Field Combat (c)1985 Jaleco
|
/* Field Combat (c)1985 Jaleco
|
||||||
|
|
||||||
|
Hardware has similarities with Exerion
|
||||||
|
|
||||||
TS 2004.10.22.
|
TS 2004.10.22.
|
||||||
- fixed sprite issues
|
- fixed sprite issues
|
||||||
- added backgrounds and terrain info (external ROMs)
|
- added backgrounds and terrain info (external ROMs)
|
||||||
@ -139,14 +141,6 @@ static constexpr int VISIBLE_Y_MIN = 2 * 8;
|
|||||||
static constexpr int VISIBLE_Y_MAX = 30 * 8;
|
static constexpr int VISIBLE_Y_MAX = 30 * 8;
|
||||||
|
|
||||||
|
|
||||||
TILE_GET_INFO_MEMBER(fcombat_state::get_bg_tile_info)
|
|
||||||
{
|
|
||||||
const int tileno = m_bgdata_rom[tile_index];
|
|
||||||
const int palno = (tile_index >> 5 & 0xf) ^ 7;
|
|
||||||
tileinfo.set(2, tileno, palno, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
Convert the color PROMs into a more useable format.
|
Convert the color PROMs into a more useable format.
|
||||||
@ -224,6 +218,13 @@ void fcombat_state::video_start()
|
|||||||
m_bgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fcombat_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32 * 8 * 2, 32);
|
m_bgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fcombat_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32 * 8 * 2, 32);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TILE_GET_INFO_MEMBER(fcombat_state::get_bg_tile_info)
|
||||||
|
{
|
||||||
|
const int tileno = m_bgdata_rom[tile_index];
|
||||||
|
const int palno = (tile_index >> 5 & 0xf) ^ 7;
|
||||||
|
tileinfo.set(2, tileno, palno, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
*
|
*
|
||||||
@ -470,7 +471,7 @@ static INPUT_PORTS_START( fcombat )
|
|||||||
PORT_DIPSETTING( 0x08, "20000" )
|
PORT_DIPSETTING( 0x08, "20000" )
|
||||||
PORT_DIPSETTING( 0x10, "30000" )
|
PORT_DIPSETTING( 0x10, "30000" )
|
||||||
PORT_DIPSETTING( 0x18, "40000" )
|
PORT_DIPSETTING( 0x18, "40000" )
|
||||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) )
|
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unused ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) )
|
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) )
|
||||||
@ -482,10 +483,11 @@ static INPUT_PORTS_START( fcombat )
|
|||||||
|
|
||||||
PORT_START("DSW1") // dip switches/VBLANK (0xe200)
|
PORT_START("DSW1") // dip switches/VBLANK (0xe200)
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
|
||||||
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) // related to vblank
|
PORT_DIPNAME( 0x0e, 0x00, DEF_STR( Coinage ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x0e, DEF_STR( 5C_1C ) )
|
||||||
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x0a, DEF_STR( 4C_1C ) )
|
||||||
PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) )
|
PORT_DIPSETTING( 0x06, DEF_STR( 3C_1C ) )
|
||||||
|
PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||||
PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
|
PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
|
||||||
PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) )
|
PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) )
|
||||||
@ -592,6 +594,7 @@ void fcombat_state::fcombat(machine_config &config)
|
|||||||
YM2149(config, "ay3", AY8910_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.25);
|
YM2149(config, "ay3", AY8910_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
*
|
*
|
||||||
* Driver initialization
|
* Driver initialization
|
||||||
@ -612,6 +615,7 @@ void fcombat_state::init_fcombat()
|
|||||||
/* decode the characters
|
/* decode the characters
|
||||||
the bits in the ROM are ordered: n8-n7 n6 n5 n4-v2 v1 v0 n3-n2 n1 n0 h2
|
the bits in the ROM are ordered: n8-n7 n6 n5 n4-v2 v1 v0 n3-n2 n1 n0 h2
|
||||||
we want them ordered like this: n8-n7 n6 n5 n4-n3 n2 n1 n0-v2 v1 v0 h2 */
|
we want them ordered like this: n8-n7 n6 n5 n4-n3 n2 n1 n0-v2 v1 v0 h2 */
|
||||||
|
|
||||||
for (u32 oldaddr = 0; oldaddr < length; oldaddr++)
|
for (u32 oldaddr = 0; oldaddr < length; oldaddr++)
|
||||||
{
|
{
|
||||||
u32 newaddr = ((oldaddr ) & 0x1f00) | // keep n8-n4
|
u32 newaddr = ((oldaddr ) & 0x1f00) | // keep n8-n4
|
||||||
|
Loading…
Reference in New Issue
Block a user