Bah.. changing ddfstop from 0xb8 to 0xa0 didn't change anything in my case.
I'm curious about the table for DDFSTRT and DDFSTOP in the aga guide.. What's Extra Wide, Wide, Normal, Narrow referring to?
DDFSTRT (Left edge of display data fetch)
Purpose H8 H7 H6 H5 H4
Extra Wide (Max) 0 0 1 0 1
Wide 0 0 1 1 0
Normal 0 0 1 1 1
Narrow 0 1 0 0 0
................ another thing that puzzles me
In the OCS/ECS hw ref manual it says DDFSTOP and DDFSTART are related like this in lowres
DDFSTRT = DDFSTOP-(8*(word count - 1))
Lets try it for FMODE = 0 no scroll:
If we plug in some values from Krabob's table of working stuff above: DDFSTOP=0xd0 and word count = 320/16 (assuming word size is 16-bit) it seems ok.
0xd0 - (8*(320/16-1)) = 0x38
For FMODE = 0 with scroll:
DDFSTOP=0xd0 and word count = 336/16.
0xd0 - (8*(336/16-1)) = 0x30
Both of them work very well!
But then... moving on to X4 mode without scroll. What has this formula become? From stuff that works setting DDFSTOP = 0xa0 and DDFSTRT= 0x38. Then the question is what logical numbers should be in the middle to make it work? The 8* is related to color clocks for lowres so I think that won't change. So it must be wordcount-1 which changes.
0xa0 - (8*(wordcount-1)) = 0x38
-8*(wordcount-1) = 0x38-0xa0
(wordcount-1) = (0x38-0xa0)/-8
wordcount = 14
So what is a word count of 14 going to fetch us? For different word sizes 16,32,64:
14 * 16 = 224 bits of image data
14 * 32 = 448 bits of image data
14 * 64 = 896 bits of image data?
But we want 320 bits of image data I think..