--- a/src/pvr2/pvr2mem.c Sun Aug 24 02:57:15 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 ); } }