summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Scott Stone <tafoid@users.noreply.github.com>2013-12-23 22:16:49 +0000
committer Scott Stone <tafoid@users.noreply.github.com>2013-12-23 22:16:49 +0000
commitf4ef11efa003b2290ff3482747bb5b83f7f06e74 (patch)
tree0cb5dd5204a6bfa0bdc1c60c874f9b61ae7c0bf5
parent056327000623e5bebfca2f86b1de663bbe8552fa (diff)
Fix for debug crash of all peplus.c sets from Judge (nw)
-rw-r--r--src/mame/drivers/peplus.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/mame/drivers/peplus.c b/src/mame/drivers/peplus.c
index 72f177d2ec5..973bb7b26e6 100644
--- a/src/mame/drivers/peplus.c
+++ b/src/mame/drivers/peplus.c
@@ -995,6 +995,7 @@ UINT32 peplus_state::screen_update_peplus(screen_device &screen, bitmap_ind16 &b
void peplus_state::palette_init()
{
const UINT8 *color_prom = memregion("proms")->base();
+ UINT32 proms_size = memregion("proms")->bytes();
/* prom bits
7654 3210
---- -xxx red component.
@@ -1008,20 +1009,20 @@ void peplus_state::palette_init()
int bit0, bit1, bit2, r, g, b;
/* red component */
- bit0 = (~color_prom[i] >> 0) & 0x01;
- bit1 = (~color_prom[i] >> 1) & 0x01;
- bit2 = (~color_prom[i] >> 2) & 0x01;
+ bit0 = (~color_prom[i % proms_size] >> 0) & 0x01;
+ bit1 = (~color_prom[i % proms_size] >> 1) & 0x01;
+ bit2 = (~color_prom[i % proms_size] >> 2) & 0x01;
r = 0x21 * bit2 + 0x47 * bit1 + 0x97 * bit0;
/* green component */
- bit0 = (~color_prom[i] >> 3) & 0x01;
- bit1 = (~color_prom[i] >> 4) & 0x01;
- bit2 = (~color_prom[i] >> 5) & 0x01;
+ bit0 = (~color_prom[i % proms_size] >> 3) & 0x01;
+ bit1 = (~color_prom[i % proms_size] >> 4) & 0x01;
+ bit2 = (~color_prom[i % proms_size] >> 5) & 0x01;
g = 0x21 * bit2 + 0x47 * bit1 + 0x97 * bit0;
/* blue component */
- bit0 = (~color_prom[i] >> 6) & 0x01;
- bit1 = (~color_prom[i] >> 7) & 0x01;
+ bit0 = (~color_prom[i % proms_size] >> 6) & 0x01;
+ bit1 = (~color_prom[i % proms_size] >> 7) & 0x01;
bit2 = 0;
b = 0x21 * bit2 + 0x47 * bit1 + 0x97 * bit0;