diff options
author | 2024-12-06 04:04:22 +0100 | |
---|---|---|
committer | 2024-12-06 06:08:26 +0100 | |
commit | 8cd93744894b6c95658d57985759ef98fbd4f14d (patch) | |
tree | 2c04c920684ef573720159cbaf08f934b98aae7d /src | |
parent | 831c9831104ee26d218614d9e4d287f43c8ae4fa (diff) |
rendlay: fix crash with rect element alpha of 0 < n < 1.0/255,
misc: small cleanup
Diffstat (limited to 'src')
-rw-r--r-- | src/devices/sound/namco.cpp | 10 | ||||
-rw-r--r-- | src/emu/rendersw.hxx | 12 | ||||
-rw-r--r-- | src/emu/rendlay.cpp | 6 | ||||
-rw-r--r-- | src/mame/zaccaria/galaxia.cpp | 1 | ||||
-rw-r--r-- | src/mame/zaccaria/quasar.cpp | 2 |
5 files changed, 17 insertions, 14 deletions
diff --git a/src/devices/sound/namco.cpp b/src/devices/sound/namco.cpp index a83f0ccbb65..ae5a053e2fa 100644 --- a/src/devices/sound/namco.cpp +++ b/src/devices/sound/namco.cpp @@ -5,11 +5,10 @@ NAMCO sound driver. This driver handles the four known types of NAMCO wavetable sounds: - - - 3-voice mono (PROM-based design: Pac-Man, Pengo, Dig Dug, etc) - - 8-voice quadrophonic (Pole Position 1, Pole Position 2) - - 8-voice mono (custom 15XX: Mappy, Dig Dug 2, etc) - - 8-voice stereo (System 1) + - 3-voice mono (PROM-based design: Pac-Man, Pengo, Dig Dug, etc) + - 8-voice quadrophonic (Pole Position 1, Pole Position 2) + - 8-voice mono (custom 15XX: Mappy, Dig Dug 2, etc) + - 8-voice stereo (System 1) The 15XX custom does not have a DAC of its own; instead, it streams the 4-bit PROM data directly into the 99XX custom DAC. Most pre-99XX @@ -578,7 +577,6 @@ void namco_cus30_device::namcos1_sound_w(offs_t offset, uint8_t data) int ch; int nssw; - /* verify the offset */ if (offset > 63) { diff --git a/src/emu/rendersw.hxx b/src/emu/rendersw.hxx index 55cabd22ce7..d4fde37566e 100644 --- a/src/emu/rendersw.hxx +++ b/src/emu/rendersw.hxx @@ -474,9 +474,9 @@ private: draw_aa_pixel(dstdata, pitch, x1, dy, apply_intensity(0xff & (~y1 >> 8), col)); dy++; dx -= 0x10000 - (0xffff & y1); // take off amount plotted - u8 a1 = (dx >> 8) & 0xff; // calc remainder pixel - dx >>= 16; // adjust to pixel (solid) count - while (dx--) // plot rest of pixels + u8 a1 = (dx >> 8) & 0xff; // calc remainder pixel + dx >>= 16; // adjust to pixel (solid) count + while (dx--) // plot rest of pixels { if (dy >= 0 && dy < height) draw_aa_pixel(dstdata, pitch, x1, dy, col); @@ -510,9 +510,9 @@ private: draw_aa_pixel(dstdata, pitch, dx, y1, apply_intensity(0xff & (~x1 >> 8), col)); dx++; dy -= 0x10000 - (0xffff & x1); // take off amount plotted - u8 a1 = (dy >> 8) & 0xff; // remainder pixel - dy >>= 16; // adjust to pixel (solid) count - while (dy--) // plot rest of pixels + u8 a1 = (dy >> 8) & 0xff; // remainder pixel + dy >>= 16; // adjust to pixel (solid) count + while (dy--) // plot rest of pixels { if (dx >= 0 && dx < width) draw_aa_pixel(dstdata, pitch, dx, y1, col); diff --git a/src/emu/rendlay.cpp b/src/emu/rendlay.cpp index be5413f99ae..489f232a1ad 100644 --- a/src/emu/rendlay.cpp +++ b/src/emu/rendlay.cpp @@ -2147,7 +2147,7 @@ protected: for (u32 y = bounds.top(); y <= bounds.bottom(); ++y) std::fill_n(&dest.pix(y, bounds.left()), width, f); } - else if (c.a) + else { // compute premultiplied color u32 const a(c.a * 255.0F); @@ -2156,6 +2156,9 @@ protected: u32 const b(u32(c.b * (255.0F * 255.0F)) * a); u32 const inva(255 - a); + if (!a) + return; + // we're translucent, add in the destination pixel contribution for (u32 y = bounds.top(); y <= bounds.bottom(); ++y) { @@ -2189,6 +2192,7 @@ public: u32 const g(c.g * (255.0F * 255.0F) * a); u32 const b(c.b * (255.0F * 255.0F) * a); u32 const inva(255 - a); + if (!a) return; diff --git a/src/mame/zaccaria/galaxia.cpp b/src/mame/zaccaria/galaxia.cpp index 4fb523ab6ea..d455e89c8a4 100644 --- a/src/mame/zaccaria/galaxia.cpp +++ b/src/mame/zaccaria/galaxia.cpp @@ -668,6 +668,7 @@ static INPUT_PORTS_START( galaxia ) PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("2N:2") PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END static INPUT_PORTS_START( galaxiaa ) diff --git a/src/mame/zaccaria/quasar.cpp b/src/mame/zaccaria/quasar.cpp index a6cc31ed18c..76d2f1ec021 100644 --- a/src/mame/zaccaria/quasar.cpp +++ b/src/mame/zaccaria/quasar.cpp @@ -36,7 +36,7 @@ Quasar by Zaccaria (1980) 2650A CPU -I8085 Sound Board +I8035 Sound Board *******************************************************************************/ |