Findings: When the disk is dragged in after the disk & hand logo has shown up, the intro is scrambled:

DMA debugger view:

When the disk is inserted right from the start, it looks like this (red stripes are debug markers) :

Don't know what's going on here. Obviously, it must have something to do with the display window. Up to now, I thought the display window can only be modified by writing into DIWSTRT and DIWSTOP... ๐ค
When writing to strobe register COPJMP1, Copper jumped to table 2 ๐คญ. So mean of him.
But as always: For each captured bug, another one takes its place.

The left part of the moving text shouldn't be there and the first line is scrambled.
It's a little better now, but not perfect:

The problem here is that the intro modifies registers DDFSTRT, DDFSTOP, and BPLxPTR in the middle of a rasterline when DMA is still on. Hence, register timing is crucial here. I'm going to postpone this bug until the emulator is more mature (register timing is higher level sorcery ๐งโโ๏ธ).
๐ฏ I screwed it up completely. Some severe bug has been introduced lately. The animation is also gone.

Animation stopped with the introduction of function skipBPLxPT().
skipBPLxPT() is not the culprit though. Due to another bug, writes to BPLPT registers get falsely delayed to those cycles that are skipped by skipBPLxPT(). Hence, the other bug needs to be fixed (wherever it hides).
Findings:

MOVE $0018, DFFSTRT happens at cycle $16.
This is too late to let the new value take effect in the current raster line. Therefore, DDFSTRT is still at $38 and there is enough time to set the BPLPT registers outside the DMA area.
In vAmiga, DMA is already on when the BPLPT registers are written.
This is better than rocket sience. ๐
First time it really works ๐.

On the negative side, I'm pretty sure that my code changes break some of the DDF tests that passed before.
Anyway, the good news is that I understand DDFSTRT / DDFSTOP a little bit better now.
Oh no. It's broken again ๐

Is it maybe the slow blitter which is still in its infancy ?
Is it maybe the slow blitter which is still in its infancy ?
Figured it out. It's because I changed the format of the internal DMA event table.
To make the slow Blitter work, I have to emulate wait-states inside the CPU. To do that, I need to
Task 1. has been solved and brought the Musashi IRQ issue to surface (which is good).
Task 2. and 3. sound simple, but they aren't. All DMA stuff is tightly glued together like in a real Amiga. One sub-task is to change format of the internal DMA event table which caused the bug.
Most helpful comment
First time it really works ๐.
On the negative side, I'm pretty sure that my code changes break some of the DDF tests that passed before.
Anyway, the good news is that I understand DDFSTRT / DDFSTOP a little bit better now.