cue/bin finally implemented
[picodrive.git] / platform / win32 / GenaDrive / Emu.cpp
1 \r
2 #include "app.h"\r
3 \r
4 unsigned short *EmuScreen=NULL;\r
5 int EmuWidth=320,EmuHeight=224;\r
6 RECT EmuScreenRect = { 0, 0, 320, 224 };\r
7 \r
8 static int EmuScan(unsigned int num, void *sdata);\r
9 unsigned char *PicoDraw2FB = NULL;\r
10 \r
11 int EmuInit()\r
12 {\r
13   int len=0;\r
14 \r
15   PicoInit();\r
16 \r
17   // Allocate screen:\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
23 \r
24   PicoDrawSetColorFormat(1);\r
25   PicoScan=EmuScan;\r
26 \r
27   return 0;\r
28 }\r
29 \r
30 void EmuExit()\r
31 {\r
32   //RomFree();\r
33   free(EmuScreen); EmuScreen=NULL; // Deallocate screen\r
34   free(PicoDraw2FB);\r
35   EmuWidth=EmuHeight=0;\r
36 \r
37   PicoExit();\r
38 }\r
39 \r
40 // Megadrive scanline callback:\r
41 static int EmuScan(unsigned int num, void *sdata)\r
42 {\r
43   unsigned short *pd=NULL;\r
44   unsigned short *ps=NULL;\r
45 \r
46   if (num>=(unsigned int)EmuHeight) return 0;\r
47 \r
48   // Copy scanline to screen buffer:\r
49   pd=EmuScreen+(num<<8)+(num<<6);\r
50   ps=(unsigned short *)sdata;\r
51 \r
52   memcpy(pd, ps, 320*2);\r
53   \r
54   return 0;\r
55 }\r
56 \r
57 int EmuFrame()\r
58 {\r
59   char map[12]={0,1,2,3,8,9,10,4,11,12,13,14};  // Joypads, format is UDLR BCAS ZYXM\r
60   int a=0,input=0;\r
61  \r
62   // Set Megadrive buttons:\r
63   for (a=0;a<12;a++)\r
64   {\r
65     int m=map[a];\r
66     if (m>=0) if (Inp.button[m]>30) input|=1<<a;\r
67   }\r
68 \r
69   PicoPad[0]=input;\r
70 \r
71   PsndOut=(short *)DSoundNext;\r
72   PicoFrame();\r
73   PsndOut=NULL;\r
74 \r
75   return 0;\r
76 }\r
77 \r
78 \r
79 void mp3_update(int *buffer, int length, int stereo)\r
80 {\r
81 }\r
82 \r
83 void mp3_start_play(FILE *f, int pos)\r
84 {\r
85 }\r
86 \r
87 int mp3_get_bitrate(FILE *f, int size)\r
88 {\r
89   return -1;\r
90 }\r
91 \r