filename | src/pvr2/scene.c |
changeset | 934:3acd3b3ee6d1 |
prev | 863:a5e5310061e2 |
next | 1066:ddffe9d2b332 |
author | nkeynes |
date | Mon Jan 26 07:26:24 2009 +0000 (15 years ago) |
permissions | -rw-r--r-- |
last change | Add read_byte_for_write mem function for correct implementation of AND.B and friends with TLB enabled. Add read_byte and read_long MMIO stubs to do correct sign extension of IO reads |
file | annotate | diff | log | raw |
1.1 --- a/src/pvr2/scene.c Sun Sep 28 01:09:51 2008 +00001.2 +++ b/src/pvr2/scene.c Mon Jan 26 07:26:24 2009 +00001.3 @@ -506,13 +506,13 @@1.5 static void scene_extract_polygons( pvraddr_t tile_entry )1.6 {1.7 - uint32_t *tile_list = (uint32_t *)(video_base+tile_entry);1.8 + uint32_t *tile_list = (uint32_t *)(pvr2_main_ram+tile_entry);1.9 do {1.10 uint32_t entry = *tile_list++;1.11 if( entry >> 28 == 0x0F ) {1.12 break;1.13 } else if( entry >> 28 == 0x0E ) {1.14 - tile_list = (uint32_t *)(video_base + (entry&0x007FFFFF));1.15 + tile_list = (uint32_t *)(pvr2_main_ram + (entry&0x007FFFFF));1.16 } else {1.17 pvraddr_t polyaddr = entry&0x000FFFFF;1.18 shadow_mode_t is_modified = (entry & 0x01000000) ? pvr2_scene.shadow_mode : SHADOW_NONE;1.19 @@ -571,13 +571,13 @@1.21 static void scene_extract_vertexes( pvraddr_t tile_entry )1.22 {1.23 - uint32_t *tile_list = (uint32_t *)(video_base+tile_entry);1.24 + uint32_t *tile_list = (uint32_t *)(pvr2_main_ram+tile_entry);1.25 do {1.26 uint32_t entry = *tile_list++;1.27 if( entry >> 28 == 0x0F ) {1.28 break;1.29 } else if( entry >> 28 == 0x0E ) {1.30 - tile_list = (uint32_t *)(video_base + (entry&0x007FFFFF));1.31 + tile_list = (uint32_t *)(pvr2_main_ram + (entry&0x007FFFFF));1.32 } else {1.33 pvraddr_t polyaddr = entry&0x000FFFFF;1.34 shadow_mode_t is_modified = (entry & 0x01000000) ? pvr2_scene.shadow_mode : SHADOW_NONE;1.35 @@ -737,11 +737,11 @@1.36 fog_col = MMIO_READ( PVR2, RENDER_FOGVRTCOL );1.37 unpack_bgra( fog_col, pvr2_scene.fog_vert_colour );1.39 - uint32_t *tilebuffer = (uint32_t *)(video_base + MMIO_READ( PVR2, RENDER_TILEBASE ));1.40 + uint32_t *tilebuffer = (uint32_t *)(pvr2_main_ram + MMIO_READ( PVR2, RENDER_TILEBASE ));1.41 uint32_t *segment = tilebuffer;1.42 uint32_t shadow = MMIO_READ(PVR2,RENDER_SHADOW);1.43 pvr2_scene.segment_list = (struct tile_segment *)tilebuffer;1.44 - pvr2_scene.pvr2_pbuf = (uint32_t *)(video_base + MMIO_READ(PVR2,RENDER_POLYBASE));1.45 + pvr2_scene.pvr2_pbuf = (uint32_t *)(pvr2_main_ram + MMIO_READ(PVR2,RENDER_POLYBASE));1.46 pvr2_scene.shadow_mode = shadow & 0x100 ? SHADOW_CHEAP : SHADOW_FULL;1.47 scene_shadow_intensity = U8TOFLOAT(shadow&0xFF);1.49 @@ -814,7 +814,7 @@1.50 fprintf( f, "Polygons: %d\n", pvr2_scene.poly_count );1.51 for( i=0; i<pvr2_scene.poly_count; i++ ) {1.52 struct polygon_struct *poly = &pvr2_scene.poly_array[i];1.53 - fprintf( f, " %08X ", ((unsigned char *)poly->context) - video_base );1.54 + fprintf( f, " %08X ", ((unsigned char *)poly->context) - pvr2_main_ram );1.55 switch( poly->vertex_count ) {1.56 case 3: fprintf( f, "Tri " ); break;1.57 case 4: fprintf( f, "Quad " ); break;
.