4 unsigned short *EmuScreen=NULL;
\r
5 int EmuWidth=0,EmuHeight=0;
\r
6 static int EmuScan(unsigned int num, void *sdata);
\r
7 unsigned char *PicoDraw2FB = NULL;
\r
16 EmuWidth=320; EmuHeight=224;
\r
17 len=EmuWidth*EmuHeight; len<<=1;
\r
18 EmuScreen=(unsigned short *)malloc(len); if (EmuScreen==NULL) return 1;
\r
19 PicoDraw2FB=(unsigned char *)malloc((8+320)*(8+224+8)*2);
\r
20 memset(EmuScreen,0,len);
\r
22 PicoDrawSetColorFormat(1);
\r
31 free(EmuScreen); EmuScreen=NULL; // Deallocate screen
\r
33 EmuWidth=EmuHeight=0;
\r
38 // Megadrive scanline callback:
\r
39 static int EmuScan(unsigned int num, void *sdata)
\r
41 unsigned short *pd=NULL,*end=NULL;
\r
42 unsigned short *ps=NULL;
\r
44 if (num>=(unsigned int)EmuHeight) return 0;
\r
46 // Copy scanline to screen buffer:
\r
47 pd=EmuScreen+(num<<8)+(num<<6); end=pd+320;
\r
48 ps=(unsigned short *)sdata;
\r
50 do { *pd++=*ps++; } while (pd<end);
\r
57 char map[12]={0,1,2,3,8,9,10,4,11,12,13,14}; // Joypads, format is UDLR BCAS ZYXM
\r
60 // Set Megadrive buttons:
\r
64 if (m>=0) if (Inp.button[m]>30) input|=1<<a;
\r
69 PsndOut=(short *)DSoundNext; PicoFrame(); PsndOut=NULL;
\r
76 int mp3_get_offset(void) // 0-1023
\r
81 void mp3_update(int *buffer, int length, int stereo)
\r
85 void mp3_start_play(FILE *f, int pos)
\r
89 int mp3_get_bitrate(FILE *f, int size)
\r