Getting closer….

So a few versions later, trying some different failed attempts, I am finally starting to get a little closer.  Here’s the best video I’ve got so far, but my image is still scrolling.

If I can fix the scrolling issue, which I suppose is related to VSYNC, then maybe things might be looking better.

The things that give me hope are:

  • Size is basically correct, taking up the whole output screen.
  • Colors all look right
  • Text is basically readable
  • Some artifacts around the edges of the graphics, but nothing too horrible


Amateur Electronics Design Engineer and Hacker


  • so I’ve got the scrolling as slow as possible.

    The scrolling was happening because the VSYNC frequencies were slightly off. The Amiga’s is 16.7151ms, mine was 16.404ms. My PLL settings can’t get me to the exact frequency, but I was able to modify the number of X pixels per line and now, I’m 16.7116. Pretty damn close.

    But it scrolls, albeit very very slow. (It takes 1 minute 20 seconds to make a complete screen scroll)

    I think I need to SYNC my generated vsync to the incoming VSYNC, but I’m just not sure how to do that yet.

    The sync’s are slowly more and more out of phase.

  • tried a bunch of stuff tonight, including a cheap PLL type implementation.

    What eventually ended up working decently was separating and reshaping the amiga vsync pulse and passing it through.

    No more scrolling screen. However, I now have a vertically moving black bar…… one thing at a time. 🙂

  • Hello,

    why don’t you use one of the FPGA PLL to generate a 28.375 MHz (or 28.636 MHz if the Amiga is NTSC) clock from the 7MHz clock available on Denise.
    IIRC, the Cyclone III accepts 5 MHz as a minimum input frequency on the PLL. So, you can use either C7M or CDAC# signal.
    The Cyclone II accepts 10 MHz clock. In that case, you can generate a 14 MHz clock by XORing C7M and CDAC#.