On 9 Feb 2016 at 0:52, Eero Tamminen wrote:
Additionally, my fix to the TT palette sync issue Roger reported,
breaks 4getful palette handling. The reason is similar to color
register writes on ST, IO register code doesn't support splitting
long access to 2 word accesses, so current code misses every other
color register change when they're written with longs.
I've been looking into the TT video documentation carefully, and it seems that
the STe-compatible registers map to the TT registers according to the bank
number in the TT shifter, i.e. if the bank number in the TT shifter is n, then
STe-compatible palette registers 0 to 15 map to TT palette registers 16*n to
16*n+15. Normally n is zero, but it's possible for programs to change this
(there's even an XBIOS call to do it).
I haven't verified that this is true on the real hardware, but I strongly
suspect that it is (based on disassembly of TT TOS). I mention this now in
case it affects how you decide to fix the above problem. I am in the process
of making changes to EmuTOS's palette handling to support this properly.
Apologies if you already knew this and it's already handled properly by Hatari.
Roger Burrows