Demos and Fixes

A project log for Diapason : m68k homebrew with FPGA graphics

An m68k homebrew with an FPGA acting as a VGA graphics controller

Carson HerringtonCarson Herrington 08/04/2019 at 22:140 Comments

Before the rest, I wanted to mention I made a new test image for the bitmap modes. The new one shows artifacting much better than the old one, and is a little more visually interesting:

This is what I'll be using from now until I decide to change it (never). Above is what it is supposed to look like, so if it doesn't match then you know something is broken.


First and most important thing, I fixed the strange bug causing the pixels to change size! The problem was with the way I was multiplexing the internal buses with the external ones. I have no clue how exactly this caused the screen to do what it did, but at least its fixed. The old logic driving it was this:

The new working logic seen here:

However, I noticed another bug playing around: The screen is shifted up by two pixels, even when the scroll register is 0. I don't think this bug was caused by anything recent, because I looked back at the Images on my previous project log and It's there too! It flew right under my radar, probably because it blended in with my desktop theme's black frames. I only noticed this because I accidentally made the background colour off white (again, no idea how), causing those lines to become a blinding beacon to my eyes:

The other stuff

I've tired myself out implementing new things as of late, so I spent some time just playing with it and trying to generate interesting effects. Here's a few of the ones i thought were the most interesting:

This one applies a sine to the scroll register by triggering a raster interrupt on each line.
This uses 4 raster splits to have four segments of independent graphics data. The scroll registers of each split are independent as well.
A tech-tech effect.
The same tech-tech, but alternating graphics modes on each scanline. There is some artifacting on the left side due to my raster interrupt handlers not being fully encapsulated in the horizontal retrace.

I'm pretty pleased with what I was able to get out of Diapason so far, to say the least. This time I'm going to focus solely on bringing the hardware up, any maybe a bugfix.

And here's that list of future feature ideas: