From 04ac8329dca93d226be099937bc32f3cf03ac508 Mon Sep 17 00:00:00 2001 From: hap Date: Sat, 19 Nov 2022 13:57:21 +0100 Subject: k007121: small cleanup --- src/mame/konami/contra.cpp | 4 +-- src/mame/konami/k007121.cpp | 61 ++++++++++++++++++++++----------------------- src/mame/konami/k007121.h | 2 +- src/mame/namco/namcos22.cpp | 2 +- 4 files changed, 34 insertions(+), 35 deletions(-) diff --git a/src/mame/konami/contra.cpp b/src/mame/konami/contra.cpp index 53d20b28f3c..b1c05248fa4 100644 --- a/src/mame/konami/contra.cpp +++ b/src/mame/konami/contra.cpp @@ -366,7 +366,7 @@ void contra_state::cram_w(offs_t offset, uint8_t data) template void contra_state::K007121_ctrl_w(offs_t offset, uint8_t data) { - uint8_t ctrl_6 = m_k007121[Which]->ctrlram_r(6); + uint8_t prev = m_k007121[Which]->ctrlram_r(offset); if (offset == 3) { @@ -378,7 +378,7 @@ void contra_state::K007121_ctrl_w(offs_t offset, uint8_t data) if (offset == 6) { - if (ctrl_6 != data) + if (prev != data) m_tilemap[Which]->mark_all_dirty(); } diff --git a/src/mame/konami/k007121.cpp b/src/mame/konami/k007121.cpp index 4a2875264fd..a4c500dbf77 100644 --- a/src/mame/konami/k007121.cpp +++ b/src/mame/konami/k007121.cpp @@ -110,7 +110,7 @@ control registers -----x-- firq enable ----x--- flip screen ---x---- unknown (contra, labyrunr) - */ +*/ #include "emu.h" #include "k007121.h" @@ -209,26 +209,21 @@ void k007121_device::ctrl_w(offs_t offset, uint8_t data) */ void k007121_device::sprites_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx, device_palette_interface &palette, - 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 ) + 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 ) { - // gfx_element *gfx = gfxs[chip]; - int flipscreen = m_flipscreen; - int i, num, inc; - - // TODO: sprite limit is supposed to be per-line! (check MT #00185) - num = 0x40; + int num = 0x40; //num = (k007121->ctrlram[0x03] & 0x40) ? 0x80 : 0x40; /* WRONG!!! (needed by combatsc) */ - inc = 5; + int inc = 5; /* when using priority buffer, draw front to back */ - if (pri_mask != -1) + if (pri_mask != (uint32_t)-1) { source += (num - 1)*inc; inc = -inc; } - for (i = 0; i < num; i++) + for (int i = 0; i < num; i++) { int number = source[0]; /* sprite number */ int sprite_bank = source[1] & 0x0f; /* sprite bank */ @@ -242,7 +237,7 @@ void k007121_device::sprites_draw( bitmap_ind16 &bitmap, const rectangle &clipre int transparent_mask; static const int x_offset[4] = {0x0,0x1,0x4,0x5}; static const int y_offset[4] = {0x0,0x2,0x8,0xa}; - int x,y, ex, ey, flipx, flipy, destx, desty; + int flipx, flipy, destx, desty; if (attr & 0x01) sx -= 256; if (sy >= 240) sy -= 256; @@ -269,18 +264,18 @@ void k007121_device::sprites_draw( bitmap_ind16 &bitmap, const rectangle &clipre case 0x00: width = height = 2; number &= (~3); break; case 0x08: width = height = 4; number &= (~3); break; default: width = 1; height = 1; -// logerror("Unknown sprite size %02x\n", attr & 0xe); -// popmessage("Unknown sprite size %02x\n", attr & 0xe); + //logerror("Unknown sprite size %02x\n", attr & 0xe); + break; } - for (y = 0; y < height; y++) + for (int y = 0; y < height; y++) { - for (x = 0; x < width; x++) + for (int x = 0; x < width; x++) { - ex = xflip ? (width - 1 - x) : x; - ey = yflip ? (height - 1 - y) : y; + int ex = xflip ? (width - 1 - x) : x; + int ey = yflip ? (height - 1 - y) : y; - if (flipscreen) + if (m_flipscreen) { flipx = !xflip; flipy = !yflip; @@ -295,21 +290,25 @@ void k007121_device::sprites_draw( bitmap_ind16 &bitmap, const rectangle &clipre desty = sy + y * 8; } - if (pri_mask != -1) + if (pri_mask != (uint32_t)-1) + { gfx->prio_transmask(bitmap,cliprect, - number + x_offset[ex] + y_offset[ey], - color, - flipx,flipy, - destx,desty, - priority_bitmap,pri_mask, - transparent_mask); + number + x_offset[ex] + y_offset[ey], + color, + flipx,flipy, + destx,desty, + priority_bitmap,pri_mask, + transparent_mask); + } else + { gfx->transmask(bitmap,cliprect, - number + x_offset[ex] + y_offset[ey], - color, - flipx,flipy, - destx,desty, - transparent_mask); + number + x_offset[ex] + y_offset[ey], + color, + flipx,flipy, + destx,desty, + transparent_mask); + } } } diff --git a/src/mame/konami/k007121.h b/src/mame/konami/k007121.h index 63bab8d52d8..a7b3993d337 100644 --- a/src/mame/konami/k007121.h +++ b/src/mame/konami/k007121.h @@ -29,7 +29,7 @@ protected: private: // internal state - uint8_t m_ctrlram[8]; + uint8_t m_ctrlram[8]; int m_flipscreen; required_device m_palette; }; diff --git a/src/mame/namco/namcos22.cpp b/src/mame/namco/namcos22.cpp index 67274d036e1..ba8a9ed6d73 100644 --- a/src/mame/namco/namcos22.cpp +++ b/src/mame/namco/namcos22.cpp @@ -1875,7 +1875,7 @@ void namcos22s_state::namcos22s_am(address_map &map) map(0x450008, 0x45000b).rw(FUNC(namcos22s_state::namcos22_portbit_r), FUNC(namcos22s_state::namcos22_portbit_w)); map(0x460000, 0x463fff).rw(m_eeprom, FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)).umask32(0xff00ff00); map(0x700000, 0x70001f).rw(FUNC(namcos22s_state::syscon_r), FUNC(namcos22s_state::ss22_syscon_w)); - map(0x800000, 0x800003).w(FUNC(namcos22s_state::namcos22s_chipselect_w)); + map(0x800000, 0x800003).w(FUNC(namcos22s_state::namcos22s_chipselect_w)); // C304, C399 map(0x810000, 0x81000f).rw(FUNC(namcos22s_state::namcos22s_czattr_r), FUNC(namcos22s_state::namcos22s_czattr_w)); map(0x810200, 0x8103ff).rw(FUNC(namcos22s_state::namcos22s_czram_r), FUNC(namcos22s_state::namcos22s_czram_w)); map(0x820000, 0x8202ff).nopw(); // leftover of old (non-super) video mixer device -- cgit v1.2.3