From 5a4b667eaee073c627a39f0a975911aceefc2670 Mon Sep 17 00:00:00 2001 From: byuu <2107894+byuu@users.noreply.github.com> Date: Fri, 27 Sep 2019 10:26:55 +0900 Subject: [PATCH] v110.3 Added hotfix for bug in "The Hurricanes" (happens on a real SNES) Added scanline override for NHL '94 Added fix for entering folder names into BrowserDialog filename box --- bsnes/emulator/emulator.hpp | 2 +- bsnes/sfc/ppu/mode7.cpp | 2 +- bsnes/target-bsnes/program/hacks.cpp | 14 +++++++++++++- hiro/extension/browser-dialog.cpp | 8 ++++++-- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/bsnes/emulator/emulator.hpp b/bsnes/emulator/emulator.hpp index 91e3be52..b5b7f998 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.2"; + static const string Version = "110.3"; static const string Author = "byuu"; static const string License = "GPLv3"; static const string Website = "https://byuu.org"; diff --git a/bsnes/sfc/ppu/mode7.cpp b/bsnes/sfc/ppu/mode7.cpp index 29a5d32c..a23592ba 100644 --- a/bsnes/sfc/ppu/mode7.cpp +++ b/bsnes/sfc/ppu/mode7.cpp @@ -3,7 +3,7 @@ auto PPU::Background::clip(int n) -> int { return n & 0x2000 ? (n | ~1023) : (n & 1023); } -//H = 28 +//H = 0 auto PPU::Background::beginMode7() -> void { latch.hoffset = ppu.io.hoffsetMode7; latch.voffset = ppu.io.voffsetMode7; diff --git a/bsnes/target-bsnes/program/hacks.cpp b/bsnes/target-bsnes/program/hacks.cpp index e76e1672..f64c9a00 100644 --- a/bsnes/target-bsnes/program/hacks.cpp +++ b/bsnes/target-bsnes/program/hacks.cpp @@ -1,4 +1,5 @@ auto Program::hackCompatibility() -> void { + string entropy = settings.emulator.hack.entropy; bool fastPPU = settings.emulator.hack.ppu.fast; bool fastPPUNoSpriteLimit = settings.emulator.hack.ppu.noSpriteLimit; bool fastDSP = settings.emulator.hack.dsp.fast; @@ -26,9 +27,20 @@ auto Program::hackCompatibility() -> void { //fixes an errant scanline on the title screen due to writing to PPU registers too late if(title == "ADVENTURES OF FRANKEN" && region == "PAL") renderCycle = 32; - //fixes an errant scanline on the title screen due to writing the PPU registers too late + //fixes an errant scanline on the title screen due to writing to PPU registers too late if(title == "FIREPOWER 2000") renderCycle = 32; + //fixes an errant scanline on the title screen due to writing to PPU registers too late + if(title == "NHL '94") renderCycle = 32; + + if(settings.emulator.hack.hotfixes) { + //this game transfers uninitialized memory into video RAM: this can cause a row of invalid tiles + //to appear in the background of stage 12. this one is a bug in the original game, so only enable + //it if the hotfixes option has been enabled. + if(title == "The Hurricanes") entropy = "None"; + } + + emulator->configure("Hacks/Entropy", entropy); emulator->configure("Hacks/PPU/Fast", fastPPU); emulator->configure("Hacks/PPU/NoSpriteLimit", fastPPUNoSpriteLimit); emulator->configure("Hacks/PPU/RenderCycle", renderCycle); diff --git a/hiro/extension/browser-dialog.cpp b/hiro/extension/browser-dialog.cpp index 2f958c5e..6d589f04 100755 --- a/hiro/extension/browser-dialog.cpp +++ b/hiro/extension/browser-dialog.cpp @@ -241,8 +241,12 @@ auto BrowserDialogWindow::run() -> BrowserDialog::Response { return (void)window.setModal(false); } if(state.action == "openObject" && isObject(name)) { - response.selected.append({state.path, name}); - return (void)window.setModal(false); + if(isMatch(name)) { + response.selected.append({state.path, name}); + return (void)window.setModal(false); + } else if(isFolder(name)) { + return setPath({state.path, name}); + } } if(state.action == "saveFile") return accept(); setPath(state.path, name);