diff options
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 |
commit | dce3614807da6d19ebbf523f71d2746e11fb45c6 (patch) | |
tree | a708eb990ee16f41b3d7f655bb9869258b985bbc | |
parent | 1c6fc044dbd06283ea0d0ca9604ebfb70068a696 (diff) |
Simplified the framebuffer buffer code.
-rw-r--r-- | src/mame/drivers/progolf.c | 58 |
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]; + } } } |