* Tracer: actually made "Symbolic trace" work correctly, albeit it's now going to be etremely slow when there's lots of NL data

This commit is contained in:
ansstuff 2013-09-23 14:17:41 +00:00
parent 4d84101fd0
commit bffdacf228
6 changed files with 11 additions and 9 deletions

View File

@ -40,6 +40,10 @@ int recalculateResizedItemCoordinate(int initialValue, int initialBase, int newB
{ {
return newBase - (initialBase - initialValue); return newBase - (initialBase - initialValue);
} }
case WINDOW_ITEM_RESIZE_TYPE_CENTER_ALIGNED:
{
return initialValue + (newBase - initialBase) / 2;
}
case WINDOW_ITEM_RESIZE_TYPE_MULTIPLY: case WINDOW_ITEM_RESIZE_TYPE_MULTIPLY:
{ {
return (newBase * initialValue) / initialBase; return (newBase * initialValue) / initialBase;

View File

@ -56,6 +56,7 @@ enum WINDOW_ITEM_RESIZE_TYPES
{ {
WINDOW_ITEM_RESIZE_TYPE_LEFT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_LEFT_ALIGNED,
WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED,
WINDOW_ITEM_RESIZE_TYPE_CENTER_ALIGNED,
WINDOW_ITEM_RESIZE_TYPE_MULTIPLY, WINDOW_ITEM_RESIZE_TYPE_MULTIPLY,
// --- // ---
WINDOW_ITEM_RESIZE_TYPES_TOTAL WINDOW_ITEM_RESIZE_TYPES_TOTAL

View File

@ -576,6 +576,7 @@ void setNamesPointerForAddress(uint16 address, Name* newNode)
/** /**
* Loads the necessary NL files * Loads the necessary NL files
**/ **/
// TODO: instead of loading from disk every time the "loadedBankNames" changes, it's better to cache loaded linkedlists in memory
void loadNameFiles() void loadNameFiles()
{ {
int cb; int cb;

View File

@ -116,7 +116,7 @@ void DrawPatternTable(uint8 *bitmap, uint8 *table, uint8 *log, uint8 pal)
chr1 = table[index + 8]; chr1 = table[index + 8];
logs = log[index] & log[index + 8]; logs = log[index] & log[index + 8];
tmp = 7; tmp = 7;
if (PPUView_maskUnusedGraphics && cdloggerVideoDataSize && ((bool)(logs & 3) == PPUView_invertTheMask)) if (PPUView_maskUnusedGraphics && cdloggerVideoDataSize && (((logs & 3) != 0) == PPUView_invertTheMask))
{ {
// draw pixel ~8x darker // draw pixel ~8x darker
for (x = 0; x < 8; x++) for (x = 0; x < 8; x++)

View File

@ -1179,8 +1179,8 @@ BEGIN
SCROLLBAR IDC_SCRL_TRACER_LOG,303,3,11,44,SBS_VERT SCROLLBAR IDC_SCRL_TRACER_LOG,303,3,11,44,SBS_VERT
CONTROL "Log last",IDC_RADIO_LOG_LAST,"Button",BS_AUTORADIOBUTTON | BS_LEFT,9,53,38,10 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 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 LTEXT "lines",IDC_TEXT_LINES_TO_THIS_WINDOW,97,54,20,10
DEFPUSHBUTTON "Start Logging",IDC_BTN_START_STOP_LOGGING,135,51,49,15,BS_CENTER | BS_VCENTER DEFPUSHBUTTON "Start Logging",IDC_BTN_START_STOP_LOGGING,126,51,65,15,BS_CENTER | BS_VCENTER
CONTROL "Log to File",IDC_RADIO_LOG_TO_FILE,"Button",BS_AUTORADIOBUTTON | BS_LEFT,9,70,46,10 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 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, CONTROL "Automatically update this window while logging",IDC_CHECK_LOG_UPDATE_WINDOW,

View File

@ -97,6 +97,7 @@ struct KnownWindowItemPosData
KnownWindowItemPosData tracerKnownWindowItems[] = { KnownWindowItemPosData tracerKnownWindowItems[] = {
IDC_TRACER_LOG, WINDOW_ITEM_RESIZE_TYPE_LEFT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_LEFT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED, IDC_TRACER_LOG, WINDOW_ITEM_RESIZE_TYPE_LEFT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_LEFT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED,
IDC_SCRL_TRACER_LOG, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_LEFT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED, IDC_SCRL_TRACER_LOG, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_LEFT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED,
IDC_BTN_START_STOP_LOGGING, WINDOW_ITEM_RESIZE_TYPE_CENTER_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_CENTER_ALIGNED, WINDOW_ITEM_RESIZE_TYPE_RIGHT_ALIGNED,
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_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_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_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,
@ -804,6 +805,7 @@ void FCEUD_TraceInstruction(uint8 *opcode, int size)
{ {
if (logging_options & LOG_SYMBOLIC) if (logging_options & LOG_SYMBOLIC)
{ {
loadNameFiles();
tempAddressesLog.resize(0); tempAddressesLog.resize(0);
// Insert Name and Comment lines if needed // Insert Name and Comment lines if needed
Name* node = findNode(getNamesPointerForAddress(addr), addr); Name* node = findNode(getNamesPointerForAddress(addr), addr);
@ -998,7 +1000,6 @@ void ClearTraceLogBuf(void)
void EndLoggingSequence() void EndLoggingSequence()
{ {
int j, i;
if (logtofile) if (logtofile)
{ {
fclose(LOG_FP); fclose(LOG_FP);
@ -1032,12 +1033,7 @@ void UpdateLogWindow(void)
log_old_emu_paused = emu_paused; log_old_emu_paused = emu_paused;
ScrollLogWindowToLastLine(); ScrollLogWindowToLastLine();
if (logging_options & LOG_SYMBOLIC)
loadNameFiles();
UpdateLogText(); UpdateLogText();
return; return;
} }