diff --git a/bsnes/emulator/emulator.hpp b/bsnes/emulator/emulator.hpp index 0e910df3..b720b098 100644 --- a/bsnes/emulator/emulator.hpp +++ b/bsnes/emulator/emulator.hpp @@ -29,7 +29,7 @@ using namespace nall; namespace Emulator { static const string Name = "bsnes"; - static const string Version = "110"; + static const string Version = "110.1"; static const string Author = "byuu"; static const string License = "GPLv3"; static const string Website = "https://byuu.org"; diff --git a/bsnes/heuristics/super-famicom.cpp b/bsnes/heuristics/super-famicom.cpp index 1bc29cb1..889ebd15 100644 --- a/bsnes/heuristics/super-famicom.cpp +++ b/bsnes/heuristics/super-famicom.cpp @@ -194,7 +194,7 @@ auto SuperFamicom::region() const -> string { auto SuperFamicom::videoRegion() const -> string { auto region = data[headerAddress + 0x29]; - return (region <= 0x01 || region >= 0x12) ? "NTSC" : "PAL"; + return (region <= 0x01 || region >= 0x0c) ? "NTSC" : "PAL"; } auto SuperFamicom::revision() const -> string { diff --git a/bsnes/processor/hg51b/hg51b.cpp b/bsnes/processor/hg51b/hg51b.cpp index 3e5d18a6..499f1878 100644 --- a/bsnes/processor/hg51b/hg51b.cpp +++ b/bsnes/processor/hg51b/hg51b.cpp @@ -84,8 +84,9 @@ auto HG51B::cache() -> bool { io.cache.address[io.cache.page] = address; for(uint offset : range(256)) { - step(wait(address)); programRAM[io.cache.page][offset] = read(address++) << 0; - step(wait(address)); programRAM[io.cache.page][offset] |= read(address++) << 8; + step(wait(address)); + programRAM[io.cache.page][offset] = read(address++) << 0; + programRAM[io.cache.page][offset] |= read(address++) << 8; } return io.cache.enable = 0, true; } diff --git a/bsnes/sfc/smp/memory.cpp b/bsnes/sfc/smp/memory.cpp index 1ed03bb1..522b80ea 100644 --- a/bsnes/sfc/smp/memory.cpp +++ b/bsnes/sfc/smp/memory.cpp @@ -14,9 +14,9 @@ auto SMP::idle() -> void { } auto SMP::read(uint16 address) -> uint8 { - wait(address); uint8 data = readRAM(address); if((address & 0xfff0) == 0x00f0) data = readIO(address); + wait(address); return data; } diff --git a/bsnes/target-bsnes/input/hotkeys.cpp b/bsnes/target-bsnes/input/hotkeys.cpp index d42abf04..7b6f3e88 100644 --- a/bsnes/target-bsnes/input/hotkeys.cpp +++ b/bsnes/target-bsnes/input/hotkeys.cpp @@ -23,6 +23,10 @@ auto InputManager::bindHotkeys() -> void { cheatEditor.enableCheats.setChecked(!cheatEditor.enableCheats.checked()).doToggle(); })); + hotkeys.append(InputHotkey("Toggle Mute").onPress([] { + presentation.muteAudio.setChecked(!presentation.muteAudio.checked()).doToggle(); + })); + hotkeys.append(InputHotkey("Rewind").onPress([&] { if(!emulator->loaded() || fastForwarding) return; rewinding = true; @@ -125,6 +129,24 @@ auto InputManager::bindHotkeys() -> void { } })); + hotkeys.append(InputHotkey("Increase HD Mode 7").onPress([] { + int index = enhancementSettings.mode7Scale.selected().offset() - 1; + if(index < 0) return; + enhancementSettings.mode7Scale.item(index).setSelected(); + enhancementSettings.mode7Scale.doChange(); + })); + + hotkeys.append(InputHotkey("Decrease HD Mode 7").onPress([] { + int index = enhancementSettings.mode7Scale.selected().offset() + 1; + if(index >= enhancementSettings.mode7Scale.itemCount()) return; + enhancementSettings.mode7Scale.item(index).setSelected(); + enhancementSettings.mode7Scale.doChange(); + })); + + hotkeys.append(InputHotkey("Toggle Supersampling").onPress([] { + enhancementSettings.mode7Supersample.setChecked(!enhancementSettings.mode7Supersample.checked()).doToggle(); + })); + hotkeys.append(InputHotkey("Reset Emulation").onPress([] { program.reset(); })); diff --git a/bsnes/target-bsnes/settings/settings.hpp b/bsnes/target-bsnes/settings/settings.hpp index 05fddc5f..e0edf04f 100644 --- a/bsnes/target-bsnes/settings/settings.hpp +++ b/bsnes/target-bsnes/settings/settings.hpp @@ -325,7 +325,7 @@ public: struct EnhancementSettings : VerticalLayout { auto create() -> void; -private: +public: Label overclockingLabel{this, Size{~0, 0}, 2}; TableLayout overclockingLayout{this, Size{~0, 0}}; Label cpuLabel{&overclockingLayout, Size{0, 0}};