summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
authorGravatarGravatar mahlemiut <mahlemiut@users.noreply.github.com>2012-09-13 01:52:22 +0000
committerGravatarGravatar mahlemiut <mahlemiut@users.noreply.github.com>2012-09-13 01:52:22 +0000
commit9a27128e68b82f418a49457456b19d34ecfffb76 (patch)
treeabac18c38e021135e072729a7cbfd430eb5cbea0 /src
parent83c97dac26ce681b4a63458c1becc9dc35068a3e (diff)
(MESS) Fixed video memory paging (no whatsnew)
Diffstat (limited to 'src')
-rw-r--r--src/emu/video/pc_vga.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/emu/video/pc_vga.c b/src/emu/video/pc_vga.c
index d8c62bedbc8..a35464f1ddd 100644
--- a/src/emu/video/pc_vga.c
+++ b/src/emu/video/pc_vga.c
@@ -5011,9 +5011,17 @@ WRITE8_DEVICE_HANDLER(ati_port_ext_w)
vga.crtc.cursor_addr = (vga.crtc.cursor_addr & 0xfffeffff) | ((data & 0x04) << 14);
break;
case 0x32: // memory page select
- svga.bank_r = ((data & 0x01) << 3) | ((data & 0xe0) >> 5);
- svga.bank_w = ((data & 0x1e) >> 1);
- //logerror("ATI: Memory Page Select write %02x\n",data);
+ if(ati.ext_reg[0x3e] & 0x08)
+ {
+ svga.bank_r = ((data & 0x01) << 3) | ((data & 0xe0) >> 5);
+ svga.bank_w = ((data & 0x1e) >> 1);
+ }
+ else
+ {
+ svga.bank_r = ((data & 0x1e) >> 1);
+ svga.bank_w = ((data & 0x1e) >> 1);
+ }
+ logerror("ATI: Memory Page Select write %02x (read: %i write %i)\n",data,svga.bank_r,svga.bank_w);
break;
case 0x33: // EEPROM
if(data & 0x04)