summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/fcombat.cpp
diff options
context:
space:
mode:
author cam900 <dbtlrchl@naver.com>2019-05-23 10:34:34 +0900
committer cam900 <dbtlrchl@naver.com>2019-05-23 10:34:34 +0900
commit06587bad72d81a605d60f3f10601a97a13aa8738 (patch)
tree115460c1693e2e0bf8431339e68b44e0f0d23e73 /src/mame/drivers/fcombat.cpp
parent6f91e0a2f4533c6166cf63c40c355e299cd3352a (diff)
fcombat.cpp : Updates
Simplify handlers, Reduce runtime tag lookups, Unnecessary lines, Fix namings, Spacings, Use shorter / correct type values
Diffstat (limited to 'src/mame/drivers/fcombat.cpp')
-rw-r--r--src/mame/drivers/fcombat.cpp104
1 files changed, 50 insertions, 54 deletions
diff --git a/src/mame/drivers/fcombat.cpp b/src/mame/drivers/fcombat.cpp
index 6273f47083f..1afd5c16a75 100644
--- a/src/mame/drivers/fcombat.cpp
+++ b/src/mame/drivers/fcombat.cpp
@@ -48,9 +48,8 @@ INPUT_CHANGED_MEMBER(fcombat_state::coin_inserted)
}
-
/* is it protection? */
-READ8_MEMBER(fcombat_state::fcombat_protection_r)
+u8 fcombat_state::protection_r()
{
/* Must match ONE of these values after a "and $3E" intruction :
@@ -64,26 +63,26 @@ READ8_MEMBER(fcombat_state::fcombat_protection_r)
/* same as exerion again */
-READ8_MEMBER(fcombat_state::fcombat_port01_r)
+u8 fcombat_state::port01_r()
{
/* the cocktail flip bit muxes between ports 0 and 1 */
- return ioport(m_cocktail_flip ? "IN1" : "IN0")->read();
+ return m_io_in[m_cocktail_flip ? 1 : 0]->read();
}
//bg scrolls
-WRITE8_MEMBER(fcombat_state::e900_w)
+void fcombat_state::e900_w(u8 data)
{
m_fcombat_sh = data;
}
-WRITE8_MEMBER(fcombat_state::ea00_w)
+void fcombat_state::ea00_w(u8 data)
{
m_fcombat_sv = (m_fcombat_sv & 0xff00) | data;
}
-WRITE8_MEMBER(fcombat_state::eb00_w)
+void fcombat_state::eb00_w(u8 data)
{
m_fcombat_sv = (m_fcombat_sv & 0xff) | (data << 8);
}
@@ -91,25 +90,25 @@ WRITE8_MEMBER(fcombat_state::eb00_w)
// terrain info (ec00=x, ed00=y, return val in e300
-WRITE8_MEMBER(fcombat_state::ec00_w)
+void fcombat_state::ec00_w(u8 data)
{
m_tx = data;
}
-WRITE8_MEMBER(fcombat_state::ed00_w)
+void fcombat_state::ed00_w(u8 data)
{
m_ty = data;
}
-READ8_MEMBER(fcombat_state::e300_r)
+u8 fcombat_state::e300_r()
{
- int wx = (m_tx + m_fcombat_sh) / 16;
- int wy = (m_ty * 2 + m_fcombat_sv) / 16;
+ const int wx = (m_tx + m_fcombat_sh) / 16;
+ const int wy = (m_ty * 2 + m_fcombat_sv) / 16;
- return memregion("user2")->base()[wx * 32 * 16 + wy];
+ return m_user2_region[wx * 32 * 16 + wy];
}
-WRITE8_MEMBER(fcombat_state::ee00_w)
+void fcombat_state::ee00_w(u8 data)
{
}
@@ -119,12 +118,12 @@ void fcombat_state::main_map(address_map &map)
map(0xc000, 0xc7ff).ram();
map(0xd000, 0xd7ff).ram().share("videoram");
map(0xd800, 0xd8ff).ram().share("spriteram");
- map(0xe000, 0xe000).r(FUNC(fcombat_state::fcombat_port01_r));
+ map(0xe000, 0xe000).r(FUNC(fcombat_state::port01_r));
map(0xe100, 0xe100).portr("DSW0");
map(0xe200, 0xe200).portr("DSW1");
map(0xe300, 0xe300).r(FUNC(fcombat_state::e300_r));
- map(0xe400, 0xe400).r(FUNC(fcombat_state::fcombat_protection_r)); // protection?
- map(0xe800, 0xe800).w(FUNC(fcombat_state::fcombat_videoreg_w)); // at least bit 0 for flip screen and joystick input multiplexor
+ map(0xe400, 0xe400).r(FUNC(fcombat_state::protection_r)); // protection?
+ map(0xe800, 0xe800).w(FUNC(fcombat_state::videoreg_w)); // at least bit 0 for flip screen and joystick input multiplexor
map(0xe900, 0xe900).w(FUNC(fcombat_state::e900_w));
map(0xea00, 0xea00).w(FUNC(fcombat_state::ea00_w));
map(0xeb00, 0xeb00).w(FUNC(fcombat_state::eb00_w));
@@ -149,7 +148,6 @@ void fcombat_state::audio_map(address_map &map)
}
-
/*************************************
*
* Input ports
@@ -228,24 +226,22 @@ static const gfx_layout charlayout =
8,8,
RGN_FRAC(1,1),
2,
- { 0, 4 },
- { 3, 2, 1, 0, 8+3, 8+2, 8+1, 8+0 },
- { 16*0, 16*1, 16*2, 16*3, 16*4, 16*5, 16*6, 16*7 },
+ { STEP2(0,4) },
+ { STEP4(3,-1), STEP4(4*2+3,-1) },
+ { STEP8(0,4*4) },
16*8
};
-/* 16 x 16 sprites -- requires reorganizing characters in init_exerion() */
+/* 16 x 16 sprites -- requires reorganizing characters in init_fcombat() */
static const gfx_layout spritelayout =
{
16,16,
RGN_FRAC(1,1),
2,
- { 0, 4 },
- { 3, 2, 1, 0, 8+3, 8+2, 8+1, 8+0,
- 16+3, 16+2, 16+1, 16+0, 24+3, 24+2, 24+1, 24+0 },
- { 32*0, 32*1, 32*2, 32*3, 32*4, 32*5, 32*6, 32*7,
- 32*8, 32*9, 32*10, 32*11, 32*12, 32*13, 32*14, 32*15 },
+ { STEP2(0,4) },
+ { STEP4(3,-1), STEP4(4*2+3,-1), STEP4(4*4+3,-1), STEP4(4*6+3,-1) },
+ { STEP16(0,4*8) },
64*8
};
@@ -300,7 +296,7 @@ void fcombat_state::fcombat(machine_config &config)
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(FCOMBAT_PIXEL_CLOCK, FCOMBAT_HTOTAL, FCOMBAT_HBEND, FCOMBAT_HBSTART, FCOMBAT_VTOTAL, FCOMBAT_VBEND, FCOMBAT_VBSTART);
- screen.set_screen_update(FUNC(fcombat_state::screen_update_fcombat));
+ screen.set_screen_update(FUNC(fcombat_state::screen_update));
screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_fcombat);
@@ -327,23 +323,23 @@ void fcombat_state::fcombat(machine_config &config)
void fcombat_state::init_fcombat()
{
/* allocate some temporary space */
- std::vector<uint8_t> temp(0x10000);
+ std::vector<u8> temp(0x10000);
/* make a temporary copy of the character data */
- uint8_t *src = &temp[0];
- uint8_t *dst = memregion("gfx1")->base();
- uint32_t length = memregion("gfx1")->bytes();
+ u8 *src = &temp[0];
+ u8 *dst = memregion("gfx1")->base();
+ u32 length = memregion("gfx1")->bytes();
memcpy(src, dst, length);
/* decode the characters */
/* 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 */
- for (uint32_t oldaddr = 0; oldaddr < length; oldaddr++)
+ for (u32 oldaddr = 0; oldaddr < length; oldaddr++)
{
- uint32_t newaddr = ((oldaddr ) & 0x1f00) | /* keep n8-n4 */
- ((oldaddr << 3) & 0x00f0) | /* move n3-n0 */
- ((oldaddr >> 4) & 0x000e) | /* move v2-v0 */
- ((oldaddr ) & 0x0001); /* keep h2 */
+ u32 newaddr = ((oldaddr ) & 0x1f00) | /* keep n8-n4 */
+ ((oldaddr << 3) & 0x00f0) | /* move n3-n0 */
+ ((oldaddr >> 4) & 0x000e) | /* move v2-v0 */
+ ((oldaddr ) & 0x0001); /* keep h2 */
dst[newaddr] = src[oldaddr];
}
@@ -357,13 +353,13 @@ void fcombat_state::init_fcombat()
/* the bits in the ROMs are ordered: n9 n8 n3 n7-n6 n5 n4 v3-v2 v1 v0 n2-n1 n0 h3 h2 */
/* we want them ordered like this: n9 n8 n7 n6-n5 n4 n3 n2-n1 n0 v3 v2-v1 v0 h3 h2 */
- for (uint32_t oldaddr = 0; oldaddr < length; oldaddr++)
+ for (u32 oldaddr = 0; oldaddr < length; oldaddr++)
{
- uint32_t newaddr = ((oldaddr << 1) & 0x3c00) | /* move n7-n4 */
- ((oldaddr >> 4) & 0x0200) | /* move n3 */
- ((oldaddr << 4) & 0x01c0) | /* move n2-n0 */
- ((oldaddr >> 3) & 0x003c) | /* move v3-v0 */
- ((oldaddr ) & 0xc003); /* keep n9-n8 h3-h2 */
+ u32 newaddr = ((oldaddr << 1) & 0x3c00) | /* move n7-n4 */
+ ((oldaddr >> 4) & 0x0200) | /* move n3 */
+ ((oldaddr << 4) & 0x01c0) | /* move n2-n0 */
+ ((oldaddr >> 3) & 0x003c) | /* move v3-v0 */
+ ((oldaddr ) & 0xc003); /* keep n9-n8 h3-h2 */
dst[newaddr] = src[oldaddr];
}
@@ -378,22 +374,22 @@ void fcombat_state::init_fcombat()
/* 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 */
- for (uint32_t oldaddr = 0; oldaddr < length; oldaddr++)
+ for (u32 oldaddr = 0; oldaddr < length; oldaddr++)
{
- uint32_t newaddr = ((oldaddr << 1) & 0x3c00) | /* move n7-n4 */
- ((oldaddr >> 4) & 0x0200) | /* move n3 */
- ((oldaddr << 4) & 0x01c0) | /* move n2-n0 */
- ((oldaddr >> 3) & 0x003c) | /* move v3-v0 */
- ((oldaddr ) & 0xc003); /* keep n9-n8 h3-h2 */
+ u32 newaddr = ((oldaddr << 1) & 0x3c00) | /* move n7-n4 */
+ ((oldaddr >> 4) & 0x0200) | /* move n3 */
+ ((oldaddr << 4) & 0x01c0) | /* move n2-n0 */
+ ((oldaddr >> 3) & 0x003c) | /* move v3-v0 */
+ ((oldaddr ) & 0xc003); /* keep n9-n8 h3-h2 */
dst[newaddr] = src[oldaddr];
}
src = &temp[0];
- dst = memregion("user1")->base();
- length = memregion("user1")->bytes();
+ dst = memregion("bgdata")->base();
+ length = memregion("bgdata")->bytes();
memcpy(src, dst, length);
- for (uint32_t oldaddr = 0; oldaddr < 32; oldaddr++)
+ for (u32 oldaddr = 0; oldaddr < 32; oldaddr++)
{
memcpy(&dst[oldaddr * 32 * 8 * 2], &src[oldaddr * 32 * 8], 32 * 8);
memcpy(&dst[oldaddr * 32 * 8 * 2 + 32 * 8], &src[oldaddr * 32 * 8 + 0x2000], 32 * 8);
@@ -405,7 +401,7 @@ void fcombat_state::init_fcombat()
length = memregion("user2")->bytes();
memcpy(src, dst, length);
- for (uint32_t oldaddr = 0; oldaddr < 32; oldaddr++)
+ for (u32 oldaddr = 0; oldaddr < 32; oldaddr++)
{
memcpy(&dst[oldaddr * 32 * 8 * 2], &src[oldaddr * 32 * 8], 32 * 8);
memcpy(&dst[oldaddr * 32 * 8 * 2 + 32 * 8], &src[oldaddr * 32 * 8 + 0x2000], 32 * 8);
@@ -431,7 +427,7 @@ ROM_START( fcombat )
ROM_REGION( 0x04000, "gfx3", 0 )
ROM_LOAD( "fcombat6.f3", 0x00000, 0x4000, CRC(97282729) SHA1(72db0593551c2d15631341bf621b96013b46ce72) )
- ROM_REGION( 0x04000, "user1", 0 )
+ ROM_REGION( 0x04000, "bgdata", 0 )
ROM_LOAD( "fcombat5.l3", 0x00000, 0x4000, CRC(96194ca7) SHA1(087d6ac8f93f087cb5e378dbe9a8cfcffa2cdddc) ) /* bg data */
ROM_REGION( 0x04000, "user2", 0 )