ppuview.cpp replacing inconsistent spaces vs tabs

This commit is contained in:
rainwarrior 2016-09-07 17:39:42 +00:00
parent b0a91f5b0b
commit 1de49661ee
1 changed files with 194 additions and 194 deletions

View File

@ -80,18 +80,18 @@ HGDIOBJ TmpObj2,TmpObj3;
void PPUViewDoBlit() void PPUViewDoBlit()
{ {
if (!hPPUView) if (!hPPUView)
return; return;
if (PPUViewSkip < PPUViewRefresh) if (PPUViewSkip < PPUViewRefresh)
{ {
PPUViewSkip++; PPUViewSkip++;
return; return;
} }
PPUViewSkip = 0; PPUViewSkip = 0;
StretchBlt(pDC, patternDestX, patternDestY, PATTERNWIDTH * ZOOM, PATTERNHEIGHT * ZOOM, TmpDC0, 0, PATTERNHEIGHT - 1, PATTERNWIDTH, -PATTERNHEIGHT, SRCCOPY); StretchBlt(pDC, patternDestX, patternDestY, PATTERNWIDTH * ZOOM, PATTERNHEIGHT * ZOOM, TmpDC0, 0, PATTERNHEIGHT - 1, PATTERNWIDTH, -PATTERNHEIGHT, SRCCOPY);
StretchBlt(pDC, patternDestX + (PATTERNWIDTH * ZOOM) + 1, patternDestY, PATTERNWIDTH * ZOOM, PATTERNHEIGHT * ZOOM, TmpDC1, 0, PATTERNHEIGHT - 1, PATTERNWIDTH, -PATTERNHEIGHT, SRCCOPY); StretchBlt(pDC, patternDestX + (PATTERNWIDTH * ZOOM) + 1, patternDestY, PATTERNWIDTH * ZOOM, PATTERNHEIGHT * ZOOM, TmpDC1, 0, PATTERNHEIGHT - 1, PATTERNWIDTH, -PATTERNHEIGHT, SRCCOPY);
StretchBlt(pDC, paletteDestX, paletteDestY, PALETTEWIDTH, PALETTEHEIGHT, TmpDC2, 0, PALETTEHEIGHT - 1, PALETTEWIDTH, -PALETTEHEIGHT, SRCCOPY); StretchBlt(pDC, paletteDestX, paletteDestY, PALETTEWIDTH, PALETTEHEIGHT, TmpDC2, 0, PALETTEHEIGHT - 1, PALETTEWIDTH, -PALETTEHEIGHT, SRCCOPY);
} }
//---------CDLogger VROM //---------CDLogger VROM
@ -100,24 +100,24 @@ extern unsigned int cdloggerVideoDataSize;
void DrawPatternTable(uint8 *bitmap, uint8 *table, uint8 *log, uint8 pal) void DrawPatternTable(uint8 *bitmap, uint8 *table, uint8 *log, uint8 pal)
{ {
int i,j,k,x,y,index=0; int i,j,k,x,y,index=0;
int p=0,tmp; int p=0,tmp;
uint8 chr0,chr1,logs,shift; uint8 chr0,chr1,logs,shift;
uint8 *pbitmap = bitmap; uint8 *pbitmap = bitmap;
pal <<= 2; pal <<= 2;
for (i = 0; i < (16 >> PPUView_sprite16Mode); i++) //Columns for (i = 0; i < (16 >> PPUView_sprite16Mode); i++) //Columns
{ {
for (j = 0; j < 16; j++) //Rows for (j = 0; j < 16; j++) //Rows
{ {
//----------------------------------------------- //-----------------------------------------------
for (k = 0; k < (PPUView_sprite16Mode + 1); k++) { for (k = 0; k < (PPUView_sprite16Mode + 1); k++) {
for (y = 0; y < 8; y++) for (y = 0; y < 8; y++)
{ {
chr0 = table[index]; chr0 = table[index];
chr1 = table[index + 8]; chr1 = table[index + 8];
logs = log[index] & log[index + 8]; logs = log[index] & log[index + 8];
tmp = 7; tmp = 7;
shift=(PPUView_maskUnusedGraphics && debug_loggingCD && (((logs & 3) != 0) == PPUView_invertTheMask))?3:0; shift=(PPUView_maskUnusedGraphics && debug_loggingCD && (((logs & 3) != 0) == PPUView_invertTheMask))?3:0;
for (x = 0; x < 8; x++) for (x = 0; x < 8; x++)
{ {
@ -132,13 +132,13 @@ void DrawPatternTable(uint8 *bitmap, uint8 *table, uint8 *log, uint8 pal)
index++; index++;
pbitmap += (PATTERNBITWIDTH-24); pbitmap += (PATTERNBITWIDTH-24);
} }
index+=8; index+=8;
} }
pbitmap -= ((PATTERNBITWIDTH<<(3+PPUView_sprite16Mode))-24); pbitmap -= ((PATTERNBITWIDTH<<(3+PPUView_sprite16Mode))-24);
//------------------------------------------------ //------------------------------------------------
} }
pbitmap += (PATTERNBITWIDTH*((8<<PPUView_sprite16Mode)-1)); pbitmap += (PATTERNBITWIDTH*((8<<PPUView_sprite16Mode)-1));
} }
} }
void FCEUD_UpdatePPUView(int scanline, int refreshchr) void FCEUD_UpdatePPUView(int scanline, int refreshchr)
@ -146,18 +146,18 @@ void FCEUD_UpdatePPUView(int scanline, int refreshchr)
if(!PPUViewer) return; if(!PPUViewer) return;
if(scanline != -1 && scanline != PPUViewScanline) return; if(scanline != -1 && scanline != PPUViewScanline) return;
int x,y,i; int x,y,i;
uint8 *pbitmap = ppuv_palette; uint8 *pbitmap = ppuv_palette;
if(!hPPUView) return; if(!hPPUView) return;
if(PPUViewSkip < PPUViewRefresh) return; if(PPUViewSkip < PPUViewRefresh) return;
if(refreshchr) if(refreshchr)
{ {
for (i = 0, x=0x1000; i < 0x1000; i++, x++) for (i = 0, x=0x1000; i < 0x1000; i++, x++)
{ {
chrcache0[i] = VPage[i>>10][i]; chrcache0[i] = VPage[i>>10][i];
chrcache1[i] = VPage[x>>10][x]; chrcache1[i] = VPage[x>>10][x];
if (debug_loggingCD) { if (debug_loggingCD) {
if (cdloggerVideoDataSize) if (cdloggerVideoDataSize)
{ {
@ -173,22 +173,22 @@ void FCEUD_UpdatePPUView(int scanline, int refreshchr)
logcache1[i] = cdloggervdata[x]; logcache1[i] = cdloggervdata[x];
} }
} }
} }
} }
// update palette only if required // update palette only if required
if (memcmp(palcache, PALRAM, 32) != 0) if (memcmp(palcache, PALRAM, 32) != 0)
{ {
// bbit note: let para know that this if is useless and // bbit note: let para know that this if is useless and
// will not work because of the lines below that change // will not work because of the lines below that change
// palcache which will make it not equal next time // palcache which will make it not equal next time
// cache palette content // cache palette content
memcpy(palcache,PALRAM,32); memcpy(palcache,PALRAM,32);
palcache[0x10] = palcache[0x00]; palcache[0x10] = palcache[0x00];
palcache[0x14] = palcache[0x00]; palcache[0x14] = palcache[0x00];
palcache[0x18] = palcache[0x00]; palcache[0x18] = palcache[0x00];
palcache[0x1C] = palcache[0x00]; palcache[0x1C] = palcache[0x00];
//draw palettes //draw palettes
for (y = 0; y < PALETTEHEIGHT; y++) for (y = 0; y < PALETTEHEIGHT; y++)
@ -223,44 +223,44 @@ void FCEUD_UpdatePPUView(int scanline, int refreshchr)
memcpy(palcache,PALRAM,32); //palcache which will make it not equal next time memcpy(palcache,PALRAM,32); //palcache which will make it not equal next time
} }
DrawPatternTable(pattern0,chrcache0,logcache0,pindex0); DrawPatternTable(pattern0,chrcache0,logcache0,pindex0);
DrawPatternTable(pattern1,chrcache1,logcache1,pindex1); DrawPatternTable(pattern1,chrcache1,logcache1,pindex1);
//PPUViewDoBlit(); //PPUViewDoBlit();
} }
void KillPPUView() void KillPPUView()
{ {
//GDI cleanup //GDI cleanup
DeleteObject(TmpBmp0); DeleteObject(TmpBmp0);
SelectObject(TmpDC0,TmpObj0); SelectObject(TmpDC0,TmpObj0);
DeleteDC(TmpDC0); DeleteDC(TmpDC0);
DeleteObject(TmpBmp1); DeleteObject(TmpBmp1);
SelectObject(TmpDC1,TmpObj1); SelectObject(TmpDC1,TmpObj1);
DeleteDC(TmpDC1); DeleteDC(TmpDC1);
DeleteObject(TmpBmp2); DeleteObject(TmpBmp2);
SelectObject(TmpDC2,TmpObj2); SelectObject(TmpDC2,TmpObj2);
DeleteDC(TmpDC2); DeleteDC(TmpDC2);
ReleaseDC(hPPUView,pDC); ReleaseDC(hPPUView,pDC);
DestroyWindow(hPPUView); DestroyWindow(hPPUView);
hPPUView=NULL; hPPUView=NULL;
PPUViewer=0; PPUViewer=0;
PPUViewSkip=0; PPUViewSkip=0;
} }
BOOL CALLBACK PPUViewCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) BOOL CALLBACK PPUViewCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ {
RECT wrect; RECT wrect;
char str[20]; char str[20];
switch(uMsg) switch(uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
if (PPUViewPosX==-32000) PPUViewPosX=0; //Just in case if (PPUViewPosX==-32000) PPUViewPosX=0; //Just in case
if (PPUViewPosY==-32000) PPUViewPosY=0; if (PPUViewPosY==-32000) PPUViewPosY=0;
SetWindowPos(hwndDlg,0,PPUViewPosX,PPUViewPosY,0,0,SWP_NOSIZE|SWP_NOZORDER|SWP_NOOWNERZORDER); SetWindowPos(hwndDlg,0,PPUViewPosX,PPUViewPosY,0,0,SWP_NOSIZE|SWP_NOZORDER|SWP_NOOWNERZORDER);
// calculate bitmaps positions relative to their groupboxes // calculate bitmaps positions relative to their groupboxes
RECT rect; RECT rect;
@ -278,40 +278,40 @@ BOOL CALLBACK PPUViewCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam
paletteDestX = pt.x + PALETTEDESTX_BASE; paletteDestX = pt.x + PALETTEDESTX_BASE;
paletteDestY = pt.y + PALETTEDESTY_BASE; paletteDestY = pt.y + PALETTEDESTY_BASE;
//prepare the bitmap attributes //prepare the bitmap attributes
//pattern tables //pattern tables
memset(&bmInfo.bmiHeader,0,sizeof(BITMAPINFOHEADER)); memset(&bmInfo.bmiHeader,0,sizeof(BITMAPINFOHEADER));
bmInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); bmInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmInfo.bmiHeader.biWidth = PATTERNWIDTH; bmInfo.bmiHeader.biWidth = PATTERNWIDTH;
bmInfo.bmiHeader.biHeight = PATTERNHEIGHT; bmInfo.bmiHeader.biHeight = PATTERNHEIGHT;
bmInfo.bmiHeader.biPlanes = 1; bmInfo.bmiHeader.biPlanes = 1;
bmInfo.bmiHeader.biBitCount = 24; bmInfo.bmiHeader.biBitCount = 24;
//palettes //palettes
memset(&bmInfo2.bmiHeader,0,sizeof(BITMAPINFOHEADER)); memset(&bmInfo2.bmiHeader,0,sizeof(BITMAPINFOHEADER));
bmInfo2.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); bmInfo2.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmInfo2.bmiHeader.biWidth = PALETTEWIDTH; bmInfo2.bmiHeader.biWidth = PALETTEWIDTH;
bmInfo2.bmiHeader.biHeight = PALETTEHEIGHT; bmInfo2.bmiHeader.biHeight = PALETTEHEIGHT;
bmInfo2.bmiHeader.biPlanes = 1; bmInfo2.bmiHeader.biPlanes = 1;
bmInfo2.bmiHeader.biBitCount = 24; bmInfo2.bmiHeader.biBitCount = 24;
//create memory dcs //create memory dcs
pDC = GetDC(hwndDlg); // GetDC(GetDlgItem(hwndDlg,GRP_PPUVIEW_TABLES)); pDC = GetDC(hwndDlg); // GetDC(GetDlgItem(hwndDlg,GRP_PPUVIEW_TABLES));
TmpDC0 = CreateCompatibleDC(pDC); //pattern table 0 TmpDC0 = CreateCompatibleDC(pDC); //pattern table 0
TmpDC1 = CreateCompatibleDC(pDC); //pattern table 1 TmpDC1 = CreateCompatibleDC(pDC); //pattern table 1
TmpDC2 = CreateCompatibleDC(pDC); //palettes TmpDC2 = CreateCompatibleDC(pDC); //palettes
//create bitmaps and select them into the memory dc's //create bitmaps and select them into the memory dc's
TmpBmp0 = CreateDIBSection(pDC,&bmInfo,DIB_RGB_COLORS,(void**)&pattern0,0,0); TmpBmp0 = CreateDIBSection(pDC,&bmInfo,DIB_RGB_COLORS,(void**)&pattern0,0,0);
TmpObj0 = SelectObject(TmpDC0,TmpBmp0); TmpObj0 = SelectObject(TmpDC0,TmpBmp0);
TmpBmp1 = CreateDIBSection(pDC,&bmInfo,DIB_RGB_COLORS,(void**)&pattern1,0,0); TmpBmp1 = CreateDIBSection(pDC,&bmInfo,DIB_RGB_COLORS,(void**)&pattern1,0,0);
TmpObj1 = SelectObject(TmpDC1,TmpBmp1); TmpObj1 = SelectObject(TmpDC1,TmpBmp1);
TmpBmp2 = CreateDIBSection(pDC,&bmInfo2,DIB_RGB_COLORS,(void**)&ppuv_palette,0,0); TmpBmp2 = CreateDIBSection(pDC,&bmInfo2,DIB_RGB_COLORS,(void**)&ppuv_palette,0,0);
TmpObj2 = SelectObject(TmpDC2,TmpBmp2); TmpObj2 = SelectObject(TmpDC2,TmpBmp2);
//Refresh Trackbar //Refresh Trackbar
SendDlgItemMessage(hwndDlg,CTL_PPUVIEW_TRACKBAR,TBM_SETRANGE,0,(LPARAM)MAKELONG(0,25)); SendDlgItemMessage(hwndDlg,CTL_PPUVIEW_TRACKBAR,TBM_SETRANGE,0,(LPARAM)MAKELONG(0,25));
SendDlgItemMessage(hwndDlg,CTL_PPUVIEW_TRACKBAR,TBM_SETPOS,1,PPUViewRefresh); SendDlgItemMessage(hwndDlg,CTL_PPUVIEW_TRACKBAR,TBM_SETPOS,1,PPUViewRefresh);
CheckDlgButton(hwndDlg, IDC_MASK_UNUSED_GRAPHICS, PPUView_maskUnusedGraphics ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_MASK_UNUSED_GRAPHICS, PPUView_maskUnusedGraphics ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_INVERT_THE_MASK, PPUView_invertTheMask ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_INVERT_THE_MASK, PPUView_invertTheMask ? BST_CHECKED : BST_UNCHECKED);
@ -320,83 +320,83 @@ BOOL CALLBACK PPUViewCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam
EnableWindow(GetDlgItem(hwndDlg, IDC_INVERT_THE_MASK), PPUView_maskUnusedGraphics ? true : false); EnableWindow(GetDlgItem(hwndDlg, IDC_INVERT_THE_MASK), PPUView_maskUnusedGraphics ? true : false);
//Set Text Limit //Set Text Limit
SendDlgItemMessage(hwndDlg,IDC_PPUVIEW_SCANLINE,EM_SETLIMITTEXT,3,0); SendDlgItemMessage(hwndDlg,IDC_PPUVIEW_SCANLINE,EM_SETLIMITTEXT,3,0);
//force redraw the first time the PPU Viewer is opened //force redraw the first time the PPU Viewer is opened
PPUViewSkip=100; PPUViewSkip=100;
//clear cache //clear cache
memset(palcache,0,32); memset(palcache,0,32);
memset(chrcache0,0,0x1000); memset(chrcache0,0,0x1000);
memset(chrcache1,0,0x1000); memset(chrcache1,0,0x1000);
memset(logcache0,0,0x1000); memset(logcache0,0,0x1000);
memset(logcache1,0,0x1000); memset(logcache1,0,0x1000);
PPUViewer=1; PPUViewer=1;
break; break;
} }
case WM_PAINT: case WM_PAINT:
PPUViewDoBlit(); PPUViewDoBlit();
break; break;
case WM_CLOSE: case WM_CLOSE:
case WM_QUIT: case WM_QUIT:
KillPPUView(); KillPPUView();
break; break;
case WM_MOVING: case WM_MOVING:
break; break;
case WM_MOVE: case WM_MOVE:
if (!IsIconic(hwndDlg)) { if (!IsIconic(hwndDlg)) {
GetWindowRect(hwndDlg,&wrect); GetWindowRect(hwndDlg,&wrect);
PPUViewPosX = wrect.left; PPUViewPosX = wrect.left;
PPUViewPosY = wrect.top; PPUViewPosY = wrect.top;
#ifdef WIN32 #ifdef WIN32
WindowBoundsCheckNoResize(PPUViewPosX,PPUViewPosY,wrect.right); WindowBoundsCheckNoResize(PPUViewPosX,PPUViewPosY,wrect.right);
#endif #endif
} }
break; break;
case WM_LBUTTONDBLCLK: case WM_LBUTTONDBLCLK:
case WM_LBUTTONDOWN: case WM_LBUTTONDOWN:
{ {
// redraw now // redraw now
PPUViewSkip = PPUViewRefresh; PPUViewSkip = PPUViewRefresh;
FCEUD_UpdatePPUView(-1, 0); FCEUD_UpdatePPUView(-1, 0);
PPUViewDoBlit(); PPUViewDoBlit();
break; break;
} }
case WM_RBUTTONDBLCLK: case WM_RBUTTONDBLCLK:
case WM_RBUTTONDOWN: case WM_RBUTTONDOWN:
{ {
mouse_x = GET_X_LPARAM(lParam); mouse_x = GET_X_LPARAM(lParam);
mouse_y = GET_Y_LPARAM(lParam); mouse_y = GET_Y_LPARAM(lParam);
if(((mouse_x >= patternDestX) && (mouse_x < (patternDestX + (PATTERNWIDTH * ZOOM)))) && (mouse_y >= patternDestY) && (mouse_y < (patternDestY + (PATTERNHEIGHT * ZOOM)))) if(((mouse_x >= patternDestX) && (mouse_x < (patternDestX + (PATTERNWIDTH * ZOOM)))) && (mouse_y >= patternDestY) && (mouse_y < (patternDestY + (PATTERNHEIGHT * ZOOM))))
{ {
if (pindex0 == 7) if (pindex0 == 7)
pindex0 = 0; pindex0 = 0;
else else
pindex0++; pindex0++;
} else if(((mouse_x >= patternDestX + (PATTERNWIDTH * ZOOM) + 1) && (mouse_x < (patternDestX + (PATTERNWIDTH * ZOOM) * 2 + 1))) && (mouse_y >= patternDestY) && (mouse_y < (patternDestY + (PATTERNHEIGHT * ZOOM)))) } else if(((mouse_x >= patternDestX + (PATTERNWIDTH * ZOOM) + 1) && (mouse_x < (patternDestX + (PATTERNWIDTH * ZOOM) * 2 + 1))) && (mouse_y >= patternDestY) && (mouse_y < (patternDestY + (PATTERNHEIGHT * ZOOM))))
{ {
if (pindex1 == 7) if (pindex1 == 7)
pindex1 = 0; pindex1 = 0;
else else
pindex1++; pindex1++;
} }
// redraw now // redraw now
PPUViewSkip = PPUViewRefresh; PPUViewSkip = PPUViewRefresh;
FCEUD_UpdatePPUView(-1, 0); FCEUD_UpdatePPUView(-1, 0);
PPUViewDoBlit(); PPUViewDoBlit();
break; break;
} }
case WM_MOUSEMOVE: case WM_MOUSEMOVE:
mouse_x = GET_X_LPARAM(lParam); mouse_x = GET_X_LPARAM(lParam);
mouse_y = GET_Y_LPARAM(lParam); mouse_y = GET_Y_LPARAM(lParam);
if (((mouse_x >= patternDestX) && (mouse_x < (patternDestX + (PATTERNWIDTH * ZOOM)))) && (mouse_y >= patternDestY) && (mouse_y < (patternDestY + (PATTERNHEIGHT * ZOOM)))) if (((mouse_x >= patternDestX) && (mouse_x < (patternDestX + (PATTERNWIDTH * ZOOM)))) && (mouse_y >= patternDestY) && (mouse_y < (patternDestY + (PATTERNHEIGHT * ZOOM))))
{ {
int A = (mouse_x - patternDestX) / (8 * ZOOM); int A = (mouse_x - patternDestX) / (8 * ZOOM);
int B = (mouse_y - patternDestY) / (8 * ZOOM); int B = (mouse_y - patternDestY) / (8 * ZOOM);
if(PPUView_sprite16Mode) { if(PPUView_sprite16Mode) {
A *= 2; A *= 2;
mouse_x = (A & 0xE) + (B & 1); mouse_x = (A & 0xE) + (B & 1);
mouse_y = (B & 0xE) + ((A >> 4) & 1); mouse_y = (B & 0xE) + ((A >> 4) & 1);
@ -404,15 +404,15 @@ BOOL CALLBACK PPUViewCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam
mouse_x = A; mouse_x = A;
mouse_y = B; mouse_y = B;
} }
sprintf(str,"Tile: $%X%X",mouse_y,mouse_x); sprintf(str,"Tile: $%X%X",mouse_y,mouse_x);
SetDlgItemText(hwndDlg,LBL_PPUVIEW_TILE1,str); SetDlgItemText(hwndDlg,LBL_PPUVIEW_TILE1,str);
SetDlgItemText(hwndDlg,LBL_PPUVIEW_TILE2,"Tile:"); SetDlgItemText(hwndDlg,LBL_PPUVIEW_TILE2,"Tile:");
SetDlgItemText(hwndDlg,LBL_PPUVIEW_PALETTES,"Palettes"); SetDlgItemText(hwndDlg,LBL_PPUVIEW_PALETTES,"Palettes");
} else if (((mouse_x >= patternDestX + (PATTERNWIDTH * ZOOM) + 1) && (mouse_x < (patternDestX + (PATTERNWIDTH * ZOOM) * 2 + 1))) && (mouse_y >= patternDestY) && (mouse_y < (patternDestY + (PATTERNHEIGHT * ZOOM)))) } else if (((mouse_x >= patternDestX + (PATTERNWIDTH * ZOOM) + 1) && (mouse_x < (patternDestX + (PATTERNWIDTH * ZOOM) * 2 + 1))) && (mouse_y >= patternDestY) && (mouse_y < (patternDestY + (PATTERNHEIGHT * ZOOM))))
{ {
int A = (mouse_x - (patternDestX + (PATTERNWIDTH * ZOOM) + 1)) / (8 * ZOOM); int A = (mouse_x - (patternDestX + (PATTERNWIDTH * ZOOM) + 1)) / (8 * ZOOM);
int B = (mouse_y - patternDestY) / (8 * ZOOM); int B = (mouse_y - patternDestY) / (8 * ZOOM);
if(PPUView_sprite16Mode) { if(PPUView_sprite16Mode) {
A *= 2; A *= 2;
mouse_x = (A & 0xE) + (B & 1); mouse_x = (A & 0xE) + (B & 1);
mouse_y = (B & 0xE) + ((A >> 4) & 1); mouse_y = (B & 0xE) + ((A >> 4) & 1);
@ -420,40 +420,40 @@ BOOL CALLBACK PPUViewCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam
mouse_x = A; mouse_x = A;
mouse_y = B; mouse_y = B;
} }
sprintf(str,"Tile: $%X%X",mouse_y,mouse_x); sprintf(str,"Tile: $%X%X",mouse_y,mouse_x);
SetDlgItemText(hwndDlg,LBL_PPUVIEW_TILE2,str); SetDlgItemText(hwndDlg,LBL_PPUVIEW_TILE2,str);
SetDlgItemText(hwndDlg,LBL_PPUVIEW_TILE1,"Tile:"); SetDlgItemText(hwndDlg,LBL_PPUVIEW_TILE1,"Tile:");
SetDlgItemText(hwndDlg,LBL_PPUVIEW_PALETTES,"Palettes"); SetDlgItemText(hwndDlg,LBL_PPUVIEW_PALETTES,"Palettes");
} }
else if(((mouse_x >= paletteDestX) && (mouse_x < (paletteDestX + PALETTEWIDTH))) && (mouse_y >= paletteDestY) && (mouse_y < (paletteDestY + PALETTEHEIGHT))) else if(((mouse_x >= paletteDestX) && (mouse_x < (paletteDestX + PALETTEWIDTH))) && (mouse_y >= paletteDestY) && (mouse_y < (paletteDestY + PALETTEHEIGHT)))
{ {
mouse_x = (mouse_x - paletteDestX) / 32; mouse_x = (mouse_x - paletteDestX) / 32;
mouse_y = (mouse_y - paletteDestY) / 32; mouse_y = (mouse_y - paletteDestY) / 32;
sprintf(str,"Palette: $%02X",palcache[(mouse_y<<4)|mouse_x]); sprintf(str,"Palette: $%02X",palcache[(mouse_y<<4)|mouse_x]);
SetDlgItemText(hwndDlg,LBL_PPUVIEW_TILE1,"Tile:"); SetDlgItemText(hwndDlg,LBL_PPUVIEW_TILE1,"Tile:");
SetDlgItemText(hwndDlg,LBL_PPUVIEW_TILE2,"Tile:"); SetDlgItemText(hwndDlg,LBL_PPUVIEW_TILE2,"Tile:");
SetDlgItemText(hwndDlg,LBL_PPUVIEW_PALETTES,str); SetDlgItemText(hwndDlg,LBL_PPUVIEW_PALETTES,str);
} else } else
{ {
SetDlgItemText(hwndDlg,LBL_PPUVIEW_TILE1,"Tile:"); SetDlgItemText(hwndDlg,LBL_PPUVIEW_TILE1,"Tile:");
SetDlgItemText(hwndDlg,LBL_PPUVIEW_TILE2,"Tile:"); SetDlgItemText(hwndDlg,LBL_PPUVIEW_TILE2,"Tile:");
SetDlgItemText(hwndDlg,LBL_PPUVIEW_PALETTES,"Palettes"); SetDlgItemText(hwndDlg,LBL_PPUVIEW_PALETTES,"Palettes");
} }
break; break;
case WM_NCACTIVATE: case WM_NCACTIVATE:
sprintf(str,"%d",PPUViewScanline); sprintf(str,"%d",PPUViewScanline);
SetDlgItemText(hwndDlg,IDC_PPUVIEW_SCANLINE,str); SetDlgItemText(hwndDlg,IDC_PPUVIEW_SCANLINE,str);
break; break;
case WM_COMMAND: case WM_COMMAND:
{ {
switch(HIWORD(wParam)) switch(HIWORD(wParam))
{ {
case EN_UPDATE: case EN_UPDATE:
{ {
GetDlgItemText(hwndDlg,IDC_PPUVIEW_SCANLINE,str,4); GetDlgItemText(hwndDlg,IDC_PPUVIEW_SCANLINE,str,4);
sscanf(str,"%d",&PPUViewScanline); sscanf(str,"%d",&PPUViewScanline);
if(PPUViewScanline > 239) PPUViewScanline = 239; if(PPUViewScanline > 239) PPUViewScanline = 239;
break; break;
} }
case BN_CLICKED: case BN_CLICKED:
{ {
@ -492,33 +492,33 @@ BOOL CALLBACK PPUViewCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam
} }
} }
} }
} }
break; break;
} }
case WM_HSCROLL: case WM_HSCROLL:
if(lParam) if(lParam)
{ {
//refresh trackbar //refresh trackbar
PPUViewRefresh = SendDlgItemMessage(hwndDlg,CTL_PPUVIEW_TRACKBAR,TBM_GETPOS,0,0); PPUViewRefresh = SendDlgItemMessage(hwndDlg,CTL_PPUVIEW_TRACKBAR,TBM_GETPOS,0,0);
} }
break; break;
} }
return FALSE; return FALSE;
} }
void DoPPUView() void DoPPUView()
{ {
if(!GameInfo) { if(!GameInfo) {
FCEUD_PrintError("You must have a game loaded before you can use the PPU Viewer."); FCEUD_PrintError("You must have a game loaded before you can use the PPU Viewer.");
return; return;
} }
if(GameInfo->type==GIT_NSF) { if(GameInfo->type==GIT_NSF) {
FCEUD_PrintError("Sorry, you can't use the PPU Viewer with NSFs."); FCEUD_PrintError("Sorry, you can't use the PPU Viewer with NSFs.");
return; return;
} }
if(!hPPUView) hPPUView = CreateDialog(fceu_hInstance,"PPUVIEW",NULL,PPUViewCallB); if(!hPPUView) hPPUView = CreateDialog(fceu_hInstance,"PPUVIEW",NULL,PPUViewCallB);
if(hPPUView) if(hPPUView)
{ {
//SetWindowPos(hPPUView,HWND_TOP,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE|SWP_NOOWNERZORDER); //SetWindowPos(hPPUView,HWND_TOP,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE|SWP_NOOWNERZORDER);
ShowWindow(hPPUView, SW_SHOWNORMAL); ShowWindow(hPPUView, SW_SHOWNORMAL);
@ -527,5 +527,5 @@ void DoPPUView()
PPUViewSkip = PPUViewRefresh; PPUViewSkip = PPUViewRefresh;
FCEUD_UpdatePPUView(-1,1); FCEUD_UpdatePPUView(-1,1);
PPUViewDoBlit(); PPUViewDoBlit();
} }
} }