summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/1943.cpp
diff options
context:
space:
mode:
author cam900 <dbtlrchl@naver.com>2019-06-03 08:06:39 +0900
committer cam900 <dbtlrchl@naver.com>2019-06-03 08:06:39 +0900
commitd95d51cdaea02a19c89a8462852ee403bd58fde4 (patch)
treeccf8845a570970c5bbf51dacd7957daa7e34b5f1 /src/mame/drivers/1943.cpp
parent195eda21ccbf674e29f8f2e9bbab43dabe8d191f (diff)
1943.cpp : Updates
Correct sprite priority handling routine, Reduce runtime tag lookups, Fix namings, Simplify handlers, Gfxdecodes, Use shorter / correct type values
Diffstat (limited to 'src/mame/drivers/1943.cpp')
-rw-r--r--src/mame/drivers/1943.cpp111
1 files changed, 43 insertions, 68 deletions
diff --git a/src/mame/drivers/1943.cpp b/src/mame/drivers/1943.cpp
index 0f68850bff5..06e45fa4abb 100644
--- a/src/mame/drivers/1943.cpp
+++ b/src/mame/drivers/1943.cpp
@@ -38,18 +38,17 @@
#include "machine/gen_latch.h"
#include "machine/watchdog.h"
#include "sound/2203intf.h"
-#include "screen.h"
#include "speaker.h"
/* Protection Handlers */
-WRITE8_MEMBER(_1943_state::c1943_protection_w)
+void _1943_state::protection_w(u8 data)
{
m_prot_value = data;
}
-READ8_MEMBER(_1943_state::c1943_protection_r)
+u8 _1943_state::protection_r()
{
// The game crashes (through a jump to 0x8000) if the return value is not what it expects..
@@ -94,7 +93,7 @@ READ8_MEMBER(_1943_state::c1943_protection_r)
}
// The bootleg expects 0x00 to be returned from the protection reads because the protection has been patched out.
-READ8_MEMBER(_1943_state::_1943b_c007_r)
+u8 _1943_state::_1943b_c007_r()
{
return 0;
}
@@ -105,23 +104,23 @@ READ8_MEMBER(_1943_state::_1943b_c007_r)
void _1943_state::c1943_map(address_map &map)
{
map(0x0000, 0x7fff).rom();
- map(0x8000, 0xbfff).bankr("bank1");
+ map(0x8000, 0xbfff).bankr("mainbank");
map(0xc000, 0xc000).portr("SYSTEM");
map(0xc001, 0xc001).portr("P1");
map(0xc002, 0xc002).portr("P2");
map(0xc003, 0xc003).portr("DSWA");
map(0xc004, 0xc004).portr("DSWB");
- map(0xc007, 0xc007).r(FUNC(_1943_state::c1943_protection_r));
+ map(0xc007, 0xc007).r(FUNC(_1943_state::protection_r));
map(0xc800, 0xc800).w("soundlatch", FUNC(generic_latch_8_device::write));
- map(0xc804, 0xc804).w(FUNC(_1943_state::c1943_c804_w)); // ROM bank switch, screen flip
+ map(0xc804, 0xc804).w(FUNC(_1943_state::c804_w)); // ROM bank switch, screen flip
map(0xc806, 0xc806).w("watchdog", FUNC(watchdog_timer_device::reset_w));
- map(0xc807, 0xc807).w(FUNC(_1943_state::c1943_protection_w));
- map(0xd000, 0xd3ff).ram().w(FUNC(_1943_state::c1943_videoram_w)).share("videoram");
- map(0xd400, 0xd7ff).ram().w(FUNC(_1943_state::c1943_colorram_w)).share("colorram");
+ map(0xc807, 0xc807).w(FUNC(_1943_state::protection_w));
+ map(0xd000, 0xd3ff).ram().w(FUNC(_1943_state::videoram_w)).share("videoram");
+ map(0xd400, 0xd7ff).ram().w(FUNC(_1943_state::colorram_w)).share("colorram");
map(0xd800, 0xd801).ram().share("scrollx");
map(0xd802, 0xd802).ram().share("scrolly");
map(0xd803, 0xd804).ram().share("bgscrollx");
- map(0xd806, 0xd806).w(FUNC(_1943_state::c1943_d806_w)); // sprites, bg1, bg2 enable
+ map(0xd806, 0xd806).w(FUNC(_1943_state::d806_w)); // sprites, bg1, bg2 enable
map(0xd808, 0xd808).nopw(); // ???
map(0xd868, 0xd868).nopw(); // ???
map(0xd888, 0xd888).nopw(); // ???
@@ -230,58 +229,34 @@ INPUT_PORTS_END
static const gfx_layout charlayout =
{
8,8, /* 8*8 characters */
- 2048, /* 2048 characters */
+ RGN_FRAC(1,1), /* 2048 characters */
2, /* 2 bits per pixel */
{ 4, 0 },
- { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3 },
- { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
+ { STEP4(0,1), STEP4(4*2,1) },
+ { STEP8(0,4*2*2) },
16*8 /* every char takes 16 consecutive bytes */
};
static const gfx_layout tilelayout =
{
32,32, /* 32*32 tiles */
- 512, /* 512 tiles */
+ RGN_FRAC(1,2),
4, /* 4 bits per pixel */
- { 512*256*8+4, 512*256*8+0, 4, 0 },
- { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3,
- 64*8+0, 64*8+1, 64*8+2, 64*8+3, 65*8+0, 65*8+1, 65*8+2, 65*8+3,
- 128*8+0, 128*8+1, 128*8+2, 128*8+3, 129*8+0, 129*8+1, 129*8+2, 129*8+3,
- 192*8+0, 192*8+1, 192*8+2, 192*8+3, 193*8+0, 193*8+1, 193*8+2, 193*8+3 },
- { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
- 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16,
- 16*16, 17*16, 18*16, 19*16, 20*16, 21*16, 22*16, 23*16,
- 24*16, 25*16, 26*16, 27*16, 28*16, 29*16, 30*16, 31*16 },
- 256*8 /* every tile takes 256 consecutive bytes */
-};
-
-static const gfx_layout bgtilelayout =
-{
- 32,32, /* 32*32 tiles */
- 128, /* 128 tiles */
- 4, /* 4 bits per pixel */
- { 128*256*8+4, 128*256*8+0, 4, 0 },
- { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3,
- 64*8+0, 64*8+1, 64*8+2, 64*8+3, 65*8+0, 65*8+1, 65*8+2, 65*8+3,
- 128*8+0, 128*8+1, 128*8+2, 128*8+3, 129*8+0, 129*8+1, 129*8+2, 129*8+3,
- 192*8+0, 192*8+1, 192*8+2, 192*8+3, 193*8+0, 193*8+1, 193*8+2, 193*8+3 },
- { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
- 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16,
- 16*16, 17*16, 18*16, 19*16, 20*16, 21*16, 22*16, 23*16,
- 24*16, 25*16, 26*16, 27*16, 28*16, 29*16, 30*16, 31*16 },
+ { RGN_FRAC(1,2)+4, RGN_FRAC(1,2)+0, 4, 0 },
+ { STEP4(0,1), STEP4(4*2,1), STEP4(4*2*2*32,1), STEP4(4*2*2*32+4*2,1),
+ STEP4(4*2*2*64,1), STEP4(4*2*2*64+4*2,1), STEP4(4*2*2*96,1), STEP4(4*2*2*96+4*2,1) },
+ { STEP32(0,4*2*2) },
256*8 /* every tile takes 256 consecutive bytes */
};
static const gfx_layout spritelayout =
{
16,16, /* 16*16 sprites */
- 2048, /* 2048 sprites */
+ RGN_FRAC(1,2), /* 2048 sprites */
4, /* 4 bits per pixel */
- { 2048*64*8+4, 2048*64*8+0, 4, 0 },
- { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3,
- 32*8+0, 32*8+1, 32*8+2, 32*8+3, 33*8+0, 33*8+1, 33*8+2, 33*8+3 },
- { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
- 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
+ { RGN_FRAC(1,2)+4, RGN_FRAC(1,2)+0, 4, 0 },
+ { STEP4(0,1), STEP4(4*2,1), STEP4(4*2*2*16,1), STEP4(4*2*2*16+4*2,1) },
+ { STEP16(0,4*2*2) },
64*8 /* every sprite takes 64 consecutive bytes */
};
@@ -290,7 +265,7 @@ static const gfx_layout spritelayout =
static GFXDECODE_START( gfx_1943 )
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 32 )
GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 32*4, 16 )
- GFXDECODE_ENTRY( "gfx3", 0, bgtilelayout, 32*4+16*16, 16 )
+ GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 32*4+16*16, 16 )
GFXDECODE_ENTRY( "gfx4", 0, spritelayout, 32*4+16*16+16*16, 16 )
GFXDECODE_END
@@ -325,13 +300,13 @@ void _1943_state::_1943(machine_config &config)
WATCHDOG_TIMER(config, "watchdog");
// video hardware
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(32*8, 32*8);
- screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
- screen.set_screen_update(FUNC(_1943_state::screen_update_1943));
- screen.set_palette(m_palette);
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(32*8, 32*8);
+ m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ m_screen->set_screen_update(FUNC(_1943_state::screen_update));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_1943);
PALETTE(config, m_palette, FUNC(_1943_state::_1943_palette), 32*4+16*16+16*16+16*16, 256);
@@ -395,7 +370,7 @@ ROM_START( 1943 )
ROM_LOAD( "bm12.12c", 0x30000, 0x8000, CRC(5e7efdb7) SHA1(fef271a38dc1a9e45a0c6e27e28e713c77c8f8c9) )
ROM_LOAD( "bm13.14c", 0x38000, 0x8000, CRC(1143829a) SHA1(2b3a65e354a205c05a87f783e9938b64bc62396f) )
- ROM_REGION( 0x10000, "gfx5", 0 ) /* tilemaps */
+ ROM_REGION( 0x10000, "tilerom", 0 ) /* tilemaps */
ROM_LOAD( "bm14.5f", 0x0000, 0x8000, CRC(4d3c6401) SHA1(ce4f6dbf8fa030ad45cbb5afd58df27fed2d4618) ) /* front background */
ROM_LOAD( "bm23.8k", 0x8000, 0x8000, CRC(a52aecbd) SHA1(45b0283d84d394c16c35802463ca95d70d1062d4) ) /* back background */
@@ -453,7 +428,7 @@ ROM_START( 1943u )
ROM_LOAD( "bm12.12c", 0x30000, 0x8000, CRC(5e7efdb7) SHA1(fef271a38dc1a9e45a0c6e27e28e713c77c8f8c9) )
ROM_LOAD( "bm13.14c", 0x38000, 0x8000, CRC(1143829a) SHA1(2b3a65e354a205c05a87f783e9938b64bc62396f) )
- ROM_REGION( 0x10000, "gfx5", 0 ) /* tilemaps */
+ ROM_REGION( 0x10000, "tilerom", 0 ) /* tilemaps */
ROM_LOAD( "bm14.5f", 0x0000, 0x8000, CRC(4d3c6401) SHA1(ce4f6dbf8fa030ad45cbb5afd58df27fed2d4618) ) /* front background */
ROM_LOAD( "bm23.8k", 0x8000, 0x8000, CRC(a52aecbd) SHA1(45b0283d84d394c16c35802463ca95d70d1062d4) ) /* back background */
@@ -511,7 +486,7 @@ ROM_START( 1943ua )
ROM_LOAD( "bm12.12c", 0x30000, 0x8000, CRC(5e7efdb7) SHA1(fef271a38dc1a9e45a0c6e27e28e713c77c8f8c9) )
ROM_LOAD( "bm13.14c", 0x38000, 0x8000, CRC(1143829a) SHA1(2b3a65e354a205c05a87f783e9938b64bc62396f) )
- ROM_REGION( 0x10000, "gfx5", 0 ) /* tilemaps */
+ ROM_REGION( 0x10000, "tilerom", 0 ) /* tilemaps */
ROM_LOAD( "bm14.5f", 0x0000, 0x8000, CRC(4d3c6401) SHA1(ce4f6dbf8fa030ad45cbb5afd58df27fed2d4618) ) /* front background */
ROM_LOAD( "bm23.8k", 0x8000, 0x8000, CRC(a52aecbd) SHA1(45b0283d84d394c16c35802463ca95d70d1062d4) ) /* back background */
@@ -569,7 +544,7 @@ ROM_START( 1943j )
ROM_LOAD( "bm12.12c", 0x30000, 0x8000, CRC(5e7efdb7) SHA1(fef271a38dc1a9e45a0c6e27e28e713c77c8f8c9) )
ROM_LOAD( "bm13.14c", 0x38000, 0x8000, CRC(1143829a) SHA1(2b3a65e354a205c05a87f783e9938b64bc62396f) )
- ROM_REGION( 0x10000, "gfx5", 0 ) /* tilemaps */
+ ROM_REGION( 0x10000, "tilerom", 0 ) /* tilemaps */
ROM_LOAD( "bm14.5f", 0x0000, 0x8000, CRC(4d3c6401) SHA1(ce4f6dbf8fa030ad45cbb5afd58df27fed2d4618) ) /* front background */
ROM_LOAD( "bm23.8k", 0x8000, 0x8000, CRC(a52aecbd) SHA1(45b0283d84d394c16c35802463ca95d70d1062d4) ) /* back background */
@@ -627,7 +602,7 @@ ROM_START( 1943ja )
ROM_LOAD( "bm12.12c", 0x30000, 0x8000, CRC(5e7efdb7) SHA1(fef271a38dc1a9e45a0c6e27e28e713c77c8f8c9) )
ROM_LOAD( "bm13.14c", 0x38000, 0x8000, CRC(1143829a) SHA1(2b3a65e354a205c05a87f783e9938b64bc62396f) )
- ROM_REGION( 0x10000, "gfx5", 0 ) /* tilemaps */
+ ROM_REGION( 0x10000, "tilerom", 0 ) /* tilemaps */
ROM_LOAD( "bm14.5f", 0x0000, 0x8000, CRC(4d3c6401) SHA1(ce4f6dbf8fa030ad45cbb5afd58df27fed2d4618) ) /* front background */
ROM_LOAD( "bm23.8k", 0x8000, 0x8000, CRC(a52aecbd) SHA1(45b0283d84d394c16c35802463ca95d70d1062d4) ) /* back background */
@@ -685,7 +660,7 @@ ROM_START( 1943jah )
ROM_LOAD( "bm12.12c", 0x30000, 0x8000, CRC(5e7efdb7) SHA1(fef271a38dc1a9e45a0c6e27e28e713c77c8f8c9) )
ROM_LOAD( "bm13.14c", 0x38000, 0x8000, CRC(1143829a) SHA1(2b3a65e354a205c05a87f783e9938b64bc62396f) )
- ROM_REGION( 0x10000, "gfx5", 0 ) /* tilemaps */
+ ROM_REGION( 0x10000, "tilerom", 0 ) /* tilemaps */
ROM_LOAD( "bm14.5f", 0x0000, 0x8000, CRC(4d3c6401) SHA1(ce4f6dbf8fa030ad45cbb5afd58df27fed2d4618) ) /* front background */
ROM_LOAD( "bm23.8k", 0x8000, 0x8000, CRC(a52aecbd) SHA1(45b0283d84d394c16c35802463ca95d70d1062d4) ) /* back background */
@@ -743,7 +718,7 @@ ROM_START( 1943kai )
ROM_LOAD( "bmk12.12c", 0x30000, 0x8000, CRC(0f50c001) SHA1(0e6367d3f0ba39a00ee0fa6e42ae9d43d12da23d) )
ROM_LOAD( "bmk13.14c", 0x38000, 0x8000, CRC(fd1acf8e) SHA1(88477ff1e5fbbca251d8cd4f241b42618ba64a80) )
- ROM_REGION( 0x10000, "gfx5", 0 ) /* tilemaps */
+ ROM_REGION( 0x10000, "tilerom", 0 ) /* tilemaps */
ROM_LOAD( "bmk14.5f", 0x0000, 0x8000, CRC(cf0f5a53) SHA1(dc50f3f937f52910dbd0cedbc232acfed0aa6a42) ) /* front background */
ROM_LOAD( "bmk23.8k", 0x8000, 0x8000, CRC(17f77ef9) SHA1(8ebb4b440042436ec2db52bad808cced832db77c) ) /* back background */
@@ -801,7 +776,7 @@ ROM_START( 1943mii ) /* Prototype, location test or limited release? - PCB had g
ROM_LOAD( "12.12c", 0x30000, 0x8000, CRC(0f50c001) SHA1(0e6367d3f0ba39a00ee0fa6e42ae9d43d12da23d) )
ROM_LOAD( "13.14c", 0x38000, 0x8000, CRC(f065f619) SHA1(d45b3a7ce306b3dc7b2ccea2484c13c1ff08a0f7) )
- ROM_REGION( 0x10000, "gfx5", 0 ) /* tilemaps */
+ ROM_REGION( 0x10000, "tilerom", 0 ) /* tilemaps */
ROM_LOAD( "14.5f", 0x0000, 0x8000, CRC(02a899f1) SHA1(0f094d925a6e38e922eb487af80da9c9ee7613aa) ) /* front background */
ROM_LOAD( "23.8k", 0x8000, 0x8000, CRC(b6dfdf85) SHA1(c223ae136f67e5f9910cbfa49b9827e5122e018e) ) /* back background */
@@ -855,7 +830,7 @@ ROM_START( 1943b )
ROM_LOAD( "bm12.12c", 0x30000, 0x8000, CRC(5e7efdb7) SHA1(fef271a38dc1a9e45a0c6e27e28e713c77c8f8c9) )
ROM_LOAD( "bm13.14c", 0x38000, 0x8000, CRC(1143829a) SHA1(2b3a65e354a205c05a87f783e9938b64bc62396f) )
- ROM_REGION( 0x10000, "gfx5", 0 ) /* tilemaps */
+ ROM_REGION( 0x10000, "tilerom", 0 ) /* tilemaps */
ROM_LOAD( "bm14.5f", 0x0000, 0x8000, CRC(4d3c6401) SHA1(ce4f6dbf8fa030ad45cbb5afd58df27fed2d4618) ) /* front background */
ROM_LOAD( "bm23.8k", 0x8000, 0x8000, CRC(a52aecbd) SHA1(45b0283d84d394c16c35802463ca95d70d1062d4) ) /* back background */
@@ -911,7 +886,7 @@ ROM_START( 1943bj )
ROM_LOAD( "bm12.12c", 0x30000, 0x8000, CRC(5e7efdb7) SHA1(fef271a38dc1a9e45a0c6e27e28e713c77c8f8c9) )
ROM_LOAD( "bm13.14c", 0x38000, 0x8000, CRC(1143829a) SHA1(2b3a65e354a205c05a87f783e9938b64bc62396f) )
- ROM_REGION( 0x10000, "gfx5", 0 ) /* tilemaps */
+ ROM_REGION( 0x10000, "tilerom", 0 ) /* tilemaps */
/* front background */
ROM_LOAD( "bm14.5f", 0x0000, 0x8000, CRC(4d3c6401) SHA1(ce4f6dbf8fa030ad45cbb5afd58df27fed2d4618) )
/* back background probably same gfx different layout */
@@ -935,15 +910,15 @@ ROM_END
void _1943_state::init_1943()
{
- uint8_t *ROM = memregion("maincpu")->base();
- membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
+ u8 *ROM = memregion("maincpu")->base();
+ m_mainbank->configure_entries(0, 8, &ROM[0x10000], 0x4000);
}
void _1943_state::init_1943b()
{
init_1943();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc007, 0xc007, read8_delegate(FUNC(_1943_state::_1943b_c007_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc007, 0xc007, read8smo_delegate(FUNC(_1943_state::_1943b_c007_r),this));
}
/* Game Drivers */