mirror of https://github.com/bsnes-emu/bsnes.git
Update to v104r16 release.
byuu says: Changelog: - processor/upd96050: always potentially update S1 on ALU ops, sans NOP - theory by Lord Nightmare. I'm impartial on this one, but may as well match his design - sfc: fixed save state hang [reported by FitzRoy; fixed by Cydrak] - icarus: do not save settings.bml file when in library mode
This commit is contained in:
parent
92d86aef16
commit
5dbaec85a7
higan
icarus
|
@ -12,7 +12,7 @@ using namespace nall;
|
|||
|
||||
namespace Emulator {
|
||||
static const string Name = "higan";
|
||||
static const string Version = "104.15";
|
||||
static const string Version = "104.16";
|
||||
static const string Author = "byuu";
|
||||
static const string License = "GPLv3";
|
||||
static const string Website = "https://byuu.org/";
|
||||
|
|
|
@ -79,6 +79,7 @@ auto uPD96050::execOP(uint24 opcode) -> void {
|
|||
|
||||
flag.z = r == 0;
|
||||
flag.s0 = r & 0x8000;
|
||||
if(!flag.ov1) flag.s1 = flag.s0;
|
||||
|
||||
switch(alu) {
|
||||
|
||||
|
@ -110,7 +111,6 @@ auto uPD96050::execOP(uint24 opcode) -> void {
|
|||
flag.ov0 = (q ^ r) & (q ^ p) & 0x8000;
|
||||
flag.c = r > q;
|
||||
}
|
||||
if(!flag.ov1) flag.s1 = flag.s0;
|
||||
flag.ov1 = flag.ov0 & flag.ov1 ? flag.s0 == flag.s1 : flag.ov0 | flag.ov1;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ auto SuperFX::read(uint24 addr, uint8 data) -> uint8 {
|
|||
while(!regs.scmr.ron) {
|
||||
step(6);
|
||||
synchronize(cpu);
|
||||
if(scheduler.synchronizing()) break;
|
||||
}
|
||||
return rom.read((((addr & 0x3f0000) >> 1) | (addr & 0x7fff)) & romMask);
|
||||
}
|
||||
|
@ -11,6 +12,7 @@ auto SuperFX::read(uint24 addr, uint8 data) -> uint8 {
|
|||
while(!regs.scmr.ron) {
|
||||
step(6);
|
||||
synchronize(cpu);
|
||||
if(scheduler.synchronizing()) break;
|
||||
}
|
||||
return rom.read(addr & romMask);
|
||||
}
|
||||
|
@ -19,6 +21,7 @@ auto SuperFX::read(uint24 addr, uint8 data) -> uint8 {
|
|||
while(!regs.scmr.ran) {
|
||||
step(6);
|
||||
synchronize(cpu);
|
||||
if(scheduler.synchronizing()) break;
|
||||
}
|
||||
return ram.read(addr & ramMask);
|
||||
}
|
||||
|
@ -31,6 +34,7 @@ auto SuperFX::write(uint24 addr, uint8 data) -> void {
|
|||
while(!regs.scmr.ran) {
|
||||
step(6);
|
||||
synchronize(cpu);
|
||||
if(scheduler.synchronizing()) break;
|
||||
}
|
||||
return ram.write(addr & ramMask, data);
|
||||
}
|
||||
|
|
|
@ -127,6 +127,7 @@ auto nall::main(string_vector args) -> void {
|
|||
#endif
|
||||
scanDialog->show();
|
||||
Application::run();
|
||||
settings.save();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
struct Settings : Markup::Node {
|
||||
Settings();
|
||||
~Settings();
|
||||
auto save() -> void;
|
||||
};
|
||||
|
||||
Settings::Settings() {
|
||||
|
@ -19,6 +19,6 @@ Settings::Settings() {
|
|||
set("icarus/UseHeuristics", true);
|
||||
}
|
||||
|
||||
Settings::~Settings() {
|
||||
auto Settings::save() -> void {
|
||||
file::write(locate("settings.bml"), BML::serialize(*this));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue