Update to v079r03 release.

byuu says:

This fixes the S-SMP synchronization on CPUIO writes that was broken by
improvements in v078.01. Terranigma will work now. Also adds the 'link'
coprocessor module that was added in v079.01, and improved in v079.02.
This commit is contained in:
Tim Allen 2011-06-11 19:14:47 +10:00
parent e30fcade43
commit e1e275eb38
2 changed files with 7 additions and 10 deletions

View File

@ -20,8 +20,6 @@ void SMP::port_write(uint2 port, uint8 data) {
}
alwaysinline uint8 SMP::op_busread(uint16 addr) {
if((addr & 0xfff0) != 0x00f0) return ram_read(addr);
unsigned result;
switch(addr) {
@ -57,28 +55,25 @@ alwaysinline uint8 SMP::op_busread(uint16 addr) {
return 0x00;
case 0xfd: //T0OUT -- 4-bit counter value
result = timer0.stage3_ticks & 15;
result = timer0.stage3_ticks;
timer0.stage3_ticks = 0;
return result;
case 0xfe: //T1OUT -- 4-bit counter value
result = timer1.stage3_ticks & 15;
result = timer1.stage3_ticks;
timer1.stage3_ticks = 0;
return result;
case 0xff: //T2OUT -- 4-bit counter value
result = timer2.stage3_ticks & 15;
result = timer2.stage3_ticks;
timer2.stage3_ticks = 0;
return result;
}
return 0x00; //never used, avoids compiler warning
return ram_read(addr);
}
alwaysinline void SMP::op_buswrite(uint16 addr, uint8 data) {
ram_write(addr, data); //all writes, even to MMIO registers, appear on bus
if((addr & 0xfff0) != 0x00f0) return;
switch(addr) {
case 0xf0: //TEST
if(regs.p.p) break; //writes only valid when P flag is clear
@ -176,6 +171,8 @@ alwaysinline void SMP::op_buswrite(uint16 addr, uint8 data) {
case 0xff: //T2OUT -- read-only registers
break;
}
ram_write(addr, data); //all writes, even to MMIO registers, appear on bus
}
void SMP::op_io() {

View File

@ -1,7 +1,7 @@
namespace SNES {
namespace Info {
static const char Name[] = "bsnes";
static const char Version[] = "079.02";
static const char Version[] = "079.03";
static const unsigned SerializerVersion = 20;
}
}