X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=platform%2Fwin32%2FGenaDrive%2FEmu.cpp;h=46fa27ab6dbafe947502c21bd373d27606226f9c;hb=490eb4805c9dd8fd358c96dc7e646a6db74e2dfb;hp=4e5bc95055886d889ed52d472d7ed239c14e2d4a;hpb=4b2b67ebc7fc6205c6589243b9c9a0a172a97ebb;p=picodrive.git diff --git a/platform/win32/GenaDrive/Emu.cpp b/platform/win32/GenaDrive/Emu.cpp index 4e5bc95..46fa27a 100644 --- a/platform/win32/GenaDrive/Emu.cpp +++ b/platform/win32/GenaDrive/Emu.cpp @@ -2,10 +2,11 @@ #include "app.h" unsigned short *EmuScreen=NULL; -extern "C" unsigned short *framebuff=NULL; -int EmuWidth=0,EmuHeight=0; -static int frame=0; -static int EmuScan(unsigned int num, void *sdata); +int EmuWidth=320,EmuHeight=224; +RECT EmuScreenRect = { 0, 0, 320, 224 }; +int PicoPadAdd = 0; + +static int EmuScan(unsigned int num); unsigned char *PicoDraw2FB = NULL; int EmuInit() @@ -18,12 +19,11 @@ int EmuInit() EmuWidth=320; EmuHeight=224; len=EmuWidth*EmuHeight; len<<=1; EmuScreen=(unsigned short *)malloc(len); if (EmuScreen==NULL) return 1; - framebuff=(unsigned short *)malloc((8+320)*(8+224+8)*2); + PicoDraw2FB=(unsigned char *)malloc((8+320)*(8+224+8)*2); memset(EmuScreen,0,len); - PicoDraw2FB = (unsigned char *)framebuff; PicoDrawSetColorFormat(1); - PicoScan=EmuScan; + PicoScanBegin=EmuScan; return 0; } @@ -32,25 +32,16 @@ void EmuExit() { //RomFree(); free(EmuScreen); EmuScreen=NULL; // Deallocate screen - free(framebuff); + free(PicoDraw2FB); EmuWidth=EmuHeight=0; PicoExit(); } // Megadrive scanline callback: -static int EmuScan(unsigned int num, void *sdata) +static int EmuScan(unsigned int num) { - unsigned short *pd=NULL,*end=NULL; - unsigned short *ps=NULL; - - if (num>=(unsigned int)EmuHeight) return 0; - - // Copy scanline to screen buffer: - pd=EmuScreen+(num<<8)+(num<<6); end=pd+320; - ps=(unsigned short *)sdata; - - do { *pd++=*ps++; } while (pd