mirror of
https://github.com/holub/mame
synced 2025-06-07 13:23:50 +03:00
ttchamp - working nvram (nw)
This commit is contained in:
parent
05516f50c9
commit
2efa1d7544
@ -58,7 +58,7 @@ Dumped by tirino73
|
|||||||
|
|
||||||
Notes
|
Notes
|
||||||
I think the PIC is used to interface with battry backed RAM instead of an EEPROM,
|
I think the PIC is used to interface with battry backed RAM instead of an EEPROM,
|
||||||
we currently attempt to simulate this as the PIC is read protected.
|
we currently simulate this as the PIC is read protected.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -264,9 +264,10 @@ READ16_MEMBER(ttchamp_state::ttchamp_pic_r)
|
|||||||
// printf("%06x: read from PIC (%04x)\n", space.device().safe_pc(),mem_mask);
|
// printf("%06x: read from PIC (%04x)\n", space.device().safe_pc(),mem_mask);
|
||||||
if (picmodex == PIC_SET_READLATCH)
|
if (picmodex == PIC_SET_READLATCH)
|
||||||
{
|
{
|
||||||
printf("read data %02x from %02x\n", m_pic_latched, m_pic_readaddr);
|
// printf("read data %02x from %02x\n", m_pic_latched, m_pic_readaddr);
|
||||||
picmodex = PIC_IDLE;
|
picmodex = PIC_IDLE;
|
||||||
return m_pic_latched;
|
|
||||||
|
return m_pic_latched << 8;
|
||||||
|
|
||||||
}
|
}
|
||||||
return 0x00;
|
return 0x00;
|
||||||
@ -297,11 +298,14 @@ WRITE16_MEMBER(ttchamp_state::ttchamp_pic_w)
|
|||||||
{
|
{
|
||||||
picmodex = PIC_IDLE;
|
picmodex = PIC_IDLE;
|
||||||
m_bakram[m_pic_writeaddr] = m_pic_writelatched;
|
m_bakram[m_pic_writeaddr] = m_pic_writelatched;
|
||||||
printf("wrote %02x to %02x\n", m_pic_writelatched, m_pic_writeaddr);
|
// printf("wrote %02x to %02x\n", m_pic_writelatched, m_pic_writeaddr);
|
||||||
}
|
}
|
||||||
else if (data == 0x22) // next data to latch
|
else if (data == 0x22) // next data to latch
|
||||||
{
|
{
|
||||||
m_pic_latched = m_bakram[m_pic_readaddr];
|
// why does it read twice as many addresses, forcing us to shift the
|
||||||
|
// address by 1 to give correct results? maybe it can read 'previous' data' too?
|
||||||
|
m_pic_latched = m_bakram[m_pic_readaddr>>1];
|
||||||
|
|
||||||
// printf("latch read data %02x from %02x\n",m_pic_latched, m_pic_readaddr );
|
// printf("latch read data %02x from %02x\n",m_pic_latched, m_pic_readaddr );
|
||||||
picmodex = PIC_SET_READLATCH; // waiting to read...
|
picmodex = PIC_SET_READLATCH; // waiting to read...
|
||||||
}
|
}
|
||||||
@ -672,10 +676,8 @@ ROM_END
|
|||||||
|
|
||||||
DRIVER_INIT_MEMBER(ttchamp_state,ttchamp)
|
DRIVER_INIT_MEMBER(ttchamp_state,ttchamp)
|
||||||
{
|
{
|
||||||
// UINT8 *ROM1 = memregion("user1")->base();
|
|
||||||
// membank("bank1")->set_base(&ROM1[0x100000]);
|
|
||||||
// membank("bank2")->set_base(&ROM1[0x180000]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// only the graphics differ between the two sets, code section is the same
|
||||||
GAME( 1995, ttchamp, 0, ttchamp, ttchamp, ttchamp_state, ttchamp, ROT0, "Gamart", "Table Tennis Champions", 0 ) // this has various advertising boards, including 'Electronic Devices' and 'Deniam'
|
GAME( 1995, ttchamp, 0, ttchamp, ttchamp, ttchamp_state, ttchamp, ROT0, "Gamart", "Table Tennis Champions", 0 ) // this has various advertising boards, including 'Electronic Devices' and 'Deniam'
|
||||||
GAME( 1995, ttchampa,ttchamp, ttchamp, ttchamp, ttchamp_state, ttchamp, ROT0, "Gamart (Palencia Elektronik license)", "Table Tennis Champions (Palencia Elektronik license)", 0 ) // this only has Palencia Elektronik advertising boards
|
GAME( 1995, ttchampa,ttchamp, ttchamp, ttchamp, ttchamp_state, ttchamp, ROT0, "Gamart (Palencia Elektronik license)", "Table Tennis Champions (Palencia Elektronik license)", 0 ) // this only has Palencia Elektronik advertising boards
|
||||||
|
Loading…
Reference in New Issue
Block a user