win32 stuff, SIMPLE_WRITE_SOUND
[picodrive.git] / platform / win32 / GenaDrive / Emu.cpp
index 5294d7a..75f6f69 100644 (file)
@@ -1,48 +1,25 @@
 \r
 #include "app.h"\r
 \r
-extern "C" {\r
-struct Pico\r
-{\r
-  unsigned char ram[0x10000];  // 0x00000 scratch ram\r
-  unsigned short vram[0x8000]; // 0x10000\r
-  unsigned char zram[0x2000];  // 0x20000 Z80 ram\r
-  unsigned char ioports[0x10];\r
-  unsigned int pad[0x3c];      // unused\r
-  unsigned short cram[0x40];   // 0x22100\r
-  unsigned short vsram[0x40];  // 0x22180\r
-\r
-  unsigned char *rom;          // 0x22200\r
-  unsigned int romsize;        // 0x22204\r
-\r
-//  struct PicoMisc m;\r
-//  struct PicoVideo video;\r
-};\r
-  extern struct Pico Pico;\r
-}\r
-\r
 unsigned short *EmuScreen=NULL;\r
-extern "C" unsigned short *framebuff=NULL;\r
-int EmuWidth=0,EmuHeight=0;\r
-static int frame=0;\r
+int EmuWidth=320,EmuHeight=224;\r
 static int EmuScan(unsigned int num, void *sdata);\r
+unsigned char *PicoDraw2FB = NULL;\r
 \r
 int EmuInit()\r
 {\r
   int len=0;\r
 \r
-//  PicoOpt=-1;\r
-//  PsndRate=44100; PsndLen=DSoundSeg;\r
-\r
   PicoInit();\r
 \r
   // Allocate screen:\r
   EmuWidth=320; EmuHeight=224;\r
   len=EmuWidth*EmuHeight; len<<=1;\r
   EmuScreen=(unsigned short *)malloc(len); if (EmuScreen==NULL) return 1;\r
-  framebuff=(unsigned short *)malloc((8+320)*(8+224+8)*2);\r
+  PicoDraw2FB=(unsigned char *)malloc((8+320)*(8+224+8)*2);\r
   memset(EmuScreen,0,len);\r
 \r
+  PicoDrawSetColorFormat(1);\r
   PicoScan=EmuScan;\r
 \r
   return 0;\r
@@ -52,7 +29,7 @@ void EmuExit()
 {\r
   //RomFree();\r
   free(EmuScreen); EmuScreen=NULL; // Deallocate screen\r
-  free(framebuff);\r
+  free(PicoDraw2FB);\r
   EmuWidth=EmuHeight=0;\r
 \r
   PicoExit();\r
@@ -70,7 +47,7 @@ static int EmuScan(unsigned int num, void *sdata)
   pd=EmuScreen+(num<<8)+(num<<6); end=pd+320;\r
   ps=(unsigned short *)sdata;\r
 \r
-  do { *pd++=(unsigned short)PicoCram(*ps++); } while (pd<end);\r
+  do { *pd++=*ps++; } while (pd<end);\r
   \r
   return 0;\r
 }\r
@@ -89,24 +66,30 @@ int EmuFrame()
 \r
   PicoPad[0]=input;\r
 \r
-  frame++;\r
-  PsndOut=(short *)DSoundNext; PicoFrame(); PsndOut=NULL;\r
+  PsndOut=(short *)DSoundNext;\r
+  PicoFrame();\r
+  //PsndOut=NULL;\r
 \r
-  // rendermode2\r
-  if(PicoOpt&0x10) {\r
-       unsigned short *pd=EmuScreen;\r
-       unsigned char  *ps=(unsigned char*)framebuff+328*8;\r
+  return 0;\r
+}\r
 \r
-       unsigned short palHigh[0x40];\r
-       for(int i = 0; i < 0x40; i++)\r
-         palHigh[i]=(unsigned short)PicoCram(Pico.cram[i]);\r
 \r
-    for(int y=0; y < 224; y++) {\r
-         ps+=8;\r
-         for(int x=0; x < 320; x++)\r
-               *pd++=palHigh[*ps++];\r
-       }\r
-  }\r
 \r
+int mp3_get_offset(void) // 0-1023\r
+{\r
   return 0;\r
 }\r
+\r
+void mp3_update(int *buffer, int length, int stereo)\r
+{\r
+}\r
+\r
+void mp3_start_play(FILE *f, int pos)\r
+{\r
+}\r
+\r
+int mp3_get_bitrate(FILE *f, int size)\r
+{\r
+  return -1;\r
+}\r
+\r