VDP Register 1 bootup issue
gameblabla opened this issue · 0 comments
The unmodified Sonic's Edusoft rom will fail to run under pretty much all of the emulators safe for the ones that require a BIOS and do not manually set the VDP bits.
According to Bork here http://www.smspower.org/forums/9109-UnreleasedTiertexGameSonicEdusoft, setting VDP Register 1 to 0xA0 will allow the game to boot and i can confirm that it does fix it.
(It also fixes it on other unrelated emulators like SMS Plus)
He did comment and say that someone should check the value all the BIOSes out there set that bit to.
Since i was working on my fork of SMS Plus GX to fix that issue, naturally i did.
Also somewhat unrelated but MEKA sets the VDP registers back to default values, regardless of the BIOS you are using.
VDP Register 1 with the following BIOSes (Tested under SMS Plus GX, as i couldn't get most of the BIOSes below to boot a game on MEKA, bar the one that comes with it...):
Prototype BIOS v1.0 (1986)
626b3453613e43d5a47908a8944ba583 SMS Prototype (v1.0) [Proto] [BIOS].sms
0x80, 0xc0 then 0xe0
US/European BIOS v1.3 (1986)
840481177270d5642a14ca71ee72844c bios13fx.sms
0xa0 then 0xe0
US/European BIOS v2.4 with Hang On and Safari Hunt (1988)
02cbb2e348945c9ac41e37502a58ca76 HSHBIOS.sms
0xa0 then 0xe0
US/European BIOS with Alex Kidd in Miracle World (1990)
e8b26871629b938887757a64798df6dc akbios.sms
0xa0 then 0xe0
European BIOS with Sonic The Hedgehog (1991)
4187d96beaf36385e681a3cf3bd1663d SONBIOS.sms
0x80 then 0xc0
(It fails to boot Sonic's Edusoft but it can boot other games. It's stuck on the Sega logo. Checksum failure ?)
Korean Samsung Gam*Boy/Aladdin Boy II BIOS with Alex Kidd in Miracle World
e49e63328c78fe3d24ae32bf903583e0 Alex Kidd in Miracle World [BIOS] (KR).sms
0x0 for a while, 0xa0, then 0xe0
Seems to be consistently 0xE0 and i can confirm setting VDP Register 1 to 0xE0 does allow the game to boot.
Why was it set to 0x80 ? SG-1000 stuff ? Megadrive perhaps ?
The only time i see it is during early bootup on most BIOS revisions
but even then, not all of them do that.
Looking at the documentation related to the VDP left me empty handed.