4 unsigned short *EmuScreen=NULL;
\r
5 int EmuWidth=320,EmuHeight=224;
\r
6 RECT EmuScreenRect = { 0, 0, 320, 224 };
\r
8 static int EmuScan(unsigned int num, void *sdata);
\r
9 unsigned char *PicoDraw2FB = NULL;
\r
18 EmuWidth=320; EmuHeight=224;
\r
19 len=EmuWidth*EmuHeight; len<<=1;
\r
20 EmuScreen=(unsigned short *)malloc(len); if (EmuScreen==NULL) return 1;
\r
21 PicoDraw2FB=(unsigned char *)malloc((8+320)*(8+224+8)*2);
\r
22 memset(EmuScreen,0,len);
\r
24 PicoDrawSetColorFormat(1);
\r
33 free(EmuScreen); EmuScreen=NULL; // Deallocate screen
\r
35 EmuWidth=EmuHeight=0;
\r
40 // Megadrive scanline callback:
\r
41 static int EmuScan(unsigned int num, void *sdata)
\r
43 unsigned short *pd=NULL;
\r
44 unsigned short *ps=NULL;
\r
46 if (num>=(unsigned int)EmuHeight) return 0;
\r
48 // Copy scanline to screen buffer:
\r
49 pd=EmuScreen+(num<<8)+(num<<6);
\r
50 ps=(unsigned short *)sdata;
\r
52 memcpy(pd, ps, 320*2);
\r
59 char map[12]={0,1,2,3,8,9,10,4,11,12,13,14}; // Joypads, format is UDLR BCAS ZYXM
\r
62 // Set Megadrive buttons:
\r
66 if (m>=0) if (Inp.button[m]>30) input|=1<<a;
\r
71 PsndOut=(short *)DSoundNext;
\r
80 int mp3_get_offset(void) // 0-1023
\r
85 void mp3_update(int *buffer, int length, int stereo)
\r
89 void mp3_start_play(FILE *f, int pos)
\r
93 int mp3_get_bitrate(FILE *f, int size)
\r