#define P32XV_PRI (1<< 7)\r
#define P32XV_Mx (3<< 0) // display mode mask\r
\r
+#define P32XV_SFT (1<< 0)\r
+\r
#define P32XV_VBLK (1<<15)\r
#define P32XV_HBLK (1<<14)\r
#define P32XV_PEN (1<<13)\r
#define SH2_DRCBLK_RAM_SHIFT 1\r
#define SH2_DRCBLK_DA_SHIFT 1\r
\r
+#define SH2_WRITE_SHIFT 25\r
+\r
struct Pico32x\r
{\r
unsigned short regs[0x20];\r
- unsigned short vdp_regs[0x10];\r
- unsigned short sh2_regs[3];\r
+ unsigned short vdp_regs[0x10]; // 0x40\r
+ unsigned short sh2_regs[3]; // 0x60\r
unsigned char pending_fb;\r
unsigned char dirty_pal;\r
unsigned int emu_flags;\r
PICO_INTERNAL void PicoFrameStart(void);\r
void PicoDrawSync(int to, int blank_last_line);\r
void BackFill(int reg7, int sh);\r
-void FinalizeLineRGB555(int sh, int line);\r
+void FinalizeLine555(int sh, int line);\r
extern int DrawScanline;\r
#define MAX_LINE_SPRITES 29\r
extern unsigned char HighLnSpr[240][3 + MAX_LINE_SPRITES];\r
+extern void *DrawLineDestBase;\r
+extern int DrawLineDestIncrement;\r
\r
// draw2.c\r
PICO_INTERNAL void PicoFrameFull();\r
void PicoFrameStartMode4(void);\r
void PicoLineMode4(int line);\r
void PicoDoHighPal555M4(void);\r
-void PicoDrawSetColorFormatMode4(int which);\r
+void PicoDrawSetOutputMode4(pdso_t which);\r
\r
// memory.c\r
PICO_INTERNAL void PicoMemSetup(void);\r
void Pico32xStartup(void);\r
void PicoUnload32x(void);\r
void PicoFrame32x(void);\r
-void p32x_update_irls(void);\r
+void p32x_update_irls(int nested_call);\r
void p32x_reset_sh2s(void);\r
\r
// 32x/memory.c\r
\r
// 32x/draw.c\r
void FinalizeLine32xRGB555(int sh, int line);\r
+void PicoDraw32xLayer(int offs, int lines, int mdbg);\r
+void PicoDraw32xLayerMdOnly(int offs, int lines);\r
+enum {\r
+ PDM32X_OFF,\r
+ PDM32X_32X_ONLY,\r
+ PDM32X_BOTH,\r
+};\r
+extern int Pico32xDrawMode;\r
\r
// 32x/pwm.c\r
unsigned int p32x_pwm_read16(unsigned int a);\r
void p32x_pwm_write16(unsigned int a, unsigned int d);\r
void p32x_pwm_update(int *buf32, int length, int stereo);\r
-void p32x_timers_do(int new_line);\r
+void p32x_timers_do(int line_call);\r
void p32x_timers_recalc(void);\r
extern int pwm_frame_smp_cnt;\r
\r
#define elprintf(w,f,...)\r
#endif\r
\r
+// profiling\r
+#ifdef PPROF\r
+#include <platform/linux/pprof.h>\r
+#else\r
+#define pprof_init()\r
+#define pprof_finish()\r
+#define pprof_start(x)\r
+#define pprof_end(...)\r
+#define pprof_end_sub(...)\r
+#endif\r
+\r
+// misc\r
#ifdef _MSC_VER\r
#define cdprintf\r
#else\r