diff --git a/src/mame/universal/redclash.cpp b/src/mame/universal/redclash.cpp index b3c6d2423f4..ae49d687a34 100644 --- a/src/mame/universal/redclash.cpp +++ b/src/mame/universal/redclash.cpp @@ -9,15 +9,18 @@ runs on hardware similar to Lady Bug driver by inkling Notes: -- In the Tehkan set (redclsha) the ship doesn't move during attract mode. Earlier version? - Gameplay is different too. +- In the Tehkan set (redclashta) the ship doesn't move during attract mode. + Earlier version? Gameplay is different too. TODO: -- Colors might be right, need screen shots to verify - -- Some graphical problems in both games, but without screenshots its hard to - know what we're aiming for - +- 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 + of the screen has this exception. Sprite colors look ok. +- 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) ***************************************************************************/ @@ -579,9 +582,9 @@ void redclash_state::init_redclash() } -GAME( 1980, zerohour, 0, zerohour, zerohour, redclash_state, init_redclash, ROT270, "Universal", "Zero Hour (set 1)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, zerohoura, zerohour, zerohour, zerohour, redclash_state, init_redclash, ROT270, "Universal", "Zero Hour (set 2)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, zerohouri, zerohour, zerohour, zerohour, redclash_state, init_redclash, ROT270, "bootleg (Inder SA)", "Zero Hour (Inder)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, zerohour, 0, zerohour, zerohour, redclash_state, init_redclash, ROT270, "Universal", "Zero Hour (set 1)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, zerohoura, zerohour, zerohour, zerohour, redclash_state, init_redclash, ROT270, "Universal", "Zero Hour (set 2)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, zerohouri, zerohour, zerohour, zerohour, redclash_state, init_redclash, ROT270, "bootleg (Inder SA)", "Zero Hour (Inder)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) GAME( 1981, redclash, 0, redclash, redclash, redclash_state, init_redclash, ROT270, "Kaneko", "Red Clash", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) GAME( 1981, redclasht, redclash, redclash, redclash, redclash_state, init_redclash, ROT270, "Kaneko (Tehkan license)", "Red Clash (Tehkan, set 1)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/universal/redclash_v.cpp b/src/mame/universal/redclash_v.cpp index 22b70494346..b8e606c97dd 100644 --- a/src/mame/universal/redclash_v.cpp +++ b/src/mame/universal/redclash_v.cpp @@ -85,10 +85,10 @@ void redclash_state::palette(palette_device &palette) const { 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); - 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); } @@ -152,11 +152,10 @@ void redclash_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec 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 sy = offs / 4 + (m_spriteram[offs + i] & 0x07); - switch ((m_spriteram[offs + i] & 0x18) >> 3) { 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++) { -// sx = m_videoramoffs]; int sx = 8 * offs + (m_videoram[offs] & 0x07); /* ?? */ int sy = 0xff - m_videoram[offs + 0x20];