try to emulate borders properly
[pcsx_rearmed.git] / plugins / gpulib / gpu.h
index f710d3f..28f10fa 100644 (file)
@@ -34,6 +34,7 @@ extern "C" {
 #define BIT(x) (1 << (x))
 
 #define PSX_GPU_STATUS_DHEIGHT         BIT(19)
+#define PSX_GPU_STATUS_PAL             BIT(20)
 #define PSX_GPU_STATUS_RGB24           BIT(21)
 #define PSX_GPU_STATUS_INTERLACE       BIT(22)
 #define PSX_GPU_STATUS_BLANKING                BIT(23)
@@ -53,6 +54,7 @@ struct psx_gpu {
     int x, y, w, h;
     int x1, x2;
     int y1, y2;
+    int src_x, src_y;
   } screen;
   struct {
     int x, y, w, h;
@@ -69,6 +71,7 @@ struct psx_gpu {
     uint32_t enhancement_active:1;
     uint32_t downscale_enable:1;
     uint32_t downscale_active:1;
+    uint32_t dims_changed:1;
     uint32_t *frame_count;
     uint32_t *hcnt; /* hsync count */
     struct {
@@ -79,6 +82,9 @@ struct psx_gpu {
     } last_list;
     uint32_t last_vram_read_frame;
     uint32_t w_out_old, h_out_old, status_vo_old;
+    int screen_centering_type; // 0 - auto, 1 - game conrolled, 2 - manual
+    int screen_centering_x;
+    int screen_centering_y;
   } state;
   struct {
     int32_t set:3; /* -1 auto, 0 off, 1-3 fixed */
@@ -93,8 +99,7 @@ struct psx_gpu {
     uint32_t pending_fill[3];
   } frameskip;
   uint32_t scratch_ex_regs[8]; // for threaded rendering
-  int useDithering:1; /* 0 - off , 1 - on */
-  uint16_t *(*get_enhancement_bufer)
+  void *(*get_enhancement_bufer)
     (int *x, int *y, int *w, int *h, int *vram_h);
   uint16_t *(*get_downscale_buffer)
     (int *x, int *y, int *w, int *h, int *vram_h);