google issue 42 - palette corruption

This commit is contained in:
zeromus 2008-05-07 22:33:53 +00:00
parent 914dac6540
commit 7f7b80b8a8
1 changed files with 18 additions and 13 deletions

View File

@ -97,9 +97,13 @@ void FCEUD_GetPalette(unsigned char i, unsigned char *r, unsigned char *g, unsig
*b=color_palette[i].peBlue; *b=color_palette[i].peBlue;
} }
static bool firstInitialize = true;
static int InitializeDDraw(int fs) static int InitializeDDraw(int fs)
{ {
#ifdef _USE_SHARED_MEMORY_ //only init the palette the first time through
if(firstInitialize) {
firstInitialize = false;
#ifdef _USE_SHARED_MEMORY_
mapColorPalette = CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE, 0, 256 * sizeof(PALETTEENTRY),"fceu.ColorPalette"); mapColorPalette = CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE, 0, 256 * sizeof(PALETTEENTRY),"fceu.ColorPalette");
if(mapColorPalette == NULL || GetLastError() == ERROR_ALREADY_EXISTS) if(mapColorPalette == NULL || GetLastError() == ERROR_ALREADY_EXISTS)
{ {
@ -109,7 +113,8 @@ static int InitializeDDraw(int fs)
} }
else else
color_palette = (PALETTEENTRY *)MapViewOfFile(mapColorPalette, FILE_MAP_WRITE, 0, 0, 0); color_palette = (PALETTEENTRY *)MapViewOfFile(mapColorPalette, FILE_MAP_WRITE, 0, 0, 0);
#endif #endif
}
//(disvaccel&(1<<(fs?1:0)))?(GUID FAR *)DDCREATE_EMULATIONONLY: //(disvaccel&(1<<(fs?1:0)))?(GUID FAR *)DDCREATE_EMULATIONONLY:
ddrval = DirectDrawCreate((disvaccel&(1<<(fs?1:0)))?(GUID FAR *)DDCREATE_EMULATIONONLY:NULL, &lpDD, NULL); ddrval = DirectDrawCreate((disvaccel&(1<<(fs?1:0)))?(GUID FAR *)DDCREATE_EMULATIONONLY:NULL, &lpDD, NULL);
@ -1103,6 +1108,6 @@ void ConfigVideo(void)
SetVideoMode(0); SetVideoMode(0);
changerecursive = 0; changerecursive = 0;
} }
//SetMainWindowStuff(); SetMainWindowStuff();
} }