mirror of
https://github.com/Rakashazi/emu-ex-plus-alpha.git
synced 2024-11-23 05:39:53 +00:00
1.5.78 release
* EmuFramework: Convert more options to state-less API * C64.emu: Fix missing return statements in C64System::readConfig() * Saturn.emu: Add option to skip printing MD5 sum in save file names
This commit is contained in:
parent
01c2056c6d
commit
b062a726da
@ -164,16 +164,16 @@ bool C64System::readConfig(ConfigType type, MapIO &io, unsigned key, size_t read
|
||||
{
|
||||
case CFGKEY_DEFAULT_MODEL: return readOptionValue(io, readSize, defaultModel, modelIdIsValid);
|
||||
case CFGKEY_CROP_NORMAL_BORDERS: return readOptionValue(io, readSize, optionCropNormalBorders);
|
||||
case CFGKEY_DEFAULT_DRIVE_TRUE_EMULATION: readOptionValue(io, readSize, defaultDriveTrueEmulation);
|
||||
case CFGKEY_DEFAULT_DRIVE_TRUE_EMULATION: return readOptionValue(io, readSize, defaultDriveTrueEmulation);
|
||||
case CFGKEY_SID_ENGINE: return readOptionValue<uint8_t>(io, readSize, [&](auto v){ setSidEngine(v); });
|
||||
case CFGKEY_BORDER_MODE: return readOptionValue<uint8_t>(io, readSize, [&](auto v){ setBorderMode(v); });
|
||||
case CFGKEY_RESID_SAMPLING: return readOptionValue<uint8_t>(io, readSize, [&](auto v){ setReSidSampling(v); });
|
||||
case CFGKEY_DEFAULT_PALETTE_NAME: return readStringOptionValue(io, readSize, defaultPaletteName);
|
||||
case CFGKEY_COLOR_SATURATION: readOptionValue<int16_t>(io, readSize, [&](auto v){ setColorSetting(ColorSetting::Saturation, v); });
|
||||
case CFGKEY_COLOR_CONTRAST: readOptionValue<int16_t>(io, readSize, [&](auto v){ setColorSetting(ColorSetting::Contrast, v); });
|
||||
case CFGKEY_COLOR_BRIGHTNESS: readOptionValue<int16_t>(io, readSize, [&](auto v){ setColorSetting(ColorSetting::Brightness, v); });
|
||||
case CFGKEY_COLOR_GAMMA: readOptionValue<int16_t>(io, readSize, [&](auto v){ setColorSetting(ColorSetting::Gamma, v); });
|
||||
case CFGKEY_COLOR_TINT: readOptionValue<int16_t>(io, readSize, [&](auto v){ setColorSetting(ColorSetting::Tint, v); });
|
||||
case CFGKEY_COLOR_SATURATION: return readOptionValue<int16_t>(io, readSize, [&](auto v){ setColorSetting(ColorSetting::Saturation, v); });
|
||||
case CFGKEY_COLOR_CONTRAST: return readOptionValue<int16_t>(io, readSize, [&](auto v){ setColorSetting(ColorSetting::Contrast, v); });
|
||||
case CFGKEY_COLOR_BRIGHTNESS: return readOptionValue<int16_t>(io, readSize, [&](auto v){ setColorSetting(ColorSetting::Brightness, v); });
|
||||
case CFGKEY_COLOR_GAMMA: return readOptionValue<int16_t>(io, readSize, [&](auto v){ setColorSetting(ColorSetting::Gamma, v); });
|
||||
case CFGKEY_COLOR_TINT: return readOptionValue<int16_t>(io, readSize, [&](auto v){ setColorSetting(ColorSetting::Tint, v); });
|
||||
}
|
||||
}
|
||||
else if(type == ConfigType::SESSION)
|
||||
|
@ -219,7 +219,7 @@ public:
|
||||
bool shouldOverwriteExistingState() const;
|
||||
const auto &contentSearchPath() const { return contentSearchPath_; }
|
||||
FS::PathString contentSearchPath(std::string_view name) const;
|
||||
void setContentSearchPath(std::string_view path);
|
||||
void setContentSearchPath(auto &&path) { contentSearchPath_ = IG_forward(path); }
|
||||
FS::PathString validSearchPath(const FS::PathString &) const;
|
||||
static void updateLegacySavePath(IG::ApplicationContext, CStringView path);
|
||||
auto screenshotDirectory() const { return system().userPath(userScreenshotPath); }
|
||||
@ -306,8 +306,7 @@ public:
|
||||
uint8_t videoZoom() const { return optionImageZoom; }
|
||||
bool setViewportZoom(uint8_t val);
|
||||
uint8_t viewportZoom() { return optionViewportZoom; }
|
||||
auto &showOnSecondScreenOption() { return optionShowOnSecondScreen; }
|
||||
auto &textureBufferModeOption() { return optionTextureBufferMode; }
|
||||
bool supportsShowOnSecondScreen(ApplicationContext ctx) { return ctx.androidSDK() >= 17; }
|
||||
void setContentRotation(IG::Rotation);
|
||||
Rotation contentRotation() const { return contentRotation_; }
|
||||
void updateVideoContentRotation();
|
||||
@ -343,7 +342,6 @@ public:
|
||||
void applyFontSize(Window &win);
|
||||
IG::FontSettings fontSettings(Window &win) const;
|
||||
void setShowsTitleBar(bool on);
|
||||
bool showsTitleBar() const { return optionTitleBar; };
|
||||
void setLowProfileOSNavMode(Tristate mode);
|
||||
void setHideOSNavMode(Tristate mode);
|
||||
void setHideStatusBarMode(Tristate mode);
|
||||
@ -549,7 +547,9 @@ protected:
|
||||
int16_t optionFontSize{defaultFontSize};
|
||||
int8_t optionFrameInterval{1};
|
||||
Byte1Option optionNotificationIcon;
|
||||
Byte1Option optionTitleBar;
|
||||
public:
|
||||
IG_UseMemberIf(CAN_HIDE_TITLE_BAR, bool, optionTitleBar){true};
|
||||
protected:
|
||||
IG_UseMemberIf(Config::NAVIGATION_BAR, Byte1Option, optionLowProfileOSNav);
|
||||
IG_UseMemberIf(Config::NAVIGATION_BAR, Byte1Option, optionHideOSNav);
|
||||
IG_UseMemberIf(Config::STATUS_BAR, Tristate, optionHideStatusBar){Tristate::IN_EMU};
|
||||
@ -560,8 +560,10 @@ protected:
|
||||
Byte1Option optionImageEffectPixelFormat;
|
||||
Byte1Option optionImageZoom;
|
||||
Byte1Option optionViewportZoom;
|
||||
Byte1Option optionShowOnSecondScreen;
|
||||
Byte1Option optionTextureBufferMode;
|
||||
public:
|
||||
IG_UseMemberIf(Config::BASE_MULTI_WINDOW && Config::BASE_MULTI_SCREEN, bool, optionShowOnSecondScreen){};
|
||||
Gfx::TextureBufferMode optionTextureBufferMode{};
|
||||
protected:
|
||||
Gfx::DrawableConfig windowDrawableConf;
|
||||
IG::PixelFormat renderPixelFmt;
|
||||
IG::Rotation contentRotation_{IG::Rotation::ANY};
|
||||
|
@ -1,4 +1,4 @@
|
||||
metadata_version = 1.5.77
|
||||
metadata_version = 1.5.78
|
||||
metadata_supportedMIMETypes = application/zip
|
||||
metadata_supportedFileExtensions = rar 7z
|
||||
android_metadata_versionCodeExtra = 16
|
||||
@ -10,7 +10,6 @@ android_metadata_xperiaPlayOptimized = 1
|
||||
android_metadata_legacyStorage = 1
|
||||
android_metadata_appExtStorage = 1
|
||||
android_metadata_adaptiveIconIsMonochrome = 1
|
||||
ios_metadata_setuidPermissionHelper = 1
|
||||
pnd_metadata_subcategory = Emulator
|
||||
pnd_metadata_website = http://www.explusalpha.com
|
||||
pnd_metadata_license = GPLv3+
|
||||
|
@ -59,9 +59,6 @@ void EmuApp::saveConfigFile(FileIO &io)
|
||||
|
||||
const auto cfgFileOptions = std::tie
|
||||
(
|
||||
#if defined CONFIG_BASE_MULTI_WINDOW && defined CONFIG_BASE_MULTI_SCREEN
|
||||
optionShowOnSecondScreen,
|
||||
#endif
|
||||
#if defined __ANDROID__
|
||||
optionLowProfileOSNav,
|
||||
optionHideOSNav,
|
||||
@ -72,9 +69,7 @@ void EmuApp::saveConfigFile(FileIO &io)
|
||||
optionImageZoom,
|
||||
optionViewportZoom,
|
||||
optionImageEffectPixelFormat,
|
||||
optionNotificationIcon,
|
||||
optionTitleBar,
|
||||
optionTextureBufferMode
|
||||
optionNotificationIcon
|
||||
);
|
||||
|
||||
std::apply([&](auto &...opt){ (writeOptionValue(io, opt), ...); }, cfgFileOptions);
|
||||
@ -99,7 +94,12 @@ void EmuApp::saveConfigFile(FileIO &io)
|
||||
writeOptionValue(io, CFGKEY_WINDOW_PIXEL_FORMAT, windowDrawablePixelFormatOption());
|
||||
writeOptionValue(io, CFGKEY_VIDEO_COLOR_SPACE, windowDrawableColorSpaceOption());
|
||||
writeOptionValue(io, CFGKEY_RENDER_PIXEL_FORMAT, renderPixelFormatOption());
|
||||
writeOptionValueIfNotDefault(io, CFGKEY_TEXTURE_BUFFER_MODE, optionTextureBufferMode, Gfx::TextureBufferMode{});
|
||||
if(used(optionShowOnSecondScreen))
|
||||
writeOptionValueIfNotDefault(io, CFGKEY_SHOW_ON_2ND_SCREEN, optionShowOnSecondScreen, false);
|
||||
writeOptionValueIfNotDefault(io, CFGKEY_SHOW_HIDDEN_FILES, showHiddenFilesInPicker, false);
|
||||
if(used(optionTitleBar))
|
||||
writeOptionValueIfNotDefault(io, CFGKEY_TITLE_BAR, optionTitleBar, true);
|
||||
if constexpr(MOGA_INPUT)
|
||||
{
|
||||
if(mogaManagerPtr)
|
||||
@ -221,9 +221,7 @@ EmuApp::ConfigParams EmuApp::loadConfigFile(IG::ApplicationContext ctx)
|
||||
case CFGKEY_MENU_ORIENTATION: return readOptionValue(io, size, optionMenuOrientation);
|
||||
case CFGKEY_IMAGE_ZOOM: return optionImageZoom.readFromIO(io, size);
|
||||
case CFGKEY_VIEWPORT_ZOOM: return optionViewportZoom.readFromIO(io, size);
|
||||
#if defined CONFIG_BASE_MULTI_WINDOW && defined CONFIG_BASE_MULTI_SCREEN
|
||||
case CFGKEY_SHOW_ON_2ND_SCREEN: return optionShowOnSecondScreen.readFromIO(io, size);
|
||||
#endif
|
||||
case CFGKEY_SHOW_ON_2ND_SCREEN: return used(optionShowOnSecondScreen) ? readOptionValue(io, size, optionShowOnSecondScreen) : false;
|
||||
case CFGKEY_IMAGE_EFFECT_PIXEL_FORMAT: return optionImageEffectPixelFormat.readFromIO(io, size);
|
||||
case CFGKEY_RENDER_PIXEL_FORMAT:
|
||||
setRenderPixelFormat(readOptionValue<IG::PixelFormat>(io, size, renderPixelFormatIsValid));
|
||||
@ -234,7 +232,7 @@ EmuApp::ConfigParams EmuApp::loadConfigFile(IG::ApplicationContext ctx)
|
||||
return true;
|
||||
case CFGKEY_PAUSE_UNFOCUSED: return used(pauseUnfocused) ? readOptionValue(io, size, pauseUnfocused) : false;
|
||||
case CFGKEY_NOTIFICATION_ICON: return optionNotificationIcon.readFromIO(io, size);
|
||||
case CFGKEY_TITLE_BAR: return optionTitleBar.readFromIO(io, size);
|
||||
case CFGKEY_TITLE_BAR: return used(optionTitleBar) ? readOptionValue(io, size, optionTitleBar) : false;
|
||||
case CFGKEY_BACK_NAVIGATION:
|
||||
return readOptionValue(io, size, viewManager.needsBackControl);
|
||||
case CFGKEY_SYSTEM_ACTIONS_IS_DEFAULT_MENU: return readOptionValue(io, size, systemActionsIsDefaultMenu);
|
||||
@ -250,7 +248,7 @@ EmuApp::ConfigParams EmuApp::loadConfigFile(IG::ApplicationContext ctx)
|
||||
#endif
|
||||
case CFGKEY_MOGA_INPUT_SYSTEM:
|
||||
return MOGA_INPUT ? readOptionValue<bool>(io, size, [&](auto on){setMogaManagerActive(on, false);}) : false;
|
||||
case CFGKEY_TEXTURE_BUFFER_MODE: return optionTextureBufferMode.readFromIO(io, size);
|
||||
case CFGKEY_TEXTURE_BUFFER_MODE: return readOptionValue(io, size, optionTextureBufferMode);
|
||||
#if defined __ANDROID__
|
||||
case CFGKEY_LOW_PROFILE_OS_NAV: return optionLowProfileOSNav.readFromIO(io, size);
|
||||
case CFGKEY_HIDE_OS_NAV: return optionHideOSNav.readFromIO(io, size);
|
||||
|
@ -123,15 +123,12 @@ EmuApp::EmuApp(ApplicationInitParams initParams, ApplicationContext &ctx):
|
||||
vibrationManager_{ctx},
|
||||
perfHintManager{ctx.performanceHintManager()},
|
||||
optionNotificationIcon{CFGKEY_NOTIFICATION_ICON, 1, !Config::envIsAndroid},
|
||||
optionTitleBar{CFGKEY_TITLE_BAR, 1, !CAN_HIDE_TITLE_BAR},
|
||||
optionLowProfileOSNav{CFGKEY_LOW_PROFILE_OS_NAV, 1, !Config::envIsAndroid},
|
||||
optionHideOSNav{CFGKEY_HIDE_OS_NAV, 0, !Config::envIsAndroid},
|
||||
optionShowBluetoothScan{CFGKEY_SHOW_BLUETOOTH_SCAN, 1},
|
||||
optionImageEffectPixelFormat{CFGKEY_IMAGE_EFFECT_PIXEL_FORMAT, IG::PIXEL_NONE, 0, imageEffectPixelFormatIsValid},
|
||||
optionImageZoom(CFGKEY_IMAGE_ZOOM, 100, 0, optionImageZoomIsValid),
|
||||
optionViewportZoom(CFGKEY_VIEWPORT_ZOOM, 100, 0, optionIsValidWithMinMax<50, 100>),
|
||||
optionShowOnSecondScreen{CFGKEY_SHOW_ON_2ND_SCREEN, 0},
|
||||
optionTextureBufferMode{CFGKEY_TEXTURE_BUFFER_MODE, 0},
|
||||
layoutBehindSystemUI{ctx.hasTranslucentSysUI()}
|
||||
{
|
||||
if(ctx.registerInstance(initParams))
|
||||
@ -485,13 +482,13 @@ void EmuApp::mainInitCommon(IG::ApplicationInitParams initParams, IG::Applicatio
|
||||
[this, appConfig](IG::ApplicationContext ctx, IG::Window &win)
|
||||
{
|
||||
renderer.initMainTask(&win, windowDrawableConfig());
|
||||
if(optionTextureBufferMode.val)
|
||||
if(optionTextureBufferMode != Gfx::TextureBufferMode::DEFAULT)
|
||||
{
|
||||
auto mode = (Gfx::TextureBufferMode)optionTextureBufferMode.val;
|
||||
auto mode = optionTextureBufferMode;
|
||||
if(renderer.makeValidTextureBufferMode(mode) != mode)
|
||||
{
|
||||
// reset to default if saved non-default mode isn't supported
|
||||
optionTextureBufferMode.reset();
|
||||
optionTextureBufferMode = {};
|
||||
}
|
||||
}
|
||||
viewManager.defaultFace = {renderer, fontManager.makeSystem(), fontSettings(win)};
|
||||
@ -519,7 +516,7 @@ void EmuApp::mainInitCommon(IG::ApplicationInitParams initParams, IG::Applicatio
|
||||
viewController.placeEmuViews();
|
||||
});
|
||||
emuVideo.setRendererTask(renderer.task());
|
||||
emuVideo.setTextureBufferMode(system(), (Gfx::TextureBufferMode)optionTextureBufferMode.val);
|
||||
emuVideo.setTextureBufferMode(system(), optionTextureBufferMode);
|
||||
emuVideoLayer.setRendererTask(renderer.task());
|
||||
applyRenderPixelFormat();
|
||||
emuVideoLayer.updateEffect(system(), videoEffectPixelFormat());
|
||||
@ -582,7 +579,7 @@ void EmuApp::mainInitCommon(IG::ApplicationInitParams initParams, IG::Applicatio
|
||||
if(e.change == ScreenChange::added)
|
||||
{
|
||||
log.info("screen added");
|
||||
if(showOnSecondScreenOption() && ctx.screens().size() > 1)
|
||||
if(optionShowOnSecondScreen && ctx.screens().size() > 1)
|
||||
setEmuViewOnExtraWindow(true, e.screen);
|
||||
}
|
||||
else if(e.change == ScreenChange::removed)
|
||||
@ -642,7 +639,7 @@ void EmuApp::mainInitCommon(IG::ApplicationInitParams initParams, IG::Applicatio
|
||||
if(backgrounded)
|
||||
{
|
||||
showUI();
|
||||
if(showOnSecondScreenOption() && ctx.screens().size() > 1)
|
||||
if(optionShowOnSecondScreen && ctx.screens().size() > 1)
|
||||
{
|
||||
setEmuViewOnExtraWindow(false, *ctx.screens()[1]);
|
||||
}
|
||||
@ -1192,11 +1189,6 @@ FS::PathString EmuApp::contentSearchPath(std::string_view name) const
|
||||
return FS::uriString(contentSearchPath_, name);
|
||||
}
|
||||
|
||||
void EmuApp::setContentSearchPath(std::string_view path)
|
||||
{
|
||||
contentSearchPath_ = path;
|
||||
}
|
||||
|
||||
FS::PathString EmuApp::validSearchPath(const FS::PathString &path) const
|
||||
{
|
||||
auto ctx = appContext();
|
||||
@ -1834,7 +1826,7 @@ void EmuApp::setEmuViewOnExtraWindow(bool on, IG::Screen &screen)
|
||||
|
||||
void EmuApp::configureSecondaryScreens()
|
||||
{
|
||||
if(showOnSecondScreenOption() && appContext().screens().size() > 1)
|
||||
if(optionShowOnSecondScreen && appContext().screens().size() > 1)
|
||||
{
|
||||
setEmuViewOnExtraWindow(true, *appContext().screens()[1]);
|
||||
}
|
||||
|
@ -60,10 +60,6 @@ void EmuApp::initOptions(IG::ApplicationContext ctx)
|
||||
if(androidSdk >= 17)
|
||||
optionNotificationIcon.isConst = true;
|
||||
}
|
||||
if(androidSdk < 17)
|
||||
{
|
||||
optionShowOnSecondScreen.isConst = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
optionShowBluetoothScan.initDefault(0);
|
||||
|
@ -73,7 +73,7 @@ EmuViewController::EmuViewController(ViewAttachParams viewAttach,
|
||||
app().onCustomizeNavView(*viewNav);
|
||||
viewStack.setNavView(std::move(viewNav));
|
||||
}
|
||||
viewStack.showNavView(app().showsTitleBar());
|
||||
viewStack.showNavView(app().optionTitleBar);
|
||||
emuView.setLayoutInputView(&inputView);
|
||||
}
|
||||
|
||||
|
@ -158,7 +158,7 @@ GUIOptionView::GUIOptionView(ViewAttachParams attach, bool customMenu):
|
||||
navView
|
||||
{
|
||||
"Title Bar", attach,
|
||||
app().showsTitleBar(),
|
||||
app().optionTitleBar,
|
||||
[this](BoolMenuItem &item)
|
||||
{
|
||||
app().setShowsTitleBar(item.flipBoolValue(*this));
|
||||
|
@ -208,7 +208,7 @@ VideoOptionView::VideoOptionView(ViewAttachParams attach, bool customMenu):
|
||||
decltype(textureBufferModeItem) items;
|
||||
items.emplace_back("Auto (Set optimal mode)", attach, [this](View &view)
|
||||
{
|
||||
app().textureBufferModeOption() = 0;
|
||||
app().optionTextureBufferMode = Gfx::TextureBufferMode::DEFAULT;
|
||||
auto defaultMode = renderer().makeValidTextureBufferMode();
|
||||
emuVideo().setTextureBufferMode(system(), defaultMode);
|
||||
textureBufferMode.setSelected(MenuId{defaultMode});
|
||||
@ -219,7 +219,7 @@ VideoOptionView::VideoOptionView(ViewAttachParams attach, bool customMenu):
|
||||
{
|
||||
items.emplace_back(desc.name, attach, [this](MenuItem &item)
|
||||
{
|
||||
app().textureBufferModeOption() = item.id;
|
||||
app().optionTextureBufferMode = Gfx::TextureBufferMode(item.id.val);
|
||||
emuVideo().setTextureBufferMode(system(), Gfx::TextureBufferMode(item.id.val));
|
||||
}, MenuItem::Config{.id = desc.mode});
|
||||
}
|
||||
@ -229,7 +229,7 @@ VideoOptionView::VideoOptionView(ViewAttachParams attach, bool customMenu):
|
||||
textureBufferMode
|
||||
{
|
||||
"GPU Copy Mode", attach,
|
||||
MenuId{renderer().makeValidTextureBufferMode(Gfx::TextureBufferMode(app().textureBufferModeOption().val))},
|
||||
MenuId{renderer().makeValidTextureBufferMode(app().optionTextureBufferMode)},
|
||||
textureBufferModeItem
|
||||
},
|
||||
frameIntervalItem
|
||||
@ -702,13 +702,13 @@ VideoOptionView::VideoOptionView(ViewAttachParams attach, bool customMenu):
|
||||
showOnSecondScreen
|
||||
{
|
||||
"External Screen", attach,
|
||||
(bool)app().showOnSecondScreenOption(),
|
||||
app().optionShowOnSecondScreen,
|
||||
"OS Managed", "Emu Content",
|
||||
[this](BoolMenuItem &item)
|
||||
{
|
||||
app().showOnSecondScreenOption() = item.flipBoolValue(*this);
|
||||
app().optionShowOnSecondScreen = item.flipBoolValue(*this);
|
||||
if(appContext().screens().size() > 1)
|
||||
app().setEmuViewOnExtraWindow(app().showOnSecondScreenOption(), *appContext().screens()[1]);
|
||||
app().setEmuViewOnExtraWindow(app().optionShowOnSecondScreen, *appContext().screens()[1]);
|
||||
}
|
||||
},
|
||||
frameClockItems
|
||||
@ -973,7 +973,7 @@ void VideoOptionView::loadStockItems()
|
||||
item.emplace_back(&screenFrameRate);
|
||||
if(used(secondDisplay))
|
||||
item.emplace_back(&secondDisplay);
|
||||
if(used(showOnSecondScreen) && !app().showOnSecondScreenOption().isConst)
|
||||
if(used(showOnSecondScreen) && app().supportsShowOnSecondScreen(appContext()))
|
||||
item.emplace_back(&showOnSecondScreen);
|
||||
}
|
||||
|
||||
|
@ -567,12 +567,15 @@ class CustomSystemOptionView : public SystemOptionView, public MainAppHelper<Cus
|
||||
}
|
||||
};
|
||||
|
||||
BoolMenuItem saveFilenameType = saveFilenameTypeMenuItem(*this, system());
|
||||
|
||||
public:
|
||||
CustomSystemOptionView(ViewAttachParams attach): SystemOptionView{attach, true}
|
||||
{
|
||||
loadStockItems();
|
||||
item.emplace_back(&biosLanguage);
|
||||
item.emplace_back(&autoSetRTC);
|
||||
item.emplace_back(&saveFilenameType);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -86,6 +86,7 @@ enum
|
||||
CFGKEY_DEFAULT_NTSC_VIDEO_LINES = 287, CFGKEY_DEFAULT_PAL_VIDEO_LINES = 288,
|
||||
CFGKEY_DEFAULT_SHOW_H_OVERSCAN = 289, CFGKEY_SHOW_H_OVERSCAN = 290,
|
||||
CFGKEY_DEINTERLACE_MODE = 291, CFGKEY_WIDESCREEN_MODE = 292,
|
||||
CFGKEY_NO_MD5_FILENAMES = 293
|
||||
};
|
||||
|
||||
struct VideoLineRange
|
||||
|
@ -78,6 +78,7 @@ bool SaturnSystem::readConfig(ConfigType type, MapIO &io, unsigned key, size_t r
|
||||
case CFGKEY_DEFAULT_NTSC_VIDEO_LINES: return readOptionValue(io, readSize, defaultNtscLines, linesAreValid<240>);
|
||||
case CFGKEY_DEFAULT_PAL_VIDEO_LINES: return readOptionValue(io, readSize, defaultPalLines, linesAreValid<288>);
|
||||
case CFGKEY_DEFAULT_SHOW_H_OVERSCAN: return readOptionValue(io, readSize, defaultShowHOverscan);
|
||||
case CFGKEY_NO_MD5_FILENAMES: return readOptionValue(io, readSize, noMD5InFilenames);
|
||||
}
|
||||
}
|
||||
else if(type == ConfigType::SESSION)
|
||||
@ -110,6 +111,7 @@ void SaturnSystem::writeConfig(ConfigType type, FileIO &io)
|
||||
writeOptionValueIfNotDefault(io, CFGKEY_DEFAULT_NTSC_VIDEO_LINES, defaultNtscLines, safeNtscLines);
|
||||
writeOptionValueIfNotDefault(io, CFGKEY_DEFAULT_PAL_VIDEO_LINES, defaultPalLines, safePalLines);
|
||||
writeOptionValueIfNotDefault(io, CFGKEY_DEFAULT_SHOW_H_OVERSCAN, defaultShowHOverscan, false);
|
||||
writeOptionValueIfNotDefault(io, CFGKEY_NO_MD5_FILENAMES, noMD5InFilenames, false);
|
||||
}
|
||||
else if(type == ConfigType::SESSION)
|
||||
{
|
||||
|
@ -41,7 +41,7 @@ prefix ?= $(IMAGINE_SDK_PLATFORM_PATH)
|
||||
imaginePkgconfigTemplate := $(IMAGINE_PATH)/pkgconfig/imagine.pc
|
||||
pkgName := $(libName)
|
||||
pkgDescription := Game/Multimedia Engine
|
||||
pkgVersion := 1.5.77
|
||||
pkgVersion := 1.5.78
|
||||
LDLIBS := -l$(libName) $(LDLIBS)
|
||||
ifdef libNameExt
|
||||
pkgCFlags := -DIMAGINE_CONFIG_H=$(configFilename)
|
||||
|
@ -15,7 +15,7 @@
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Imagine. If not, see <http://www.gnu.org/licenses/> */
|
||||
|
||||
#define IMAGINE_VERSION_BASE "1.5.77"
|
||||
#define IMAGINE_VERSION_BASE "1.5.78"
|
||||
|
||||
#ifdef NDEBUG
|
||||
#define IMAGINE_VERSION IMAGINE_VERSION_BASE
|
||||
|
Loading…
Reference in New Issue
Block a user