Merge pull request #119 from mjbudd77/master

Appveyor Artifacts Fix
This commit is contained in:
mjbudd77 2020-06-16 22:13:34 -04:00 committed by GitHub
commit 4c6a5b5313
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 72 additions and 31 deletions

View File

@ -4,5 +4,5 @@ image:
- Ubuntu2004 - Ubuntu2004
#- Ubuntu1804 #- Ubuntu1804
build_script: build_script:
- cmd: msbuild "./vc/vc14_fceux.sln" - cmd: pipelines/win32_build.bat
- sh: ./pipelines/linux_build.sh - sh: ./pipelines/linux_build.sh

View File

@ -2,7 +2,7 @@
use strict; use strict;
my $VERSION="2.2.4"; my $VERSION="2.2.3";
my $INSTALL_PREFIX="/tmp/fceux"; my $INSTALL_PREFIX="/tmp/fceux";
my $CTL_FILENAME="$INSTALL_PREFIX/DEBIAN/control"; my $CTL_FILENAME="$INSTALL_PREFIX/DEBIAN/control";
my $ARCH="amd64"; my $ARCH="amd64";

View File

@ -113,3 +113,6 @@ echo '**************************************************************'
echo 'Testing Install of Package' echo 'Testing Install of Package'
echo '**************************************************************' echo '**************************************************************'
sudo dpkg -i /tmp/fceux-*.deb sudo dpkg -i /tmp/fceux-*.deb
echo 'Pushing Debian Package to Build Artifacts'
appveyor PushArtifact /tmp/fceux-*.deb

22
pipelines/win32_build.bat Normal file
View File

@ -0,0 +1,22 @@
set PROJECT_ROOT=%~dp0..
REM echo %PROJECT_ROOT%
msbuild %PROJECT_ROOT%\vc\vc14_fceux.vcxproj
cd %PROJECT_ROOT%\vc
REM Copy Executable and dlls to output directory
copy vc14_bin_Debug\fceux.exe ..\output\.
copy vc14_bin_Debug\7z.dll ..\output\.
REM Create Zip Archive
REM archive.bat
cd %PROJECT_ROOT%\output
..\vc\zip -X -9 -r ..\vc\fceux.zip fceux.exe fceux.chm taseditor.chm 7z.dll *.dll palettes luaScripts tools
cd %PROJECT_ROOT%
appveyor PushArtifact %PROJECT_ROOT%\vc\fceux.zip

View File

@ -145,12 +145,14 @@ public:
class ThreadData { class ThreadData {
public: public:
ThreadData() { kill = dead = false; } ThreadData() { ds = NULL; kill = dead = false; }
OAKRA_Module_OutputDS *ds; OAKRA_Module_OutputDS *ds;
bool kill,dead; bool kill,dead;
}; };
OAKRA_Module_OutputDS::OAKRA_Module_OutputDS() { OAKRA_Module_OutputDS::OAKRA_Module_OutputDS()
{
threadData = NULL;
data = new Data(); data = new Data();
((Data *)data)->global = false; ((Data *)data)->global = false;
InitializeCriticalSection(&((Data *)data)->criticalSection); InitializeCriticalSection(&((Data *)data)->criticalSection);
@ -179,6 +181,7 @@ OAKRA_Voice *OAKRA_Module_OutputDS::getVoice(OAKRA_Format &format, OAKRA_Module
if(dsv->dead) if(dsv->dead)
{ {
delete dsv; delete dsv;
dsv = 0;
} }
else else
{ {
@ -214,7 +217,7 @@ void OAKRA_Module_OutputDS::freeVoiceInternal(OAKRA_Voice *voice, bool internal)
if(!internal) if(!internal)
{ {
delete voice; delete voice;
voice = 0; //voice = 0; // Assignment of function parameter has no effect outside the function, commenting out to avoid cppcheck warning
} }
unlock(); unlock();
} }

View File

@ -181,7 +181,7 @@ protected:
public: public:
explicit InStream() explicit InStream()
: refCount(0) : refCount(0), size(0)
{} {}
}; };
@ -374,17 +374,21 @@ void initArchiveSystem()
} }
} }
static std::string wstringFromPROPVARIANT(BSTR bstr, bool& success) { static std::string wstringFromPROPVARIANT(BSTR bstr, bool& success)
{
std::string strret;
std::wstring tempfname = bstr; std::wstring tempfname = bstr;
int buflen = tempfname.size()*2; int buflen = tempfname.size()*2;
char* buf = new char[buflen]; char* buf = new char[buflen];
int ret = WideCharToMultiByte(CP_ACP,0,tempfname.c_str(),tempfname.size(),buf,buflen,0,0); int ret = WideCharToMultiByte(CP_ACP,0,tempfname.c_str(),tempfname.size(),buf,buflen,0,0);
if(ret == 0) { if (ret == 0)
{
delete[] buf; delete[] buf;
success = false; success = false;
return strret;
} }
buf[ret] = 0; buf[ret] = 0;
std::string strret = buf; strret = buf;
delete[] buf; delete[] buf;
success = true; success = true;
return strret; return strret;
@ -594,4 +598,4 @@ FCEUFILE* FCEUD_OpenArchive(ArchiveScanRecord& asr, std::string& fname, std::str
FCEUFILE* FCEUD_OpenArchive(ArchiveScanRecord& asr, std::string& fname, std::string* innerFilename) FCEUFILE* FCEUD_OpenArchive(ArchiveScanRecord& asr, std::string& fname, std::string* innerFilename)
{ {
return FCEUD_OpenArchive(asr, fname, innerFilename, -1); return FCEUD_OpenArchive(asr, fname, innerFilename, -1);
} }

View File

@ -538,7 +538,7 @@ INT_PTR CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA
break; break;
case CHEAT_CONTEXT_POSSI_ADDTOMEMORYWATCH: case CHEAT_CONTEXT_POSSI_ADDTOMEMORYWATCH:
{ {
char addr[16] = { 0 }; char addr[32] = { 0 };
int sel = SendDlgItemMessage(hwndDlg, IDC_CHEAT_LIST_POSSIBILITIES, LVM_GETSELECTIONMARK, 0, 0); int sel = SendDlgItemMessage(hwndDlg, IDC_CHEAT_LIST_POSSIBILITIES, LVM_GETSELECTIONMARK, 0, 0);
if (sel != -1) if (sel != -1)
{ {
@ -816,9 +816,9 @@ INT_PTR CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA
if (strchr(buf, ':')) if (strchr(buf, ':'))
{ {
if (strchr(buf, '?')) if (strchr(buf, '?'))
sscanf(buf, "%X:%X?%X", &a, &c, &v); sscanf(buf, "%X:%X?%X", (unsigned int*)&a, (unsigned int*)&c, (unsigned int*)&v);
else else
sscanf(buf, "%X:%X", &a, &v); sscanf(buf, "%X:%X", (unsigned int*)&a, (unsigned int*)&v);
} }
SetDlgItemText(hwndDlg, IDC_CHEAT_ADDR, (LPCSTR)(a == -1 ? "" : U16ToStr(a))); SetDlgItemText(hwndDlg, IDC_CHEAT_ADDR, (LPCSTR)(a == -1 ? "" : U16ToStr(a)));
@ -978,7 +978,7 @@ INT_PTR CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA
break; break;
case NM_DBLCLK: case NM_DBLCLK:
{ {
char addr[16]; char addr[32];
sprintf(addr, "%04X", possiList[((NMITEMACTIVATE*)lParam)->iItem].addr); sprintf(addr, "%04X", possiList[((NMITEMACTIVATE*)lParam)->iItem].addr);
AddMemWatch(addr); AddMemWatch(addr);
} }
@ -1035,19 +1035,19 @@ void UpdateCheatListGroupBoxUI()
char temp[64]; char temp[64];
if (FrozenAddressCount < 256) if (FrozenAddressCount < 256)
{ {
sprintf(temp, "Active Cheats %d", FrozenAddressCount); sprintf(temp, "Active Cheats %u", FrozenAddressCount);
EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADD), TRUE); EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADD), TRUE);
EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADDFROMFILE), TRUE); EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADDFROMFILE), TRUE);
} }
else if (FrozenAddressCount == 256) else if (FrozenAddressCount == 256)
{ {
sprintf(temp, "Active Cheats %d (Max Limit)", FrozenAddressCount); sprintf(temp, "Active Cheats %u (Max Limit)", FrozenAddressCount);
EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADD), FALSE); EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADD), FALSE);
EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADDFROMFILE), FALSE); EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADDFROMFILE), FALSE);
} }
else else
{ {
sprintf(temp, "%d Error: Too many cheats loaded!", FrozenAddressCount); sprintf(temp, "%u Error: Too many cheats loaded!", FrozenAddressCount);
EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADD), FALSE); EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADD), FALSE);
EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADDFROMFILE), FALSE); EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADDFROMFILE), FALSE);
} }

View File

@ -1454,7 +1454,7 @@ int GetComboBoxByteSize(HWND hwnd, UINT id, int* value)
if (!GetComboBoxListItemData(hwnd, id, value, buf, true)) if (!GetComboBoxListItemData(hwnd, id, value, buf, true))
{ {
char buf2[4]; char buf2[4];
if (sscanf(buf, "%d%[KMB]", value, buf2) < 2 || !strcmp(buf2, "")) if (sscanf(buf, "%d%3[KMB]", value, buf2) < 2 || !strcmp(buf2, ""))
err = errors::FORMAT_ERR; err = errors::FORMAT_ERR;
else else
{ {
@ -1524,15 +1524,15 @@ bool GetComboBoxListItemData(HWND hwnd, UINT id, int* value, char* buf, bool exa
case IDC_VS_SYSTEM_COMBO: case IDC_VS_SYSTEM_COMBO:
case IDC_VS_PPU_COMBO: case IDC_VS_PPU_COMBO:
case IDC_SYSTEM_EXTEND_COMBO: case IDC_SYSTEM_EXTEND_COMBO:
if (!(success = sscanf(buf, "$%X", value) > 0)) if (!(success = sscanf(buf, "$%X", (unsigned int *)value) > 0))
success = SearchByString(hwnd, id, value, buf); success = SearchByString(hwnd, id, value, buf);
else else
SetDlgItemText(hwnd, id, buf); SetDlgItemText(hwnd, id, buf);
break; break;
case IDC_INPUT_DEVICE_COMBO: case IDC_INPUT_DEVICE_COMBO:
if (success = sscanf(buf, "$%X", value) > 0) if (success = sscanf(buf, "$%X", (unsigned int *)value) > 0)
{ {
char buf2[3]; char buf2[8];
sprintf(buf2, "$%02X", *value); sprintf(buf2, "$%02X", *value);
if (SendDlgItemMessage(hwnd, id, CB_SELECTSTRING, 0, (LPARAM)buf2) == CB_ERR) if (SendDlgItemMessage(hwnd, id, CB_SELECTSTRING, 0, (LPARAM)buf2) == CB_ERR)
SetDlgItemText(hwnd, id, buf); SetDlgItemText(hwnd, id, buf);
@ -1694,4 +1694,4 @@ bool SearchByString(HWND hwnd, UINT id, int* value, char* buf)
} }
return false; return false;
} }

View File

@ -52,11 +52,17 @@ struct AddressWatcher
{ {
unsigned int Address; // hardware address unsigned int Address; // hardware address
unsigned int CurValue; unsigned int CurValue;
char* comment = NULL; // NULL means no comment, non-NULL means allocated comment char* comment; // NULL means no comment, non-NULL means allocated comment
bool WrongEndian; bool WrongEndian;
char Size; //'d' = 4 bytes, 'w' = 2 bytes, 'b' = 1 byte, and 'S' means it's a separator. char Size; //'d' = 4 bytes, 'w' = 2 bytes, 'b' = 1 byte, and 'S' means it's a separator.
char Type;//'s' = signed integer, 'u' = unsigned, 'h' = hex, 'b' = binary, 'S' = separator char Type;//'s' = signed integer, 'u' = unsigned, 'h' = hex, 'b' = binary, 'S' = separator
short Cheats; // how many bytes are affected by cheat short Cheats; // how many bytes are affected by cheat
AddressWatcher(void)
{
Address = 0; CurValue = 0; comment = NULL; WrongEndian = false;
Size = 'b'; Type = 's'; Cheats = 0;
}
}; };
// the struct for communicating with add watch window // the struct for communicating with add watch window

View File

@ -42,7 +42,7 @@ struct FCEUFILE {
FCEUFILE() FCEUFILE()
: stream(0) : stream(0)
, archiveCount(-1) , archiveCount(-1), archiveIndex(0), size(0), mode(READ)
{} {}
~FCEUFILE() ~FCEUFILE()

View File

@ -484,6 +484,7 @@ static void SetInputStuff(int port)
joyports[port].driver=FCEU_InitVirtualBoy(port); joyports[port].driver=FCEU_InitVirtualBoy(port);
break; break;
case SI_NONE: case SI_NONE:
case SI_UNSET:
joyports[port].driver=&DummyJPort; joyports[port].driver=&DummyJPort;
break; break;
} }
@ -494,6 +495,7 @@ static void SetInputStuffFC()
switch(portFC.type) switch(portFC.type)
{ {
case SIFC_NONE: case SIFC_NONE:
case SIFC_UNSET:
portFC.driver=&DummyPortFC; portFC.driver=&DummyPortFC;
break; break;
case SIFC_ARKANOID: case SIFC_ARKANOID:
@ -721,7 +723,7 @@ const char* FCEUI_CommandTypeNames[]=
"TAS Editor", "TAS Editor",
}; };
static void CommandUnImpl(void); //static void CommandUnImpl(void);
static void CommandToggleDip(void); static void CommandToggleDip(void);
static void CommandStateLoad(void); static void CommandStateLoad(void);
static void CommandStateSave(void); static void CommandStateSave(void);
@ -938,10 +940,11 @@ void FCEUI_HandleEmuCommands(TestCommandState* testfn)
} }
} }
static void CommandUnImpl(void) // Function not currently used
{ //static void CommandUnImpl(void)
FCEU_DispMessage("command '%s' unimplemented.",0, FCEUI_CommandTable[i].name); //{
} // FCEU_DispMessage("command '%s' unimplemented.",0, FCEUI_CommandTable[i].name);
//}
static void CommandToggleDip(void) static void CommandToggleDip(void)
{ {

View File

@ -74,7 +74,7 @@ struct INPUTCFC
extern struct JOYPORT extern struct JOYPORT
{ {
JOYPORT(int _w) JOYPORT(int _w)
: w(_w) : w(_w), attrib(0), type(SI_UNSET), ptr(0), driver(0)
{} {}
int w; int w;

View File

@ -5,7 +5,7 @@ IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 GOTO UPXFailed
cd ..\output cd ..\output
..\vc\zip -X -9 -r ..\vc\fceux.zip fceux.exe fceux.chm taseditor.chm 7z.dll *.dll palettes luaScripts tools ..\vc\zip -X -9 -r ..\vc\fceux.zip fceux.exe fceux.chm taseditor.chm 7z.dll *.dll palettes luaScripts tools
move /y ..\vc\fceux.exe . move /y ..\vc\fceux.exe .
..\vc\zip -X -9 -r ..\vc\fceux.zip auxlib.lua REM ..\vc\zip -X -9 -r ..\vc\fceux.zip auxlib.lua
cd .. cd ..
REM vc\zip -X -9 -r vc\fceux.zip documentation REM vc\zip -X -9 -r vc\fceux.zip documentation
cd vc cd vc