summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame
diff options
context:
space:
mode:
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
commit1c6fc044dbd06283ea0d0ca9604ebfb70068a696 (patch)
tree8ebac73af06dda2ab17b0fa751caa6335afd9eb3 /src/mame
parentf8376e83a3b6fee835ff8c06547e0f4a791d3a4a (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.c50
-rw-r--r--src/mame/drivers/royalmah.c2
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 )