fixed #551 (Crash Bugs in Trace Logger and Code/Data Logger Cooperation)

This commit is contained in:
ansstuff 2012-11-08 10:28:57 +00:00
parent 6bd8ece364
commit 2de90cafdd
5 changed files with 44 additions and 22 deletions

View File

@ -1,4 +1,9 @@
05-Nov-2012 - zeromus - support mapper 028
05-Nov-2012 - AnS - Taseditor: fixed lag adjustments when dealing with previously unknown lag state
30-Oct-2012 - zeromus - default stack pointer to $FD instead of $FF
29-Oct-2012 - CaH4e3 - mapper 252 added
29-Oct-2012 - AnS - Taseditor: update RAM Search and RAM Watch when jumping causes game state to change
21-Oct-2012 - CaH4e3 - sync mappers with fceu-mm
30-Sep-2012 - AnS - added "(Europe)" and "(PAL)" strings to region detection
28-Sep-2012 - AnS - Hexeditor: Ctrl+F opens Find dialog
28-Sep-2012 - AnS - Hexeditor: display 0x5000-0x5FFF contents
@ -6,7 +11,7 @@
26-Sep-2012 - AnS - Debugger: "Name" button in Bookmarks, total revamp of Bookmarks
26-Sep-2012 - AnS - Debugger: single click on any address copies this address to the "Seek To" field and "Bookmark Add" field
26-Sep-2012 - AnS - Fixed replay engine bug that doubles the last input of the movie
26-Sep-2012 - AnS - Tracer: RTS instructions output caller address/name
26-Sep-2012 - AnS - Tracer: "RTS" instructions now output the subroutine address/name
23-Sep-2012 - AnS - Lua: clear previous frame drawings at the beginning of every frame
23-Sep-2012 - AnS - Debugger: fixed mouseover when using Symbolic debug; mouseover works for the disassembly window too
23-Sep-2012 - CaH4e3 - CDLogger: Now can log VROM access (CHR banks of the ROM) when NewPPU is enabled
@ -39,7 +44,7 @@
08-Aug-2012 - AnS - Debugger: improved stack display
08-Aug-2012 - AnS - Debugger: doubleclick on the disassembly prompts "Add Execute breakpoint" dialog
08-Aug-2012 - AnS - Debugger: fixed RAM peek by a rightclick on left pane
08-Aug-2012 - AnS - Debugger: ">" shows current line in disassembly
08-Aug-2012 - AnS - Debugger: ">" points at current line in disassembly
08-Aug-2012 - AnS - Debugger: show the number of breakpoints (enabled and total) above the breakpoints list
06-Aug-2012 - CaH4e3 - fixed bug when loading UNF games (#525 )
06-Aug-2012 - AnS - Tracer also updates its window when user pauses the game, not just when Debugger snaps

View File

@ -297,11 +297,13 @@ void SaveCDLogFile(){ //todo make this button work before you've saved as
fclose(FP);
}
void DoCDLogger()
// returns false if refused to start
bool DoCDLogger()
{
if (!GameInfo) {
if (!GameInfo)
{
FCEUD_PrintError("You must have a game loaded before you can use the Code Data Logger.");
return;
return false;
}
if(!hCDLogger)
@ -312,9 +314,11 @@ void DoCDLogger()
ShowWindow(hCDLogger, SW_SHOWNORMAL);
SetForegroundWindow(hCDLogger);
}
return true;
}
void UpdateCDLogger(){
void UpdateCDLogger()
{
if(!hCDLogger)return;
char str[50];
@ -343,8 +347,10 @@ void UpdateCDLogger(){
return;
}
void SaveStrippedRom(int invert){ //this is based off of iNesSave()
//todo: make this support nsfs
void SaveStrippedRom(int invert)
{
//this is based off of iNesSave()
//todo: make this support NSFs
const char NESfilter[]="Stripped iNes Rom file (*.NES)\0*.nes\0All Files (*.*)\0*.*\0\0";
const char NSFfilter[]="Stripped NSF file (*.NSF)\0*.nsf\0All Files (*.*)\0*.*\0\0";
char sromfilename[MAX_PATH];
@ -352,12 +358,17 @@ void SaveStrippedRom(int invert){ //this is based off of iNesSave()
OPENFILENAME ofn;
int i;
if (GameInfo->type==GIT_NSF) {
if (!GameInfo)
return;
if (GameInfo->type==GIT_NSF)
{
MessageBox(NULL, "Sorry, you're not allowed to save optimized NSFs yet. Please don't optimize individual banks, as there are still some issues with several NSFs to be fixed, and it is easier to fix those issues with as much of the bank data intact as possible.", "Disallowed", MB_OK);
return;
}
if(codecount == 0){
if(codecount == 0)
{
MessageBox(NULL, "Unable to Generate Stripped Rom. Get Something Logged and try again.", "Error", MB_OK);
return;
}

View File

@ -1,6 +1,6 @@
//#include <windows.h>
//
void DoCDLogger();
bool DoCDLogger();
void UpdateCDLogger();
//void LogPCM(int romaddress); //No longer used
//

View File

@ -400,10 +400,10 @@ void GREENZONE::AdjustUp()
// reduce Piano Roll
piano_roll.UpdateItemCount();
// register changes
int first_input_chanes = history.RegisterAdjustLag(at, -1);
int first_input_changes = history.RegisterAdjustLag(at, -1);
// if Input in the frame above currFrameCounter has changed then invalidate Greenzone (rewind 1 frame back)
// also if the frame above currFrameCounter is lag frame then rewind 1 frame (invalidate Greenzone), because maybe this frame also needs lag removal
if ((first_input_chanes >= 0 && first_input_chanes < currFrameCounter) || (laglog.GetLagInfoAtFrame(at) != LAGGED_NO))
if ((first_input_changes >= 0 && first_input_changes < currFrameCounter) || (laglog.GetLagInfoAtFrame(at) != LAGGED_NO))
{
// custom invalidation procedure, not retriggering LostPosition/PauseFrame
Invalidate(at);

View File

@ -668,18 +668,24 @@ void EnableTracerMenuItems(void){
}
//this returns 1 if the CD logger is activated when needed, or 0 if the user selected no, not to activate it
int PromptForCDLogger(void){
if((logging_options & (LOG_NEW_INSTRUCTIONS|LOG_NEW_DATA)) && (!FCEUI_GetLoggingCD())){
if(MessageBox(hTracer,"In order for some of the features you have selected to take effect,\
int PromptForCDLogger(void)
{
if ((logging_options & (LOG_NEW_INSTRUCTIONS|LOG_NEW_DATA)) && (!FCEUI_GetLoggingCD()))
{
if (MessageBox(hTracer,"In order for some of the features you have selected to take effect,\
the Code/Data Logger must also be running.\
Would you like to Start the Code/Data Logger Now?","Start Code/Data Logger?",
MB_YESNO) == IDYES){
DoCDLogger();
MB_YESNO) == IDYES)
{
if (DoCDLogger())
{
FCEUI_SetLoggingCD(1);
SetDlgItemText(hCDLogger, BTN_CDLOGGER_START_PAUSE, "Pause");
return 1;
}
return 0; //user selected no so 0 is returned
return 0; // CDLogger couldn't start, probably because the game is closed
}
return 0; // user selected no so 0 is returned
}
return 1;
}