From e4e63ad75d93442f217be90824c9fcb725fb158e Mon Sep 17 00:00:00 2001 From: mahlemiut Date: Sat, 3 May 2014 10:08:37 +0000 Subject: [PATCH] svga_dm: prevent writing past the end of VRAM, should fix XF86_SVGA crashing. (no whatsnew) --- src/emu/video/pc_vga.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/emu/video/pc_vga.c b/src/emu/video/pc_vga.c index 53a10dbc107..1881b6f9c57 100644 --- a/src/emu/video/pc_vga.c +++ b/src/emu/video/pc_vga.c @@ -6038,9 +6038,9 @@ READ8_MEMBER(cirrus_vga_device::mem_r) { offset &= 0xffff; if(gc_mode_ext & 0x20) - return vga.memory[(offset+gc_bank_0*0x4000)]; + return vga.memory[(offset+gc_bank_0*0x4000) % vga.svga_intf.vram_size]; else - return vga.memory[(offset+gc_bank_0*0x1000)]; + return vga.memory[(offset+gc_bank_0*0x1000) % vga.svga_intf.vram_size]; } return vga_device::mem_r(space,offset,mem_mask); @@ -6052,9 +6052,9 @@ WRITE8_MEMBER(cirrus_vga_device::mem_w) { offset &= 0xffff; if(gc_mode_ext & 0x20) - vga.memory[(offset+gc_bank_0*0x4000)] = data; + vga.memory[(offset+gc_bank_0*0x4000) % vga.svga_intf.vram_size] = data; else - vga.memory[(offset+gc_bank_0*0x1000)] = data; + vga.memory[(offset+gc_bank_0*0x1000) % vga.svga_intf.vram_size] = data; } else vga_device::mem_w(space,offset,data,mem_mask);