Update to bsnes v064r04 release.

Fixes S-CPU debugger breakpoint issue.
libsnes always returns 0 for "no memory present" now, never -1U.

[Meanwhile, in bsnes-python 2010-04-20...]

Won't error if there's no joypad present.
Swaps menu and status bars with a toolbar.
Adds keyboard support - you can use both a keyboard and joypad for
input now.
Won't crash if RAM doesn't exist yet.
Won't crash if game uses no RAM.
This commit is contained in:
byuu 2010-04-20 22:33:44 +00:00
parent 42a4c1d60e
commit 44bab83d68
3 changed files with 20 additions and 16 deletions

View File

@ -6,12 +6,11 @@ void Debugger::breakpoint_test(Debugger::Breakpoint::Source source, Debugger::Br
for(unsigned i = 0; i < Breakpoints; i++) {
if(breakpoint[i].enabled == false) continue;
//shadow S-CPU WRAM addresses ($00-3f|80-bf:0000-1fff mirrors $7e:0000-1fff)
if(source == Debugger::Breakpoint::Source::CPUBus && (
((breakpoint[i].addr & 0x40e000) == 0x000000) || //$00-3f|80-bf:0000-1fff
((breakpoint[i].addr & 0xffe000) == 0x7e0000) //$7e:0000-1fff
)
) {
bool source_wram = ((breakpoint[i].addr & 0x40e000) == 0x000000) || ((breakpoint[i].addr & 0xffe000) == 0x7e0000);
bool offset_wram = ((addr & 0x40e000) == 0x000000) || ((addr & 0xffe000) == 0x7e0000);
if(source == Debugger::Breakpoint::Source::CPUBus && source_wram && offset_wram) {
//shadow S-CPU WRAM addresses ($00-3f|80-bf:0000-1fff mirrors $7e:0000-1fff)
if((breakpoint[i].addr & 0x1fff) != (addr & 0x1fff)) continue;
} else {
if(breakpoint[i].addr != addr) continue;

View File

@ -195,19 +195,24 @@ uint8_t* snes_get_memory_data(unsigned id) {
case SNES_MEMORY_GAME_BOY_RAM: return SNES::memory::gbram.data();
case SNES_MEMORY_GAME_BOY_RTC: return SNES::memory::gbrtc.data();
}
return 0;
}
unsigned snes_get_memory_size(unsigned id) {
unsigned size = 0;
switch(id) {
case SNES_MEMORY_CARTRIDGE_RAM: return SNES::memory::cartram.size();
case SNES_MEMORY_CARTRIDGE_RTC: return SNES::memory::cartrtc.size();
case SNES_MEMORY_BSX_RAM: return SNES::memory::bsxram.size();
case SNES_MEMORY_BSX_PRAM: return SNES::memory::bsxpram.size();
case SNES_MEMORY_SUFAMI_TURBO_A_RAM: return SNES::memory::stAram.size();
case SNES_MEMORY_SUFAMI_TURBO_B_RAM: return SNES::memory::stBram.size();
case SNES_MEMORY_GAME_BOY_RAM: return SNES::memory::gbram.size();
case SNES_MEMORY_GAME_BOY_RTC: return SNES::memory::gbrtc.size();
case SNES_MEMORY_CARTRIDGE_RAM: size = SNES::memory::cartram.size(); break;
case SNES_MEMORY_CARTRIDGE_RTC: size = SNES::memory::cartrtc.size(); break;
case SNES_MEMORY_BSX_RAM: size = SNES::memory::bsxram.size(); break;
case SNES_MEMORY_BSX_PRAM: size = SNES::memory::bsxpram.size(); break;
case SNES_MEMORY_SUFAMI_TURBO_A_RAM: size = SNES::memory::stAram.size(); break;
case SNES_MEMORY_SUFAMI_TURBO_B_RAM: size = SNES::memory::stBram.size(); break;
case SNES_MEMORY_GAME_BOY_RAM: size = SNES::memory::gbram.size(); break;
case SNES_MEMORY_GAME_BOY_RTC: size = SNES::memory::gbrtc.size(); break;
}
return 0;
if(size == -1U) size = 0;
return size;
}

View File

@ -1,4 +1,4 @@
static const char bsnesVersion[] = "064.03";
static const char bsnesVersion[] = "064.04";
static const char bsnesTitle[] = "bsnes";
static const unsigned bsnesSerializerVersion = 10;