From 229be8eb72b7dba3daa1d7f3c77914bd1b8c2524 Mon Sep 17 00:00:00 2001 From: Cyneprepou4uk Date: Mon, 28 Feb 2022 02:35:17 +0300 Subject: [PATCH] Update tracer.cpp MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit идея к сожалению не прокатила, эмулятор лагает еще больше, возвращаю как было --- src/drivers/win/tracer.cpp | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/src/drivers/win/tracer.cpp b/src/drivers/win/tracer.cpp index 6ab79a03..2864694b 100644 --- a/src/drivers/win/tracer.cpp +++ b/src/drivers/win/tracer.cpp @@ -39,8 +39,6 @@ #include "mapinput.h" #include "input.h" -#include // для возможности использовать bzk_list - using namespace std; //#define LOG_SKIP_UNMAPPED 4 @@ -125,12 +123,9 @@ 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}; char str_result[LOG_LINE_MAX_LEN] = {0}; - char bzk_string[200] = {0}; -list bzk_list; int bzk_writes_counter = 0; int bzk_files_counter = 0; - char str_temp[LOG_LINE_MAX_LEN] = {0}; char str_decoration[NL_MAX_MULTILINE_COMMENT_LEN + 10] = {0}; char str_decoration_comment[NL_MAX_MULTILINE_COMMENT_LEN + 10] = {0}; @@ -1013,23 +1008,11 @@ void FCEUD_TraceInstruction(uint8 *opcode, int size) //sprintf(bzk_string, "%X %X %X %X %X %X %X %X %X %X \n", addr, bzk_GetNesFileAddress(addr), bzk_getBank(0x8000), bzk_getBank(0xA000), bzk_getBank(0xC000), bzk_getBank(0xE000), X.A, X.X, X.Y, X.P); //sprintf(bzk_string, "%u|%u|%u|%u|%u|%u|%u|%u|%s|\n", bzk_GetNesFileAddress(addr), bzk_getBank(0x8000), bzk_getBank(0xA000), bzk_getBank(0xC000), bzk_getBank(0xE000), X.A, X.X, X.Y, bzk_Disassemble(opcode)); sprintf(bzk_string, "%u|%u|%u|%u|%u|%s|\n", bzk_GetNesFileAddress(addr), bzk_getBank(addr), X.A, X.X, X.Y, bzk_Disassemble(addr, opcode)); - - bzk_list.push_back(bzk_string); //добавить в конец списка - bzk_writes_counter++; - - if (bzk_writes_counter % 1000 == 0) - { - for (string line : bzk_list) - { - char bzk_char_converter[200] = {0}; - sprintf(bzk_char_converter, "%s", line); - fputs(bzk_char_converter, LOG_FP); - //LOG_FP << line; - } - bzk_list.clear(); - } - if (bzk_writes_counter == 5000000) + fputs(bzk_string, LOG_FP); + bzk_writes_counter++; + + if (bzk_writes_counter == 4999999) { bzk_writes_counter = 0; fflush(LOG_FP);