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