unsigned char pad[0x4e];\r
};\r
\r
+// emu state and data for the asm code\r
+struct PicoEState\r
+{\r
+ int DrawScanline;\r
+ int rendstatus;\r
+ void *DrawLineDest; // draw estination\r
+ unsigned char *HighCol;\r
+ int *HighPreSpr;\r
+ void *Pico_video;\r
+ void *Pico_vram;\r
+ int *PicoOpt;\r
+};\r
+\r
// some assembly stuff depend on these, do not touch!\r
struct Pico\r
{\r
struct PicoMisc m;\r
struct PicoVideo video;\r
struct PicoMS ms;\r
+ struct PicoEState est;\r
};\r
\r
// sram\r
int CM_compareRun(int cyc, int is_sub);\r
\r
// draw.c\r
+void PicoDrawInit(void);\r
PICO_INTERNAL void PicoFrameStart(void);\r
void PicoDrawSync(int to, int blank_last_line);\r
-void BackFill(int reg7, int sh);\r
-void FinalizeLine555(int sh, int line);\r
+void BackFill(int reg7, int sh, struct PicoEState *est);\r
+void FinalizeLine555(int sh, int line, struct PicoEState *est);\r
extern int (*PicoScanBegin)(unsigned int num);\r
extern int (*PicoScanEnd)(unsigned int num);\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
\r
// 32x/draw.c\r
void PicoDrawSetOutFormat32x(pdso_t which, int use_32x_line_mode);\r
-void FinalizeLine32xRGB555(int sh, int line);\r
+void FinalizeLine32xRGB555(int sh, int line, struct PicoEState *est);\r
void PicoDraw32xLayer(int offs, int lines, int mdbg);\r
void PicoDraw32xLayerMdOnly(int offs, int lines);\r
extern int (*PicoScan32xBegin)(unsigned int num);\r