ppuview.cpp replacing inconsistent spaces vs tabs
This commit is contained in:
parent
b0a91f5b0b
commit
1de49661ee
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue