# HG changeset patch # User nkeynes # Date 1219833068 0 # Node ID 7682ceeb9309f249fbef9de54f835aa3ba5ffabc # Parent 1ea87e0221f88c40e31688ffd06a5029496dcf07 Fix DMA/SQ writes to the VRAM32 region --- a/src/pvr2/pvr2mem.c Wed Aug 27 09:42:16 2008 +0000 +++ b/src/pvr2/pvr2mem.c Wed Aug 27 10:31:08 2008 +0000 @@ -39,7 +39,11 @@ if( region == 0 ) { pvr2_vram64_write( destaddr, src, count ); } else { - unsigned char *dest = mem_get_region(destaddr); + destaddr &= PVR2_RAM_MASK; + unsigned char *dest = video_base + destaddr; + if( PVR2_RAM_SIZE - destaddr < count ) { + count = PVR2_RAM_SIZE - destaddr; + } memcpy( dest, src, count ); } break; @@ -53,7 +57,11 @@ if( region == 0 ) { pvr2_vram64_write( destaddr, src, count ); } else { - unsigned char *dest = mem_get_region(destaddr); + destaddr &= PVR2_RAM_MASK; + unsigned char *dest = video_base + destaddr; + if( PVR2_RAM_SIZE - destaddr < count ) { + count = PVR2_RAM_SIZE - destaddr; + } memcpy( dest, src, count ); } }