From cb88320b4ddbfd8c1714f9a6cba31543a585a8cd Mon Sep 17 00:00:00 2001 From: notaz Date: Sat, 11 Aug 2012 18:34:13 +0300 Subject: psx_gpu: add a tool to generate asm offsets --- plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c | 84 +++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c (limited to 'plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c') diff --git a/plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c b/plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c new file mode 100644 index 0000000..2275f59 --- /dev/null +++ b/plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c @@ -0,0 +1,84 @@ +#include +#include + +#include "common.h" + +#define WRITE_OFFSET(f, member) \ + fprintf(f, "#define %-50s0x%x\n", \ + "psx_gpu_" #member "_offset", \ + offsetof(psx_gpu_struct, member)); + +int main() +{ + FILE *f; + + if (sizeof(f) != 4) { + fprintf(stderr, "bad pointer size\n"); + return 1; + } + + f = fopen("psx_gpu_offsets.h", "w"); + if (f == NULL) { + perror("fopen"); + return 1; + } + + WRITE_OFFSET(f, test_mask); + WRITE_OFFSET(f, uvrg); + WRITE_OFFSET(f, uvrg_dx); + WRITE_OFFSET(f, uvrg_dy); + WRITE_OFFSET(f, u_block_span); + WRITE_OFFSET(f, v_block_span); + WRITE_OFFSET(f, r_block_span); + WRITE_OFFSET(f, g_block_span); + WRITE_OFFSET(f, b_block_span); + WRITE_OFFSET(f, b); + WRITE_OFFSET(f, b_dy); + WRITE_OFFSET(f, triangle_area); + WRITE_OFFSET(f, texture_window_settings); + WRITE_OFFSET(f, current_texture_mask); + WRITE_OFFSET(f, viewport_mask); + WRITE_OFFSET(f, dirty_textures_4bpp_mask); + WRITE_OFFSET(f, dirty_textures_8bpp_mask); + WRITE_OFFSET(f, dirty_textures_8bpp_alternate_mask); + WRITE_OFFSET(f, triangle_color); + WRITE_OFFSET(f, dither_table); + WRITE_OFFSET(f, render_block_handler); + WRITE_OFFSET(f, texture_page_ptr); + WRITE_OFFSET(f, texture_page_base); + WRITE_OFFSET(f, clut_ptr); + WRITE_OFFSET(f, vram_ptr); + WRITE_OFFSET(f, render_state_base); + WRITE_OFFSET(f, render_state); + WRITE_OFFSET(f, num_spans); + WRITE_OFFSET(f, num_blocks); + WRITE_OFFSET(f, offset_x); + WRITE_OFFSET(f, offset_y); + WRITE_OFFSET(f, clut_settings); + WRITE_OFFSET(f, texture_settings); + WRITE_OFFSET(f, viewport_start_x); + WRITE_OFFSET(f, viewport_start_y); + WRITE_OFFSET(f, viewport_end_x); + WRITE_OFFSET(f, viewport_end_y); + WRITE_OFFSET(f, mask_msb); + WRITE_OFFSET(f, triangle_winding); + WRITE_OFFSET(f, display_area_draw_enable); + WRITE_OFFSET(f, current_texture_page); + WRITE_OFFSET(f, last_8bpp_texture_page); + WRITE_OFFSET(f, texture_mask_width); + WRITE_OFFSET(f, texture_mask_height); + WRITE_OFFSET(f, texture_window_x); + WRITE_OFFSET(f, texture_window_y); + WRITE_OFFSET(f, primitive_type); + WRITE_OFFSET(f, interlace_mode); + WRITE_OFFSET(f, blocks); + WRITE_OFFSET(f, span_uvrg_offset); + WRITE_OFFSET(f, span_edge_data); + WRITE_OFFSET(f, span_b_offset); + WRITE_OFFSET(f, texture_4bpp_cache); + WRITE_OFFSET(f, texture_8bpp_even_cache); + WRITE_OFFSET(f, texture_8bpp_odd_cache); + fclose(f); + + return 0; +} -- cgit v1.2.3 From c1817bd9249ee616cf9545a57136d6dd3669ce34 Mon Sep 17 00:00:00 2001 From: notaz Date: Mon, 13 Aug 2012 00:03:43 +0300 Subject: psx_gpu: add enhanced triangle rendering --- plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c | 1 + 1 file changed, 1 insertion(+) (limited to 'plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c') diff --git a/plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c b/plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c index 2275f59..d81f8aa 100644 --- a/plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c +++ b/plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c @@ -48,6 +48,7 @@ int main() WRITE_OFFSET(f, texture_page_base); WRITE_OFFSET(f, clut_ptr); WRITE_OFFSET(f, vram_ptr); + WRITE_OFFSET(f, vram_out_ptr); WRITE_OFFSET(f, render_state_base); WRITE_OFFSET(f, render_state); WRITE_OFFSET(f, num_spans); -- cgit v1.2.3 From f1359c5758c2e745b1cbec63e21445fa65f7cafe Mon Sep 17 00:00:00 2001 From: notaz Date: Mon, 13 Aug 2012 02:53:21 +0300 Subject: psx_gpu: switch enhancement to 2048 width otherwise games that position framebuffers horizontally corrupt the display. --- plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c') diff --git a/plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c b/plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c index d81f8aa..ff74f34 100644 --- a/plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c +++ b/plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c @@ -71,7 +71,7 @@ int main() WRITE_OFFSET(f, texture_window_x); WRITE_OFFSET(f, texture_window_y); WRITE_OFFSET(f, primitive_type); - WRITE_OFFSET(f, interlace_mode); + WRITE_OFFSET(f, render_mode); WRITE_OFFSET(f, blocks); WRITE_OFFSET(f, span_uvrg_offset); WRITE_OFFSET(f, span_edge_data); -- cgit v1.2.3 From c6063f8985c69362a89a12111f393229ab65d05f Mon Sep 17 00:00:00 2001 From: notaz Date: Wed, 15 Aug 2012 23:52:38 +0300 Subject: psx_gpu: use different uvrgb phase for enhancement --- plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c') diff --git a/plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c b/plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c index ff74f34..5adfb75 100644 --- a/plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c +++ b/plugins/gpu_neon/psx_gpu/psx_gpu_offsets_update.c @@ -43,6 +43,7 @@ int main() WRITE_OFFSET(f, dirty_textures_8bpp_alternate_mask); WRITE_OFFSET(f, triangle_color); WRITE_OFFSET(f, dither_table); + WRITE_OFFSET(f, uvrgb_phase); WRITE_OFFSET(f, render_block_handler); WRITE_OFFSET(f, texture_page_ptr); WRITE_OFFSET(f, texture_page_base); @@ -53,10 +54,6 @@ int main() WRITE_OFFSET(f, render_state); WRITE_OFFSET(f, num_spans); WRITE_OFFSET(f, num_blocks); - WRITE_OFFSET(f, offset_x); - WRITE_OFFSET(f, offset_y); - WRITE_OFFSET(f, clut_settings); - WRITE_OFFSET(f, texture_settings); WRITE_OFFSET(f, viewport_start_x); WRITE_OFFSET(f, viewport_start_y); WRITE_OFFSET(f, viewport_end_x); @@ -72,6 +69,10 @@ int main() WRITE_OFFSET(f, texture_window_y); WRITE_OFFSET(f, primitive_type); WRITE_OFFSET(f, render_mode); + WRITE_OFFSET(f, offset_x); + WRITE_OFFSET(f, offset_y); + WRITE_OFFSET(f, clut_settings); + WRITE_OFFSET(f, texture_settings); WRITE_OFFSET(f, blocks); WRITE_OFFSET(f, span_uvrg_offset); WRITE_OFFSET(f, span_edge_data); -- cgit v1.2.3