sms, improve compatibility (vdp reset init, pad TH/TR)

This commit is contained in:
kub 2021-10-24 12:39:29 +02:00
parent 985bbf1c03
commit 1c70532fc2

View file

@ -177,11 +177,15 @@ static unsigned char z80_sms_in(unsigned short a)
case 0xc0: /* I/O port A and B */
d = ~((PicoIn.pad[0] & 0x3f) | (PicoIn.pad[1] << 6));
if (Pico.ms.io_ctl & 0x01) d &= ~0x20;
break;
case 0xc1: /* I/O port B and miscellaneous */
d = (Pico.ms.io_ctl & 0x80) | ((Pico.ms.io_ctl << 1) & 0x40) | 0x30;
d |= ~(PicoIn.pad[1] >> 2) & 0x0f;
if (Pico.ms.io_ctl & 0x08) d &= ~0x80;
if (Pico.ms.io_ctl & 0x04) d &= ~0x08;
if (Pico.ms.io_ctl & 0x02) d &= ~0x40;
break;
}
}
@ -370,6 +374,19 @@ void PicoResetMS(void)
// reset memory mapping
PicoMemSetupMS();
// BIOS values for VDP initialisation
Pico.video.reg[0] = 0x36;
Pico.video.reg[1] = 0xa0;
Pico.video.reg[2] = 0xff;
Pico.video.reg[3] = 0xff;
Pico.video.reg[4] = 0xff;
Pico.video.reg[5] = 0xff;
Pico.video.reg[6] = 0xfb;
Pico.video.reg[7] = 0x00;
Pico.video.reg[8] = 0x00;
Pico.video.reg[9] = 0x00;
Pico.video.reg[10] = 0xff;
}
void PicoPowerMS(void)