* Tracer: do not clear window log when stopping the logging
* Tracer: a change in window layout * PPU Viewer: minor change in window layout
This commit is contained in:
parent
e2ffb40fd5
commit
87ae74a398
|
@ -47,14 +47,14 @@ int mouse_x, mouse_y;
|
|||
#define PATTERNHEIGHT 128
|
||||
#define PATTERNBITWIDTH PATTERNWIDTH*3
|
||||
#define PATTERNDESTX_BASE 7
|
||||
#define PATTERNDESTY_BASE 16
|
||||
#define PATTERNDESTY_BASE 18
|
||||
#define ZOOM 2
|
||||
|
||||
#define PALETTEWIDTH 32*4*4
|
||||
#define PALETTEHEIGHT 32*2
|
||||
#define PALETTEBITWIDTH PALETTEWIDTH*3
|
||||
#define PALETTEDESTX_BASE 7
|
||||
#define PALETTEDESTY_BASE 16
|
||||
#define PALETTEDESTY_BASE 18
|
||||
|
||||
#define TBM_SETPOS (WM_USER+5)
|
||||
#define TBM_SETRANGE (WM_USER+6)
|
||||
|
|
|
@ -1177,14 +1177,14 @@ FONT 8, "MS Sans Serif", 400, 0, 0x0
|
|||
BEGIN
|
||||
EDITTEXT IDC_TRACER_LOG,3,3,300,44,ES_MULTILINE | ES_NOHIDESEL | ES_READONLY | WS_HSCROLL
|
||||
SCROLLBAR IDC_SCRL_TRACER_LOG,303,3,11,44,SBS_VERT
|
||||
CONTROL "Log last",IDC_RADIO_LOG_LAST,"Button",BS_AUTORADIOBUTTON | BS_LEFT,9,54,38,10
|
||||
COMBOBOX IDC_TRACER_LOG_SIZE,50,53,47,13,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "lines to this window",IDC_TEXT_LINES_TO_THIS_WINDOW,100,55,62,10
|
||||
DEFPUSHBUTTON "Start Logging",IDC_BTN_START_STOP_LOGGING,243,51,71,15,BS_CENTER | BS_VCENTER
|
||||
CONTROL "Log to File",IDC_RADIO_LOG_TO_FILE,"Button",BS_AUTORADIOBUTTON | BS_LEFT,9,71,46,10
|
||||
PUSHBUTTON "Browse...",IDC_BTN_LOG_BROWSE,57,69,40,14,BS_CENTER | BS_VCENTER
|
||||
CONTROL "Log last",IDC_RADIO_LOG_LAST,"Button",BS_AUTORADIOBUTTON | BS_LEFT,9,53,38,10
|
||||
COMBOBOX IDC_TRACER_LOG_SIZE,49,52,46,13,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "lines",IDC_TEXT_LINES_TO_THIS_WINDOW,97,54,17,10
|
||||
DEFPUSHBUTTON "Start Logging",IDC_BTN_START_STOP_LOGGING,135,51,49,15,BS_CENTER | BS_VCENTER
|
||||
CONTROL "Log to File",IDC_RADIO_LOG_TO_FILE,"Button",BS_AUTORADIOBUTTON | BS_LEFT,9,70,46,10
|
||||
PUSHBUTTON "Browse...",IDC_BTN_LOG_BROWSE,56,68,39,14,BS_CENTER | BS_VCENTER
|
||||
CONTROL "Automatically update this window while logging",IDC_CHECK_LOG_UPDATE_WINDOW,
|
||||
"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,113,71,156,10
|
||||
"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,113,70,156,10
|
||||
GROUPBOX "Log Options",IDC_GROUP_LOG_OPTIONS,3,85,311,65
|
||||
CONTROL "Log state of registers",IDC_CHECK_LOG_REGISTERS,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,8,96,99,10
|
||||
CONTROL "Log Processor status flags",IDC_CHECK_LOG_PROCESSOR_STATUS,
|
||||
|
@ -1628,18 +1628,18 @@ STYLE DS_SETFONT | DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_C
|
|||
CAPTION "PPU Viewer"
|
||||
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
||||
BEGIN
|
||||
GROUPBOX "Pattern Tables",GRP_PPUVIEW_TABLES,2,-1,351,204,WS_TABSTOP
|
||||
LTEXT "Tile:",LBL_PPUVIEW_TILE1,6,169,50,9
|
||||
LTEXT "Tile:",LBL_PPUVIEW_TILE2,177,169,50,9
|
||||
CONTROL "",CTL_PPUVIEW_TRACKBAR,"msctls_trackbar32",WS_TABSTOP,227,178,106,11
|
||||
LTEXT "Refresh: More",-1,177,178,50,9
|
||||
LTEXT "Less",-1,334,178,18,10
|
||||
GROUPBOX "Palettes",LBL_PPUVIEW_PALETTES,2,204,351,53,WS_TABSTOP
|
||||
LTEXT "Display on scanline:",-1,6,178,65,9
|
||||
EDITTEXT IDC_PPUVIEW_SCANLINE,72,176,27,12
|
||||
GROUPBOX "Pattern Tables",GRP_PPUVIEW_TABLES,2,-1,351,205,WS_TABSTOP
|
||||
LTEXT "Tile:",LBL_PPUVIEW_TILE1,6,170,50,9
|
||||
LTEXT "Tile:",LBL_PPUVIEW_TILE2,177,170,50,9
|
||||
CONTROL "",CTL_PPUVIEW_TRACKBAR,"msctls_trackbar32",WS_TABSTOP,227,179,106,11
|
||||
LTEXT "Refresh: More",-1,177,179,50,9
|
||||
LTEXT "Less",-1,334,179,18,10
|
||||
GROUPBOX "Palettes",LBL_PPUVIEW_PALETTES,2,204,351,54,WS_TABSTOP
|
||||
LTEXT "Display on scanline:",-1,6,179,65,9
|
||||
EDITTEXT IDC_PPUVIEW_SCANLINE,72,177,27,12
|
||||
CONTROL "Mask unused graphics (needs Code/Data Logger)",IDC_MASK_UNUSED_GRAPHICS,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,189,169,10
|
||||
CONTROL "Invert the mask",IDC_INVERT_THE_MASK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,177,189,61,10
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,190,169,10
|
||||
CONTROL "Invert the mask",IDC_INVERT_THE_MASK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,177,190,61,10
|
||||
END
|
||||
|
||||
ARCHIVECHOOSERDIALOG DIALOGEX 0, 0, 265, 159
|
||||
|
|
|
@ -100,7 +100,6 @@ KnownWindowItemPosData tracerKnownWindowItems[] = {
|
|||
IDC_RADIO_LOG_LAST, WINDOW_ITEM_RESIZE_TYPE_LEFT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_LEFT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED,
|
||||
IDC_TRACER_LOG_SIZE, WINDOW_ITEM_RESIZE_TYPE_LEFT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_LEFT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED,
|
||||
IDC_TEXT_LINES_TO_THIS_WINDOW, WINDOW_ITEM_RESIZE_TYPE_LEFT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_LEFT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED,
|
||||
IDC_BTN_START_STOP_LOGGING, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED,
|
||||
IDC_RADIO_LOG_TO_FILE, WINDOW_ITEM_RESIZE_TYPE_LEFT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_LEFT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED,
|
||||
IDC_BTN_LOG_BROWSE, WINDOW_ITEM_RESIZE_TYPE_LEFT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_LEFT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED,
|
||||
};
|
||||
|
@ -113,10 +112,10 @@ int oldcodecount, olddatacount;
|
|||
|
||||
SCROLLINFO tracesi;
|
||||
|
||||
char **tracelogbuf;
|
||||
char **tracelogbuf = 0;
|
||||
std::vector<std::vector<uint16>> tracelogbufAddressesLog;
|
||||
int tracelogbufsize, tracelogbufpos;
|
||||
int tracelogbufusedsize;
|
||||
int tracelogbufsize = 0, tracelogbufpos = 0;
|
||||
int tracelogbufusedsize = 0;
|
||||
|
||||
char str_axystate[LOG_AXYSTATE_MAX_LEN] = {0}, str_procstatus[LOG_PROCSTATUS_MAX_LEN] = {0};
|
||||
char str_tabs[LOG_TABS_MASK+1] = {0}, str_address[LOG_ADDRESS_MAX_LEN] = {0}, str_data[LOG_DATA_MAX_LEN] = {0}, str_disassembly[LOG_DISASSEMBLY_MAX_LEN] = {0};
|
||||
|
@ -139,8 +138,10 @@ WNDPROC IDC_TRACER_LOG_oldWndProc = 0;
|
|||
|
||||
void ShowLogDirDialog(void);
|
||||
void BeginLoggingSequence(void);
|
||||
void EndLoggingSequence(void);
|
||||
void ClearTraceLogBuf();
|
||||
void EndLoggingSequence();
|
||||
void UpdateLogWindow(void);
|
||||
void ScrollLogWindowToLastLine();
|
||||
void UpdateLogText(void);
|
||||
void EnableTracerMenuItems(void);
|
||||
int PromptForCDLogger(void);
|
||||
|
@ -474,7 +475,7 @@ BOOL CALLBACK TracerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
if (tracesi.nPos < tracesi.nMin)
|
||||
tracesi.nPos = tracesi.nMin;
|
||||
SetScrollInfo(GetDlgItem(hTracer, IDC_SCRL_TRACER_LOG), SB_CTL, &tracesi, TRUE);
|
||||
if (logging && !logtofile)
|
||||
if (!logtofile)
|
||||
UpdateLogText();
|
||||
}
|
||||
}
|
||||
|
@ -506,8 +507,9 @@ BOOL CALLBACK TracerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
}
|
||||
case WM_CLOSE:
|
||||
case WM_QUIT:
|
||||
if(logging)
|
||||
if (logging)
|
||||
EndLoggingSequence();
|
||||
ClearTraceLogBuf();
|
||||
hTracer = 0;
|
||||
EndDialog(hwndDlg,0);
|
||||
break;
|
||||
|
@ -519,8 +521,10 @@ BOOL CALLBACK TracerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
switch(LOWORD(wParam))
|
||||
{
|
||||
case IDC_BTN_START_STOP_LOGGING:
|
||||
if(logging)EndLoggingSequence();
|
||||
else BeginLoggingSequence();
|
||||
if (logging)
|
||||
EndLoggingSequence();
|
||||
else
|
||||
BeginLoggingSequence();
|
||||
EnableTracerMenuItems();
|
||||
break;
|
||||
case IDC_RADIO_LOG_LAST:
|
||||
|
@ -613,7 +617,7 @@ BOOL CALLBACK TracerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
{
|
||||
if (lParam)
|
||||
{
|
||||
if ((!logging) || logtofile)
|
||||
if (!tracelogbuf)
|
||||
break;
|
||||
|
||||
if (!FCEUI_EmulationPaused() && !log_update_window)
|
||||
|
@ -682,6 +686,8 @@ void BeginLoggingSequence(void)
|
|||
fprintf(LOG_FP,FCEU_NAME_AND_VERSION" - Trace Log File\n"); //mbg merge 7/19/06 changed string
|
||||
} else
|
||||
{
|
||||
ClearTraceLogBuf();
|
||||
// create new log
|
||||
log_lines_option = SendDlgItemMessage(hTracer, IDC_TRACER_LOG_SIZE, CB_GETCURSEL, 0, 0);
|
||||
if (log_lines_option == CB_ERR)
|
||||
log_lines_option = 0;
|
||||
|
@ -726,7 +732,8 @@ void FCEUD_TraceInstruction(uint8 *opcode, int size)
|
|||
|
||||
// if instruction executed from the RAM, skip this, log all instead
|
||||
// TODO: loops folding mame-lyke style
|
||||
if(GetPRGAddress(addr) != -1) {
|
||||
if (GetPRGAddress(addr) != -1)
|
||||
{
|
||||
if(((logging_options & LOG_NEW_INSTRUCTIONS) && (oldcodecount != codecount)) ||
|
||||
((logging_options & LOG_NEW_DATA) && (olddatacount != datacount)))
|
||||
{
|
||||
|
@ -974,7 +981,22 @@ void OutputLogLine(const char *str, std::vector<uint16>* addressesLog, bool add_
|
|||
}
|
||||
}
|
||||
|
||||
void EndLoggingSequence(void)
|
||||
void ClearTraceLogBuf(void)
|
||||
{
|
||||
if (tracelogbuf)
|
||||
{
|
||||
int j = tracelogbufsize;
|
||||
for(int i = 0; i < j;i++)
|
||||
{
|
||||
free(tracelogbuf[i]);
|
||||
}
|
||||
free(tracelogbuf);
|
||||
tracelogbuf = 0;
|
||||
}
|
||||
tracelogbufAddressesLog.resize(0);
|
||||
}
|
||||
|
||||
void EndLoggingSequence()
|
||||
{
|
||||
int j, i;
|
||||
if (logtofile)
|
||||
|
@ -982,19 +1004,15 @@ void EndLoggingSequence(void)
|
|||
fclose(LOG_FP);
|
||||
} else
|
||||
{
|
||||
j = tracelogbufsize;
|
||||
for(i = 0;i < j;i++)
|
||||
{
|
||||
free(tracelogbuf[i]);
|
||||
}
|
||||
free(tracelogbuf);
|
||||
tracelogbufAddressesLog.resize(0);
|
||||
|
||||
SetDlgItemText(hTracer, IDC_TRACER_LOG, "Welcome to the Trace Logger.");
|
||||
strcpy(str_result, "Logging finished.");
|
||||
OutputLogLine(str_result);
|
||||
ScrollLogWindowToLastLine();
|
||||
UpdateLogText();
|
||||
// do not clear the log window
|
||||
// ClearTraceLogBuf();
|
||||
}
|
||||
logging = 0;
|
||||
SetDlgItemText(hTracer, IDC_BTN_START_STOP_LOGGING,"Start Logging");
|
||||
|
||||
}
|
||||
|
||||
void UpdateLogWindow(void)
|
||||
|
@ -1013,14 +1031,7 @@ void UpdateLogWindow(void)
|
|||
}
|
||||
log_old_emu_paused = emu_paused;
|
||||
|
||||
tracesi.cbSize = sizeof(SCROLLINFO);
|
||||
tracesi.fMask = SIF_ALL;
|
||||
tracesi.nMin = 0;
|
||||
tracesi.nMax = tracelogbufusedsize;
|
||||
tracesi.nPos = tracesi.nMax - tracesi.nPage;
|
||||
if (tracesi.nPos < tracesi.nMin)
|
||||
tracesi.nPos = tracesi.nMin;
|
||||
SetScrollInfo(GetDlgItem(hTracer,IDC_SCRL_TRACER_LOG),SB_CTL,&tracesi,TRUE);
|
||||
ScrollLogWindowToLastLine();
|
||||
|
||||
if (logging_options & LOG_SYMBOLIC)
|
||||
loadNameFiles();
|
||||
|
@ -1030,12 +1041,24 @@ void UpdateLogWindow(void)
|
|||
return;
|
||||
}
|
||||
|
||||
void ScrollLogWindowToLastLine()
|
||||
{
|
||||
tracesi.cbSize = sizeof(SCROLLINFO);
|
||||
tracesi.fMask = SIF_ALL;
|
||||
tracesi.nMin = 0;
|
||||
tracesi.nMax = tracelogbufusedsize;
|
||||
tracesi.nPos = tracesi.nMax - tracesi.nPage;
|
||||
if (tracesi.nPos < tracesi.nMin)
|
||||
tracesi.nPos = tracesi.nMin;
|
||||
SetScrollInfo(GetDlgItem(hTracer,IDC_SCRL_TRACER_LOG),SB_CTL,&tracesi,TRUE);
|
||||
}
|
||||
|
||||
void UpdateLogText(void)
|
||||
{
|
||||
int j;
|
||||
trace_str[0] = 0;
|
||||
|
||||
if (!tracelogbufpos)
|
||||
if (!tracelogbuf || !tracelogbufpos || !tracelogbufsize)
|
||||
return;
|
||||
|
||||
int last_line = tracesi.nPos + tracesi.nPage;
|
||||
|
@ -1061,7 +1084,7 @@ void UpdateLogText(void)
|
|||
|
||||
void EnableTracerMenuItems(void)
|
||||
{
|
||||
if(logging)
|
||||
if (logging)
|
||||
{
|
||||
EnableWindow(GetDlgItem(hTracer,IDC_RADIO_LOG_LAST),FALSE);
|
||||
EnableWindow(GetDlgItem(hTracer,IDC_RADIO_LOG_TO_FILE),FALSE);
|
||||
|
@ -1076,7 +1099,7 @@ void EnableTracerMenuItems(void)
|
|||
EnableWindow(GetDlgItem(hTracer,IDC_BTN_LOG_BROWSE),TRUE);
|
||||
EnableWindow(GetDlgItem(hTracer,IDC_CHECK_LOG_NEW_INSTRUCTIONS),TRUE);
|
||||
|
||||
if(logtofile)
|
||||
if (logtofile)
|
||||
{
|
||||
EnableWindow(GetDlgItem(hTracer,IDC_TRACER_LOG_SIZE),FALSE);
|
||||
EnableWindow(GetDlgItem(hTracer,IDC_BTN_LOG_BROWSE),TRUE);
|
||||
|
|
Loading…
Reference in New Issue