summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author MooglyGuy <MooglyGuy@users.noreply.github.com>2021-04-06 17:24:21 +0200
committer GitHub <noreply@github.com>2021-04-07 01:24:21 +1000
commitd919a1e095674c02679247d751e1c229b2b3e305 (patch)
treeaf12b83f8bf5a90959babc4e60ff540866dd8de4
parentd28b2031c4b1cf886f05e2a24b94ef589051057b (diff)
machine/spg_renderer.cpp: Fixed incorrect handling of 2-bit blend level. (#7932) [Ryan Holtz, simer]
-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 255e8369125..a4171697095 100644
--- a/src/devices/machine/spg_renderer.cpp
+++ b/src/devices/machine/spg_renderer.cpp
@@ -653,7 +653,11 @@ void spg_renderer_device::draw_sprite(bool read_from_csspace, int extended_sprit
const uint8_t bpp = attr & 0x0003;
const uint32_t nc_bpp = ((bpp)+1) << 1;
const uint32_t bits_per_row = nc_bpp * tile_w / 16;
- uint8_t blendlevel = (m_video_regs_2a & 3) << 3;
+
+ // Max blend level (3) should result in 100% opacity on the sprite, per docs
+ // Min blend level (0) should result in 25% opacity on the sprite, 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;