mirror of
https://github.com/bsnes-emu/bsnes.git
synced 2025-08-20 09:31:36 +02:00
Update to v106r50 release.
byuu says: Changelog: - emulator/video,audio: various cleanups - emulator/audio: removed reverb effect (it breaks very badly on high-frequency systems) - emulator/audio: the Nyquist anti-aliasing lowpass filter is now generated automatically instead of set per-core - at 44.1KHz output, it's set to 22KHz; at 48KHz, it's set to 22KHz; at 96KHz, it's set to 25KHz - this filter now takes the bsnes emulation speed setting into account - all system/video.cpp files removed; inlined in System::power() and Interface::set() instead - sfc/cpu: pre-compute `HTIME` as `HTIME+1<<2` for faster comparisons of HIRQs - sfc/cpu: re-add check to block IRQs on the last dot of each frame (minor speed hit) - hiro/gtk3: fixed headers for Linux compilation finally - hiro/gtk,qt: fixed settings.cpp logic so initial values are used when no settings.bml file exists - hiro/gtk: started a minor experiment to specify theming information in settings.bml files - nall/dsp: allow the precision type (double) to be overridden (to float) - nall: add some helpers for generating pre-compiled headers - it was a failure to try using them for higan, however ... - nall: add some helpers for reading fallback values from empty `Markup::Node[search]` statements Todo: - CRITICAL: a lot of my IRQ/NMI/HDMA timing tests are failing with the fast PPU ... need to figure out why - space between Emulator::video functions and Emulator::audio functions in gb/system/system.cpp - remove Audio/Reverb/Enable from settings.bml in target-bsnes
This commit is contained in:
@@ -8,16 +8,20 @@ Settings::Settings() {
|
||||
auto document = BML::unserialize(file::read({path, "gtk3.bml"}));
|
||||
#endif
|
||||
|
||||
auto get = [&](string_view name) {
|
||||
return document[name];
|
||||
};
|
||||
#define get(name, type, value) \
|
||||
if(auto node = document[name]) value = node.type()
|
||||
|
||||
geometry.frameX = get("Geometry/FrameX").integer();
|
||||
geometry.frameY = get("Geometry/FrameY").integer();
|
||||
geometry.frameWidth = get("Geometry/FrameWidth").integer();
|
||||
geometry.frameHeight = get("Geometry/FrameHeight").integer();
|
||||
geometry.menuHeight = get("Geometry/MenuHeight").integer();
|
||||
geometry.statusHeight = get("Geometry/StatusHeight").integer();
|
||||
get("Geometry/FrameX", integer, geometry.frameX);
|
||||
get("Geometry/FrameY", integer, geometry.frameY);
|
||||
get("Geometry/FrameWidth", integer, geometry.frameWidth);
|
||||
get("Geometry/FrameHeight", integer, geometry.frameHeight);
|
||||
get("Geometry/MenuHeight", integer, geometry.menuHeight);
|
||||
get("Geometry/StatusHeight", integer, geometry.statusHeight);
|
||||
|
||||
get("Theme/ActionIcons", boolean, theme.actionIcons);
|
||||
get("Theme/WidgetColors", boolean, theme.widgetColors);
|
||||
|
||||
#undef get
|
||||
}
|
||||
|
||||
Settings::~Settings() {
|
||||
@@ -25,9 +29,9 @@ Settings::~Settings() {
|
||||
directory::create(path, 0755);
|
||||
|
||||
Markup::Node document;
|
||||
auto set = [&](string_view name, string_view value) {
|
||||
document(name).setValue(value);
|
||||
};
|
||||
|
||||
#define set(name, value) \
|
||||
document(name).setValue(value)
|
||||
|
||||
set("Geometry/FrameX", geometry.frameX);
|
||||
set("Geometry/FrameY", geometry.frameY);
|
||||
@@ -36,6 +40,11 @@ Settings::~Settings() {
|
||||
set("Geometry/MenuHeight", geometry.menuHeight);
|
||||
set("Geometry/StatusHeight", geometry.statusHeight);
|
||||
|
||||
set("Theme/ActionIcons", theme.actionIcons);
|
||||
set("Theme/WidgetColors", theme.widgetColors);
|
||||
|
||||
#undef set
|
||||
|
||||
#if HIRO_GTK==2
|
||||
file::write({path, "gtk2.bml"}, BML::serialize(document));
|
||||
#elif HIRO_GTK==3
|
||||
|
Reference in New Issue
Block a user