try to emulate borders properly
[pcsx_rearmed.git] / plugins / gpulib / gpu.h
index 4637a71..446a023 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;
@@ -67,6 +69,7 @@ struct psx_gpu {
     uint32_t blanked:1;
     uint32_t enhancement_enable:1;
     uint32_t enhancement_active:1;
+    uint32_t dims_changed:1;
     uint32_t *frame_count;
     uint32_t *hcnt; /* hsync count */
     struct {
@@ -77,6 +80,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 */
@@ -88,7 +94,7 @@ struct psx_gpu {
     uint32_t last_flip_frame;
     uint32_t pending_fill[3];
   } frameskip;
-  uint16_t *(*get_enhancement_bufer)
+  void *(*get_enhancement_bufer)
     (int *x, int *y, int *w, int *h, int *vram_h);
   void *(*mmap)(unsigned int size);
   void  (*munmap)(void *ptr, unsigned int size);