497c023ca2d6794edf5f02306b1a37bac1cb124f
[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);\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   PicoScanBegin=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)\r
42 {\r
43   DrawLineDest=EmuScreen+(num<<8)+(num<<6);\r
44   \r
45   return 0;\r
46 }\r
47 \r
48 int EmuFrame()\r
49 {\r
50   char map[12]={0,1,2,3,8,9,10,4,11,12,13,14};  // Joypads, format is UDLR BCAS ZYXM\r
51   int a=0,input=0;\r
52  \r
53   // Set Megadrive buttons:\r
54   for (a=0;a<12;a++)\r
55   {\r
56     int m=map[a];\r
57     if (m>=0) if (Inp.button[m]>30) input|=1<<a;\r
58   }\r
59 \r
60   PicoPad[0]=input;\r
61 \r
62   PsndOut=(short *)DSoundNext;\r
63   PicoFrame();\r
64   PsndOut=NULL;\r
65 \r
66   return 0;\r
67 }\r
68 \r
69 \r
70 void mp3_update(int *buffer, int length, int stereo)\r
71 {\r
72 }\r
73 \r
74 void mp3_start_play(FILE *f, int pos)\r
75 {\r
76 }\r
77 \r
78 int mp3_get_bitrate(FILE *f, int size)\r
79 {\r
80   return -1;\r
81 }\r
82 \r