fix save states (nw)

This commit is contained in:
David Haywood 2013-07-23 03:31:23 +00:00
parent 8eea632bd7
commit d3f32a1ba7
3 changed files with 31 additions and 12 deletions

View File

@ -127,7 +127,13 @@ void deco104_device::device_reset()
UINT16 deco104_device::read_data_getloc(UINT16 offset, int& location)
{
const UINT16* prot_ram=m_current_rambank;
UINT16* prot_ram;
if (m_current_rambank==0)
prot_ram = m_rambank0;
else
prot_ram = m_rambank1;
location = 0x00;
int tempinput = 0;

View File

@ -1263,10 +1263,10 @@ UINT16 deco_146_base_device::read_protport(UINT16 address, UINT16 mem_mask)
{
// logerror("(bankswitch) %04x %04x\n", address, mem_mask);
if (m_current_rambank==m_rambank0)
m_current_rambank = m_rambank1;
if (m_current_rambank==0)
m_current_rambank = 1;
else
m_current_rambank = m_rambank0;
m_current_rambank = 0;
}
@ -1297,7 +1297,10 @@ void deco_146_base_device::write_protport(address_space &space, UINT16 address,
}
// always store
COMBINE_DATA(&m_current_rambank[(address&0xff)>>1]);
if (m_current_rambank==0)
COMBINE_DATA(&m_rambank0[(address&0xff)>>1]);
else
COMBINE_DATA(&m_rambank1[(address&0xff)>>1]);
}
@ -1458,6 +1461,17 @@ void deco_146_base_device::device_start()
save_item(NAME(m_xor));
save_item(NAME(m_nand));
save_item(NAME(m_soundlatch));
save_item(NAME(m_rambank0));
save_item(NAME(m_rambank1));
save_item(NAME(m_current_rambank));
save_item(NAME(region_selects));
save_item(NAME(m_latchaddr));
save_item(NAME(m_latchdata));
save_item(NAME(m_latchflag));
}
void deco_146_base_device::device_reset()
@ -1471,7 +1485,7 @@ void deco_146_base_device::device_reset()
m_current_rambank = m_rambank0;
m_current_rambank = 0;
m_nand = 0x0000;
m_xor = 0x0000;
@ -1519,7 +1533,10 @@ UINT16 deco146_device::read_data_getloc(UINT16 address, int& location)
}
else
{
retdata = m_current_rambank[location>>1];
if (m_current_rambank==0)
retdata = m_rambank0[location>>1];
else
retdata = m_rambank1[location>>1];
}
UINT16 realret = reorder(retdata, &port_table[address>>1].mapping[0] );

View File

@ -102,7 +102,7 @@ protected:
UINT16 m_rambank0[0x80];
UINT16 m_rambank1[0x80];
UINT16* m_current_rambank;
int m_current_rambank;
UINT16 m_nand;
@ -112,10 +112,6 @@ protected:
UINT16 m_latchaddr;
UINT16 m_latchdata;
int m_latchflag;
int m_strobe;
private:
UINT8 region_selects[6];