advision: fixed some bugs uncovered by the Code Red demo.

This commit is contained in:
Robbbert 2020-04-26 04:03:33 +10:00
parent 7cacfb12d8
commit cb9d55e627

View File

@ -54,7 +54,7 @@ void advision_state::machine_start()
void advision_state::machine_reset()
{
m_ea_bank = 0;
m_ea_bank = 1;
m_rambank = 0x300;
m_frame_start = 0;
m_video_enable = 0;
@ -86,11 +86,8 @@ READ8_MEMBER( advision_state::ext_ram_r )
{
uint8_t data = m_ext_ram[m_rambank + offset];
if (!m_video_enable)
{
/* the video hardware interprets reads as writes */
vh_write(data);
}
/* the video hardware interprets reads as writes */
vh_write(data);
if (m_video_bank == 0x06)
{
@ -188,5 +185,8 @@ READ8_MEMBER( advision_state::controller_r )
if (in & 0x04) data = data & 0xaf; /* Button 2 */
if (in & 0x01) data = data & 0x6f; /* Button 4 */
return data & 0xf8;
data &= 0xf8;
data |= (m_ea_bank << 2);
data |= (m_rambank >> 8);
return data;
}