cue/bin finally implemented
[picodrive.git] / platform / win32 / GenaDrive / Emu.cpp
CommitLineData
cc68a136 1\r
2#include "app.h"\r
3\r
cc68a136 4unsigned short *EmuScreen=NULL;\r
03a265e5 5int EmuWidth=320,EmuHeight=224;\r
1b0ac8ad 6RECT EmuScreenRect = { 0, 0, 320, 224 };\r
7\r
cc68a136 8static int EmuScan(unsigned int num, void *sdata);\r
4b2b67eb 9unsigned char *PicoDraw2FB = NULL;\r
cc68a136 10\r
11int EmuInit()\r
12{\r
13 int len=0;\r
14\r
cc68a136 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
8831ef19 21 PicoDraw2FB=(unsigned char *)malloc((8+320)*(8+224+8)*2);\r
cc68a136 22 memset(EmuScreen,0,len);\r
23\r
4b2b67eb 24 PicoDrawSetColorFormat(1);\r
cc68a136 25 PicoScan=EmuScan;\r
26\r
27 return 0;\r
28}\r
29\r
30void EmuExit()\r
31{\r
32 //RomFree();\r
33 free(EmuScreen); EmuScreen=NULL; // Deallocate screen\r
8831ef19 34 free(PicoDraw2FB);\r
cc68a136 35 EmuWidth=EmuHeight=0;\r
36\r
37 PicoExit();\r
38}\r
39\r
40// Megadrive scanline callback:\r
41static int EmuScan(unsigned int num, void *sdata)\r
42{\r
1b0ac8ad 43 unsigned short *pd=NULL;\r
cc68a136 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
1b0ac8ad 49 pd=EmuScreen+(num<<8)+(num<<6);\r
cc68a136 50 ps=(unsigned short *)sdata;\r
51\r
1b0ac8ad 52 memcpy(pd, ps, 320*2);\r
cc68a136 53 \r
54 return 0;\r
55}\r
56\r
57int 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
03a265e5 71 PsndOut=(short *)DSoundNext;\r
72 PicoFrame();\r
1b0ac8ad 73 PsndOut=NULL;\r
cc68a136 74\r
4b2b67eb 75 return 0;\r
76}\r
cc68a136 77\r
cc68a136 78\r
4b2b67eb 79void mp3_update(int *buffer, int length, int stereo)\r
80{\r
81}\r
82\r
83void mp3_start_play(FILE *f, int pos)\r
84{\r
85}\r
86\r
87int mp3_get_bitrate(FILE *f, int size)\r
88{\r
89 return -1;\r
90}\r
91\r