Reference: A500 鉂わ笍:

UAE 馃き:

vAmiga 馃檲:

The real nightmare doesn't seem to be the Copper, but the DDF logic implemented in Agnus.
I've uploaded A500 images for all DDF tests to the vAmigaTS repo. In many cases, they differ not only from the images created with UAE, but also from Mithrendal's A1000 images.
It'll be great to have comparison images for all DDF tests computed with an A1000 and A2000 and to know the Agnus model and revision number. I guess the Amiga developers had changed the DDF logic over time quite a bit. Does anybody with this machines has established an easy way to load ADFs in the meantime?
...waiting a gotek from Germany, still waiting.
The A500 image reveals that "Amiga Intern" is wrong:

It must be:
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01
x x x x x x x H8 H7 H6 H5 H4 H3 H2 x
H2 is not ignored, only H1 is.
I just had a look into ddf5 test results. That is really a bummer. The A500MMSE with Agnus8375 result has so many differences compared to the A1000 with Agnus8367R0. Soo many, which made me already quite a bit suspicious. @dirkwhoffmann should we retest to be sure that we did make no mistake ?
Now you made me curios to see how the older Amiga with Agnus8372A from Retrobright experiment 1.0 #111 draws the DMA sequence picture...
PS: I still have the old very slow way of bringing ADFs via the SerialLink cable into the Amiga1000, which takes 5 minutes per disk.
should we retest to be sure that we did make no mistake ?
Yes, I fear everything has to be retested. I did compute the A500 images with at least 2 different models and I never documented the chip revisions. I do not even know which mainboard is inside the model I am currently using 馃檮. I was a little lazy about that stuff, because I didn't expect differences between different Agnus revisions.
I just had a look at the configs in SAE. Under chipset it lets you select
OCS
ECS Agnus only
ECS Denise only
ECS
AGA
My guess/hope is that we may only have two different types of "logical behaviour" in the Agnus. Pre and post revision 8372A.
OCS(includes Agnus and FatAgnus) < rev8372A
ECS(FatAgnus which can address 1MB) >= rev8372A
AGA there is no Agnus anymore, the chips are called Alice and Lisa (we don't care as we don't emulate this. Winners don't use AGA !馃槀 )
I'll set up a second DDF test case suite (DDFNEW). The old one was "optimised" for what I saw in SAE / UAE which is not 100% accurate (at least not w.r.t. to the chip set revision in the A500 I am using). I'll open up the A500 later to see which motherboard and Agnus is inside.
Maybe @hazydave knows about the changes to DDF logic implemented in Fat Agnus. Maybe he likes to give us a hint into the right direction ? I think he is the one who designed the ECS fat agnus at Commodore in 1987-1989, no ?
I've just checked the photos I took from the various motherboards:
I own:
3 x Rev 6A with Agnus 8372A 318069
1 x Rev 8A with Agnus 390544-01 8375
The Rev 8A Amiga must be the A500 MMSE, but the latest pictures have been taken on a Rev 6A Amiga. Once the new test cases are set up, I'll run them on the 8A and the 6A model to see if they are different.
On Alessandro's A2000 board, I've spotted an Agnus 8372A 318069. I expect the A1000 has the oldest Agnus chip of all models we have.
Once the new test cases are set up, I'll run them on the 8A and the 6A model to see if they are different.
As I will do on the Agnus 8367R0. 馃
I've started adding some new tests (vAmigaTS repo: Agnus/DDF2).
The first four tests are very simple. They set DDFSTOP to a fixed value and increment DDFSTRT at each red line by 2, starting from 0. The most common values are set in ddfstrt2 and UAE comes pretty close for that test case. For all other test, UAE fails badly (as do vAmiga and SAE).
Example: ddfstrt4:
A500 6A 鉂わ笍:

UAE 馃き:


Conclusion: There is no emulator on the planet that does the DDF stuff right yet (true at least for Agnus rev. 8372A).
Just notices that I have some "errors" in my test cases (successively incrementing a value by 2 is a difficult task 馃槀). On the other hand, the "errors" might make them even better 馃.
The first batch of (reworked) test cases has been added to the vAmigaTS repo: ddfstrt1 to ddfstrt9 and ddfstr1h to ddfstrt9h (the _h test run in hires mode).
With the latest checkin, vAmiga passes all of them which means that I am on the right track 馃槑.
All ref pics have been computed with my Rev 6A A500 (Agnus 8372A). Next step is to see how the ref pics change when using a 8367R0 Agnus (A1000) or 8375 (A500 Rev 8A).
More test cases are yet to come. We need tests that
New tests ddfstrt13 to ddfstart15 bring some disappointing news for us.
Here is how ddfstrt14 looks like on the real machine:

The test program utilizes the Copper to begin a red line at DMA cycle 00. Now note where the red lines begin in the image. With my new test cases, I have managed to get the horizontal DMA counter and the horizontal video beam out of sync. Right now, I have no idea how to emulate this. The only thing I know is that it would require me to overhaul the complete emulation architecture. I had to add a new logical layer that separates DMA cycle counting from video beam counting. Right now, I don't think that we should go for that. It would slow down emulation and is only needed to capture pathological cases (i.e., some crazy value combinations of DDFSTRT and DDFSTOP that are never used by decent programs) .
I'm closing the issue for now, because vAmiga seems to work fine for all valid DDFSTRT and DDFSTRT combinations. I still need to figure out how to cope with the A1000 Agnus though.
