-gba: By default, GPIO ports should pass ROM through on read. Fixes Doom 2 and Duke Nukem Advance. [Ryan Holtz]

This commit is contained in:
mooglyguy 2017-11-02 22:23:00 +01:00
parent 40b9220aec
commit 6571e6731e
2 changed files with 5 additions and 3 deletions

View File

@ -158,7 +158,7 @@ void gba_rom_device::device_reset()
m_gpio_regs[1] = 0;
m_gpio_regs[2] = 0;
m_gpio_regs[3] = 0;
m_gpio_write_only = 0;
m_gpio_write_only = 1;
m_gpio_dirs = 0;
}
@ -273,7 +273,6 @@ void gba_rom_3dmatrix_device::device_reset()
READ32_MEMBER(gba_rom_device::read_gpio)
{
logerror("read GPIO offs %X\n", offset);
if (!m_gpio_write_only)
{
switch (offset)
@ -301,7 +300,6 @@ READ32_MEMBER(gba_rom_device::read_gpio)
WRITE32_MEMBER(gba_rom_device::write_gpio)
{
logerror("write GPIO offs %X data %X\n", offset, data);
switch (offset)
{
case 0:

View File

@ -1181,6 +1181,10 @@ READ32_MEMBER(gba_state::gba_10000000_r)
{
uint32_t data;
uint32_t pc = m_maincpu->state_int(ARM7_PC);
if (pc >= 0x10000000)
{
return 0;
}
uint32_t cpsr = m_maincpu->state_int(ARM7_CPSR);
if (T_IS_SET( cpsr))
{