Cleaned up the loading of the config file (vbam.ini)
git-svn-id: https://svn.code.sf.net/p/vbam/code/trunk@1357 a31d4220-a93d-0410-bf67-fe4944624d44
This commit is contained in:
parent
941ee580a7
commit
403f43913d
|
@ -158,7 +158,7 @@ int dsoundDisableHardwareAcceleration;
|
|||
int filterHeight;
|
||||
int filterMagnification;
|
||||
int filterMT; // enable multi-threading for pixel filters
|
||||
int filterType;
|
||||
int filter = kStretch2x;
|
||||
int filterWidth;
|
||||
int frameSkip = 1;
|
||||
int frameskipadjust;
|
||||
|
@ -173,6 +173,7 @@ int fullScreenStretch;
|
|||
int gdbBreakOnLoad;
|
||||
int gdbPort;
|
||||
int glFilter;
|
||||
int ifbType = kIFBNone;
|
||||
int joypadDefault;
|
||||
int languageOption;
|
||||
int layerEnable = 0xff00;
|
||||
|
@ -244,10 +245,8 @@ unsigned short throttle;
|
|||
|
||||
const char* preparedCheatCodes[MAX_CHEATS];
|
||||
|
||||
Filter filter = kStretch2x;
|
||||
FilterFunc filterFunction = 0;
|
||||
IFBFilterFunc ifbFunction = 0;
|
||||
int ifbType = kIFBNone;
|
||||
|
||||
// allow up to 100 IPS/UPS/PPF patches given on commandline
|
||||
int patchNum = 0;
|
||||
|
@ -420,150 +419,126 @@ void OpenPreferences(const char *name)
|
|||
preferences = iniparser_load(name);
|
||||
}
|
||||
|
||||
void LoadConfig()
|
||||
void ValidateConfig()
|
||||
{
|
||||
|
||||
openGL = ReadPrefHex("openGL");
|
||||
fullScreen = ReadPrefHex("fullScreen") ? 1 : 0;
|
||||
useBios = ReadPrefHex("useBiosGBA") ? true : false;
|
||||
skipBios = ReadPrefHex("skipBios") ? true : false;
|
||||
disableStatusMessages = ReadPrefHex("disableStatus") ? true : false;
|
||||
gbBorderOn = ReadPrefHex("borderOn") ? true : false;
|
||||
gbBorderAutomatic = ReadPrefHex("borderAutomatic") ? true : false;
|
||||
gbColorOption = ReadPrefHex("colorOption") ? true : false;
|
||||
captureFormat = ReadPrefHex("captureFormat");
|
||||
gbSoundSetDeclicking(ReadPrefHex("declicking") != 0);
|
||||
showSpeedTransparent = ReadPrefHex("showSpeedTransparent");
|
||||
autoFrameSkip = ReadPrefHex("autoFrameSkip");
|
||||
pauseWhenInactive = ReadPrefHex("pauseWhenInactive") ? true : false;
|
||||
agbPrint = ReadPrefHex("agbPrint");
|
||||
rtcEnabled = ReadPrefHex("rtcEnabled");
|
||||
synchronize = ReadPrefHex("synchronize");
|
||||
videoOption = ReadPrefHex("video");
|
||||
|
||||
languageOption = ReadPref("language", 1);
|
||||
frameSkip = ReadPref("frameSkip", 0);
|
||||
gbFrameSkip = ReadPref("gbFrameSkip", 0);
|
||||
autoFrameSkip = ReadPref("autoFrameSkip", 0) ? 1 : 0;
|
||||
vsync = ReadPref("vsync", false) ? true : false;
|
||||
synchronize = ReadPref("synchronize", 1) ? true : false;
|
||||
fullScreenStretch = ReadPref("stretch", 0) ? true : false;
|
||||
videoOption = ReadPref("video", 2); // VIDEO_3X = 2
|
||||
fsAdapter = ReadPref("fsAdapter", 0);
|
||||
throttle = ReadPref("throttle", 0);
|
||||
fsWidth = ReadPref("fsWidth", 800);
|
||||
fsHeight = ReadPref("fsHeight", 600);
|
||||
fsColorDepth = ReadPref("fsColorDepth", 32);
|
||||
fsFrequency = ReadPref("fsFrequency", 60);
|
||||
windowPositionX = ReadPref("windowX", 0);
|
||||
windowPositionY = ReadPref("windowY", 0);
|
||||
useBiosFileGBA = (ReadPref("useBiosGBA", 0) == 1) ? true : false;
|
||||
useBiosFileGBC = (ReadPref("useBiosGBC", 0) == 1) ? true : false;
|
||||
useBiosFileGB = (ReadPref("useBiosGB", 0) == 1) ? true : false;
|
||||
skipBios = ReadPref("skipBios", 0) ? true : false;
|
||||
soundSetVolume((float)(ReadPref("soundVolume", 100)) / 100.0f);
|
||||
gb_effects_config.enabled = 1 == ReadPref("gbSoundEffectsEnabled", 0);
|
||||
gb_effects_config.surround = 1 == ReadPref("gbSoundEffectsSurround", 0);
|
||||
gb_effects_config.echo = (float)ReadPref("gbSoundEffectsEcho", 20) / 100.0f;
|
||||
gb_effects_config.stereo = (float)ReadPref("gbSoundEffectsStereo", 15) / 100.0f;
|
||||
gbSoundSetDeclicking(1 == ReadPref("gbSoundDeclicking", 1));
|
||||
soundInterpolation = 1 == ReadPref("gbaSoundInterpolation", 1);
|
||||
soundFiltering = (float)ReadPref("gbaSoundFiltering", 50) / 100.0f;
|
||||
tripleBuffering = ReadPref("tripleBuffering", false) ? true : false;
|
||||
glFilter = ReadPref("glFilter", 1);
|
||||
filterType = ReadPref("filter", 0);
|
||||
filterMT = (1 == ReadPref("filterEnableMultiThreading", 0));
|
||||
disableMMX = ReadPref("disableMMX", false) ? true : false;
|
||||
showSpeed = ReadPref("showSpeed", 0);
|
||||
showSpeedTransparent = ReadPref("showSpeedTransparent", 1) ? true : false;
|
||||
winGbPrinterEnabled = ReadPref("gbPrinter", false) ? true : false;
|
||||
pauseWhenInactive = ReadPref("pauseWhenInactive", 1) ? true : false;
|
||||
captureFormat = ReadPref("captureFormat", 0);
|
||||
recentFreeze = ReadPref("recentFreeze", false) ? true : false;
|
||||
autoPatch = ReadPref("autoPatch", 1) == 1 ? true : false;
|
||||
cpuDisableSfx = ReadPref("disableSfx", 0) ? true : false;
|
||||
ifbType = ReadPref("ifbType", 0);
|
||||
winFlashSize = ReadPref("flashSize", 0x10000);
|
||||
agbPrintEnable(ReadPref("agbPrint", 0) ? true : false);
|
||||
rtcEnabled = ReadPref("rtcEnabled", 0) ? true : false;
|
||||
winGbBorderOn = ReadPref("borderOn", 0);
|
||||
gbBorderAutomatic = ReadPref("borderAutomatic", 0);
|
||||
gbEmulatorType = ReadPref("emulatorType", 1);
|
||||
gbColorOption = ReadPref("colorOption", 0);
|
||||
threadPriority = ReadPref("priority", 2);
|
||||
autoSaveLoadCheatList = (1 == ReadPref("autoSaveCheatList", 1)) ? true : false;
|
||||
gbPaletteOption = ReadPref("gbPaletteOption", 0);
|
||||
rewindTimer = ReadPref("rewindTimer", 0);
|
||||
joypadDefault = ReadPref("joypadDefault", 0);
|
||||
autoLoadMostRecent = (1 == ReadPref("autoLoadMostRecent", 0)) ? true : false;
|
||||
skipSaveGameBattery = (1 == ReadPref("skipSaveGameBattery", 0)) ? true : false;
|
||||
skipSaveGameCheats = (1 == ReadPref("skipSaveGameCheats", 0)) ? true : false;
|
||||
cheatsEnabled = ReadPref("cheatsEnabled", false) ? true : false;
|
||||
maxScale = ReadPref("maxScale", 0);
|
||||
linkTimeout = ReadPref("LinkTimeout", 1000);
|
||||
linkMode = ReadPref("LinkMode", 0); // LINK_DISCONNECTED = 0
|
||||
linkAuto = ReadPref("LinkAuto", true);
|
||||
linkHacks = ReadPref("LinkHacks", false);
|
||||
linkNumPlayers = ReadPref("LinkNumPlayers", 2);
|
||||
gdbPort = ReadPref("gdbPort", 55555);
|
||||
gdbBreakOnLoad = ReadPref("gdbBreakOnLoad", false) ? true : false;
|
||||
//valueType = ReadPref("gbCheatsValueType", 0);
|
||||
//searchType = ReadPref("gbCheatsSearchType",
|
||||
//numberType = ReadPref("gbCheatsNumberType", 2);
|
||||
//sizeType = ReadPref("gbCheatsSizeType", 0);
|
||||
//updateValues = ReadPref("gbCheatsUpdate", 0);
|
||||
//numberType = ReadPref("gbCheatsNumberType", 2);
|
||||
//sizeType = ReadPref("gbCheatsSizeType", 0);
|
||||
//int s = ReadPref("mapViewStretch", 0);
|
||||
//m_size = ReadPref("memViewerDataSize", 0);
|
||||
//m_stretch = ReadPref("GBOamViewStretch", 0);
|
||||
//scale = ReadPref("printerScale", 0);
|
||||
//m_stretch = ReadPref("tileViewStretch", 0);
|
||||
//valueType = ReadPref("cheatsValueType", 0);
|
||||
//searchType = ReadPref("cheatsSearchType", SEARCH_EQ);
|
||||
//numberType = ReadPref("cheatsNumberType", 2);
|
||||
//sizeType = ReadPref("cheatsSizeType", 0);
|
||||
//updateValues = ReadPref("cheatsUpdate", 0);
|
||||
//numberType = ReadPref("cheatsNumberType", 2);
|
||||
//sizeType = ReadPref("cheatsSizeType", 0);
|
||||
//restoreValues = ReadPref("cheatsRestore", 0) ?
|
||||
//selectedFilter = ReadPref(("selectedFilter"), 0);
|
||||
//int s = ReadPref("mapViewStretch", 0);
|
||||
//m_size = ReadPref("memViewerDataSize", 0);
|
||||
//m_stretch = ReadPref("tileViewStretch", 0);
|
||||
|
||||
gbEmulatorType = (ReadPrefHex("emulatorType"));
|
||||
if (gbEmulatorType < 0 || gbEmulatorType > 5)
|
||||
gbEmulatorType = 1;
|
||||
frameSkip = (ReadPrefHex("frameSkip"));
|
||||
if (frameSkip < 0 || frameSkip > 9)
|
||||
frameSkip = 2;
|
||||
gbFrameSkip = (ReadPrefHex("gbFrameSkip"));
|
||||
if (gbFrameSkip < 0 || gbFrameSkip > 9)
|
||||
gbFrameSkip = 0;
|
||||
filter = (Filter)fromDec(ReadPrefString("filter"));
|
||||
if (filter < kStretch1x || filter >= kInvalidFilter)
|
||||
filter = kStretch2x;
|
||||
|
||||
if (cpuSaveType < 0 || cpuSaveType > 5)
|
||||
cpuSaveType = 0;
|
||||
if (optFlashSize != 0 && optFlashSize != 1)
|
||||
optFlashSize = 0;
|
||||
if (ifbType < kIFBNone || ifbType >= kInvalidIFBFilter)
|
||||
ifbType = kIFBNone;
|
||||
if (showSpeed < 0 || showSpeed > 2)
|
||||
showSpeed = 1;
|
||||
if (rewindTimer < 0 || rewindTimer > 600)
|
||||
rewindTimer = 0;
|
||||
if (autoFireMaxCount < 1)
|
||||
autoFireMaxCount = 1;
|
||||
|
||||
if (rewindTimer) {
|
||||
rewindMemory = (char *)malloc(REWIND_NUM*REWIND_SIZE);
|
||||
rewindSerials = (int *)calloc(REWIND_NUM, sizeof(int)); // init to zeroes
|
||||
}
|
||||
}
|
||||
|
||||
void LoadConfig()
|
||||
{
|
||||
agbPrint = ReadPrefHex("agbPrint");
|
||||
autoFireMaxCount = fromDec(ReadPrefString("autoFireMaxCount"));
|
||||
autoFrameSkip = ReadPref("autoFrameSkip", 0);
|
||||
autoLoadMostRecent = ReadPref("autoLoadMostRecent", 0);
|
||||
autoPatch = ReadPref("autoPatch", 1);
|
||||
autoSaveLoadCheatList = ReadPref("autoSaveCheatList", 1);
|
||||
aviRecordDir = ReadPrefString("aviRecordDir");
|
||||
batteryDir = ReadPrefString("batteryDir");
|
||||
biosFileNameGB = ReadPrefString("biosFileGB");
|
||||
biosFileNameGBA = ReadPrefString("biosFileGBA");
|
||||
biosFileNameGBC = ReadPrefString("biosFileGBC");
|
||||
|
||||
captureFormat = ReadPref("captureFormat", 0);
|
||||
cheatsEnabled = ReadPref("cheatsEnabled", 0);
|
||||
cpuDisableSfx = ReadPref("disableSfx", 0);
|
||||
cpuSaveType = ReadPrefHex("saveType");
|
||||
disableMMX = ReadPref("disableMMX", 0);
|
||||
disableStatusMessages = ReadPrefHex("disableStatus");
|
||||
filterMT = ReadPref("filterEnableMultiThreading", 0);
|
||||
filter = ReadPref("filter", 0);
|
||||
frameSkip = ReadPref("frameSkip", 0);
|
||||
fsAdapter = ReadPref("fsAdapter", 0);
|
||||
fsColorDepth = ReadPref("fsColorDepth", 32);
|
||||
fsFrequency = ReadPref("fsFrequency", 60);
|
||||
fsHeight = ReadPref("fsHeight", 600);
|
||||
fsWidth = ReadPref("fsWidth", 800);
|
||||
fullScreen = ReadPrefHex("fullScreen");
|
||||
fullScreenStretch = ReadPref("stretch", 0);
|
||||
gbBorderAutomatic = ReadPref("borderAutomatic", 0);
|
||||
gbBorderOn = ReadPrefHex("borderOn");
|
||||
gbColorOption = ReadPref("colorOption", 0);
|
||||
gbEmulatorType = ReadPref("emulatorType", 1);
|
||||
gbFrameSkip = ReadPref("gbFrameSkip", 0);
|
||||
gbPaletteOption = ReadPref("gbPaletteOption", 0);
|
||||
gbSoundSetDeclicking(ReadPref("gbSoundDeclicking", 1));
|
||||
gb_effects_config.echo = (float)ReadPref("gbSoundEffectsEcho", 20) / 100.0f;
|
||||
gb_effects_config.enabled = ReadPref("gbSoundEffectsEnabled", 0);
|
||||
gb_effects_config.stereo = (float)ReadPref("gbSoundEffectsStereo", 15) / 100.0f;
|
||||
gb_effects_config.surround = ReadPref("gbSoundEffectsSurround", 0);
|
||||
gdbBreakOnLoad = ReadPref("gdbBreakOnLoad", 0);
|
||||
gdbPort = ReadPref("gdbPort", 55555);
|
||||
glFilter = ReadPref("glFilter", 1);
|
||||
ifbType = ReadPref("ifbType", 0);
|
||||
joypadDefault = ReadPref("joypadDefault", 0);
|
||||
languageOption = ReadPref("language", 1);
|
||||
linkAuto = ReadPref("LinkAuto", 1);
|
||||
linkHacks = ReadPref("LinkHacks", 0);
|
||||
linkHostAddr = ReadPrefString("LinkHostAddr", "localhost");
|
||||
linkMode = ReadPref("LinkMode", 0); // LINK_DISCONNECTED = 0
|
||||
linkNumPlayers = ReadPref("LinkNumPlayers", 2);
|
||||
linkTimeout = ReadPref("LinkTimeout", 1000);
|
||||
loadDotCodeFile = ReadPrefString("loadDotCodeFile");
|
||||
saveDotCodeFile = ReadPrefString("saveDotCodeFile");
|
||||
|
||||
aviRecordDir = ReadPrefString("aviRecordDir");
|
||||
maxScale = ReadPref("maxScale", 0);
|
||||
movieRecordDir = ReadPrefString("movieRecordDir");
|
||||
soundRecordDir = ReadPrefString("soundRecordDir");
|
||||
screenShotDir = ReadPrefString("screenShotDir");
|
||||
saveDir = ReadPrefString("saveDir");
|
||||
batteryDir = ReadPrefString("batteryDir");
|
||||
|
||||
romDirGBC = ReadPrefString("romDirGBC");
|
||||
openGL = ReadPrefHex("openGL");
|
||||
optFlashSize = ReadPrefHex("flashSize");
|
||||
pauseWhenInactive = ReadPref("pauseWhenInactive", 1);
|
||||
recentFreeze = ReadPref("recentFreeze", 0);
|
||||
rewindTimer = ReadPref("rewindTimer", 0);
|
||||
romDirGB = ReadPrefString("romDirGB");
|
||||
romDirGBA = ReadPrefString("romDirGBA");
|
||||
|
||||
linkHostAddr = ReadPrefString("LinkHostAddr", "localhost");
|
||||
romDirGBC = ReadPrefString("romDirGBC");
|
||||
rtcEnabled = ReadPref("rtcEnabled", 0);
|
||||
saveDir = ReadPrefString("saveDir");
|
||||
saveDotCodeFile = ReadPrefString("saveDotCodeFile");
|
||||
screenShotDir = ReadPrefString("screenShotDir");
|
||||
showSpeed = ReadPref("showSpeed", 0);
|
||||
showSpeedTransparent = ReadPref("showSpeedTransparent", 1);
|
||||
skipBios = ReadPref("skipBios", 0);
|
||||
skipSaveGameBattery = ReadPref("skipSaveGameBattery", 0);
|
||||
skipSaveGameCheats = ReadPref("skipSaveGameCheats", 0);
|
||||
soundFiltering = (float)ReadPref("gbaSoundFiltering", 50) / 100.0f;
|
||||
soundInterpolation = ReadPref("gbaSoundInterpolation", 1);
|
||||
soundRecordDir = ReadPrefString("soundRecordDir");
|
||||
synchronize = ReadPref("synchronize", 1);
|
||||
threadPriority = ReadPref("priority", 2);
|
||||
throttle = ReadPref("throttle", 0);
|
||||
tripleBuffering = ReadPref("tripleBuffering", 0);
|
||||
useBios = ReadPrefHex("useBiosGBA");
|
||||
useBiosFileGB = ReadPref("useBiosGB", 0);
|
||||
useBiosFileGBA = ReadPref("useBiosGBA", 0);
|
||||
useBiosFileGBC = ReadPref("useBiosGBC", 0);
|
||||
videoOption = ReadPref("video", 2); // VIDEO_3X = 2
|
||||
vsync = ReadPref("vsync", false);
|
||||
windowPositionX = ReadPref("windowX", 0);
|
||||
windowPositionY = ReadPref("windowY", 0);
|
||||
winFlashSize = ReadPref("flashSize", 0x10000);
|
||||
winGbBorderOn = ReadPref("borderOn", 0);
|
||||
winGbPrinterEnabled = ReadPref("gbPrinter", 0);
|
||||
|
||||
int soundQuality = (ReadPrefHex("soundQuality"));
|
||||
switch (soundQuality) {
|
||||
|
@ -572,54 +547,28 @@ void LoadConfig()
|
|||
case 4:
|
||||
break;
|
||||
default:
|
||||
fprintf(stdout, "Unknown sound quality %d. Defaulting to 22Khz\n",
|
||||
soundQuality);
|
||||
log("Unknown sound quality %d. Defaulting to 22Khz\n", soundQuality);
|
||||
soundQuality = 2;
|
||||
break;
|
||||
}
|
||||
soundSetSampleRate(44100 / soundQuality);
|
||||
int res = (ReadPrefHex("soundEnable")) & 0x30f;
|
||||
soundSetEnable(res);
|
||||
int volume = ReadPref("soundVolume", 100);
|
||||
float volume_percent = volume / 100.0f;
|
||||
if (volume_percent < 0.0 || volume_percent > SOUND_MAX_VOLUME)
|
||||
volume_percent = 1.0;
|
||||
soundSetVolume(volume_percent);
|
||||
|
||||
soundSetEnable((ReadPrefHex("soundEnable")) & 0x30f);
|
||||
if ((ReadPrefHex("soundStereo"))) {
|
||||
gb_effects_config.stereo = SOUND_STEREO;
|
||||
gb_effects_config.enabled = true;
|
||||
}
|
||||
if ((ReadPrefHex("soundEcho"))) {
|
||||
gb_effects_config.echo = SOUND_ECHO;
|
||||
gb_effects_config.enabled = true;
|
||||
}
|
||||
if ((ReadPrefHex("soundSurround"))) {
|
||||
gb_effects_config.surround = true;
|
||||
gb_effects_config.enabled = true;
|
||||
}
|
||||
float volume = fromDec(ReadPrefString("soundVolume")) / 100.0;
|
||||
if (volume < 0.0 || volume > SOUND_MAX_VOLUME)
|
||||
volume = 1.0;
|
||||
soundSetVolume(volume);
|
||||
cpuSaveType = (ReadPrefHex("saveType"));
|
||||
if (cpuSaveType < 0 || cpuSaveType > 5)
|
||||
cpuSaveType = 0;
|
||||
optFlashSize = (ReadPrefHex("flashSize"));
|
||||
if (optFlashSize != 0 && optFlashSize != 1)
|
||||
optFlashSize = 0;
|
||||
ifbType = (IFBFilter)(ReadPrefHex("ifbType"));
|
||||
if (ifbType < kIFBNone || ifbType >= kInvalidIFBFilter)
|
||||
ifbType = kIFBNone;
|
||||
showSpeed = (ReadPrefHex("showSpeed"));
|
||||
if (showSpeed < 0 || showSpeed > 2)
|
||||
showSpeed = 1;
|
||||
rewindTimer = (ReadPrefHex("rewindTimer"));
|
||||
if (rewindTimer < 0 || rewindTimer > 600)
|
||||
rewindTimer = 0;
|
||||
rewindTimer *= 6; // convert ReadPref("rewindTimer") to 10 frames multiple
|
||||
autoFireMaxCount = fromDec(ReadPrefString("autoFireMaxCount"));
|
||||
if (autoFireMaxCount < 1)
|
||||
autoFireMaxCount = 1;
|
||||
|
||||
if (rewindTimer) {
|
||||
rewindMemory = (char *)malloc(REWIND_NUM*REWIND_SIZE);
|
||||
rewindSerials = (int *)calloc(REWIND_NUM, sizeof(int)); // init to zeroes
|
||||
}
|
||||
|
||||
if (optFlashSize == 0)
|
||||
flashSetSize(0x10000);
|
||||
|
@ -639,6 +588,27 @@ void LoadConfig()
|
|||
systemSaveUpdateCounter = SYSTEM_SAVE_NOT_UPDATED;
|
||||
|
||||
optPrintUsage = 0;
|
||||
|
||||
// TODO
|
||||
//int s = ReadPref("mapViewStretch", 0);
|
||||
//m_size = ReadPref("memViewerDataSize", 0);
|
||||
//m_stretch = ReadPref("GBOamViewStretch", 0);
|
||||
//m_stretch = ReadPref("tileViewStretch", 0);
|
||||
//numberType = ReadPref("cheatsNumberType", 2);
|
||||
//numberType = ReadPref("gbCheatsNumberType", 2);
|
||||
//restoreValues = ReadPref("cheatsRestore", 0) ?
|
||||
//scale = ReadPref("printerScale", 0);
|
||||
//searchType = ReadPref("cheatsSearchType", SEARCH_EQ);
|
||||
//searchType = ReadPref("gbCheatsSearchType",
|
||||
//selectedFilter = ReadPref(("selectedFilter"), 0);
|
||||
//sizeType = ReadPref("cheatsSizeType", 0);
|
||||
//sizeType = ReadPref("gbCheatsSizeType", 0);
|
||||
//updateValues = ReadPref("cheatsUpdate", 0);
|
||||
//updateValues = ReadPref("gbCheatsUpdate", 0);
|
||||
//valueType = ReadPref("cheatsValueType", 0);
|
||||
//valueType = ReadPref("gbCheatsValueType", 0);
|
||||
|
||||
ValidateConfig();
|
||||
}
|
||||
|
||||
void CloseConfig()
|
||||
|
|
|
@ -54,7 +54,7 @@ extern int dsoundDisableHardwareAcceleration;
|
|||
extern int filterHeight;
|
||||
extern int filterMagnification;
|
||||
extern int filterMT; // enable multi-threading for pixel filters
|
||||
extern int filterType;
|
||||
extern int filter;
|
||||
extern int filterWidth;
|
||||
extern int frameSkip;
|
||||
extern int frameskipadjust;
|
||||
|
@ -69,6 +69,7 @@ extern int fullScreenStretch;
|
|||
extern int gdbBreakOnLoad;
|
||||
extern int gdbPort;
|
||||
extern int glFilter;
|
||||
extern int ifbType;
|
||||
extern int joypadDefault;
|
||||
extern int languageOption;
|
||||
extern int layerEnable;
|
||||
|
@ -149,10 +150,8 @@ extern char *(patchNames[PATCH_MAX_NUM]); // and so on
|
|||
|
||||
extern int mouseCounter;
|
||||
|
||||
extern Filter filter;
|
||||
extern FilterFunc filterFunction;
|
||||
extern IFBFilterFunc ifbFunction;
|
||||
extern int ifbType;
|
||||
|
||||
|
||||
extern char* homeDir;
|
||||
|
|
|
@ -97,17 +97,17 @@ const FilterDesc Filters[] = {
|
|||
{ "xbrz5x", 5, 0, 0, xbrz5x32 }
|
||||
};
|
||||
|
||||
int getFilterEnlargeFactor(const Filter f)
|
||||
int getFilterEnlargeFactor(const int f)
|
||||
{
|
||||
return Filters[f].enlargeFactor;
|
||||
}
|
||||
|
||||
char* getFilterName(const Filter f)
|
||||
char* getFilterName(const int f)
|
||||
{
|
||||
return (char*)Filters[f].name;
|
||||
}
|
||||
|
||||
FilterFunc initFilter(const Filter f, const int colorDepth, const int srcWidth)
|
||||
FilterFunc initFilter(const int f, const int colorDepth, const int srcWidth)
|
||||
{
|
||||
FilterFunc func;
|
||||
|
||||
|
|
|
@ -34,13 +34,13 @@ enum Filter { kStretch1x, kStretch2x, k2xSaI, kSuper2xSaI, kSuperEagle, kPixelat
|
|||
typedef void(*FilterFunc)(u8*, u32, u8*, u8*, u32, int, int);
|
||||
|
||||
// Initialize a filter and get the corresponding filter function pointer
|
||||
FilterFunc initFilter(const Filter f, const int colorDepth, const int srcWidth);
|
||||
FilterFunc initFilter(const int f, const int colorDepth, const int srcWidth);
|
||||
|
||||
// Get the enlarge factor of a filter
|
||||
int getFilterEnlargeFactor(const Filter f);
|
||||
int getFilterEnlargeFactor(const int f);
|
||||
|
||||
// Get the display name for a filter
|
||||
char* getFilterName(const Filter f);
|
||||
char* getFilterName(const int f);
|
||||
|
||||
//
|
||||
// Interframe filters
|
||||
|
|
|
@ -1180,74 +1180,74 @@ BOOL MainWnd::OnOptionsFilter(UINT nID)
|
|||
switch(nID)
|
||||
{
|
||||
case ID_OPTIONS_FILTER_NORMAL:
|
||||
filterType = FILTER_NONE;
|
||||
filter = FILTER_NONE;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_TVMODE:
|
||||
filterType = FILTER_TVMODE;
|
||||
filter = FILTER_TVMODE;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_PLUGIN:
|
||||
filterType = FILTER_PLUGIN;
|
||||
filter = FILTER_PLUGIN;
|
||||
if( strcmp( theApp.pluginName, "" ) == 0 ) {
|
||||
// open select plugin dialog when none selected
|
||||
OnOptionsSelectPlugin();
|
||||
}
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_2XSAI:
|
||||
filterType = FILTER_2XSAI;
|
||||
filter = FILTER_2XSAI;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_SUPER2XSAI:
|
||||
filterType = FILTER_SUPER2XSAI;
|
||||
filter = FILTER_SUPER2XSAI;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_SUPEREAGLE:
|
||||
filterType = FILTER_SUPEREAGLE;
|
||||
filter = FILTER_SUPEREAGLE;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER16BIT_PIXELATEEXPERIMENTAL:
|
||||
filterType = FILTER_PIXELATE;
|
||||
filter = FILTER_PIXELATE;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER16BIT_ADVANCEMAMESCALE2X:
|
||||
filterType = FILTER_MAMESCALE2X;
|
||||
filter = FILTER_MAMESCALE2X;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER16BIT_SIMPLE2X:
|
||||
filterType = FILTER_SIMPLE2X;
|
||||
filter = FILTER_SIMPLE2X;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_BILINEAR:
|
||||
filterType = FILTER_BILINEAR;
|
||||
filter = FILTER_BILINEAR;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_BILINEARPLUS:
|
||||
filterType = FILTER_BILINEARPLUS;
|
||||
filter = FILTER_BILINEARPLUS;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_SCANLINES:
|
||||
filterType = FILTER_SCANLINES;
|
||||
filter = FILTER_SCANLINES;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_HQ2X:
|
||||
filterType = FILTER_HQ2X;
|
||||
filter = FILTER_HQ2X;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_LQ2X:
|
||||
filterType = FILTER_LQ2X;
|
||||
filter = FILTER_LQ2X;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_SIMPLE3X:
|
||||
filterType = FILTER_SIMPLE3X;
|
||||
filter = FILTER_SIMPLE3X;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_SIMPLE4X:
|
||||
filterType = FILTER_SIMPLE4X;
|
||||
filter = FILTER_SIMPLE4X;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_HQ3X:
|
||||
filterType = FILTER_HQ3X;
|
||||
filter = FILTER_HQ3X;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_HQ4X:
|
||||
filterType = FILTER_HQ4X;
|
||||
filter = FILTER_HQ4X;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_XBRZ2X:
|
||||
filterType = FILTER_XBRZ2X;
|
||||
filter = FILTER_XBRZ2X;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_XBRZ3X:
|
||||
filterType = FILTER_XBRZ3X;
|
||||
filter = FILTER_XBRZ3X;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_XBRZ4X:
|
||||
filterType = FILTER_XBRZ4X;
|
||||
filter = FILTER_XBRZ4X;
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_XBRZ5X:
|
||||
filterType = FILTER_XBRZ5X;
|
||||
filter = FILTER_XBRZ5X;
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
|
@ -1262,71 +1262,71 @@ void MainWnd::OnUpdateOptionsFilter(CCmdUI *pCmdUI)
|
|||
|
||||
switch(pCmdUI->m_nID) {
|
||||
case ID_OPTIONS_FILTER_NORMAL:
|
||||
pCmdUI->SetCheck(filterType == FILTER_NONE);
|
||||
pCmdUI->SetCheck(filter == FILTER_NONE);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_TVMODE:
|
||||
pCmdUI->SetCheck(filterType == FILTER_TVMODE);
|
||||
pCmdUI->SetCheck(filter == FILTER_TVMODE);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_2XSAI:
|
||||
pCmdUI->SetCheck(filterType == FILTER_2XSAI);
|
||||
pCmdUI->SetCheck(filter == FILTER_2XSAI);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_SUPER2XSAI:
|
||||
pCmdUI->SetCheck(filterType == FILTER_SUPER2XSAI);
|
||||
pCmdUI->SetCheck(filter == FILTER_SUPER2XSAI);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_PLUGIN:
|
||||
pCmdUI->Enable( !filterMT );
|
||||
pCmdUI->SetCheck(filterType == FILTER_PLUGIN);
|
||||
pCmdUI->SetCheck(filter == FILTER_PLUGIN);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_SUPEREAGLE:
|
||||
pCmdUI->SetCheck(filterType == FILTER_SUPEREAGLE);
|
||||
pCmdUI->SetCheck(filter == FILTER_SUPEREAGLE);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER16BIT_PIXELATEEXPERIMENTAL:
|
||||
pCmdUI->SetCheck(filterType == FILTER_PIXELATE);
|
||||
pCmdUI->SetCheck(filter == FILTER_PIXELATE);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER16BIT_ADVANCEMAMESCALE2X:
|
||||
pCmdUI->SetCheck(filterType == FILTER_MAMESCALE2X);
|
||||
pCmdUI->SetCheck(filter == FILTER_MAMESCALE2X);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER16BIT_SIMPLE2X:
|
||||
pCmdUI->SetCheck(filterType == FILTER_SIMPLE2X);
|
||||
pCmdUI->SetCheck(filter == FILTER_SIMPLE2X);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_BILINEAR:
|
||||
pCmdUI->SetCheck(filterType == FILTER_BILINEAR);
|
||||
pCmdUI->SetCheck(filter == FILTER_BILINEAR);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_BILINEARPLUS:
|
||||
pCmdUI->SetCheck(filterType == FILTER_BILINEARPLUS);
|
||||
pCmdUI->SetCheck(filter == FILTER_BILINEARPLUS);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_SCANLINES:
|
||||
pCmdUI->SetCheck(filterType == FILTER_SCANLINES);
|
||||
pCmdUI->SetCheck(filter == FILTER_SCANLINES);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_HQ2X:
|
||||
pCmdUI->SetCheck(filterType == FILTER_HQ2X);
|
||||
pCmdUI->SetCheck(filter == FILTER_HQ2X);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_LQ2X:
|
||||
pCmdUI->SetCheck(filterType == FILTER_LQ2X);
|
||||
pCmdUI->SetCheck(filter == FILTER_LQ2X);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_SIMPLE3X:
|
||||
pCmdUI->SetCheck(filterType == FILTER_SIMPLE3X);
|
||||
pCmdUI->SetCheck(filter == FILTER_SIMPLE3X);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_SIMPLE4X:
|
||||
pCmdUI->SetCheck(filterType == FILTER_SIMPLE4X);
|
||||
pCmdUI->SetCheck(filter == FILTER_SIMPLE4X);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_HQ3X:
|
||||
pCmdUI->SetCheck(filterType == FILTER_HQ3X);
|
||||
pCmdUI->SetCheck(filter == FILTER_HQ3X);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_HQ4X:
|
||||
pCmdUI->SetCheck(filterType == FILTER_HQ4X);
|
||||
pCmdUI->SetCheck(filter == FILTER_HQ4X);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_XBRZ2X:
|
||||
pCmdUI->SetCheck(filterType == FILTER_XBRZ2X);
|
||||
pCmdUI->SetCheck(filter == FILTER_XBRZ2X);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_XBRZ3X:
|
||||
pCmdUI->SetCheck(filterType == FILTER_XBRZ3X);
|
||||
pCmdUI->SetCheck(filter == FILTER_XBRZ3X);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_XBRZ4X:
|
||||
pCmdUI->SetCheck(filterType == FILTER_XBRZ4X);
|
||||
pCmdUI->SetCheck(filter == FILTER_XBRZ4X);
|
||||
break;
|
||||
case ID_OPTIONS_FILTER_XBRZ5X:
|
||||
pCmdUI->SetCheck(filterType == FILTER_XBRZ5X);
|
||||
pCmdUI->SetCheck(filter == FILTER_XBRZ5X);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1605,7 +1605,7 @@ void MainWnd::OnOptionsSelectPlugin()
|
|||
|
||||
if (dlg.DoModal() == IDOK)
|
||||
{
|
||||
filterType = FILTER_PLUGIN;
|
||||
filter = FILTER_PLUGIN;
|
||||
theApp.updateFilter();
|
||||
}
|
||||
}
|
||||
|
@ -1782,6 +1782,6 @@ void MainWnd::OnPixelfilterMultiThreading()
|
|||
|
||||
void MainWnd::OnUpdatePixelfilterMultiThreading(CCmdUI *pCmdUI)
|
||||
{
|
||||
pCmdUI->Enable( filterType != FILTER_PLUGIN );
|
||||
pCmdUI->Enable( filter != FILTER_PLUGIN );
|
||||
pCmdUI->SetCheck( filterMT ? 1 : 0 );
|
||||
}
|
||||
|
|
|
@ -205,7 +205,7 @@ VBA::VBA()
|
|||
filterFunction = NULL;
|
||||
ifbFunction = NULL;
|
||||
ifbType = kIFBNone;
|
||||
filterType = FILTER_NONE;
|
||||
filter = FILTER_NONE;
|
||||
filterWidth = 0;
|
||||
filterHeight = 0;
|
||||
filterMT = false;
|
||||
|
@ -624,7 +624,7 @@ void VBA::updateFilter()
|
|||
{
|
||||
if ( systemColorDepth == 16 )
|
||||
{
|
||||
switch(filterType)
|
||||
switch(filter)
|
||||
{
|
||||
default:
|
||||
case FILTER_NONE:
|
||||
|
@ -636,7 +636,7 @@ void VBA::updateFilter()
|
|||
filterFunction = rpiFilter;
|
||||
filterMagnification = rpiScaleFactor();
|
||||
} else {
|
||||
filterType = FILTER_NONE;
|
||||
filter = FILTER_NONE;
|
||||
updateFilter();
|
||||
return;
|
||||
}
|
||||
|
@ -712,7 +712,7 @@ void VBA::updateFilter()
|
|||
|
||||
if ( systemColorDepth == 32 )
|
||||
{
|
||||
switch(filterType)
|
||||
switch(filter)
|
||||
{
|
||||
default:
|
||||
case FILTER_NONE:
|
||||
|
@ -725,7 +725,7 @@ void VBA::updateFilter()
|
|||
filterMagnification = rpiScaleFactor();
|
||||
b16to32Video=true;
|
||||
} else {
|
||||
filterType = FILTER_NONE;
|
||||
filter = FILTER_NONE;
|
||||
updateFilter();
|
||||
return;
|
||||
}
|
||||
|
@ -826,7 +826,7 @@ void VBA::updateFilter()
|
|||
rect.bottom = sizeY * filterMagnification;
|
||||
|
||||
|
||||
if( filterType != FILTER_NONE )
|
||||
if( filter != FILTER_NONE )
|
||||
memset(delta, 0xFF, sizeof(delta));
|
||||
|
||||
if( display )
|
||||
|
@ -1534,9 +1534,9 @@ void VBA::loadSettings()
|
|||
glFilter = 1;
|
||||
|
||||
|
||||
filterType = regQueryDwordValue("filter", 0);
|
||||
if(filterType < FILTER_NONE || filterType > FILTER_LAST)
|
||||
filterType = FILTER_NONE;
|
||||
filter = regQueryDwordValue("filter", 0);
|
||||
if(filter < FILTER_NONE || filter > FILTER_LAST)
|
||||
filter = FILTER_NONE;
|
||||
|
||||
filterMT = ( 1 == regQueryDwordValue("filterEnableMultiThreading", 0) );
|
||||
|
||||
|
@ -2554,7 +2554,7 @@ void VBA::saveSettings()
|
|||
|
||||
regSetDwordValue("glFilter", glFilter);
|
||||
|
||||
regSetDwordValue("filter", filterType);
|
||||
regSetDwordValue("filter", filter);
|
||||
|
||||
regSetDwordValue("filterEnableMultiThreading", filterMT ? 1 : 0);
|
||||
|
||||
|
|
Loading…
Reference in New Issue