From 849e9efe8d0a9a578a33e6b6beafb55b01a22a2b Mon Sep 17 00:00:00 2001 From: ansstuff Date: Mon, 6 Aug 2012 15:47:07 +0000 Subject: [PATCH] * Debugger: slightly bigger font * Tracer: added "Use Stack Pointer for lines tabbing" option --- src/drivers/win/config.cpp | 2 + src/drivers/win/debugger.cpp | 4 +- src/drivers/win/res.rc | 42 +++-- src/drivers/win/resource.h | 2 + src/drivers/win/tracer.cpp | 40 +++- src/drivers/win/tracer.h | 4 + vc/vc10_fceux.vcxproj | 3 - vc/vc10_fceux.vcxproj.filters | 343 +++++++++++++++++++++++++--------- 8 files changed, 319 insertions(+), 121 deletions(-) diff --git a/src/drivers/win/config.cpp b/src/drivers/win/config.cpp index 056408ad..3ccb3da9 100644 --- a/src/drivers/win/config.cpp +++ b/src/drivers/win/config.cpp @@ -87,6 +87,7 @@ extern int PPUViewPosX,PPUViewPosY; extern int MainWindow_wndx, MainWindow_wndy; extern int MemWatch_wndx, MemWatch_wndy; extern int Monitor_wndx, Monitor_wndy; +extern bool tracer_lines_tabbing; extern int Tracer_wndx, Tracer_wndy; extern int CDLogger_wndx, CDLogger_wndy; extern int GGConv_wndx, GGConv_wndy; @@ -279,6 +280,7 @@ static CFGSTRUCT fceuconfig[] = { AC(MemWatch_wndy), AC(Monitor_wndx), AC(Monitor_wndy), + AC(tracer_lines_tabbing), AC(Tracer_wndx), AC(Tracer_wndy), AC(CDLogger_wndx), diff --git a/src/drivers/win/debugger.cpp b/src/drivers/win/debugger.cpp index 9114c695..2a5b521d 100644 --- a/src/drivers/win/debugger.cpp +++ b/src/drivers/win/debugger.cpp @@ -1739,12 +1739,12 @@ DebugSystem* debugSystem; DebugSystem::DebugSystem() { - hFixedFont = CreateFont(13,8, /*Height,Width*/ + hFixedFont = CreateFont(14, 8, /*Height,Width*/ 0,0, /*escapement,orientation*/ FW_REGULAR,FALSE,FALSE,FALSE, /*weight, italic, underline, strikeout*/ ANSI_CHARSET,OUT_DEVICE_PRECIS,CLIP_MASK, /*charset, precision, clipping*/ DEFAULT_QUALITY, DEFAULT_PITCH, /*quality, and pitch*/ - "Courier"); /*font name*/ + "Courier New"); /*font name*/ HDC hdc = GetDC(GetDesktopWindow()); HGDIOBJ old = SelectObject(hdc,hFixedFont); diff --git a/src/drivers/win/res.rc b/src/drivers/win/res.rc index 4ffe0891..8e46c99b 100644 --- a/src/drivers/win/res.rc +++ b/src/drivers/win/res.rc @@ -1108,9 +1108,9 @@ BEGIN PUSHBUTTON "Seek PC",IDC_DEBUGGER_SEEK_PC,391,71,39,14 PUSHBUTTON "Seek To:",IDC_DEBUGGER_SEEK_TO,350,54,38,14 EDITTEXT IDC_DEBUGGER_VAL_PCSEEK,391,55,38,12,ES_UPPERCASE | ES_WANTRETURN - GROUPBOX "",IDC_DEBUGGER_VAL_S2,349,174,50,53,WS_TABSTOP EDITTEXT IDC_DEBUGGER_VAL_SLINE,383,203,14,11,ES_UPPERCASE | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER,WS_EX_TRANSPARENT EDITTEXT IDC_DEBUGGER_VAL_PPUPIXEL,372,216,14,11,ES_UPPERCASE | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER,WS_EX_TRANSPARENT + GROUPBOX "",IDC_DEBUGGER_VAL_S2,349,174,50,53,WS_TABSTOP EDITTEXT IDC_DEBUGGER_VAL_CYCLES_COUNT,442,178,46,11,ES_UPPERCASE | ES_NOHIDESEL | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER,WS_EX_TRANSPARENT EDITTEXT IDC_DEBUGGER_VAL_CYCLES_COUNT2,488,178,51,11,ES_UPPERCASE | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER,WS_EX_TRANSPARENT EDITTEXT IDC_DEBUGGER_VAL_INSTRUCTIONS_COUNT,441,204,46,11,ES_UPPERCASE | ES_NOHIDESEL | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER,WS_EX_TRANSPARENT @@ -1149,32 +1149,34 @@ BEGIN EDITTEXT IDC_DEBUGGER_INSTRUCTIONS_EXCEED,483,216,50,12,ES_UPPERCASE | ES_NOHIDESEL | ES_WANTRETURN | ES_NUMBER END -TRACER DIALOGEX 65527, 65513, 423, 319 +TRACER DIALOGEX 65527, 65513, 383, 308 STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Trace Logger" FONT 8, "MS Sans Serif", 400, 0, 0x0 BEGIN - SCROLLBAR IDC_SCRL_TRACER_LOG,413,2,10,172,SBS_VERT - EDITTEXT IDC_TRACER_LOG,3,1,403,172,ES_MULTILINE | ES_READONLY - CONTROL "Log last",IDC_RADIO_LOG_LAST,"Button",BS_AUTORADIOBUTTON | BS_LEFT,5,195,38,10 - CONTROL "Log to File",IDC_RADIO_LOG_TO_FILE,"Button",BS_AUTORADIOBUTTON | BS_LEFT,5,215,49,10 - LTEXT "Instructions to this window",106,93,196,93,13 - PUSHBUTTON "Start Logging",IDC_BTN_START_STOP_LOGGING,171,177,67,14,BS_CENTER | BS_VCENTER - COMBOBOX IDC_TRACER_LOG_SIZE,44,194,48,127,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Extra Log Options",109,3,234,402,35 + SCROLLBAR IDC_SCRL_TRACER_LOG,369,4,10,169,SBS_VERT + EDITTEXT IDC_TRACER_LOG,4,4,364,169,ES_MULTILINE | ES_NOHIDESEL | ES_READONLY | WS_HSCROLL + CONTROL "Log last",IDC_RADIO_LOG_LAST,"Button",BS_AUTORADIOBUTTON | BS_LEFT,7,195,38,10 + CONTROL "Log to File",IDC_RADIO_LOG_TO_FILE,"Button",BS_AUTORADIOBUTTON | BS_LEFT,7,214,49,10 + LTEXT "instructions to this window",106,98,195,87,10 + PUSHBUTTON "Start Logging",IDC_BTN_START_STOP_LOGGING,171,176,67,14,BS_CENTER | BS_VCENTER + COMBOBOX IDC_TRACER_LOG_SIZE,47,193,48,127,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Extra Log Options",109,3,232,376,29 CONTROL "Log state of A, X, Y and S registers",IDC_CHECK_LOG_REGISTERS, - "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,9,246,126,10 + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,9,243,126,10 CONTROL "Log Processor Status Flags",IDC_CHECK_LOG_PROCESSOR_STATUS, - "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,139,246,103,10 - PUSHBUTTON "Browse...",IDC_BTN_LOG_BROWSE,55,213,43,14,BS_CENTER | BS_VCENTER - LTEXT "",IDC_TRACER_STATS,123,216,153,14 + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,138,243,102,10 + PUSHBUTTON "Browse...",IDC_BTN_LOG_BROWSE,56,212,45,14,BS_CENTER | BS_VCENTER + LTEXT "",IDC_TRACER_STATS,123,213,159,14 CONTROL "Only log newly mapped code",IDC_CHECK_LOG_NEW_INSTRUCTIONS, - "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,9,284,107,10 - GROUPBOX "Extra Log Options that work with the Code/Data Logger",113,3,272,402,40 + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,9,276,107,10 + GROUPBOX "Extra Log Options that work with the Code/Data Logger",113,3,264,376,40 CONTROL "Only log code that accesses newly mapped data",IDC_CHECK_LOG_NEW_DATA, - "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,9,297,169,10 + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,9,289,169,10 CONTROL "Automatically update Window While logging",IDC_CHECK_LOG_UPDATE_WINDOW, - "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,181,196,158,10 + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,192,195,156,10 + CONTROL "Use Stack Pointer for lines tabbing",IDC_CHECK_LINES_TABBING, + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,247,243,126,10 END ADDBP DIALOGEX 66, 83, 196, 130 @@ -1967,6 +1969,10 @@ BEGIN BEGIN END + "TRACER", DIALOG + BEGIN + END + "ADDBP", DIALOG BEGIN RIGHTMARGIN, 185 diff --git a/src/drivers/win/resource.h b/src/drivers/win/resource.h index ca08ab9e..c1fc472b 100644 --- a/src/drivers/win/resource.h +++ b/src/drivers/win/resource.h @@ -139,6 +139,8 @@ #define CHEAT_CONTEXT_TOGGLECHEAT 117 #define IDC_DEBUGGER_RESET_ON_STEP 117 #define IDC_DEBUGGER_BREAK_ON_CYCLES 117 +#define IDC_CHECK_LOG_PROCESSOR_STATUS2 117 +#define IDC_CHECK_LINES_TABBING 117 #define CHEAT_CONTEXT_POKECHEATVALUE 118 #define IDC_DEBUGGER_RESET_ON_BP0 118 #define CHEAT_CONTEXT_GOTOINHEXEDITOR 119 diff --git a/src/drivers/win/tracer.cpp b/src/drivers/win/tracer.cpp index df0f1321..db708f6b 100644 --- a/src/drivers/win/tracer.cpp +++ b/src/drivers/win/tracer.cpp @@ -60,6 +60,8 @@ char **tracelogbuf; int tracelogbufsize, tracelogbufpos; int tracelogbufusedsize; +bool tracer_lines_tabbing = true; + FILE *LOG_FP; int Tracer_wndx=0, Tracer_wndy=0; @@ -123,11 +125,15 @@ BOOL CALLBACK TracerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) SetDlgItemText(hwndDlg, IDC_TRACER_LOG, "Welcome to the Trace Logger."); logtofile = 0; - if(logging_options == -1){ + + CheckDlgButton(hwndDlg, IDC_CHECK_LINES_TABBING, tracer_lines_tabbing ? BST_CHECKED : BST_UNCHECKED); + if(logging_options == -1) + { logging_options = (LOG_REGISTERS | LOG_PROCESSOR_STATUS); CheckDlgButton(hwndDlg, IDC_CHECK_LOG_REGISTERS, BST_CHECKED); CheckDlgButton(hwndDlg, IDC_CHECK_LOG_PROCESSOR_STATUS, BST_CHECKED); - } else{ + } else + { if(logging_options&LOG_REGISTERS)CheckDlgButton(hwndDlg, IDC_CHECK_LOG_REGISTERS, BST_CHECKED); if(logging_options&LOG_PROCESSOR_STATUS)CheckDlgButton(hwndDlg, IDC_CHECK_LOG_PROCESSOR_STATUS, BST_CHECKED); } @@ -168,7 +174,10 @@ BOOL CALLBACK TracerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) break; case IDC_CHECK_LOG_PROCESSOR_STATUS: logging_options ^= LOG_PROCESSOR_STATUS; - break; + break; + case IDC_CHECK_LINES_TABBING: + tracer_lines_tabbing ^= 1; + break; case IDC_CHECK_LOG_NEW_INSTRUCTIONS: logging_options ^= LOG_NEW_INSTRUCTIONS; if(logging && (!PromptForCDLogger())){ @@ -264,10 +273,10 @@ void BeginLoggingSequence(void){ tracelogbufsize = j = log_optn_intlst[SendDlgItemMessage(hTracer,IDC_TRACER_LOG_SIZE,CB_GETCURSEL,0,0)]; tracelogbuf = (char**)malloc(j*sizeof(char *)); //mbg merge 7/19/06 added cast for(i = 0;i < j;i++){ - tracelogbuf[i] = (char*)malloc(80); //mbg merge 7/19/06 added cast + tracelogbuf[i] = (char*)malloc(LOG_LINE_MAX_LEN); //mbg merge 7/19/06 added cast tracelogbuf[i][0] = 0; } - sprintf(str2,"%d Bytes Allocated...\r\n",j*80); + sprintf(str2, "%d Bytes Allocated...\r\n", j * LOG_LINE_MAX_LEN); strcat(str,str2); strcat(str,pauseMessage.c_str()); SetDlgItemText(hTracer, IDC_TRACER_LOG, str); @@ -320,8 +329,8 @@ done: void FCEUD_TraceInstruction(){ if(!logging) return; - char address[7], data[11], disassembly[28], axystate[21], procstatus[12]; - char str[96]; + char address[7], data[11], disassembly[LOG_DISASSEMBLY_MAX_LEN], axystate[21], procstatus[12]; + char str[LOG_LINE_MAX_LEN]; int addr=X.PC; int size, j; uint8 opcode[3], tmp; @@ -379,8 +388,8 @@ void FCEUD_TraceInstruction(){ } //stretch the disassembly string out if we have to output other stuff. if(logging_options & (LOG_REGISTERS|LOG_PROCESSOR_STATUS)){ - for(j = strlen(disassembly);j < 27;j++)disassembly[j] = ' '; - disassembly[27] = 0; + for(j = strlen(disassembly);j < LOG_DISASSEMBLY_MAX_LEN - 1;j++)disassembly[j] = ' '; + disassembly[LOG_DISASSEMBLY_MAX_LEN - 1] = 0; } if(logging_options & LOG_REGISTERS){ @@ -401,6 +410,16 @@ void FCEUD_TraceInstruction(){ ); } + if (tracer_lines_tabbing) + { + // add spaces at the beginning of the line according to stack pointer + int spaces = 0xFF - X.S; + if (spaces > LOG_TABS_MAX_LEN) + spaces = LOG_TABS_MAX_LEN; + for (int i = 0; i < spaces; i++) + str[i] = ' '; + str[spaces] = 0; + } strcat(str,address); strcat(str,data); @@ -421,7 +440,8 @@ void OutputLogLine(char *str){ fflush(LOG_FP); }else{ strcat(str,"\r\n"); - if(strlen(str) < 80)strcpy(tracelogbuf[tracelogbufpos],str); + if(strlen(str) < LOG_LINE_MAX_LEN) + strcpy(tracelogbuf[tracelogbufpos],str); tracelogbufpos++; if(tracelogbufusedsize < tracelogbufsize)tracelogbufusedsize++; tracelogbufpos%=tracelogbufsize; diff --git a/src/drivers/win/tracer.h b/src/drivers/win/tracer.h index a4e81826..03ca9e65 100644 --- a/src/drivers/win/tracer.h +++ b/src/drivers/win/tracer.h @@ -4,6 +4,10 @@ #define LOG_NEW_INSTRUCTIONS 4 #define LOG_NEW_DATA 8 +#define LOG_LINE_MAX_LEN 120 +#define LOG_TABS_MAX_LEN 40 +#define LOG_DISASSEMBLY_MAX_LEN 30 + extern HWND hTracer; extern int log_update_window; extern volatile int logtofile, logging; diff --git a/vc/vc10_fceux.vcxproj b/vc/vc10_fceux.vcxproj index 17221bc0..f550f2e3 100644 --- a/vc/vc10_fceux.vcxproj +++ b/vc/vc10_fceux.vcxproj @@ -872,10 +872,7 @@ - - - diff --git a/vc/vc10_fceux.vcxproj.filters b/vc/vc10_fceux.vcxproj.filters index e01fc43a..d3139089 100644 --- a/vc/vc10_fceux.vcxproj.filters +++ b/vc/vc10_fceux.vcxproj.filters @@ -1540,94 +1540,261 @@ pix - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res + + + drivers\win\res +