Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/fceux.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAutomerge Bot <bot@example.com>2022-08-21 03:27:35 +0300
committerAutomerge Bot <bot@example.com>2022-08-21 03:27:35 +0300
commitbd654cf2b2521560e8ca1bcd76e6572b1167e3ca (patch)
tree211a871a03f13f425518bdde056eaa4f7b43a60c
parente8cac2c6fad9632eb648d8ee6609260889627e71 (diff)
parentf7e7773b5ab7599eb30c10e4b90c356d4542d068 (diff)
Merge branch 'master' of https://github.com/TASVideos/fceux into coolgirl
-rw-r--r--src/CMakeLists.txt1
-rw-r--r--src/drivers/Qt/CheatsConf.cpp17
-rw-r--r--src/drivers/Qt/CheatsConf.h2
-rw-r--r--src/drivers/Qt/HexEditor.cpp2
-rw-r--r--src/drivers/Qt/ppuViewer.cpp2
-rw-r--r--src/drivers/win/cheat.cpp2
-rw-r--r--src/input.cpp13
-rw-r--r--src/input.h2
-rw-r--r--src/movie.cpp1
9 files changed, 27 insertions, 15 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 4d3c887f..89f0c073 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -87,6 +87,7 @@ else(WIN32)
if ( ${ASAN_ENABLE} )
add_definitions( -fsanitize=address -fsanitize=bounds-strict )
+ add_definitions( -fsanitize=undefined -fno-sanitize=vptr )
set( ASAN_LDFLAGS -lasan -lubsan)
message( STATUS "Address Sanitizer Enabled" )
else()
diff --git a/src/drivers/Qt/CheatsConf.cpp b/src/drivers/Qt/CheatsConf.cpp
index f9af2ad1..d995700d 100644
--- a/src/drivers/Qt/CheatsConf.cpp
+++ b/src/drivers/Qt/CheatsConf.cpp
@@ -670,7 +670,7 @@ void GuiCheatsDialog_t::lessThanValueCallback(void)
FCEU_WRAPPER_UNLOCK();
}
//----------------------------------------------------------------------------
-int GuiCheatsDialog_t::activeCheatListCB(char *name, uint32 a, uint8 v, int c, int s, int type, void *data)
+int GuiCheatsDialog_t::activeCheatListCB(const char *name, uint32 a, uint8 v, int c, int s, int type, void *data)
{
QTreeWidgetItem *item;
char codeStr[32];
@@ -710,7 +710,7 @@ int GuiCheatsDialog_t::activeCheatListCB(char *name, uint32 a, uint8 v, int c, i
return 1;
}
//----------------------------------------------------------------------------
-static int activeCheatListCB(char *name, uint32 a, uint8 v, int c, int s, int type, void *data)
+static int activeCheatListCB(const char *name, uint32 a, uint8 v, int c, int s, int type, void *data)
{
return win->activeCheatListCB(name, a, v, c, s, type, data);
}
@@ -971,7 +971,7 @@ void GuiCheatsDialog_t::updateCheatParameters(void)
FCEU_WRAPPER_LOCK();
- FCEUI_SetCheat(row, name.c_str(), a, v, c, s, type);
+ FCEUI_SetCheat(row, &name, a, v, c, s, type);
FCEU_WRAPPER_UNLOCK();
@@ -983,7 +983,7 @@ void GuiCheatsDialog_t::actvCheatItemClicked(QTreeWidgetItem *item, int column)
uint32 a = 0;
uint8 v = 0;
int c = -1, s = 0, type = 0;
- char *name = NULL;
+ std::string name;
char stmp[64];
int row = actvCheatList->indexOfTopLevelItem(item);
@@ -1021,14 +1021,7 @@ void GuiCheatsDialog_t::actvCheatItemClicked(QTreeWidgetItem *item, int column)
cheatCmpEntry->setText(tr(""));
}
- if (name != NULL)
- {
- cheatNameEntry->setText(tr(name));
- }
- else
- {
- cheatNameEntry->setText(tr(""));
- }
+ cheatNameEntry->setText(tr(name.c_str()));
}
//----------------------------------------------------------------------------
void GuiCheatsDialog_t::globalEnableCheats(int state)
diff --git a/src/drivers/Qt/CheatsConf.h b/src/drivers/Qt/CheatsConf.h
index 40b2836a..c06e9f75 100644
--- a/src/drivers/Qt/CheatsConf.h
+++ b/src/drivers/Qt/CheatsConf.h
@@ -30,7 +30,7 @@ public:
int addSearchResult(uint32_t a, uint8_t last, uint8_t current);
- int activeCheatListCB(char *name, uint32 a, uint8 v, int c, int s, int type, void *data);
+ int activeCheatListCB(const char *name, uint32 a, uint8 v, int c, int s, int type, void *data);
void showActiveCheatList(bool redraw);
diff --git a/src/drivers/Qt/HexEditor.cpp b/src/drivers/Qt/HexEditor.cpp
index ed78bf07..b7f1931c 100644
--- a/src/drivers/Qt/HexEditor.cpp
+++ b/src/drivers/Qt/HexEditor.cpp
@@ -3243,7 +3243,7 @@ void QHexEdit::addBookMarkCB(void)
}
}
//----------------------------------------------------------------------------
-static int RamFreezeCB(char *name, uint32 a, uint8 v, int compare,int s,int type, void *data)
+static int RamFreezeCB(const char *name, uint32 a, uint8 v, int compare,int s,int type, void *data)
{
return ((QHexEdit*)data)->FreezeRam( name, a, v, compare, s, type );
}
diff --git a/src/drivers/Qt/ppuViewer.cpp b/src/drivers/Qt/ppuViewer.cpp
index 101e26de..d151da42 100644
--- a/src/drivers/Qt/ppuViewer.cpp
+++ b/src/drivers/Qt/ppuViewer.cpp
@@ -1133,7 +1133,7 @@ void ppuPatternView_t::paintEvent(QPaintEvent *event)
xx = 0; yy = 0;
- showSelector = (cycleCount < 20);
+ showSelector = (cycleCount < 20) && (selTile.x() >= 0) && (selTile.y() >= 0);
if ( mode == 1 )
{
diff --git a/src/drivers/win/cheat.cpp b/src/drivers/win/cheat.cpp
index ce6ee616..0153d281 100644
--- a/src/drivers/win/cheat.cpp
+++ b/src/drivers/win/cheat.cpp
@@ -1084,6 +1084,8 @@ void UpdateCheatListGroupBoxUI()
SetDlgItemText(hCheat, IDC_GROUPBOX_CHEATLIST, temp);
EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_EXPORTTOFILE), cheats != 0);
+
+ CheckDlgButton(hCheat,IDC_CHEAT_GLOBAL_SWITCH,globalCheatDisabled?BST_UNCHECKED:BST_CHECKED);
}
//Used by cheats and external dialogs such as hex editor to update items in the cheat search dialog
diff --git a/src/input.cpp b/src/input.cpp
index 530f6948..c1dcd536 100644
--- a/src/input.cpp
+++ b/src/input.cpp
@@ -798,6 +798,7 @@ static void RamSearchOpLTE(void);
static void RamSearchOpGTE(void);
static void RamSearchOpEQ(void);
static void RamSearchOpNE(void);
+static void ToggleCheats(void);
static void DebuggerStepInto(void);
static void FA_SkipLag(void);
static void OpenRom(void);
@@ -945,6 +946,7 @@ struct EMUCMDTABLE FCEUI_CommandTable[]=
{ EMUCMD_TOOL_RAMSEARCHGTE, EMUCMDTYPE_TOOL, RamSearchOpGTE, 0, 0, "Ram Search - Greater Than or Equal", 0},
{ EMUCMD_TOOL_RAMSEARCHEQ, EMUCMDTYPE_TOOL, RamSearchOpEQ, 0, 0, "Ram Search - Equal", 0},
{ EMUCMD_TOOL_RAMSEARCHNE, EMUCMDTYPE_TOOL, RamSearchOpNE, 0, 0, "Ram Search - Not Equal", 0},
+ { EMUCMD_TOOL_TOGGLECHEATS, EMUCMDTYPE_TOOL, ToggleCheats, 0, 0, "Toggle Cheats", 0},
{ EMUCMD_RERECORD_DISPLAY_TOGGLE, EMUCMDTYPE_MISC, FCEUI_MovieToggleRerecordDisplay,0, 0, "Toggle Rerecord Display", EMUCMDFLAG_TASEDITOR },
{ EMUCMD_TASEDITOR_REWIND, EMUCMDTYPE_TASEDITOR, TaseditorRewindOn, TaseditorRewindOff, 0, "Frame Rewind", EMUCMDFLAG_TASEDITOR },
@@ -1268,6 +1270,17 @@ static void RamSearchOpNE(void) {
#endif
}
+extern int globalCheatDisabled;
+static void ToggleCheats()
+{
+ FCEUI_GlobalToggleCheat(globalCheatDisabled);
+ FCEU_DispMessage("%d cheats active", 0, FrozenAddressCount);
+ #ifdef __WIN_DRIVER__
+ UpdateCheatRelatedWindow();
+ UpdateCheatListGroupBoxUI();
+ #endif
+}
+
static void DebuggerStepInto()
{
#ifdef __WIN_DRIVER__
diff --git a/src/input.h b/src/input.h
index 0f89fca9..9928839f 100644
--- a/src/input.h
+++ b/src/input.h
@@ -259,6 +259,8 @@ enum EMUCMD
EMUCMD_MOVIE_RECORD_MODE_OVERWRITE,
EMUCMD_MOVIE_RECORD_MODE_INSERT,
+ EMUCMD_TOOL_TOGGLECHEATS,
+
EMUCMD_MAX
};
diff --git a/src/movie.cpp b/src/movie.cpp
index 6e6140cd..9bc3eb99 100644
--- a/src/movie.cpp
+++ b/src/movie.cpp
@@ -409,6 +409,7 @@ MovieData::MovieData()
, rerecordCount(0)
, binaryFlag(false)
, loadFrameCount(-1)
+ , fourscore(false)
, microphone(false)
, RAMInitOption(0)
, RAMInitSeed(0)