mirror of
https://github.com/holub/mame
synced 2025-07-03 00:56:03 +03:00
redclash: improve sprite colors
This commit is contained in:
parent
9e4842c64a
commit
0a2ee566cf
@ -9,15 +9,18 @@ runs on hardware similar to Lady Bug
|
|||||||
driver by inkling
|
driver by inkling
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
- In the Tehkan set (redclsha) the ship doesn't move during attract mode. Earlier version?
|
- In the Tehkan set (redclashta) the ship doesn't move during attract mode.
|
||||||
Gameplay is different too.
|
Earlier version? Gameplay is different too.
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- Colors might be right, need screen shots to verify
|
- Colors are not right. In zerohour P1 score should be white, the top score green,
|
||||||
|
and "TOP" should be magenta. How is this determined? It's as if only the top part
|
||||||
- Some graphical problems in both games, but without screenshots its hard to
|
of the screen has this exception. Sprite colors look ok.
|
||||||
know what we're aiming for
|
- Some graphical problems in both games
|
||||||
|
- redclash supports more background layer effects: white+mixed with other colors,
|
||||||
|
used in canyon parts and during the big ufo explosion
|
||||||
|
- Player bullets: should be 8*2px magenta in zerohour. It's weirder in redclash:
|
||||||
|
1st half of the screen 4*2px red, 2nd half 8*2px yellow.
|
||||||
- Sound (analog, schematics available for Zero Hour)
|
- Sound (analog, schematics available for Zero Hour)
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
@ -85,10 +85,10 @@ void redclash_state::palette(palette_device &palette) const
|
|||||||
{
|
{
|
||||||
uint8_t ctabentry;
|
uint8_t ctabentry;
|
||||||
|
|
||||||
ctabentry = bitswap<4>((color_prom[i] >> 0) & 0x0f, 0,1,2,3);
|
ctabentry = bitswap<4>(color_prom[i], 0,1,2,3);
|
||||||
palette.set_pen_indirect(i + 0x20, ctabentry);
|
palette.set_pen_indirect(i + 0x20, ctabentry);
|
||||||
|
|
||||||
ctabentry = bitswap<4>((color_prom[i] >> 4) & 0x0f, 0,1,2,3);
|
ctabentry = bitswap<4>(color_prom[i], 4,5,6,7);
|
||||||
palette.set_pen_indirect(i + 0x40, ctabentry);
|
palette.set_pen_indirect(i + 0x40, ctabentry);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,11 +152,10 @@ void redclash_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
|
|||||||
|
|
||||||
if (m_spriteram[offs + i] & 0x80)
|
if (m_spriteram[offs + i] & 0x80)
|
||||||
{
|
{
|
||||||
int color = m_spriteram[offs + i + 2] & 0x0f;
|
int color = bitswap<4>(m_spriteram[offs + i + 2], 5,2,1,0);
|
||||||
int sx = m_spriteram[offs + i + 3];
|
int sx = m_spriteram[offs + i + 3];
|
||||||
int sy = offs / 4 + (m_spriteram[offs + i] & 0x07);
|
int sy = offs / 4 + (m_spriteram[offs + i] & 0x07);
|
||||||
|
|
||||||
|
|
||||||
switch ((m_spriteram[offs + i] & 0x18) >> 3)
|
switch ((m_spriteram[offs + i] & 0x18) >> 3)
|
||||||
{
|
{
|
||||||
case 3: /* 24x24 */
|
case 3: /* 24x24 */
|
||||||
@ -222,7 +221,6 @@ void redclash_state::draw_bullets( bitmap_ind16 &bitmap, const rectangle &clipre
|
|||||||
{
|
{
|
||||||
for (int offs = 0; offs < 0x20; offs++)
|
for (int offs = 0; offs < 0x20; offs++)
|
||||||
{
|
{
|
||||||
// sx = m_videoramoffs];
|
|
||||||
int sx = 8 * offs + (m_videoram[offs] & 0x07); /* ?? */
|
int sx = 8 * offs + (m_videoram[offs] & 0x07); /* ?? */
|
||||||
int sy = 0xff - m_videoram[offs + 0x20];
|
int sy = 0xff - m_videoram[offs + 0x20];
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user