From 6a28cbd39e167dad617b01030828e4573f17761f Mon Sep 17 00:00:00 2001 From: AJR Date: Sat, 8 Apr 2017 00:07:25 -0400 Subject: decocass.cpp: Correct missile colors for Highway Chase and Astro Fantasia --- src/mame/drivers/decocass.cpp | 4 ++-- src/mame/video/decocass.cpp | 35 +++++++++++++++++++++-------------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/mame/drivers/decocass.cpp b/src/mame/drivers/decocass.cpp index 4bc706db9c2..0f26d36167f 100644 --- a/src/mame/drivers/decocass.cpp +++ b/src/mame/drivers/decocass.cpp @@ -29,8 +29,8 @@ Later boardset: (1984 onward, schematic is dated October 1983) One DE-0097C-0 RMS-8 pcb with a 6502 processor, two ay-3-8910s, two eproms (2716 and 2732) plus one prom, and 48k worth of 4116 16kx1 DRAMs; the 6502 processor has its own 4K of SRAM. (audio processor and RAM, Main processor's dram, dipswitches) - One DE-0096C-0 DSP-8 board with a 'DECO 222' custom on it (labeled '8049 // C10707-2') which appears to really be a 'cleverly' disguised 6502, and two proms, plus 4K of sram, and three hm2511-1 1kx1 srams. (main processor and graphics) - One DE-0098C-0 B10-8 (BIO-8 on schematics) board with an 8041, an analog devices ADC0908 8-bit adc, and 4K of SRAM on it. (DECO Cassette control, inputs) + One DE-0096C-0 DSP-8 board with a 'DECO 222' custom on it (labeled '8049 // C10707-2') which appears to really be a 'cleverly' disguised 6502, and two proms, plus 4K of sram, and three hm2511-1 1kx1 srams. (main processor, sprites, missiles, palette) + One DE-0098C-0 B10-8 (BIO-8 on schematics) board with an 8041, an analog devices ADC0908 8-bit adc, and 4K of SRAM on it. (DECO Cassette control, inputs, tilemaps, headlights) One DE-0109C-0 card rack board that the other three boards plug into. (fourth connector for DE-109C-0 is shorter than in earlier versions) The actual cassettes use a custom player hooked to the BIO board, and are roughly microcassette form factor, but are larger and will not fit in a conventional microcassette player. diff --git a/src/mame/video/decocass.cpp b/src/mame/video/decocass.cpp index a9901a93f6d..72c3684bb56 100644 --- a/src/mame/video/decocass.cpp +++ b/src/mame/video/decocass.cpp @@ -11,8 +11,10 @@ with semi-independent scrolling, and the ability to transition between scrolling different sections. - Additionally it supports the headlight effect also needed for - a Highway Chase style game. + Additionally it supports the headlight and tunnel effects also + needed for a Highway Chase style game. These both produce a pen + modification effect which is not emulated properly now. The lack + of tunnel . --- @@ -32,18 +34,15 @@ - different game revision to emulated version, main boss enemy shown at the top of the scoreboard differs so notes below could be invalid - - - bullets should be white, not black - - BG layer changes to orange colours for first level - (this would require a palette bitplane re-order we - don't currently support) + - bullets should be white, not black (OK) + - BG layer changes to orange colours for first level, but + reverts to red when player explodes mamedev.emulab.it/haze/reference/sm18975592-HWY_CHASE.mp4 - road / bg colour should be darkish blue outside of tunnels - road / bg colour should be black in tunnels - headlight should be the same darkish blue as the road at all times, so only visible in tunnels - - our headlight is misplaced (should be simple fix) - center line of road does not exist on hw! - enemies are hidden in tunnels (like madalien) - road / bg flashs regular blue when enemy is hit revealing @@ -53,7 +52,7 @@ - colours of BG tilemap are glitchy even on hardware eg. Pink desert after first tunnel, Green water after 2nd tunnel even when the right palettes exist! - - enemy bullets are red + - player bullets are yellow, enemy bullets are red (OK) mamedev.emulab.it/haze/reference/sm17433759-PRO_BOWLING.mp4 - no notes @@ -81,8 +80,7 @@ blue, they appear green in our emulation mamedev.emulab.it/haze/reference/sm17202201-SKATER.mp4 - - shadow handling (headlight sprite) positioning is wrong, the - game also turns on the 'cross' bit, why? + - the game turns on the 'cross' bit, why? mamedev.emulab.it/haze/reference/sm17201813-ZEROIZE.mp4 - no notes @@ -558,7 +556,7 @@ void decocass_state::draw_missiles(bitmap_ind16 &bitmap, const rectangle &clipre for (x = 0; x < 4; x++) { if (sx >= cliprect.min_x && sx <= cliprect.max_x) - bitmap.pix16(sy, sx) = (m_color_missiles >> 4) & 7; + bitmap.pix16(sy, sx) = (m_color_missiles & 7) | 8; sx++; } @@ -574,7 +572,7 @@ void decocass_state::draw_missiles(bitmap_ind16 &bitmap, const rectangle &clipre for (x = 0; x < 4; x++) { if (sx >= cliprect.min_x && sx <= cliprect.max_x) - bitmap.pix16(sy, sx) = m_color_missiles & 7; + bitmap.pix16(sy, sx) = ((m_color_missiles >> 4) & 7) | 8; sx++; } } @@ -741,8 +739,17 @@ uint32_t decocass_state::screen_update_decocass(screen_device &screen, bitmap_in draw_edge(bitmap,cliprect,1,false); } } - m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + + // LS148 @ 2B (DSP-8 board) sets pen priority + + // priority 1: sprites draw_sprites(bitmap, cliprect, (m_color_center_bot >> 1) & 1, 0, 0, m_fgvideoram, 0x20); + + // priority 2 & 3: missiles draw_missiles(bitmap, cliprect, 1, 0, m_colorram, 0x20); + + // priority 4: foreground + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + return 0; } -- cgit v1.2.3