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
This commit is contained in:
byuu
2019-09-27 10:26:55 +09:00
parent 62729df2d1
commit 5a4b667eae
4 changed files with 21 additions and 5 deletions

View File

@@ -29,7 +29,7 @@ using namespace nall;
namespace Emulator { namespace Emulator {
static const string Name = "bsnes"; 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 Author = "byuu";
static const string License = "GPLv3"; static const string License = "GPLv3";
static const string Website = "https://byuu.org"; static const string Website = "https://byuu.org";

View File

@@ -3,7 +3,7 @@ auto PPU::Background::clip(int n) -> int {
return n & 0x2000 ? (n | ~1023) : (n & 1023); return n & 0x2000 ? (n | ~1023) : (n & 1023);
} }
//H = 28 //H = 0
auto PPU::Background::beginMode7() -> void { auto PPU::Background::beginMode7() -> void {
latch.hoffset = ppu.io.hoffsetMode7; latch.hoffset = ppu.io.hoffsetMode7;
latch.voffset = ppu.io.voffsetMode7; latch.voffset = ppu.io.voffsetMode7;

View File

@@ -1,4 +1,5 @@
auto Program::hackCompatibility() -> void { auto Program::hackCompatibility() -> void {
string entropy = settings.emulator.hack.entropy;
bool fastPPU = settings.emulator.hack.ppu.fast; bool fastPPU = settings.emulator.hack.ppu.fast;
bool fastPPUNoSpriteLimit = settings.emulator.hack.ppu.noSpriteLimit; bool fastPPUNoSpriteLimit = settings.emulator.hack.ppu.noSpriteLimit;
bool fastDSP = settings.emulator.hack.dsp.fast; 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 //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; 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; 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/Fast", fastPPU);
emulator->configure("Hacks/PPU/NoSpriteLimit", fastPPUNoSpriteLimit); emulator->configure("Hacks/PPU/NoSpriteLimit", fastPPUNoSpriteLimit);
emulator->configure("Hacks/PPU/RenderCycle", renderCycle); emulator->configure("Hacks/PPU/RenderCycle", renderCycle);

View File

@@ -241,8 +241,12 @@ auto BrowserDialogWindow::run() -> BrowserDialog::Response {
return (void)window.setModal(false); return (void)window.setModal(false);
} }
if(state.action == "openObject" && isObject(name)) { if(state.action == "openObject" && isObject(name)) {
response.selected.append({state.path, name}); if(isMatch(name)) {
return (void)window.setModal(false); 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(); if(state.action == "saveFile") return accept();
setPath(state.path, name); setPath(state.path, name);