u32 triangle_color;
u32 dither_table[4];
- u32 uvrgb_phase;
-
struct render_block_handler_struct *render_block_handler;
void *texture_page_ptr;
void *texture_page_base;
u16 *vram_ptr;
u16 *vram_out_ptr;
+ u32 uvrgb_phase;
+
u16 render_state_base;
u16 render_state;
s16 saved_viewport_start_y;
s16 saved_viewport_end_x;
s16 saved_viewport_end_y;
- u8 enhancement_buf_by_x16[64]; // 0-3 specifying which buf
- u16 enhancement_buf_start[4]; // x pos where buf[n] begins
-
- u16 enhancement_scanout_x[4];
- u16 enhancement_scanout_select;
+ struct psx_gpu_scanout {
+ u16 x, y, w, h;
+ } enhancement_scanouts[4]; // 0-3 specifying which buf to use
+ u16 enhancement_scanout_eselect; // eviction selector
+ u16 enhancement_current_buf;
// Align up to 64 byte boundary to keep the upcoming buffers cache line
// aligned, also make reachable with single immediate addition
- u8 reserved_a[142];
+ u8 reserved_a[188 + 9*4 - 9*sizeof(void *)];
// 8KB
block_struct blocks[MAX_BLOCKS_PER_ROW];