From d8dd087f9069652151368c093f18392adbaa254b Mon Sep 17 00:00:00 2001 From: Simon Eriksson Date: Tue, 5 Oct 2021 17:32:38 +0200 Subject: machine/spg_renderer.cpp: Fix blend level handling for tile layers (#8652) --- src/devices/machine/spg_renderer.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/devices/machine/spg_renderer.cpp b/src/devices/machine/spg_renderer.cpp index a4171697095..6dd526a902a 100644 --- a/src/devices/machine/spg_renderer.cpp +++ b/src/devices/machine/spg_renderer.cpp @@ -467,7 +467,11 @@ void spg_renderer_device::draw_page(bool read_from_csspace, bool has_extended_ti const uint32_t bits_per_row = nc_bpp * tile_w / 16; //const uint32_t words_per_tile = bits_per_row * tile_h; const bool row_scroll = (ctrl & 0x0010); - uint8_t blendlevel = (m_video_regs_2a & 3) << 3; + + // Max blend level (3) should result in 100% opacity, per docs + // Min blend level (0) should result in 25% opacity, per docs + static const uint8_t s_blend_levels[4] = { 0x08, 0x10, 0x18, 0x20 }; + uint8_t blendlevel = s_blend_levels[m_video_regs_2a & 3]; uint32_t words_per_tile; -- cgit v1.2.3