From c1d5d1f5ae5d82c815fe2966bd4f147e365822b9 Mon Sep 17 00:00:00 2001 From: Angelo Salese Date: Sat, 30 May 2009 19:51:55 +0000 Subject: [PATCH] Proof that I need a rewrite of this one... --- src/mame/drivers/suprgolf.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/mame/drivers/suprgolf.c b/src/mame/drivers/suprgolf.c index d369890e15a..d1601b57c9b 100644 --- a/src/mame/drivers/suprgolf.c +++ b/src/mame/drivers/suprgolf.c @@ -6,7 +6,7 @@ TODO: - fix input port $06 and remove the patch, it doesn't seem directly connected; - - fix background blitter; + - fix the background blitter/framebuffer, needs rewriting; - inputs (some kind of ad-stick / pedal); ************************************************************************************/ @@ -218,7 +218,21 @@ static READ8_HANDLER( suprgolf_bg_vram_r ) static WRITE8_HANDLER( suprgolf_bg_vram_w ) { - suprgolf_bg_vram[offset+suprgolf_bg_bank*0x2000] = data; + static UINT8 hi_nibble,lo_nibble; + + hi_nibble = data & 0xf0; + lo_nibble = data & 0x0f; + + if(hi_nibble == 0xf0) + hi_nibble = suprgolf_bg_vram[offset+suprgolf_bg_bank*0x2000] & 0xf0; + if(lo_nibble == 0x0f) + lo_nibble = suprgolf_bg_vram[offset+suprgolf_bg_bank*0x2000] & 0x0f; + + if(pen & 0x80) + suprgolf_bg_vram[offset+suprgolf_bg_bank*0x2000] = data; + else + suprgolf_bg_vram[offset+suprgolf_bg_bank*0x2000] = hi_nibble|lo_nibble; + suprgolf_bg_pen[offset+suprgolf_bg_bank*0x2000] = pen; }