2015-02-04 15:21:23 +00:00
|
|
|
#include <QSettings>
|
|
|
|
#include <QColor>
|
|
|
|
|
|
|
|
#ifdef OS_WINDOWS
|
|
|
|
#include <windows.h>
|
|
|
|
#else
|
|
|
|
#include "../winlnxdefs.h"
|
|
|
|
#endif
|
|
|
|
#include "../GBI.h"
|
|
|
|
#include "../Config.h"
|
|
|
|
|
|
|
|
#include "Settings.h"
|
|
|
|
|
2015-04-15 05:26:46 +00:00
|
|
|
static const char * strIniFileName = "GLideN64.ini";
|
|
|
|
static const char * strCustomSettingsFileName = "GLideN64.custom.ini";
|
|
|
|
|
2015-04-08 17:01:16 +00:00
|
|
|
static
|
|
|
|
void _loadSettings(QSettings & settings)
|
2015-02-04 15:21:23 +00:00
|
|
|
{
|
2015-04-29 09:50:38 +00:00
|
|
|
config.translationFile = settings.value("translation", config.translationFile.c_str()).toString().toLocal8Bit().constData();
|
|
|
|
|
2015-02-04 15:21:23 +00:00
|
|
|
settings.beginGroup("video");
|
2015-04-08 17:01:16 +00:00
|
|
|
config.video.fullscreenWidth = settings.value("fullscreenWidth", config.video.fullscreenWidth).toInt();
|
|
|
|
config.video.fullscreenHeight = settings.value("fullscreenHeight", config.video.fullscreenHeight).toInt();
|
|
|
|
config.video.windowedWidth = settings.value("windowedWidth", config.video.windowedWidth).toInt();
|
|
|
|
config.video.windowedHeight = settings.value("windowedHeight", config.video.windowedHeight).toInt();
|
|
|
|
config.video.fullscreenRefresh = settings.value("fullscreenRefresh", config.video.fullscreenRefresh).toInt();
|
|
|
|
config.video.multisampling = settings.value("multisampling", config.video.multisampling).toInt();
|
2017-02-20 07:24:28 +00:00
|
|
|
config.video.verticalSync = settings.value("verticalSync", config.video.verticalSync).toInt();
|
2016-09-10 14:08:31 +00:00
|
|
|
config.video.cropMode = settings.value("cropMode", config.video.cropMode).toInt();
|
|
|
|
config.video.cropWidth = settings.value("cropWidth", config.video.cropWidth).toInt();
|
|
|
|
config.video.cropHeight = settings.value("cropHeight", config.video.cropHeight).toInt();
|
2015-02-04 15:21:23 +00:00
|
|
|
settings.endGroup();
|
|
|
|
|
|
|
|
settings.beginGroup("texture");
|
2015-04-08 17:01:16 +00:00
|
|
|
config.texture.maxAnisotropy = settings.value("maxAnisotropy", config.texture.maxAnisotropy).toInt();
|
|
|
|
config.texture.bilinearMode = settings.value("bilinearMode", config.texture.bilinearMode).toInt();
|
|
|
|
config.texture.maxBytes = settings.value("maxBytes", config.texture.maxBytes).toInt();
|
|
|
|
config.texture.screenShotFormat = settings.value("screenShotFormat", config.texture.screenShotFormat).toInt();
|
2015-02-04 15:21:23 +00:00
|
|
|
settings.endGroup();
|
|
|
|
|
|
|
|
settings.beginGroup("generalEmulation");
|
2015-04-08 17:01:16 +00:00
|
|
|
config.generalEmulation.enableNoise = settings.value("enableNoise", config.generalEmulation.enableNoise).toInt();
|
|
|
|
config.generalEmulation.enableLOD = settings.value("enableLOD", config.generalEmulation.enableLOD).toInt();
|
|
|
|
config.generalEmulation.enableHWLighting = settings.value("enableHWLighting", config.generalEmulation.enableHWLighting).toInt();
|
2015-10-03 13:43:19 +00:00
|
|
|
config.generalEmulation.enableShadersStorage = settings.value("enableShadersStorage", config.generalEmulation.enableShadersStorage).toInt();
|
2015-04-08 17:01:16 +00:00
|
|
|
config.generalEmulation.enableCustomSettings = settings.value("enableCustomSettings", config.generalEmulation.enableCustomSettings).toInt();
|
2016-04-16 06:27:48 +00:00
|
|
|
config.generalEmulation.correctTexrectCoords = settings.value("correctTexrectCoords", config.generalEmulation.correctTexrectCoords).toInt();
|
2016-05-30 16:18:25 +00:00
|
|
|
config.generalEmulation.enableNativeResTexrects = settings.value("enableNativeResTexrects", config.generalEmulation.enableNativeResTexrects).toInt();
|
2015-02-04 15:21:23 +00:00
|
|
|
settings.endGroup();
|
|
|
|
|
|
|
|
settings.beginGroup("frameBufferEmulation");
|
2015-04-08 17:01:16 +00:00
|
|
|
config.frameBufferEmulation.enable = settings.value("enable", config.frameBufferEmulation.enable).toInt();
|
2016-02-03 15:21:10 +00:00
|
|
|
config.frameBufferEmulation.aspect = settings.value("aspect", config.frameBufferEmulation.aspect).toInt();
|
2016-02-27 07:41:29 +00:00
|
|
|
config.frameBufferEmulation.nativeResFactor = settings.value("nativeResFactor", config.frameBufferEmulation.nativeResFactor).toInt();
|
2016-02-03 15:21:10 +00:00
|
|
|
config.frameBufferEmulation.bufferSwapMode = settings.value("bufferSwapMode", config.frameBufferEmulation.bufferSwapMode).toInt();
|
|
|
|
config.frameBufferEmulation.N64DepthCompare = settings.value("N64DepthCompare", config.frameBufferEmulation.N64DepthCompare).toInt();
|
|
|
|
config.frameBufferEmulation.copyAuxToRDRAM = settings.value("copyAuxToRDRAM", config.frameBufferEmulation.copyAuxToRDRAM).toInt();
|
2015-04-08 17:01:16 +00:00
|
|
|
config.frameBufferEmulation.copyToRDRAM = settings.value("copyToRDRAM", config.frameBufferEmulation.copyToRDRAM).toInt();
|
|
|
|
config.frameBufferEmulation.copyDepthToRDRAM = settings.value("copyDepthToRDRAM", config.frameBufferEmulation.copyDepthToRDRAM).toInt();
|
|
|
|
config.frameBufferEmulation.copyFromRDRAM = settings.value("copyFromRDRAM", config.frameBufferEmulation.copyFromRDRAM).toInt();
|
2016-02-03 15:21:10 +00:00
|
|
|
config.frameBufferEmulation.fbInfoDisabled = settings.value("fbInfoDisabled", config.frameBufferEmulation.fbInfoDisabled).toInt();
|
|
|
|
config.frameBufferEmulation.fbInfoReadColorChunk = settings.value("fbInfoReadColorChunk", config.frameBufferEmulation.fbInfoReadColorChunk).toInt();
|
|
|
|
config.frameBufferEmulation.fbInfoReadDepthChunk = settings.value("fbInfoReadDepthChunk", config.frameBufferEmulation.fbInfoReadDepthChunk).toInt();
|
2015-12-14 15:47:54 +00:00
|
|
|
|
2015-02-04 15:21:23 +00:00
|
|
|
settings.endGroup();
|
|
|
|
|
|
|
|
settings.beginGroup("textureFilter");
|
2015-04-08 17:01:16 +00:00
|
|
|
config.textureFilter.txFilterMode = settings.value("txFilterMode", config.textureFilter.txFilterMode).toInt();
|
|
|
|
config.textureFilter.txEnhancementMode = settings.value("txEnhancementMode", config.textureFilter.txEnhancementMode).toInt();
|
2016-04-14 15:58:21 +00:00
|
|
|
config.textureFilter.txDeposterize = settings.value("txDeposterize", config.textureFilter.txDeposterize).toInt();
|
2015-04-08 17:01:16 +00:00
|
|
|
config.textureFilter.txFilterIgnoreBG = settings.value("txFilterIgnoreBG", config.textureFilter.txFilterIgnoreBG).toInt();
|
|
|
|
config.textureFilter.txCacheSize = settings.value("txCacheSize", config.textureFilter.txCacheSize).toInt();
|
|
|
|
config.textureFilter.txHiresEnable = settings.value("txHiresEnable", config.textureFilter.txHiresEnable).toInt();
|
|
|
|
config.textureFilter.txHiresFullAlphaChannel = settings.value("txHiresFullAlphaChannel", config.textureFilter.txHiresFullAlphaChannel).toInt();
|
|
|
|
config.textureFilter.txHresAltCRC = settings.value("txHresAltCRC", config.textureFilter.txHresAltCRC).toInt();
|
|
|
|
config.textureFilter.txDump = settings.value("txDump", config.textureFilter.txDump).toInt();
|
|
|
|
config.textureFilter.txForce16bpp = settings.value("txForce16bpp", config.textureFilter.txForce16bpp).toInt();
|
|
|
|
config.textureFilter.txCacheCompression = settings.value("txCacheCompression", config.textureFilter.txCacheCompression).toInt();
|
|
|
|
config.textureFilter.txSaveCache = settings.value("txSaveCache", config.textureFilter.txSaveCache).toInt();
|
2015-05-05 10:44:37 +00:00
|
|
|
QString txPath = QString::fromWCharArray(config.textureFilter.txPath);
|
|
|
|
config.textureFilter.txPath[settings.value("txPath", txPath).toString().toWCharArray(config.textureFilter.txPath)] = L'\0';
|
|
|
|
|
2015-02-04 15:21:23 +00:00
|
|
|
settings.endGroup();
|
|
|
|
|
|
|
|
settings.beginGroup("font");
|
2015-04-08 17:01:16 +00:00
|
|
|
config.font.name = settings.value("name", config.font.name.c_str()).toString().toLocal8Bit().constData();
|
|
|
|
config.font.size = settings.value("size", config.font.size).toInt();
|
|
|
|
QColor fontColor = settings.value("color", QColor(config.font.color[0], config.font.color[1], config.font.color[2])).value<QColor>();
|
2015-02-04 15:21:23 +00:00
|
|
|
config.font.color[0] = fontColor.red();
|
|
|
|
config.font.color[1] = fontColor.green();
|
|
|
|
config.font.color[2] = fontColor.blue();
|
2015-10-08 17:52:15 +00:00
|
|
|
config.font.color[3] = fontColor.alpha();
|
2015-02-04 15:21:23 +00:00
|
|
|
config.font.colorf[0] = _FIXED2FLOAT(config.font.color[0], 8);
|
|
|
|
config.font.colorf[1] = _FIXED2FLOAT(config.font.color[1], 8);
|
|
|
|
config.font.colorf[2] = _FIXED2FLOAT(config.font.color[2], 8);
|
|
|
|
config.font.colorf[3] = config.font.color[3] == 0 ? 1.0f : _FIXED2FLOAT(config.font.color[3], 8);
|
|
|
|
settings.endGroup();
|
|
|
|
|
|
|
|
settings.beginGroup("bloomFilter");
|
2015-04-08 17:01:16 +00:00
|
|
|
config.bloomFilter.enable = settings.value("enable", config.bloomFilter.enable).toInt();
|
|
|
|
config.bloomFilter.thresholdLevel = settings.value("thresholdLevel", config.bloomFilter.thresholdLevel).toInt();
|
|
|
|
config.bloomFilter.blendMode = settings.value("blendMode", config.bloomFilter.blendMode).toInt();
|
|
|
|
config.bloomFilter.blurAmount = settings.value("blurAmount", config.bloomFilter.blurAmount).toInt();
|
|
|
|
config.bloomFilter.blurStrength = settings.value("blurStrength", config.bloomFilter.blurStrength).toInt();
|
2015-02-04 15:21:23 +00:00
|
|
|
settings.endGroup();
|
2016-01-16 13:34:32 +00:00
|
|
|
|
|
|
|
settings.beginGroup("gammaCorrection");
|
|
|
|
config.gammaCorrection.force = settings.value("force", config.gammaCorrection.force).toInt();
|
|
|
|
config.gammaCorrection.level = settings.value("level", config.gammaCorrection.level).toFloat();
|
|
|
|
settings.endGroup();
|
2016-10-08 07:06:06 +00:00
|
|
|
|
|
|
|
settings.beginGroup("onScreenDispaly");
|
|
|
|
config.onScreenDisplay.fps = settings.value("showFPS", config.onScreenDisplay.fps).toInt();
|
|
|
|
config.onScreenDisplay.vis = settings.value("showVIS", config.onScreenDisplay.vis).toInt();
|
|
|
|
config.onScreenDisplay.percent = settings.value("showPercent", config.onScreenDisplay.percent).toInt();
|
2016-12-04 05:37:28 +00:00
|
|
|
config.onScreenDisplay.pos = settings.value("osdPos", config.onScreenDisplay.pos).toInt();
|
2016-10-08 07:06:06 +00:00
|
|
|
settings.endGroup();
|
2015-02-04 15:21:23 +00:00
|
|
|
}
|
|
|
|
|
2015-04-15 05:26:46 +00:00
|
|
|
void loadSettings(const QString & _strIniFolder)
|
2015-04-08 17:01:16 +00:00
|
|
|
{
|
|
|
|
// QSettings settings("Emulation", "GLideN64");
|
2015-05-01 09:19:06 +00:00
|
|
|
const u32 hacks = config.generalEmulation.hacks;
|
|
|
|
|
2015-04-15 05:26:46 +00:00
|
|
|
QSettings settings(_strIniFolder + "/" + strIniFileName, QSettings::IniFormat);
|
2015-04-08 17:01:16 +00:00
|
|
|
config.version = settings.value("version").toInt();
|
|
|
|
if (config.version != CONFIG_VERSION_CURRENT) {
|
|
|
|
config.resetToDefaults();
|
|
|
|
settings.clear();
|
2015-04-15 05:26:46 +00:00
|
|
|
writeSettings(_strIniFolder);
|
2015-05-01 09:19:06 +00:00
|
|
|
config.generalEmulation.hacks = hacks;
|
2015-04-08 17:01:16 +00:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
config.resetToDefaults();
|
|
|
|
_loadSettings(settings);
|
|
|
|
config.generalEmulation.hacks = hacks;
|
|
|
|
}
|
|
|
|
|
2015-04-15 05:26:46 +00:00
|
|
|
void writeSettings(const QString & _strIniFolder)
|
2015-02-04 15:21:23 +00:00
|
|
|
{
|
2015-03-21 15:11:52 +00:00
|
|
|
// QSettings settings("Emulation", "GLideN64");
|
2015-04-15 05:26:46 +00:00
|
|
|
QSettings settings(_strIniFolder + "/" + strIniFileName, QSettings::IniFormat);
|
2015-02-04 15:21:23 +00:00
|
|
|
settings.setValue("version", config.version);
|
|
|
|
|
2015-04-29 09:50:38 +00:00
|
|
|
settings.setValue("translation", config.translationFile.c_str());
|
|
|
|
|
2015-02-04 15:21:23 +00:00
|
|
|
settings.beginGroup("video");
|
|
|
|
settings.setValue("fullscreenWidth", config.video.fullscreenWidth);
|
|
|
|
settings.setValue("fullscreenHeight", config.video.fullscreenHeight);
|
|
|
|
settings.setValue("windowedWidth", config.video.windowedWidth);
|
|
|
|
settings.setValue("windowedHeight", config.video.windowedHeight);
|
|
|
|
settings.setValue("fullscreenRefresh", config.video.fullscreenRefresh);
|
|
|
|
settings.setValue("multisampling", config.video.multisampling);
|
2017-02-20 07:24:28 +00:00
|
|
|
settings.setValue("verticalSync", config.video.verticalSync);
|
2016-09-10 14:08:31 +00:00
|
|
|
settings.setValue("cropMode", config.video.cropMode);
|
|
|
|
settings.setValue("cropWidth", config.video.cropWidth);
|
|
|
|
settings.setValue("cropHeight", config.video.cropHeight);
|
2015-02-04 15:21:23 +00:00
|
|
|
settings.endGroup();
|
|
|
|
|
|
|
|
settings.beginGroup("texture");
|
|
|
|
settings.setValue("maxAnisotropy", config.texture.maxAnisotropy);
|
2015-03-06 06:20:25 +00:00
|
|
|
settings.setValue("bilinearMode", config.texture.bilinearMode);
|
2015-02-04 15:21:23 +00:00
|
|
|
settings.setValue("maxBytes", config.texture.maxBytes);
|
2015-02-06 04:52:09 +00:00
|
|
|
settings.setValue("screenShotFormat", config.texture.screenShotFormat);
|
2015-02-04 15:21:23 +00:00
|
|
|
settings.endGroup();
|
|
|
|
|
|
|
|
settings.beginGroup("generalEmulation");
|
|
|
|
settings.setValue("enableNoise", config.generalEmulation.enableNoise);
|
|
|
|
settings.setValue("enableLOD", config.generalEmulation.enableLOD);
|
|
|
|
settings.setValue("enableHWLighting", config.generalEmulation.enableHWLighting);
|
2015-10-03 13:43:19 +00:00
|
|
|
settings.setValue("enableShadersStorage", config.generalEmulation.enableShadersStorage);
|
2015-03-21 16:10:51 +00:00
|
|
|
settings.setValue("enableCustomSettings", config.generalEmulation.enableCustomSettings);
|
2016-04-16 06:27:48 +00:00
|
|
|
settings.setValue("correctTexrectCoords", config.generalEmulation.correctTexrectCoords);
|
2016-05-30 16:18:25 +00:00
|
|
|
settings.setValue("enableNativeResTexrects", config.generalEmulation.enableNativeResTexrects);
|
2015-02-04 15:21:23 +00:00
|
|
|
settings.endGroup();
|
|
|
|
|
|
|
|
settings.beginGroup("frameBufferEmulation");
|
|
|
|
settings.setValue("enable", config.frameBufferEmulation.enable);
|
|
|
|
settings.setValue("aspect", config.frameBufferEmulation.aspect);
|
2016-02-27 07:41:29 +00:00
|
|
|
settings.setValue("nativeResFactor", config.frameBufferEmulation.nativeResFactor);
|
2015-12-14 15:47:54 +00:00
|
|
|
settings.setValue("bufferSwapMode", config.frameBufferEmulation.bufferSwapMode);
|
2016-02-03 15:21:10 +00:00
|
|
|
settings.setValue("N64DepthCompare", config.frameBufferEmulation.N64DepthCompare);
|
|
|
|
settings.setValue("copyAuxToRDRAM", config.frameBufferEmulation.copyAuxToRDRAM);
|
|
|
|
settings.setValue("copyFromRDRAM", config.frameBufferEmulation.copyFromRDRAM);
|
|
|
|
settings.setValue("copyToRDRAM", config.frameBufferEmulation.copyToRDRAM);
|
|
|
|
settings.setValue("copyDepthToRDRAM", config.frameBufferEmulation.copyDepthToRDRAM);
|
|
|
|
settings.setValue("fbInfoDisabled", config.frameBufferEmulation.fbInfoDisabled);
|
|
|
|
settings.setValue("fbInfoReadColorChunk", config.frameBufferEmulation.fbInfoReadColorChunk);
|
|
|
|
settings.setValue("fbInfoReadDepthChunk", config.frameBufferEmulation.fbInfoReadDepthChunk);
|
2015-02-04 15:21:23 +00:00
|
|
|
settings.endGroup();
|
|
|
|
|
|
|
|
settings.beginGroup("textureFilter");
|
|
|
|
settings.setValue("txFilterMode", config.textureFilter.txFilterMode);
|
|
|
|
settings.setValue("txEnhancementMode", config.textureFilter.txEnhancementMode);
|
2016-04-14 15:58:21 +00:00
|
|
|
settings.setValue("txDeposterize", config.textureFilter.txDeposterize);
|
2015-02-04 15:21:23 +00:00
|
|
|
settings.setValue("txFilterIgnoreBG", config.textureFilter.txFilterIgnoreBG);
|
|
|
|
settings.setValue("txCacheSize", config.textureFilter.txCacheSize);
|
|
|
|
settings.setValue("txHiresEnable", config.textureFilter.txHiresEnable);
|
|
|
|
settings.setValue("txHiresFullAlphaChannel", config.textureFilter.txHiresFullAlphaChannel);
|
|
|
|
settings.setValue("txHresAltCRC", config.textureFilter.txHresAltCRC);
|
|
|
|
settings.setValue("txDump", config.textureFilter.txDump);
|
2015-02-05 15:20:40 +00:00
|
|
|
settings.setValue("txForce16bpp", config.textureFilter.txForce16bpp);
|
|
|
|
settings.setValue("txCacheCompression", config.textureFilter.txCacheCompression);
|
|
|
|
settings.setValue("txSaveCache", config.textureFilter.txSaveCache);
|
2015-03-06 09:16:25 +00:00
|
|
|
settings.setValue("txPath", QString::fromWCharArray(config.textureFilter.txPath));
|
2015-02-04 15:21:23 +00:00
|
|
|
settings.endGroup();
|
|
|
|
|
|
|
|
settings.beginGroup("font");
|
|
|
|
settings.setValue("name", config.font.name.c_str());
|
|
|
|
settings.setValue("size", config.font.size);
|
|
|
|
settings.setValue("color", QColor(config.font.color[0], config.font.color[1], config.font.color[2], config.font.color[3]));
|
|
|
|
settings.endGroup();
|
|
|
|
|
|
|
|
settings.beginGroup("bloomFilter");
|
2015-02-11 05:24:23 +00:00
|
|
|
settings.setValue("enable", config.bloomFilter.enable);
|
2015-02-04 15:21:23 +00:00
|
|
|
settings.setValue("thresholdLevel", config.bloomFilter.thresholdLevel);
|
|
|
|
settings.setValue("blendMode", config.bloomFilter.blendMode);
|
|
|
|
settings.setValue("blurAmount", config.bloomFilter.blurAmount);
|
|
|
|
settings.setValue("blurStrength", config.bloomFilter.blurStrength);
|
|
|
|
settings.endGroup();
|
2016-01-16 13:34:32 +00:00
|
|
|
|
|
|
|
settings.beginGroup("gammaCorrection");
|
|
|
|
settings.setValue("force", config.gammaCorrection.force);
|
|
|
|
settings.setValue("level", config.gammaCorrection.level);
|
|
|
|
settings.endGroup();
|
2016-10-08 07:06:06 +00:00
|
|
|
|
|
|
|
settings.beginGroup("onScreenDispaly");
|
|
|
|
settings.setValue("showFPS", config.onScreenDisplay.fps);
|
|
|
|
settings.setValue("showVIS", config.onScreenDisplay.vis);
|
|
|
|
settings.setValue("showPercent", config.onScreenDisplay.percent);
|
2016-12-04 05:37:28 +00:00
|
|
|
settings.setValue("osdPos", config.onScreenDisplay.pos);
|
2016-10-08 07:06:06 +00:00
|
|
|
settings.endGroup();
|
2015-02-04 15:21:23 +00:00
|
|
|
}
|
2015-03-21 16:10:51 +00:00
|
|
|
|
2015-04-09 09:55:30 +00:00
|
|
|
static
|
|
|
|
u32 Adler32(u32 crc, const void *buffer, u32 count)
|
|
|
|
{
|
|
|
|
register u32 s1 = crc & 0xFFFF;
|
|
|
|
register u32 s2 = (crc >> 16) & 0xFFFF;
|
|
|
|
int k;
|
|
|
|
const u8 *Buffer = (const u8*)buffer;
|
|
|
|
|
|
|
|
if (Buffer == NULL)
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
while (count > 0) {
|
|
|
|
/* 5552 is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
|
|
|
|
k = (count < 5552 ? count : 5552);
|
|
|
|
count -= k;
|
|
|
|
while (k--) {
|
|
|
|
s1 += *Buffer++;
|
|
|
|
s2 += s1;
|
|
|
|
}
|
|
|
|
/* 65521 is the largest prime smaller than 65536 */
|
|
|
|
s1 %= 65521;
|
|
|
|
s2 %= 65521;
|
|
|
|
}
|
|
|
|
|
|
|
|
return (s2 << 16) | s1;
|
|
|
|
}
|
|
|
|
|
2015-04-15 05:26:46 +00:00
|
|
|
void loadCustomRomSettings(const QString & _strIniFolder, const char * _strRomName)
|
2015-03-21 16:10:51 +00:00
|
|
|
{
|
2015-04-15 05:26:46 +00:00
|
|
|
QSettings settings(_strIniFolder + "/" + strCustomSettingsFileName, QSettings::IniFormat);
|
2015-03-21 16:10:51 +00:00
|
|
|
|
2015-04-01 05:19:45 +00:00
|
|
|
const QByteArray bytes(_strRomName);
|
|
|
|
bool bASCII = true;
|
|
|
|
for (int i = 0; i < bytes.length() && bASCII; ++i)
|
|
|
|
bASCII = bytes.at(i) >= 0;
|
|
|
|
|
2015-04-15 05:26:46 +00:00
|
|
|
const QString romName = bASCII ? QString::fromLatin1(_strRomName).toUpper() : QString::number(Adler32(0xFFFFFFFF, bytes.data(), bytes.length()), 16).toUpper();
|
2015-04-01 05:19:45 +00:00
|
|
|
if (settings.childGroups().indexOf(romName) < 0)
|
2015-03-21 16:10:51 +00:00
|
|
|
return;
|
|
|
|
|
2015-04-01 05:19:45 +00:00
|
|
|
settings.beginGroup(romName);
|
2015-04-08 17:01:16 +00:00
|
|
|
_loadSettings(settings);
|
2015-03-21 16:10:51 +00:00
|
|
|
settings.endGroup();
|
|
|
|
}
|
2015-04-29 09:50:38 +00:00
|
|
|
|
|
|
|
QString getTranslationFile()
|
|
|
|
{
|
|
|
|
return config.translationFile.c_str();
|
|
|
|
}
|