summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine
diff options
context:
space:
mode:
author Simon Eriksson <sp1187@users.noreply.github.com>2021-10-05 17:32:38 +0200
committer GitHub <noreply@github.com>2021-10-05 11:32:38 -0400
commitd8dd087f9069652151368c093f18392adbaa254b (patch)
tree3f77f285a0313e28013785dfb53095d0e6ddf7e5 /src/devices/machine
parent89ffebc976d5fa1c246e806a9159446f94d96d7b (diff)
machine/spg_renderer.cpp: Fix blend level handling for tile layers (#8652)
Diffstat (limited to 'src/devices/machine')
-rw-r--r--src/devices/machine/spg_renderer.cpp6
1 files changed, 5 insertions, 1 deletions
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;