summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2020-07-01 18:10:57 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2020-07-01 18:10:57 +0200
commit2434ecd2879de0fc3a05b940ef2935f36de4b759 (patch)
tree447f8a8dee88d19b122ee92fd912bc8f30808177
parentc37526a3b35f891084f55d195b2a53b5175172cb (diff)
gotcha.cpp, zerozone.cpp: minor cleanups (nw)
-rw-r--r--src/mame/drivers/gotcha.cpp66
-rw-r--r--src/mame/drivers/zerozone.cpp59
-rw-r--r--src/mame/includes/gotcha.h30
-rw-r--r--src/mame/includes/zerozone.h21
-rw-r--r--src/mame/video/gotcha.cpp34
-rw-r--r--src/mame/video/zerozone.cpp10
6 files changed, 105 insertions, 115 deletions
diff --git a/src/mame/drivers/gotcha.cpp b/src/mame/drivers/gotcha.cpp
index da951267670..f2802f00947 100644
--- a/src/mame/drivers/gotcha.cpp
+++ b/src/mame/drivers/gotcha.cpp
@@ -8,12 +8,10 @@ driver by Nicola Salmoria
TODO:
- Find out what the "Explane Type" dip switch actually does.
-- Should use the artwork system to show the lamp state: there are 12 lamps, one
- for every button, and they are used a lot during the game (see gotcha_lamps_w).
- Unknown writes to 0x30000c. It changes for some levels, it's probably
gfx related but since everything seems fine I've no idea what it might do.
-- Unknown sound writes at C00F; also, there's an NMI handler that would
- read from C00F.
+- Unknown sound writes at c00f; also, there's an NMI handler that would
+ read from c00f.
- Sound samples were getting chopped; I fixed this by changing sound/adpcm.cpp to
disregard requests to play new samples until the previous one is finished*.
@@ -75,7 +73,7 @@ Notes:
#include "gotcha.lh"
-void gotcha_state::gotcha_lamps_w(uint16_t data)
+void gotcha_state::lamps_w(uint16_t data)
{
for (int p = 0; p < 3; p++)
{
@@ -86,30 +84,30 @@ void gotcha_state::gotcha_lamps_w(uint16_t data)
}
}
-void gotcha_state::gotcha_oki_bank_w(uint8_t data)
+void gotcha_state::oki_bank_w(uint8_t data)
{
m_oki->set_rom_bank(!BIT(data, 0));
}
-void gotcha_state::gotcha_map(address_map &map)
+void gotcha_state::main_map(address_map &map)
{
map(0x000000, 0x07ffff).rom();
map(0x100001, 0x100001).w("soundlatch", FUNC(generic_latch_8_device::write));
- map(0x100002, 0x100003).w(FUNC(gotcha_state::gotcha_lamps_w));
- map(0x100004, 0x100004).w(FUNC(gotcha_state::gotcha_oki_bank_w));
+ map(0x100002, 0x100003).w(FUNC(gotcha_state::lamps_w));
+ map(0x100004, 0x100004).w(FUNC(gotcha_state::oki_bank_w));
map(0x120000, 0x12ffff).ram();
map(0x140000, 0x1405ff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
- map(0x160000, 0x1607ff).ram().share("spriteram");
+ map(0x160000, 0x1607ff).ram().share(m_spriteram);
map(0x180000, 0x180001).portr("INPUTS");
map(0x180002, 0x180003).portr("SYSTEM");
map(0x180004, 0x180005).portr("DSW");
- map(0x300000, 0x300001).w(FUNC(gotcha_state::gotcha_gfxbank_select_w));
- map(0x300002, 0x300009).w(FUNC(gotcha_state::gotcha_scroll_w));
-// { 0x30000c, 0x30000d,
- map(0x30000e, 0x30000f).w(FUNC(gotcha_state::gotcha_gfxbank_w));
- map(0x320000, 0x320fff).w(FUNC(gotcha_state::gotcha_fgvideoram_w)).share("fgvideoram");
- map(0x322000, 0x322fff).w(FUNC(gotcha_state::gotcha_bgvideoram_w)).share("bgvideoram");
+ map(0x300000, 0x300000).w(FUNC(gotcha_state::gfxbank_select_w));
+ map(0x300002, 0x300009).w(FUNC(gotcha_state::scroll_w));
+// map(0x30000c, 0x30000d).
+ map(0x30000e, 0x30000e).w(FUNC(gotcha_state::gfxbank_w));
+ map(0x320000, 0x320fff).w(FUNC(gotcha_state::fgvideoram_w)).share(m_fgvideoram);
+ map(0x322000, 0x322fff).w(FUNC(gotcha_state::bgvideoram_w)).share(m_bgvideoram);
}
@@ -229,8 +227,8 @@ static const gfx_layout spritelayout =
};
static GFXDECODE_START( gfx_gotcha )
- GFXDECODE_ENTRY( "gfx1", 0, tilelayout, 0x100, 32 )
- GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 0x000, 16 )
+ GFXDECODE_ENTRY( "tiles", 0, tilelayout, 0x100, 32 )
+ GFXDECODE_ENTRY( "sprites", 0, spritelayout, 0x000, 16 )
GFXDECODE_END
@@ -249,9 +247,7 @@ void gotcha_state::machine_start()
void gotcha_state::machine_reset()
{
- int i;
-
- for (i = 0; i < 4; i++)
+ for (int i = 0; i < 4; i++)
{
m_gfxbank[i] = 0;
m_scroll[i] = 0;
@@ -262,20 +258,20 @@ void gotcha_state::machine_reset()
void gotcha_state::gotcha(machine_config &config)
{
- /* basic machine hardware */
- M68000(config, m_maincpu, 14.318181_MHz_XTAL); /* 14.31818 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &gotcha_state::gotcha_map);
+ // basic machine hardware
+ M68000(config, m_maincpu, 14.318181_MHz_XTAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &gotcha_state::main_map);
- Z80(config, m_audiocpu, 6_MHz_XTAL); /* 6 MHz */
+ Z80(config, m_audiocpu, 6_MHz_XTAL);
m_audiocpu->set_addrmap(AS_PROGRAM, &gotcha_state::sound_map);
- /* video hardware */
+ // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(55);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(40*8, 32*8);
screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(gotcha_state::screen_update_gotcha));
+ screen.set_screen_update(FUNC(gotcha_state::screen_update));
screen.set_palette("palette");
screen.screen_vblank().set_inputline(m_maincpu, M68K_IRQ_6, HOLD_LINE);
screen.screen_vblank().append_inputline(m_audiocpu, INPUT_LINE_NMI); // ?
@@ -289,7 +285,7 @@ void gotcha_state::gotcha(machine_config &config)
m_sprgen->set_offsets(5, -1); // aligned to 2nd instruction screen in attract
m_sprgen->set_gfxdecode_tag(m_gfxdecode);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
GENERIC_LATCH_8(config, "soundlatch");
@@ -318,7 +314,7 @@ ROM_START( gotcha )
ROM_REGION( 0x10000, "audiocpu", 0 )
ROM_LOAD( "gotcha_u.z02", 0x0000, 0x10000, CRC(f4f6e16b) SHA1(a360c571bee7391c66e98e5e111e78ac9732390e) )
- ROM_REGION( 0x200000, "gfx1", 0 )
+ ROM_REGION( 0x200000, "tiles", 0 )
ROM_LOAD( "gotcha-u.42a", 0x000000, 0x20000, CRC(4ea822f0) SHA1(5b25d4c80138d9a0f3d481fa0c2f3665772bc0c8) )
ROM_CONTINUE( 0x100000, 0x20000 )
ROM_CONTINUE( 0x020000, 0x20000 )
@@ -336,7 +332,7 @@ ROM_START( gotcha )
ROM_CONTINUE( 0x0e0000, 0x20000 )
ROM_CONTINUE( 0x1e0000, 0x20000 )
- ROM_REGION( 0x200000, "gfx2", 0 )
+ ROM_REGION( 0x200000, "sprites", 0 )
ROM_LOAD( "gotcha.u56", 0x000000, 0x80000, CRC(85f6a062) SHA1(77d1c9c8394af0c487fa6d657ae740eae940682a) )
ROM_LOAD( "gotcha.u55", 0x080000, 0x80000, CRC(426b4e48) SHA1(91e79c9fd1f9cf84df8e1d6b67780d1cacd4a0f2) )
ROM_LOAD( "gotcha.u54", 0x100000, 0x80000, CRC(903e05a4) SHA1(4fb675958f4dc057f8da7edff1f6680482bdc5dd) )
@@ -354,7 +350,7 @@ ROM_START( ppchamp )
ROM_REGION( 0x10000, "audiocpu", 0 )
ROM_LOAD( "uz02", 0x00000, 0x10000, CRC(f4f6e16b) SHA1(a360c571bee7391c66e98e5e111e78ac9732390e) )
- ROM_REGION( 0x200000, "gfx1", 0 )
+ ROM_REGION( 0x200000, "tiles", 0 )
ROM_LOAD( "u42a", 0x000000, 0x20000, CRC(f0b521d1) SHA1(fe44bfa13818eee08d112c2f75e14bfd67bbefbf) )
ROM_CONTINUE( 0x100000, 0x20000 )
ROM_CONTINUE( 0x020000, 0x20000 )
@@ -372,7 +368,7 @@ ROM_START( ppchamp )
ROM_CONTINUE( 0x0e0000, 0x20000 )
ROM_CONTINUE( 0x1e0000, 0x20000 )
- ROM_REGION( 0x200000, "gfx2", 0 )
+ ROM_REGION( 0x200000, "sprites", 0 )
ROM_LOAD( "u56", 0x000000, 0x80000, CRC(160e46b3) SHA1(e2bec3388d41afb9f1025d66c15fcc6ca4d40703) )
ROM_LOAD( "u55", 0x080000, 0x80000, CRC(7351b61c) SHA1(2ef3011a7a1ff253f45186e46cfdce5f4ef17322) )
ROM_LOAD( "u54", 0x100000, 0x80000, CRC(a3d8c5ef) SHA1(f59874844934f3ce76a49e4a9618510537378387) )
@@ -390,7 +386,7 @@ ROM_START( ppchampa )
ROM_REGION( 0x10000, "audiocpu", 0 )
ROM_LOAD( "uz02", 0x00000, 0x10000, CRC(f4f6e16b) SHA1(a360c571bee7391c66e98e5e111e78ac9732390e) )
- ROM_REGION( 0x200000, "gfx1", 0 )
+ ROM_REGION( 0x200000, "tiles", 0 )
ROM_LOAD( "u42a", 0x000000, 0x20000, CRC(f0b521d1) SHA1(fe44bfa13818eee08d112c2f75e14bfd67bbefbf) )
ROM_CONTINUE( 0x100000, 0x20000 )
ROM_CONTINUE( 0x020000, 0x20000 )
@@ -408,7 +404,7 @@ ROM_START( ppchampa )
ROM_CONTINUE( 0x0e0000, 0x20000 )
ROM_CONTINUE( 0x1e0000, 0x20000 )
- ROM_REGION( 0x200000, "gfx2", 0 )
+ ROM_REGION( 0x200000, "sprites", 0 )
ROM_LOAD( "u56", 0x000000, 0x80000, CRC(160e46b3) SHA1(e2bec3388d41afb9f1025d66c15fcc6ca4d40703) )
ROM_LOAD( "u55", 0x080000, 0x80000, CRC(7351b61c) SHA1(2ef3011a7a1ff253f45186e46cfdce5f4ef17322) )
ROM_LOAD( "u54", 0x100000, 0x80000, CRC(a3d8c5ef) SHA1(f59874844934f3ce76a49e4a9618510537378387) )
@@ -418,6 +414,6 @@ ROM_START( ppchampa )
ROM_LOAD( "uz11", 0x00000, 0x80000, CRC(3d96274c) SHA1(c7a670af86194c370bf8fb30afbe027ab78a0227) )
ROM_END
-GAMEL( 1997, gotcha, 0, gotcha, gotcha, gotcha_state, empty_init, ROT0, "Dongsung / Para", "Got-cha Mini Game Festival", MACHINE_SUPPORTS_SAVE, layout_gotcha )
+GAMEL( 1997, gotcha, 0, gotcha, gotcha, gotcha_state, empty_init, ROT0, "Dongsung / Para", "Got-cha Mini Game Festival", MACHINE_SUPPORTS_SAVE, layout_gotcha )
GAMEL( 1997, ppchamp, gotcha, gotcha, gotcha, gotcha_state, empty_init, ROT0, "Dongsung / Para", "Pasha Pasha Champ Mini Game Festival (Korea, set 1)", MACHINE_SUPPORTS_SAVE, layout_gotcha )
GAMEL( 1997, ppchampa, gotcha, gotcha, gotcha, gotcha_state, empty_init, ROT0, "Dongsung / Para", "Pasha Pasha Champ Mini Game Festival (Korea, set 2)", MACHINE_SUPPORTS_SAVE, layout_gotcha )
diff --git a/src/mame/drivers/zerozone.cpp b/src/mame/drivers/zerozone.cpp
index c0d35346fbb..2775e945915 100644
--- a/src/mame/drivers/zerozone.cpp
+++ b/src/mame/drivers/zerozone.cpp
@@ -40,13 +40,10 @@
#include "speaker.h"
-void zerozone_state::sound_w(offs_t offset, uint16_t data, uint16_t mem_mask)
+void zerozone_state::sound_w(uint8_t data)
{
- if (ACCESSING_BITS_8_15)
- {
- m_soundlatch->write(data >> 8);
- m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff); // Z80
- }
+ m_soundlatch->write(data);
+ m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff); // Z80
}
@@ -57,13 +54,13 @@ void zerozone_state::main_map(address_map &map)
map(0x080002, 0x080003).portr("INPUTS");
map(0x080008, 0x080009).portr("DSWB");
map(0x08000a, 0x08000b).portr("DSWA");
- map(0x084000, 0x084001).w(FUNC(zerozone_state::sound_w));
+ map(0x084000, 0x084000).w(FUNC(zerozone_state::sound_w));
map(0x088000, 0x0881ff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
- map(0x098000, 0x098001).ram(); /* Watchdog? */
- map(0x09ce00, 0x09ffff).ram().w(FUNC(zerozone_state::tilemap_w)).share("videoram");
- map(0x0b4000, 0x0b4001).w(FUNC(zerozone_state::tilebank_w));
+ map(0x098000, 0x098001).ram(); // Watchdog?
+ map(0x09ce00, 0x09ffff).ram().w(FUNC(zerozone_state::tilemap_w)).share(m_vram);
+ map(0x0b4001, 0x0b4001).w(FUNC(zerozone_state::tilebank_w));
map(0x0c0000, 0x0cffff).ram();
- map(0x0f8000, 0x0f87ff).ram(); /* Never read from */
+ map(0x0f8000, 0x0f87ff).ram(); // Never read from
}
void zerozone_state::sound_map(address_map &map)
@@ -146,18 +143,18 @@ INPUT_PORTS_END
static const gfx_layout charlayout =
{
- 8,8, /* 8*8 characters */
- RGN_FRAC(1,1), /* 4096 characters */
- 4, /* 4 bits per pixel */
+ 8,8, // 8*8 characters
+ RGN_FRAC(1,1), // 4096 characters
+ 4, // 4 bits per pixel
{ 0, 1, 2, 3 },
{ 0, 4, 8+0, 8+4, 16+0, 16+4, 24+0, 24+4 },
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
- 32*8 /* every sprite takes 32 consecutive bytes */
+ 32*8 // every sprite takes 32 consecutive bytes
};
static GFXDECODE_START( gfx_zerozone )
- GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 256 ) /* sprites & playfield */
+ GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 256 ) // sprites & playfield
GFXDECODE_END
@@ -180,16 +177,16 @@ WRITE_LINE_MEMBER(zerozone_state::vblank_w)
void zerozone_state::zerozone(machine_config &config)
{
- /* basic machine hardware */
- M68000(config, m_maincpu, 10000000); /* 10 MHz */
+ // basic machine hardware
+ M68000(config, m_maincpu, 10_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &zerozone_state::main_map);
- Z80(config, m_audiocpu, 1000000); /* 1 MHz ??? */
+ Z80(config, m_audiocpu, 16_MHz_XTAL / 16); // divisor not verified, 1 MHz ???
m_audiocpu->set_addrmap(AS_PROGRAM, &zerozone_state::sound_map);
config.set_maximum_quantum(attotime::from_hz(600));
- /* video hardware */
+ // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
@@ -203,7 +200,7 @@ void zerozone_state::zerozone(machine_config &config)
PALETTE(config, "palette").set_format(palette_device::RRRRGGGGBBBBRGBx, 256);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
GENERIC_LATCH_8(config, m_soundlatch);
@@ -220,39 +217,39 @@ void zerozone_state::zerozone(machine_config &config)
***************************************************************************/
-ROM_START( zerozone )
- ROM_REGION( 0x20000, "maincpu", 0 ) /* 128k for 68000 code */
+ROM_START( zerozone ) // PCB 'COMAD MADE IN KOREA 93 EDIT00', sticker 'COMAD-078'
+ ROM_REGION( 0x20000, "maincpu", 0 ) // 128k for 68000 code
ROM_LOAD16_BYTE( "zz-4.rom", 0x0000, 0x10000, CRC(83718b9b) SHA1(b3fc6da5816142b9c92a7b8615eb5bcb2c78ea46) )
ROM_LOAD16_BYTE( "zz-5.rom", 0x0001, 0x10000, CRC(18557f41) SHA1(6ef908732b7775c1ea2b33f799635075db5756de) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
+ ROM_REGION( 0x10000, "audiocpu", 0 )
ROM_LOAD( "zz-1.rom", 0x00000, 0x08000, CRC(223ccce5) SHA1(3aa25ca914960b929dc853d07a958ed874e42fee) )
ROM_REGION( 0x080000, "gfx1", 0 )
ROM_LOAD( "zz-6.rom", 0x00000, 0x80000, CRC(c8b906b9) SHA1(1775d69df6397d6772b20c65751d44556d76c033) )
- ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
+ ROM_REGION( 0x40000, "oki", 0 ) // ADPCM samples
ROM_LOAD( "zz-2.rom", 0x00000, 0x20000, CRC(c7551e81) SHA1(520de3074fa6a71fef10d5a76cba5580fd1cbbae) )
ROM_LOAD( "zz-3.rom", 0x20000, 0x20000, CRC(e348ff5e) SHA1(6d2755d9b31366f4c2ddd296790234deb8f821c8) )
ROM_END
-ROM_START( lvgirl94 )
- ROM_REGION( 0x20000, "maincpu", 0 ) /* 128k for 68000 code */
+ROM_START( lvgirl94 ) // PCB 'COMAD MADE IN KOREA 93 EDIT00', sticker 'COMAD-078'
+ ROM_REGION( 0x20000, "maincpu", 0 ) // 128k for 68000 code
ROM_LOAD16_BYTE( "rom4", 0x0000, 0x10000, CRC(c4fb449e) SHA1(dd1c567ba2cf951267dd622e2e9af265e742f246) )
ROM_LOAD16_BYTE( "rom5", 0x0001, 0x10000, CRC(5d446a1a) SHA1(2d7ea25e5b86e7cf4eb7f10daa1eaaaed6830a53) )
ROM_REGION( 0x080000, "gfx1", 0 )
ROM_LOAD( "rom6", 0x00000, 0x40000, CRC(eeeb94ba) SHA1(9da09312c090ef2d40f596247d9a7decf3724e54) )
- /* sound roms are the same as zerozone */
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
+ // sound roms are the same as zerozone
+ ROM_REGION( 0x10000, "audiocpu", 0 )
ROM_LOAD( "rom1", 0x00000, 0x08000, CRC(223ccce5) SHA1(3aa25ca914960b929dc853d07a958ed874e42fee) )
- ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
+ ROM_REGION( 0x40000, "oki", 0 ) // ADPCM samples
ROM_LOAD( "rom2", 0x00000, 0x20000, CRC(c7551e81) SHA1(520de3074fa6a71fef10d5a76cba5580fd1cbbae) )
ROM_LOAD( "rom3", 0x20000, 0x20000, CRC(e348ff5e) SHA1(6d2755d9b31366f4c2ddd296790234deb8f821c8) )
ROM_END
-GAME( 1993, zerozone, 0, zerozone, zerozone, zerozone_state, empty_init, ROT0, "Comad", "Zero Zone", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, zerozone, 0, zerozone, zerozone, zerozone_state, empty_init, ROT0, "Comad", "Zero Zone", MACHINE_SUPPORTS_SAVE )
GAME( 1994, lvgirl94, 0, zerozone, zerozone, zerozone_state, empty_init, ROT0, "Comad", "Las Vegas Girl (Girl '94)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/includes/gotcha.h b/src/mame/includes/gotcha.h
index c0e55d5fba0..f0f887f9616 100644
--- a/src/mame/includes/gotcha.h
+++ b/src/mame/includes/gotcha.h
@@ -42,19 +42,19 @@ protected:
virtual void video_start() override;
private:
- void gotcha_lamps_w(uint16_t data);
- void gotcha_fgvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- void gotcha_bgvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- void gotcha_gfxbank_select_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- void gotcha_gfxbank_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- void gotcha_scroll_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- void gotcha_oki_bank_w(uint8_t data);
- TILEMAP_MAPPER_MEMBER(gotcha_tilemap_scan);
+ void lamps_w(uint16_t data);
+ void fgvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void bgvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void gfxbank_select_w(uint8_t data);
+ void gfxbank_w(uint8_t data);
+ void scroll_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void oki_bank_w(uint8_t data);
+ TILEMAP_MAPPER_MEMBER(tilemap_scan);
TILE_GET_INFO_MEMBER(fg_get_tile_info);
TILE_GET_INFO_MEMBER(bg_get_tile_info);
- uint32_t screen_update_gotcha(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
inline void get_tile_info( tile_data &tileinfo, int tile_index ,uint16_t *vram, int color_offs);
- void gotcha_map(address_map &map);
+ void main_map(address_map &map);
void sound_map(address_map &map);
/* memory pointers */
@@ -64,11 +64,11 @@ private:
optional_device<decospr_device> m_sprgen;
/* video-related */
- tilemap_t *m_bg_tilemap;
- tilemap_t *m_fg_tilemap;
- int m_banksel;
- int m_gfxbank[4];
- uint16_t m_scroll[4];
+ tilemap_t *m_bg_tilemap;
+ tilemap_t *m_fg_tilemap;
+ uint8_t m_banksel;
+ uint8_t m_gfxbank[4];
+ uint16_t m_scroll[4];
/* devices */
required_device<cpu_device> m_audiocpu;
diff --git a/src/mame/includes/zerozone.h b/src/mame/includes/zerozone.h
index 97012050edb..25fb4f86e3a 100644
--- a/src/mame/includes/zerozone.h
+++ b/src/mame/includes/zerozone.h
@@ -28,14 +28,20 @@ public:
void zerozone(machine_config &config);
+protected:
+ // driver_device overrides
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+ virtual void video_start() override;
+
private:
// in drivers/zerozone.cpp
- void sound_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void sound_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(vblank_w);
// in video/zerozone.cpp
void tilemap_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- void tilebank_w(uint16_t data);
+ void tilebank_w(uint8_t data);
// devices
required_device<cpu_device> m_maincpu;
@@ -47,21 +53,16 @@ private:
// currently this driver uses generic palette handling
required_device<gfxdecode_device> m_gfxdecode;
- // state
+
// video-related
- uint16_t m_tilebank;
- tilemap_t *m_zz_tilemap;
+ uint8_t m_tilebank;
+ tilemap_t *m_zz_tilemap;
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void main_map(address_map &map);
void sound_map(address_map &map);
- // driver_device overrides
- virtual void machine_start() override;
- virtual void machine_reset() override;
-
- virtual void video_start() override;
TILE_GET_INFO_MEMBER(get_zerozone_tile_info);
};
diff --git a/src/mame/video/gotcha.cpp b/src/mame/video/gotcha.cpp
index 6b3183b9730..fad60f4d0d9 100644
--- a/src/mame/video/gotcha.cpp
+++ b/src/mame/video/gotcha.cpp
@@ -10,7 +10,7 @@
***************************************************************************/
-TILEMAP_MAPPER_MEMBER(gotcha_state::gotcha_tilemap_scan)
+TILEMAP_MAPPER_MEMBER(gotcha_state::tilemap_scan)
{
return (col & 0x1f) | (row << 5) | ((col & 0x20) << 5);
}
@@ -43,8 +43,8 @@ TILE_GET_INFO_MEMBER(gotcha_state::bg_get_tile_info)
void gotcha_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gotcha_state::fg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(gotcha_state::gotcha_tilemap_scan)), 16, 16, 64, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gotcha_state::bg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(gotcha_state::gotcha_tilemap_scan)), 16, 16, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gotcha_state::fg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(gotcha_state::tilemap_scan)), 16, 16, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gotcha_state::bg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(gotcha_state::tilemap_scan)), 16, 16, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
@@ -53,37 +53,33 @@ void gotcha_state::video_start()
}
-void gotcha_state::gotcha_fgvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
+void gotcha_state::fgvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_fgvideoram[offset]);
m_fg_tilemap->mark_tile_dirty(offset);
}
-void gotcha_state::gotcha_bgvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
+void gotcha_state::bgvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_bgvideoram[offset]);
m_bg_tilemap->mark_tile_dirty(offset);
}
-void gotcha_state::gotcha_gfxbank_select_w(offs_t offset, uint16_t data, uint16_t mem_mask)
+void gotcha_state::gfxbank_select_w(uint8_t data)
{
- if (ACCESSING_BITS_8_15)
- m_banksel = (data & 0x0300) >> 8;
+ m_banksel = data & 0x03;
}
-void gotcha_state::gotcha_gfxbank_w(offs_t offset, uint16_t data, uint16_t mem_mask)
+void gotcha_state::gfxbank_w(uint8_t data)
{
- if (ACCESSING_BITS_8_15)
+ if (m_gfxbank[m_banksel] != (data & 0x0f))
{
- if (m_gfxbank[m_banksel] != ((data & 0x0f00) >> 8))
- {
- m_gfxbank[m_banksel] = (data & 0x0f00) >> 8;
- machine().tilemap().mark_all_dirty();
- }
+ m_gfxbank[m_banksel] = data & 0x0f;
+ machine().tilemap().mark_all_dirty();
}
}
-void gotcha_state::gotcha_scroll_w(offs_t offset, uint16_t data, uint16_t mem_mask)
+void gotcha_state::scroll_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_scroll[offset]);
@@ -97,10 +93,10 @@ void gotcha_state::gotcha_scroll_w(offs_t offset, uint16_t data, uint16_t mem_ma
}
-uint32_t gotcha_state::screen_update_gotcha(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+uint32_t gotcha_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
- m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(screen, bitmap, cliprect);
+ m_fg_tilemap->draw(screen, bitmap, cliprect);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
return 0;
}
diff --git a/src/mame/video/zerozone.cpp b/src/mame/video/zerozone.cpp
index 5bbc7c58a69..5228875c15a 100644
--- a/src/mame/video/zerozone.cpp
+++ b/src/mame/video/zerozone.cpp
@@ -2,7 +2,7 @@
// copyright-holders:Brad Oliver
/***************************************************************************
- video/zerozone.c
+ video/zerozone.cpp
***************************************************************************/
@@ -16,7 +16,7 @@ void zerozone_state::tilemap_w(offs_t offset, uint16_t data, uint16_t mem_mask)
}
-void zerozone_state::tilebank_w(uint16_t data)
+void zerozone_state::tilebank_w(uint8_t data)
{
// popmessage ("Data %04x",data);
m_tilebank = data & 0x07;
@@ -36,13 +36,13 @@ TILE_GET_INFO_MEMBER(zerozone_state::get_zerozone_tile_info)
void zerozone_state::video_start()
{
- // i'm not 100% sure it should be opaque, pink title screen looks strange in las vegas girls
- // but if its transparent other things look incorrect
+ // I'm not 100% sure it should be opaque, pink title screen looks strange in Las Vegas Girls
+ // but if it's transparent other things look incorrect
m_zz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(zerozone_state::get_zerozone_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
}
uint32_t zerozone_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m_zz_tilemap->draw(screen, bitmap, cliprect, 0, 0);
+ m_zz_tilemap->draw(screen, bitmap, cliprect);
return 0;
}