gothmog wrote:In Dungeon Master, the color palette is set using the base register address 0x00FF8240.
In Chaos Strikes Back, the color palette is set using the base register address 0xFFFF8240.
What difference does that make?
From what I have read here and there, this makes no difference on early Atari ST computers because the 68000 processor only has a 24 bit address bus so the high order byte is simply ignored.
On later machines like TT or Falcon, the 68030 does have a 32 bit address bus. However I have found contradictory information about which address would be the "correct" one to use on these platforms for accessing the palette registers. Maybe both would work.
Code: Select all
lea source, a0
lea $FFFF8240.w,a1 / lea $FF8240,a1
move.l (a0)+,(a1)+ ; x8
gothmog wrote:Thanks for your replies
In fact both games load the palette data into the 8 data registers and then use a movem.l instruction:
movem.l D0-D7,0x00FF8240 (DM)
movem.l D0-D7,0xFFFF8240 (CSB)
so they did not make this change for the performance reason you mention.
If both addresses are equivalent, then I really wonder why they made this change...
AtariZoll wrote:In fact, both addresses are OK, even on Falcon and TT - because PMMU will map $FF8240 correctly (after TOS started). Of course, $FFFF8240 is more compatible, and will work fine on TT (where we have real 32bit addr. bus) even without PMMU.
PMMU will map $FF8240 correctly (after TOS started)
Dio wrote:I'm fairly sure there is direct FDC access in Dungeon Master, at least, IIRC to read a $F7 sector hidden on track 1 or the bad bits in one of the other sectors. It's done in a fairly well obfuscated manner though, as are all DM's and CSB's protection checks. But I may have misremembered...
Users browsing this forum: No registered users and 3 guests