snes.c: fixing some MESS-related SRAM issues (commit failed somehow last week :-( ). No whatsnew needed.

This commit is contained in:
Fabio Priuli 2010-06-01 07:18:41 +00:00
parent d4a35af1dd
commit 407a58d00f

View File

@ -999,8 +999,8 @@ READ8_HANDLER( snes_r_bank2 )
} }
else if ((state->cart[0].mode == SNES_MODE_21) && (state->cart[0].sram > 0)) else if ((state->cart[0].mode == SNES_MODE_21) && (state->cart[0].sram > 0))
{ {
int mask = (state->cart[0].sram - 1) | 0xff0000; /* Limit SRAM size to what's actually present */ // int mask = state->cart[0].sram - 1; /* Limit SRAM size to what's actually present */
value = snes_ram[0x300000 + (offset & mask)]; value = snes_ram[0x300000 + offset];
} }
else else
{ {
@ -1123,7 +1123,7 @@ READ8_HANDLER( snes_r_bank5 )
{ {
if (state->cart[0].sram > 0) if (state->cart[0].sram > 0)
{ {
int mask = (state->cart[0].sram - 1) | 0xff0000; /* Limit SRAM size to what's actually present */ int mask = state->cart[0].sram - 1; /* Limit SRAM size to what's actually present */
value = snes_ram[0x700000 + (offset & mask)]; value = snes_ram[0x700000 + (offset & mask)];
} }
else else
@ -1162,8 +1162,8 @@ READ8_HANDLER( snes_r_bank6 )
value = memory_read_byte(space, offset); value = memory_read_byte(space, offset);
else if ((offset >= 0x300000) && (state->cart[0].sram > 0)) else if ((offset >= 0x300000) && (state->cart[0].sram > 0))
{ {
int mask = (state->cart[0].sram - 1) | 0xff0000; /* Limit SRAM size to what's actually present */ // int mask = state->cart[0].sram - 1; /* Limit SRAM size to what's actually present */
value = snes_ram[0x800000 + (offset & mask)]; value = snes_ram[0x800000 + offset];
} }
else /* Area 0x6000-0x8000 with offset < 0x300000 is reserved */ else /* Area 0x6000-0x8000 with offset < 0x300000 is reserved */
{ {
@ -1324,8 +1324,8 @@ WRITE8_HANDLER( snes_w_bank2 )
} }
else if ((state->cart[0].mode == SNES_MODE_21) && (state->cart[0].sram > 0)) else if ((state->cart[0].mode == SNES_MODE_21) && (state->cart[0].sram > 0))
{ {
int mask = (state->cart[0].sram - 1) | 0xff0000; /* Limit SRAM size to what's actually present */ // int mask = state->cart[0].sram - 1; /* Limit SRAM size to what's actually present */
snes_ram[0x300000 + (offset & mask)] = data; snes_ram[0x300000 + offset] = data;
} }
else else
logerror("snes_w_bank2: Attempt to write to reserved address: %X = %02x\n", offset + 0x300000, data); logerror("snes_w_bank2: Attempt to write to reserved address: %X = %02x\n", offset + 0x300000, data);
@ -1389,8 +1389,8 @@ WRITE8_HANDLER( snes_w_bank5 )
{ {
if (state->cart[0].sram > 0) if (state->cart[0].sram > 0)
{ {
int mask = (state->cart[0].sram - 1) | 0xff0000; /* Limit SRAM size to what's actually present */ int mask = state->cart[0].sram - 1; /* Limit SRAM size to what's actually present */
snes_ram[0x700000 + (offset & mask)] = data; snes_ram[0x700000 + + (offset & mask)] = data;
} }
else else
logerror("snes_w_bank5: Attempt to write to reserved address: %X = %02x\n", offset + 0x700000, data); logerror("snes_w_bank5: Attempt to write to reserved address: %X = %02x\n", offset + 0x700000, data);
@ -1423,8 +1423,8 @@ WRITE8_HANDLER( snes_w_bank6 )
memory_write_byte(space, offset, data); memory_write_byte(space, offset, data);
else if ((offset >= 0x300000) && (state->cart[0].sram > 0)) else if ((offset >= 0x300000) && (state->cart[0].sram > 0))
{ {
int mask = (state->cart[0].sram - 1) | 0xff0000; /* Limit SRAM size to what's actually present */ // int mask = state->cart[0].sram - 1; /* Limit SRAM size to what's actually present */
snes_ram[0x800000 + (offset & mask)] = data; snes_ram[0x800000 + offset] = data;
} }
else /* Area in 0x6000-0x8000 && offset < 0x300000 is Reserved! */ else /* Area in 0x6000-0x8000 && offset < 0x300000 is Reserved! */
logerror("snes_w_bank6: Attempt to write to reserved address: %X = %02x\n", offset + 0x800000, data); logerror("snes_w_bank6: Attempt to write to reserved address: %X = %02x\n", offset + 0x800000, data);