summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Angelo Salese <angelosa@users.noreply.github.com>2009-06-10 20:37:09 +0000
committer Angelo Salese <angelosa@users.noreply.github.com>2009-06-10 20:37:09 +0000
commitdce3614807da6d19ebbf523f71d2746e11fb45c6 (patch)
treea708eb990ee16f41b3d7f655bb9869258b985bbc
parent1c6fc044dbd06283ea0d0ca9604ebfb70068a696 (diff)
Simplified the framebuffer buffer code.
-rw-r--r--src/mame/drivers/progolf.c58
1 files changed, 10 insertions, 48 deletions
diff --git a/src/mame/drivers/progolf.c b/src/mame/drivers/progolf.c
index d29e9562b18..683351aee4a 100644
--- a/src/mame/drivers/progolf.c
+++ b/src/mame/drivers/progolf.c
@@ -69,61 +69,23 @@ static READ8_HANDLER( progolf_charram_r )
static WRITE8_HANDLER( progolf_charram_w )
{
+ int i;
deco_charram[offset] = data;
- /* TODO: simplify this */
if(char_pen == 7)
{
- progolf_fg_fb[offset*8+0] = 0;
- progolf_fg_fb[offset*8+1] = 0;
- progolf_fg_fb[offset*8+2] = 0;
- progolf_fg_fb[offset*8+3] = 0;
- progolf_fg_fb[offset*8+4] = 0;
- progolf_fg_fb[offset*8+5] = 0;
- progolf_fg_fb[offset*8+6] = 0;
- progolf_fg_fb[offset*8+7] = 0;
+ for(i=0;i<8;i++)
+ progolf_fg_fb[offset*8+i] = 0;
}
else
{
- if(progolf_fg_fb[offset*8+0] == char_pen)
- progolf_fg_fb[offset*8+0] = data & 0x80 ? char_pen : 0;
- else
- progolf_fg_fb[offset*8+0] = data & 0x80 ? progolf_fg_fb[offset*8+0]|char_pen : progolf_fg_fb[offset*8+0];
-
- if(progolf_fg_fb[offset*8+1] == char_pen)
- progolf_fg_fb[offset*8+1] = data & 0x40 ? char_pen : 0;
- else
- progolf_fg_fb[offset*8+1] = data & 0x40 ? progolf_fg_fb[offset*8+1]|char_pen : progolf_fg_fb[offset*8+1];
-
- if(progolf_fg_fb[offset*8+2] == char_pen)
- progolf_fg_fb[offset*8+2] = data & 0x20 ? char_pen : 0;
- else
- progolf_fg_fb[offset*8+2] = data & 0x20 ? progolf_fg_fb[offset*8+2]|char_pen : progolf_fg_fb[offset*8+2];
-
- if(progolf_fg_fb[offset*8+3] == char_pen)
- progolf_fg_fb[offset*8+3] = data & 0x10 ? char_pen : 0;
- else
- progolf_fg_fb[offset*8+3] = data & 0x10 ? progolf_fg_fb[offset*8+3]|char_pen : progolf_fg_fb[offset*8+3];
-
- if(progolf_fg_fb[offset*8+4] == char_pen)
- progolf_fg_fb[offset*8+4] = data & 0x08 ? char_pen : 0;
- else
- progolf_fg_fb[offset*8+4] = data & 0x08 ? progolf_fg_fb[offset*8+4]|char_pen : progolf_fg_fb[offset*8+4];
-
- if(progolf_fg_fb[offset*8+5] == char_pen)
- progolf_fg_fb[offset*8+5] = data & 0x04 ? char_pen : 0;
- else
- progolf_fg_fb[offset*8+5] = data & 0x04 ? progolf_fg_fb[offset*8+5]|char_pen : progolf_fg_fb[offset*8+5];
-
- if(progolf_fg_fb[offset*8+6] == char_pen)
- progolf_fg_fb[offset*8+6] = data & 0x02 ? char_pen : 0;
- else
- progolf_fg_fb[offset*8+6] = data & 0x02 ? progolf_fg_fb[offset*8+6]|char_pen : progolf_fg_fb[offset*8+6];
-
- if(progolf_fg_fb[offset*8+7] == char_pen)
- progolf_fg_fb[offset*8+7] = data & 0x01 ? char_pen : 0;
- else
- progolf_fg_fb[offset*8+7] = data & 0x01 ? progolf_fg_fb[offset*8+7]|char_pen : progolf_fg_fb[offset*8+7];
+ for(i=0;i<8;i++)
+ {
+ if(progolf_fg_fb[offset*8+i] == char_pen)
+ progolf_fg_fb[offset*8+i] = data & (1<<(7-i)) ? char_pen : 0;
+ else
+ progolf_fg_fb[offset*8+i] = data & (1<<(7-i)) ? progolf_fg_fb[offset*8+i]|char_pen : progolf_fg_fb[offset*8+i];
+ }
}
}