piratesh: fix to pass POST, which earns it working with imperfect gfx [R. Belmont]

This commit is contained in:
arbee 2017-04-01 20:20:08 -04:00
parent 78343b2786
commit 75e06c120d
3 changed files with 16 additions and 1 deletions

View File

@ -387,7 +387,7 @@ static ADDRESS_MAP_START( piratesh_map, AS_PROGRAM, 16, piratesh_state )
AM_RANGE(0x100000, 0x10001f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0x00ff) // CRTC
AM_RANGE(0x180000, 0x18003f) AM_DEVWRITE("k056832", k056832_device, word_w) // TILEMAP
AM_RANGE(0x280000, 0x280007) AM_DEVWRITE("k055673", k055673_device, k053246_word_w) // SPRITES
AM_RANGE(0x290000, 0x29000f) AM_DEVREAD("k055673", k055673_device, k055673_rom_word_r) // SPRITES
AM_RANGE(0x290000, 0x29000f) AM_DEVREAD("k055673", k055673_device, k055673_ps_rom_word_r) // SPRITES
AM_RANGE(0x290010, 0x29001f) AM_DEVWRITE("k055673", k055673_device, k055673_reg_word_w) // SPRITES
AM_RANGE(0x2a0000, 0x2a0fff) AM_DEVREADWRITE("k055673", k055673_device, k053247_word_r, k053247_word_w) // SPRITES
AM_RANGE(0x2a1000, 0x2a3fff) AM_WRITENOP

View File

@ -186,6 +186,20 @@ READ16_MEMBER( k053247_device::k055673_rom_word_r )
return ROM[romofs + (offset & 0x3)];
}
READ16_MEMBER( k053247_device::k055673_ps_rom_word_r )
{
uint8_t *ROM = (uint8_t *)space.machine().root_device().memregion(m_memory_region)->base();
int romofs;
int magic = (offset & 1);
romofs = m_kx46_regs[6] << 16 | m_kx46_regs[7] << 8 | m_kx46_regs[4];
offset = ((offset & 4) >> 1);
int finoffs = (romofs * 2) + (offset * 2) + magic;
return ROM[finoffs+2] | (ROM[finoffs]<<8);
}
READ8_MEMBER( k053247_device::k053246_r )
{
if (m_objcha_line == ASSERT_LINE)

View File

@ -83,6 +83,7 @@ public:
void clear_all();
DECLARE_READ16_MEMBER( k055673_rom_word_r );
DECLARE_READ16_MEMBER( k055673_ps_rom_word_r );
DECLARE_READ16_MEMBER( k055673_5bpp_rom_word_r );
DECLARE_READ8_MEMBER( k053247_r );