From 3feda5863934790e991bb0c3442ac5c59f4991ac Mon Sep 17 00:00:00 2001 From: hap Date: Sun, 24 Nov 2024 03:43:33 +0100 Subject: k007121: no need for is_flakatck param, labyrunr: correct sprite layer priority bit --- src/mame/konami/flkatck.cpp | 2 +- src/mame/konami/hcastle.cpp | 4 ++-- src/mame/konami/k007121.cpp | 7 +++---- src/mame/konami/k007121.h | 6 +++--- src/mame/konami/labyrunr.cpp | 31 ++++++++++++++++--------------- 5 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/mame/konami/flkatck.cpp b/src/mame/konami/flkatck.cpp index 51980bc0213..7e178728681 100644 --- a/src/mame/konami/flkatck.cpp +++ b/src/mame/konami/flkatck.cpp @@ -242,7 +242,7 @@ uint32_t flkatck_state::screen_update(screen_device &screen, bitmap_ind16 &bitma // draw the graphics m_k007121_tilemap[0]->draw(screen, bitmap, clip[0], 0, 0); - m_k007121->sprites_draw(bitmap, cliprect, &m_spriteram[sprite_buffer], 0, 40, 0, screen.priority(), (uint32_t)-1, true); + m_k007121->sprites_draw(bitmap, cliprect, &m_spriteram[sprite_buffer], 0, 40, 0, screen.priority(), (uint32_t)-1); m_k007121_tilemap[1]->draw(screen, bitmap, clip[1], 0, 0); return 0; } diff --git a/src/mame/konami/hcastle.cpp b/src/mame/konami/hcastle.cpp index f6c24132bcd..e6348bcd115 100644 --- a/src/mame/konami/hcastle.cpp +++ b/src/mame/konami/hcastle.cpp @@ -261,8 +261,8 @@ uint32_t hcastle_state::screen_update(screen_device &screen, bitmap_ind16 &bitma m_tilemap[0]->set_scrolly(0, ctrl_1_2); m_tilemap[0]->set_scrollx(0, ((ctrl_1_1 << 8) + ctrl_1_0)); -// Sprite priority -// if (ctrl_1_3 & 0x20) + // Sprite priority + //if (ctrl_1_3 & 0x20) if ((m_gfx_bank & 0x04) == 0) { m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 0); diff --git a/src/mame/konami/k007121.cpp b/src/mame/konami/k007121.cpp index c7a3fe9e491..0c4350b0fdc 100644 --- a/src/mame/konami/k007121.cpp +++ b/src/mame/konami/k007121.cpp @@ -210,8 +210,8 @@ void k007121_device::ctrl_w(offs_t offset, uint8_t data) * */ -void k007121_device::sprites_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, - const uint8_t *source, int base_color, int global_x_offset, int bank_base, bitmap_ind8 &priority_bitmap, uint32_t pri_mask, bool is_flakatck ) +void k007121_device::sprites_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, + const uint8_t *source, int base_color, int global_x_offset, int bank_base, bitmap_ind8 &priority_bitmap, uint32_t pri_mask) { // TODO: sprite limit is supposed to be per-line! (check MT #00185) int num = 0x40; @@ -249,8 +249,7 @@ void k007121_device::sprites_draw( bitmap_ind16 &bitmap, const rectangle &clipre number += (sprite_bank >> 2) & 3; // Flak Attack doesn't use a lookup PROM, it maps the color code directly to a palette entry - // TODO: check if it's true or callback-ize this one and remove the per-game hack. - if (is_flakatck) + if (palette().indirect_entries() == 0) transparent_mask = 1 << 0; else transparent_mask = palette().transpen_mask(*gfx(0), color, 0); diff --git a/src/mame/konami/k007121.h b/src/mame/konami/k007121.h index 505175ba011..d6d4e43476a 100644 --- a/src/mame/konami/k007121.h +++ b/src/mame/konami/k007121.h @@ -22,9 +22,9 @@ public: uint8_t ctrlram_r(offs_t offset); void ctrl_w(offs_t offset, uint8_t data); - /* shall we move source in the interface? */ - /* also notice that now we directly pass *gfx[chip] instead of **gfx !! */ - void sprites_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, const uint8_t *source, int base_color, int global_x_offset, int bank_base, bitmap_ind8 &priority_bitmap, uint32_t pri_mask, bool is_flakatck = false ); + // shall we move source in the interface? + // also notice that now we directly pass *gfx[chip] instead of **gfx !! + void sprites_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, const uint8_t *source, int base_color, int global_x_offset, int bank_base, bitmap_ind8 &priority_bitmap, uint32_t pri_mask); protected: // device-level overrides diff --git a/src/mame/konami/labyrunr.cpp b/src/mame/konami/labyrunr.cpp index 0e43b6c8b63..a7ade814206 100644 --- a/src/mame/konami/labyrunr.cpp +++ b/src/mame/konami/labyrunr.cpp @@ -217,7 +217,7 @@ uint32_t labyrunr_state::screen_update(screen_device &screen, bitmap_ind16 &bitm } m_layer[0]->draw(screen, bitmap, finalclip0, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_CATEGORY(0), 0); - m_k007121->sprites_draw(bitmap, cliprect, m_spriteram, (m_k007121->ctrlram_r(6) & 0x30) * 2, 40, 0, screen.priority(), (m_k007121->ctrlram_r(3) & 0x40) >> 5); + m_k007121->sprites_draw(bitmap, cliprect, m_spriteram, (m_k007121->ctrlram_r(6) & 0x30) * 2, 40, 0, screen.priority(), (m_k007121->ctrlram_r(3) & 0x20) >> 4); m_layer[0]->draw(screen, bitmap, finalclip0, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_CATEGORY(1), 0); // we ignore the transparency because layer1 is drawn only at the top of the screen also covering sprites m_layer[1]->draw(screen, bitmap, finalclip1, TILEMAP_DRAW_OPAQUE, 0); @@ -283,7 +283,7 @@ uint32_t labyrunr_state::screen_update(screen_device &screen, bitmap_ind16 &bitm if (use_clip3[0]) m_layer[0]->draw(screen, bitmap, finalclip3, TILEMAP_DRAW_CATEGORY(0), 0); - m_k007121->sprites_draw(bitmap, cliprect, m_spriteram, (m_k007121->ctrlram_r(6) & 0x30) * 2, 40, 0, screen.priority(), (m_k007121->ctrlram_r(3) & 0x40) >> 5); + m_k007121->sprites_draw(bitmap, cliprect, m_spriteram, (m_k007121->ctrlram_r(6) & 0x30) * 2, 40, 0, screen.priority(), (m_k007121->ctrlram_r(3) & 0x20) >> 4); m_layer[0]->draw(screen, bitmap, finalclip0, TILEMAP_DRAW_CATEGORY(1), 0); if (use_clip3[0]) @@ -316,7 +316,7 @@ void labyrunr_state::bankswitch_w(uint8_t data) if (data & 0xe0) logerror("bankswitch %02x", data); // bits 0-2 = bank number - m_mainbank->set_entry(data & 0x07); // shall we check if data & 7 > #banks? + m_mainbank->set_entry(data & 0x07); // shall we check if data & 7 > #banks? // bits 3 and 4 are coin counters machine().bookkeeping().coin_counter_w(0, data & 0x08); @@ -417,6 +417,7 @@ static GFXDECODE_START( gfx_labyrunr ) GFXDECODE_ENTRY( "gfx", 0, gfx_8x8x4_packed_msb, 0, 8*16 ) GFXDECODE_END + /*************************************************************************** Machine Driver @@ -489,14 +490,14 @@ ROM_START( tricktrp ) ROM_LOAD( "771e03", 0x18000, 0x10000, CRC(d0d68036) SHA1(8589ee07e229259341a4cc22bc64de8f06536472) ) ROM_REGION( 0x40000, "gfx", 0 ) - ROM_LOAD16_BYTE( "771e01a", 0x00001, 0x10000, CRC(103ffa0d) SHA1(1949c49ca3b243e4cfb5fb19ecd3a1e1492cfddd) ) // tiles + sprites + ROM_LOAD16_BYTE( "771e01a", 0x00001, 0x10000, CRC(103ffa0d) SHA1(1949c49ca3b243e4cfb5fb19ecd3a1e1492cfddd) ) // tiles + sprites ROM_LOAD16_BYTE( "771e01c", 0x00000, 0x10000, CRC(cfec5be9) SHA1(2b6a32e2608a70c47d1ec9b4de38b5c3a0898cde) ) ROM_LOAD16_BYTE( "771d01b", 0x20001, 0x10000, CRC(07f2a71c) SHA1(63c79e75e71539e69d4d9d35e629a6021124f6d0) ) ROM_LOAD16_BYTE( "771d01d", 0x20000, 0x10000, CRC(f6810a49) SHA1(b40e9f0d0919188a05c1990347da8dc8ff12d65a) ) ROM_REGION( 0x0100, "proms", 0 ) - ROM_LOAD( "771d02.08d", 0x0000, 0x0100, CRC(3d34bb5a) SHA1(3f3c845f1197457244e7c7e4f9b2a03c278613e4) ) // sprite lookup table - // there is no char lookup table + ROM_LOAD( "771d02.08d", 0x0000, 0x0100, CRC(3d34bb5a) SHA1(3f3c845f1197457244e7c7e4f9b2a03c278613e4) ) // sprite lookup table + // there is no char lookup table ROM_END ROM_START( labyrunr ) @@ -506,11 +507,11 @@ ROM_START( labyrunr ) ROM_LOAD( "771j03.08f", 0x18000, 0x10000, CRC(12b49044) SHA1(e9b22fb093cfb746a9767e94ef5deef98bed5b7a) ) ROM_REGION( 0x40000, "gfx", 0 ) - ROM_LOAD16_WORD_SWAP( "771d01.14a", 0x00000, 0x40000, CRC(15c8f5f9) SHA1(e4235e1315d0331f3ce5047834a68764ed43aa4b) ) // tiles + sprites + ROM_LOAD16_WORD_SWAP( "771d01.14a", 0x00000, 0x40000, CRC(15c8f5f9) SHA1(e4235e1315d0331f3ce5047834a68764ed43aa4b) ) // tiles + sprites ROM_REGION( 0x0100, "proms", 0 ) - ROM_LOAD( "771d02.08d", 0x0000, 0x0100, CRC(3d34bb5a) SHA1(3f3c845f1197457244e7c7e4f9b2a03c278613e4) ) // sprite lookup table - // there is no char lookup table + ROM_LOAD( "771d02.08d", 0x0000, 0x0100, CRC(3d34bb5a) SHA1(3f3c845f1197457244e7c7e4f9b2a03c278613e4) ) // sprite lookup table + // there is no char lookup table ROM_END ROM_START( labyrunrk ) @@ -520,14 +521,14 @@ ROM_START( labyrunrk ) ROM_LOAD( "771k03.8f", 0x18000, 0x10000, CRC(48d732ae) SHA1(8bc7917397f32cf5f995b3763ae921725e27de05) ) ROM_REGION( 0x40000, "gfx", 0 ) - ROM_LOAD16_BYTE( "771d01a.13a", 0x00001, 0x10000, CRC(0cd1ed1a) SHA1(eac6c106de28acc54535ae1fb99f778c1ed4013e) ) // tiles + sprites + ROM_LOAD16_BYTE( "771d01a.13a", 0x00001, 0x10000, CRC(0cd1ed1a) SHA1(eac6c106de28acc54535ae1fb99f778c1ed4013e) ) // tiles + sprites ROM_LOAD16_BYTE( "771d01c.13a", 0x00000, 0x10000, CRC(d75521fe) SHA1(72f0c4d9511bc70d77415f50be93293026305bd5) ) ROM_LOAD16_BYTE( "771d01b", 0x20001, 0x10000, CRC(07f2a71c) SHA1(63c79e75e71539e69d4d9d35e629a6021124f6d0) ) ROM_LOAD16_BYTE( "771d01d", 0x20000, 0x10000, CRC(f6810a49) SHA1(b40e9f0d0919188a05c1990347da8dc8ff12d65a) ) ROM_REGION( 0x0100, "proms", 0 ) - ROM_LOAD( "771d02.08d", 0x0000, 0x0100, CRC(3d34bb5a) SHA1(3f3c845f1197457244e7c7e4f9b2a03c278613e4) ) // sprite lookup table - // there is no char lookup table + ROM_LOAD( "771d02.08d", 0x0000, 0x0100, CRC(3d34bb5a) SHA1(3f3c845f1197457244e7c7e4f9b2a03c278613e4) ) // sprite lookup table + // there is no char lookup table ROM_END ROM_START( labyrunrf ) @@ -537,14 +538,14 @@ ROM_START( labyrunrf ) ROM_LOAD( "771k03.8f", 0x18000, 0x10000, CRC(6c073295) SHA1(67be17ad0c3bfd5ff8cd6ed31b217e438733ed1c) ) ROM_REGION( 0x40000, "gfx", 0 ) - ROM_LOAD16_BYTE( "771d01a.13a", 0x00001, 0x10000, CRC(0cd1ed1a) SHA1(eac6c106de28acc54535ae1fb99f778c1ed4013e) ) // tiles + sprites + ROM_LOAD16_BYTE( "771d01a.13a", 0x00001, 0x10000, CRC(0cd1ed1a) SHA1(eac6c106de28acc54535ae1fb99f778c1ed4013e) ) // tiles + sprites ROM_LOAD16_BYTE( "771d01c.13a", 0x00000, 0x10000, CRC(d75521fe) SHA1(72f0c4d9511bc70d77415f50be93293026305bd5) ) ROM_LOAD16_BYTE( "771d01b", 0x20001, 0x10000, CRC(07f2a71c) SHA1(63c79e75e71539e69d4d9d35e629a6021124f6d0) ) ROM_LOAD16_BYTE( "771d01d", 0x20000, 0x10000, CRC(f6810a49) SHA1(b40e9f0d0919188a05c1990347da8dc8ff12d65a) ) ROM_REGION( 0x0100, "proms", 0 ) - ROM_LOAD( "771d02.08d", 0x0000, 0x0100, CRC(3d34bb5a) SHA1(3f3c845f1197457244e7c7e4f9b2a03c278613e4) ) // sprite lookup table - // there is no char lookup table + ROM_LOAD( "771d02.08d", 0x0000, 0x0100, CRC(3d34bb5a) SHA1(3f3c845f1197457244e7c7e4f9b2a03c278613e4) ) // sprite lookup table + // there is no char lookup table ROM_END } // anonymous namespace -- cgit v1.2.3