Vamiga: Bitplane DMA bug

Created on 20 May 2019  路  8Comments  路  Source: dirkwhoffmann/vAmiga

Symptom:

Screenshot 2019-05-20 at 12 15 13

Cyan area: Bitplane DMA is enabled
Black line: Line 255

Copper list (for reference):

Screenshot 2019-05-20 at 12 14 43

Debug output (for reference):

[14934] (252,  2)  FC0F58: PCBD 602C 1040: Denise: pokeBPLCON0(A302)
[14934] (256,  2)  FC0F58: PCBD 602C 1040: Denise: pokeBPLCON0(302)
[14935] (251, 86)  FC0F58: PCBD 602C 1040: Denise: pokeBPLCON0(302)
[14935] (252,  2)  FC0F58: PCBD 602C 1040: Denise: pokeBPLCON0(A302)
[14935] (256,  2)  FC0F58: PCBD 602C 1040: Denise: pokeBPLCON0(302)
[14936] (251, 86)  FC0F58: PCBD 602C 1040: Denise: pokeBPLCON0(302)
[14936] (252,  2)  FC0F58: PCBD 602C 1040: Denise: pokeBPLCON0(A302)
[14936] (256,  2)  FC0F58: PCBD 602C 1040: Denise: pokeBPLCON0(302)
[14937] (251, 86)  FC0F58: PCBD 602C 1040: Denise: pokeBPLCON0(302)
[14937] (252,  2)  FC0F58: PCBD 602C 1040: Denise: pokeBPLCON0(A302)
[14937] (256,  2)  FC0F58: PCBD 602C 1040: Denise: pokeBPLCON0(302)
[14938] (251, 86)  FC0F58: PCBD 602C 1040: Denise: pokeBPLCON0(302)
Bug Priority-High

All 8 comments

Issue was caused by a Copper bug. Copper did not handle WAIT statements correctly if there were two of them in a row (which happens frequently). Now, the screen can be dragged smoothly until the bottom is reached.

There is another issue in the lower right corner though:

Screenshot 2019-05-20 at 14 12 44

Next step: Find out if the pixels are sprite pixels.

Looks like a c64 sprite. 馃槀

May be related to the "Sprite DMA not switched off" Paccer issue. I think it's best to fix Paccer first.

Looks like a c64 sprite

Indeed 馃槀. Maybe the emulator is still haunted by VirtualC64 somehow 馃.

Findings: Graphics glitches happen at the last lores fetch in the lower area:

Screenshot 2019-05-21 at 18 49 46

Explanation:

Green: Border area (outside display window)
Yellow: First pixel of a 32 bit chunk (lores)
Magenta: First pixel of a 16 bit chunk (hires)

Could be a Copper timing issue, so it might be better to postpone it for now.

Looking at it in more detail, it could just as well be a message from the underworld. Not necessarily of course. It's just because I'm living next door to a graveyard 馃槵.

I personally don't believe in ghosts, but it could it be that someone buried his old Commodore C64 onto the graveyard... and this one is doing magic things now. (zombie sprites)... scaring !

DMA debugger already pays off. Seems like not all DMA slots get cleared when bitplane DMA is switched off.

Screenshot 2019-05-26 at 19 48 26

Fixed

Was this page helpful?
0 / 5 - 0 ratings

Related issues

dirkwhoffmann picture dirkwhoffmann  路  4Comments

dirkwhoffmann picture dirkwhoffmann  路  3Comments

dirkwhoffmann picture dirkwhoffmann  路  5Comments

dirkwhoffmann picture dirkwhoffmann  路  3Comments

dirkwhoffmann picture dirkwhoffmann  路  4Comments