diff options
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 |
commit | 2434ecd2879de0fc3a05b940ef2935f36de4b759 (patch) | |
tree | 447f8a8dee88d19b122ee92fd912bc8f30808177 | |
parent | c37526a3b35f891084f55d195b2a53b5175172cb (diff) |
gotcha.cpp, zerozone.cpp: minor cleanups (nw)
-rw-r--r-- | src/mame/drivers/gotcha.cpp | 66 | ||||
-rw-r--r-- | src/mame/drivers/zerozone.cpp | 59 | ||||
-rw-r--r-- | src/mame/includes/gotcha.h | 30 | ||||
-rw-r--r-- | src/mame/includes/zerozone.h | 21 | ||||
-rw-r--r-- | src/mame/video/gotcha.cpp | 34 | ||||
-rw-r--r-- | src/mame/video/zerozone.cpp | 10 |
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; } |