summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Angelo Salese <angelosa@users.noreply.github.com>2010-04-15 17:31:37 +0000
committer Angelo Salese <angelosa@users.noreply.github.com>2010-04-15 17:31:37 +0000
commit589ca2c2a4bc28eabc852f985235f07092bbce87 (patch)
tree9088b0655a38b94e927e6e75e958143b629c9824 /src
parent3ef886a2d64b370e59d4fe2ad8fde75d605d2744 (diff)
Fixed ext latch behaviour in the SNES driver [Angelo Salese]
Diffstat (limited to 'src')
-rw-r--r--src/mame/video/snes.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/mame/video/snes.c b/src/mame/video/snes.c
index 31dead87391..01bfb90d4f7 100644
--- a/src/mame/video/snes.c
+++ b/src/mame/video/snes.c
@@ -2226,11 +2226,10 @@ READ8_HANDLER( snes_ppu_read )
case STAT78: /* PPU status flag and version number */
state->read_ophct = 0;
state->read_opvct = 0;
- value = snes_ram[offset];
- value |= (snes_ppu.ppu2_open_bus & 0x20);
- value |= (snes_ppu.ppu2_version & 0x0f);
- snes_ram[offset] = value; // not sure if this is needed...
- snes_ppu.ppu2_open_bus = value;
+ if(snes_ram[WRIO] & 0x80)
+ snes_ram[STAT78] &= ~0x40; //clear ext latch if bit 7 of WRIO is set
+ snes_ram[STAT78] = (snes_ram[STAT78] & ~0x2f) | (snes_ppu.ppu2_open_bus & 0x20) | (snes_ppu.ppu2_version & 0x0f);
+ snes_ppu.ppu2_open_bus = snes_ram[STAT78];
return snes_ppu.ppu2_open_bus;
}