mirror of https://github.com/bsnes-emu/bsnes.git
v107.18
* fix EXLOROM detection * fix new CPU masking error
This commit is contained in:
parent
6b284bb247
commit
296f2c094d
|
@ -10,8 +10,8 @@ struct WDC65816 {
|
|||
virtual auto idle() -> void = 0;
|
||||
virtual auto idleBranch() -> void {}
|
||||
virtual auto idleJump() -> void {}
|
||||
virtual auto read(uint addr) -> uint8 = 0;
|
||||
virtual auto write(uint addr, uint8 data) -> void = 0;
|
||||
virtual auto read(uint24 addr) -> uint8 = 0;
|
||||
virtual auto write(uint24 addr, uint8 data) -> void = 0;
|
||||
virtual auto lastCycle() -> void = 0;
|
||||
virtual auto interruptPending() const -> bool = 0;
|
||||
virtual auto interrupt() -> void;
|
||||
|
|
|
@ -18,7 +18,7 @@ auto SA1::idleBranch() -> void {
|
|||
if(r.pc.d & 1) idleJump();
|
||||
}
|
||||
|
||||
auto SA1::read(uint address) -> uint8 {
|
||||
auto SA1::read(uint24 address) -> uint8 {
|
||||
r.mar = address;
|
||||
uint8 data = r.mdr;
|
||||
|
||||
|
@ -62,7 +62,7 @@ auto SA1::read(uint address) -> uint8 {
|
|||
return data;
|
||||
}
|
||||
|
||||
auto SA1::write(uint address, uint8 data) -> void {
|
||||
auto SA1::write(uint24 address, uint8 data) -> void {
|
||||
r.mar = address;
|
||||
r.mdr = data;
|
||||
|
||||
|
|
|
@ -36,8 +36,8 @@ struct SA1 : Processor::WDC65816, Thread {
|
|||
alwaysinline auto idle() -> void override;
|
||||
alwaysinline auto idleJump() -> void override;
|
||||
alwaysinline auto idleBranch() -> void override;
|
||||
alwaysinline auto read(uint address) -> uint8 override;
|
||||
alwaysinline auto write(uint address, uint8 data) -> void override;
|
||||
alwaysinline auto read(uint24 address) -> uint8 override;
|
||||
alwaysinline auto write(uint24 address, uint8 data) -> void override;
|
||||
auto readVBR(uint address, uint8 data = 0) -> uint8;
|
||||
auto readDisassembler(uint address) -> uint8 override;
|
||||
|
||||
|
|
|
@ -22,8 +22,8 @@ struct CPU : Processor::WDC65816, Thread, PPUcounter {
|
|||
|
||||
//memory.cpp
|
||||
auto idle() -> void override;
|
||||
auto read(uint addr) -> uint8 override;
|
||||
auto write(uint addr, uint8 data) -> void override;
|
||||
auto read(uint24 addr) -> uint8 override;
|
||||
auto write(uint24 addr, uint8 data) -> void override;
|
||||
auto readDisassembler(uint addr) -> uint8 override;
|
||||
|
||||
//io.cpp
|
||||
|
|
|
@ -6,7 +6,7 @@ auto CPU::idle() -> void {
|
|||
aluEdge();
|
||||
}
|
||||
|
||||
auto CPU::read(uint address) -> uint8 {
|
||||
auto CPU::read(uint24 address) -> uint8 {
|
||||
status.irqLock = false;
|
||||
|
||||
if(address & 0x408000) {
|
||||
|
@ -46,7 +46,7 @@ auto CPU::read(uint address) -> uint8 {
|
|||
return data;
|
||||
}
|
||||
|
||||
auto CPU::write(uint address, uint8 data) -> void {
|
||||
auto CPU::write(uint24 address, uint8 data) -> void {
|
||||
status.irqLock = false;
|
||||
aluEdge();
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ auto Log_Filter(const char* logDomain, GLogLevelFlags logLevel, const char* mess
|
|||
//FreeBSD 12.0: caused by gtk_combo_box_size_allocate() internal function being defective
|
||||
if(string{message}.find("gtk_widget_size_allocate():")) return;
|
||||
|
||||
//prin all other messages
|
||||
//print all other messages
|
||||
print(terminal::color::yellow("hiro: "), logDomain, "::", message, "\n");
|
||||
}
|
||||
|
||||
|
@ -102,7 +102,7 @@ auto pApplication::initialize() -> void {
|
|||
//prevent useless terminal messages:
|
||||
//GVFS-RemoteVolumeMonitor: "invoking List() failed for type GProxyVolumeMonitorHal: method not implemented"
|
||||
g_log_set_handler("GVFS-RemoteVolumeMonitor", G_LOG_LEVEL_MASK, Log_Ignore, nullptr);
|
||||
//Gtk: gtk_widget_size_allocate(): attempt to allocate widget with (width or height < 1)
|
||||
//Gtk: "gtk_widget_size_allocate(): attempt to allocate widget with (width or height < 1)"
|
||||
g_log_set_handler("Gtk", G_LOG_LEVEL_MASK, Log_Filter, nullptr);
|
||||
|
||||
//set WM_CLASS to Application::name()
|
||||
|
|
|
@ -248,6 +248,8 @@ auto SuperFamicom::board() const -> string {
|
|||
if(headerAddress == 0x40ffb0) mode = "EXHIROM-";
|
||||
}
|
||||
|
||||
if(mode == "LOROM-" && headerAddress == 0x407fb0) mode = "EXLOROM-";
|
||||
|
||||
bool epsonRTC = false;
|
||||
bool sharpRTC = false;
|
||||
|
||||
|
|
Loading…
Reference in New Issue