diff options
author | Angelo Salese <angelosa@users.noreply.github.com> | 2009-06-10 20:25:31 +0000 |
---|---|---|
committer | Angelo Salese <angelosa@users.noreply.github.com> | 2009-06-10 20:25:31 +0000 |
commit | 1c6fc044dbd06283ea0d0ca9604ebfb70068a696 (patch) | |
tree | 8ebac73af06dda2ab17b0fa751caa6335afd9eb3 /src/mame | |
parent | f8376e83a3b6fee835ff8c06547e0f4a791d3a4a (diff) |
Fixed framebuffer trails in Pro Golf, fixed a compile error from the previous commit
Diffstat (limited to 'src/mame')
-rw-r--r-- | src/mame/drivers/progolf.c | 50 | ||||
-rw-r--r-- | src/mame/drivers/royalmah.c | 2 |
2 files changed, 42 insertions, 10 deletions
diff --git a/src/mame/drivers/progolf.c b/src/mame/drivers/progolf.c index 8ab5f36e252..d29e9562b18 100644 --- a/src/mame/drivers/progolf.c +++ b/src/mame/drivers/progolf.c @@ -8,7 +8,7 @@ TODO: - We need to patch a rom to get the games to do more, there's also a "rom test error 6" in service mode, so a rom might be bad or the decryption isn't complete. - Hazards doesn't have any effect, might be the same issue as above; -- Framebuffer "chars" leaves trails; +- Map displays are currently wrong, they are drawn with the framebuffer; - Sound in service mode loops without apparent reason; - progolfa: decryption isn't yet correct; @@ -71,6 +71,7 @@ static WRITE8_HANDLER( progolf_charram_w ) { deco_charram[offset] = data; + /* TODO: simplify this */ if(char_pen == 7) { progolf_fg_fb[offset*8+0] = 0; @@ -84,14 +85,45 @@ static WRITE8_HANDLER( progolf_charram_w ) } else { - progolf_fg_fb[offset*8+0] = data & 0x80 ? progolf_fg_fb[offset*8+0]|char_pen : progolf_fg_fb[offset*8+0]; - progolf_fg_fb[offset*8+1] = data & 0x40 ? progolf_fg_fb[offset*8+1]|char_pen : progolf_fg_fb[offset*8+1]; - progolf_fg_fb[offset*8+2] = data & 0x20 ? progolf_fg_fb[offset*8+2]|char_pen : progolf_fg_fb[offset*8+2]; - progolf_fg_fb[offset*8+3] = data & 0x10 ? progolf_fg_fb[offset*8+3]|char_pen : progolf_fg_fb[offset*8+3]; - progolf_fg_fb[offset*8+4] = data & 0x08 ? progolf_fg_fb[offset*8+4]|char_pen : progolf_fg_fb[offset*8+4]; - progolf_fg_fb[offset*8+5] = data & 0x04 ? progolf_fg_fb[offset*8+5]|char_pen : progolf_fg_fb[offset*8+5]; - progolf_fg_fb[offset*8+6] = data & 0x02 ? progolf_fg_fb[offset*8+6]|char_pen : progolf_fg_fb[offset*8+6]; - progolf_fg_fb[offset*8+7] = data & 0x01 ? progolf_fg_fb[offset*8+7]|char_pen : progolf_fg_fb[offset*8+7]; + 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]; } } diff --git a/src/mame/drivers/royalmah.c b/src/mame/drivers/royalmah.c index 9180c3f4faa..f4dedb3ea87 100644 --- a/src/mame/drivers/royalmah.c +++ b/src/mame/drivers/royalmah.c @@ -4623,7 +4623,7 @@ GAME( 1981, royalmj, 0, royalmah, royalmah, 0, ROT0, "Nichibut GAME( 1981?, openmj, royalmj, royalmah, royalmah, 0, ROT0, "Sapporo Mechanic", "Open Mahjong [BET] (Japan)", 0 ) GAME( 1982, royalmah, royalmj, royalmah, royalmah, 0, ROT0, "bootleg", "Royal Mahjong (Falcon bootleg, v1.01)", 0 ) GAME( 1983, janyoup2, royalmj, ippatsu, janyoup2, 0, ROT0, "Cosmo Denshi", "Janyou Part II (ver 7.03, July 1 1983)",0 ) -GAME( 1981, janputer, 0, royalmah, royalmah, 0, ROT0, "Ps Ltd. \ Mes", "New Double Bet Mahjong (Japan)", 0 ) +GAME( 1981, janputer, 0, royalmah, royalmah, 0, ROT0, "Ps Ltd. / Mes", "New Double Bet Mahjong (Japan)", 0 ) GAME( 1984, janoh, 0, royalmah, royalmah, 0, ROT0, "Toaplan", "Jan Oh (set 1)", GAME_NOT_WORKING ) GAME( 1984, janoha, janoh, janoh, royalmah, 0, ROT0, "Toaplan", "Jan Oh (set 2)", GAME_NOT_WORKING ) // this one is complete? GAME( 1985, jansou, 0, jansou, jansou, 0, ROT180, "Dyna", "Jansou (set 1)", GAME_NOT_WORKING|GAME_NO_SOUND ) |