32x: some timing hacks..
[picodrive.git] / pico / pico_int.h
index 53c6f4e..2a793e5 100644 (file)
@@ -251,6 +251,7 @@ extern SH2 sh2s[2];
   } \\r
 } while (0)\r
 # define sh2_cycles_left(sh2) (sh2)->icount\r
+# define sh2_burn_cycles(sh2, n) (sh2)->icount -= n\r
 # define sh2_pc(sh2) (sh2)->ppc\r
 #else\r
 # define sh2_end_run(sh2, after_) do { \\r
@@ -262,6 +263,7 @@ extern SH2 sh2s[2];
   } \\r
 } while (0)\r
 # define sh2_cycles_left(sh2) ((signed int)(sh2)->sr >> 12)\r
+# define sh2_burn_cycles(sh2, n) (sh2)->sr -= ((n) << 12)\r
 # define sh2_pc(sh2) (sh2)->pc\r
 #endif\r
 \r
@@ -489,8 +491,7 @@ typedef struct
 // peripheral reg access\r
 #define PREG8(regs,offs) ((unsigned char *)regs)[offs ^ 3]\r
 \r
-// real one is 4*2, but we use more because we don't lockstep\r
-#define DMAC_FIFO_LEN (4*4)\r
+#define DMAC_FIFO_LEN (4*2)\r
 #define PWM_BUFF_LEN 1024 // in one channel samples\r
 \r
 #define SH2_DRCBLK_RAM_SHIFT 1\r
@@ -511,9 +512,10 @@ struct Pico32x
   unsigned char sh2irqi[2];      // individual\r
   unsigned int sh2irqs;          // common irqs\r
   unsigned short dmac_fifo[DMAC_FIFO_LEN];\r
+  unsigned int pad[4];\r
   unsigned int dmac0_fifo_ptr;\r
   unsigned short vdp_fbcr_fake;\r
-  unsigned short pad;\r
+  unsigned short pad2;\r
   unsigned char comm_dirty_68k;\r
   unsigned char comm_dirty_sh2;\r
   unsigned char pwm_irq_cnt;\r