#include "app.h"\r
\r
unsigned short *EmuScreen=NULL;\r
-extern "C" unsigned short *framebuff=NULL;\r
-int EmuWidth=0,EmuHeight=0;\r
-static int frame=0;\r
-static int EmuScan(unsigned int num, void *sdata);\r
+int EmuWidth=320,EmuHeight=224;\r
+RECT EmuScreenRect = { 0, 0, 320, 224 };\r
+int PicoPadAdd = 0;\r
+\r
+static int EmuScan(unsigned int num);\r
unsigned char *PicoDraw2FB = NULL;\r
\r
int EmuInit()\r
EmuWidth=320; EmuHeight=224;\r
len=EmuWidth*EmuHeight; len<<=1;\r
EmuScreen=(unsigned short *)malloc(len); if (EmuScreen==NULL) return 1;\r
- framebuff=(unsigned short *)malloc((8+320)*(8+224+8)*2);\r
+ PicoDraw2FB=(unsigned char *)malloc((8+320)*(8+224+8)*2);\r
memset(EmuScreen,0,len);\r
\r
- PicoDraw2FB = (unsigned char *)framebuff;\r
PicoDrawSetColorFormat(1);\r
- PicoScan=EmuScan;\r
+ PicoScanBegin=EmuScan;\r
\r
return 0;\r
}\r
{\r
//RomFree();\r
free(EmuScreen); EmuScreen=NULL; // Deallocate screen\r
- free(framebuff);\r
+ free(PicoDraw2FB);\r
EmuWidth=EmuHeight=0;\r
\r
PicoExit();\r
}\r
\r
// Megadrive scanline callback:\r
-static int EmuScan(unsigned int num, void *sdata)\r
+static int EmuScan(unsigned int num)\r
{\r
- unsigned short *pd=NULL,*end=NULL;\r
- unsigned short *ps=NULL;\r
-\r
- if (num>=(unsigned int)EmuHeight) return 0;\r
-\r
- // Copy scanline to screen buffer:\r
- pd=EmuScreen+(num<<8)+(num<<6); end=pd+320;\r
- ps=(unsigned short *)sdata;\r
-\r
- do { *pd++=*ps++; } while (pd<end);\r
+ DrawLineDest=EmuScreen+(num<<8)+(num<<6);\r
\r
return 0;\r
}\r
}\r
\r
PicoPad[0]=input;\r
+ PicoPad[0]|=PicoPadAdd;\r
\r
- frame++;\r
- PsndOut=(short *)DSoundNext; PicoFrame(); PsndOut=NULL;\r
+ PsndOut=(short *)DSoundNext;\r
+ PicoFrame();\r
+ PsndOut=NULL;\r
\r
return 0;\r
}\r
\r
\r
-\r
-int mp3_get_offset(void) // 0-1023\r
-{\r
- return 0;\r
-}\r
-\r
void mp3_update(int *buffer, int length, int stereo)\r
{\r
}\r