VDP register questions regarding the Sonic 1 disassembly
Posted: Wed Sep 17, 2014 12:11 pm
Hi all!
I'm trying to replicate the VDP setup and clear screen process in the Sonic 1 disassembly from SonicRetro.org, and this issue is bugging me.
There's two sets of VDP registers, one for initial setup (clearing CRAM, displaying checksum error) and one for the game itself:
That second register value, 0x34, doesn't include the "display enable" bit:
...and at no point can I find this bit being set manually in code. None of my own test apps work without this bit set, how does this ROM enable the display?
I'm trying to replicate the VDP setup and clear screen process in the Sonic 1 disassembly from SonicRetro.org, and this issue is bugging me.
There's two sets of VDP registers, one for initial setup (clearing CRAM, displaying checksum error) and one for the game itself:
Code: Select all
VDPSetupArray: dc.w $8004, $8134, $8230, $8328 ; XREF: VDPSetupGame
dc.w $8407, $857C, $8600, $8700
dc.w $8800, $8900, $8A00, $8B00
dc.w $8C81, $8D3F, $8E00, $8F02
dc.w $9001, $9100, $9200
(from: http://cgfm2.emuviews.com/txt/genvdp.txt)$01 - Mode Set Register No. 2
-----------------------------
d7 - TMS9918 / Genesis display select
d6 - DISP (Display Enable)
d5 - IE0 (Vertical Interrupt Enable)
d4 - M1 (DMA Enable)
d3 - M2 (PAL / NTSC)
d2 - SMS / Genesis display select
d1 - 0 (No effect)
d0 - 0 (See notes)
...and at no point can I find this bit being set manually in code. None of my own test apps work without this bit set, how does this ROM enable the display?