void set_texture(psx_gpu_struct *psx_gpu, u32 texture_settings)
{
+ texture_settings &= 0x1FF;
if(psx_gpu->texture_settings != texture_settings)
{
u32 new_texture_page = texture_settings & 0x1F;
#endif
case 0xE1:
- set_texture(psx_gpu, list[0] & 0x1FF);
+ set_texture(psx_gpu, list[0]);
if(list[0] & (1 << 9))
psx_gpu->render_state_base |= RENDER_STATE_DITHER;
psx_gpu->viewport_start_y = psx_gpu->saved_viewport_start_y; \
psx_gpu->viewport_end_x = psx_gpu->saved_viewport_end_x; \
psx_gpu->viewport_end_y = psx_gpu->saved_viewport_end_y; \
+ psx_gpu->render_mode &= ~RENDER_DOUBLE_MODE; \
}
#define enhancement_enable() { \
psx_gpu->viewport_start_y = psx_gpu->saved_viewport_start_y * 2; \
psx_gpu->viewport_end_x = psx_gpu->saved_viewport_end_x * 2; \
psx_gpu->viewport_end_y = psx_gpu->saved_viewport_end_y * 2; \
+ psx_gpu->render_mode |= RENDER_DOUBLE_MODE; \
}
#define shift_vertices3(v) { \
u32 height = list_s16[5] & 0x1FF;
u32 color = list[0] & 0xFFFFFF;
+ x &= ~0xF;
+ width = ((width + 0xF) & ~0xF);
+
do_fill(psx_gpu, x, y, width, height, color);
psx_gpu->vram_out_ptr = psx_gpu->enhancement_buf_ptr;
y *= 2;
width *= 2;
height *= 2;
- if (width > 1024)
- width = 1024;
- render_block_fill(psx_gpu, color, x, y, width, height);
+ render_block_fill_enh(psx_gpu, color, x, y, width, height);
break;
}
#endif
case 0xE1:
- set_texture(psx_gpu, list[0] & 0x1FF);
+ set_texture(psx_gpu, list[0]);
if(list[0] & (1 << 9))
psx_gpu->render_state_base |= RENDER_STATE_DITHER;