A MiSTer FPGA in its black acrylic case on a desk, with an HDMI cable and a microSD card.

Component · September 2026

MiSTer

Not an emulator. What an FPGA Amiga is, where the Minimig core came from, why we bought one when WinUAE already worked, and what the board gives up in return.

An emulator is a program that pretends. WinUAE reads each 68020 instruction, works out what it would have done, and does the equivalent on a PC, then does the same for the blitter, the copper, Paula, and the floppy controller, one after another, fast enough that it looks simultaneous. It is astonishing work and it is the reason the Amiga survived at all. But there is a Windows underneath it, with a scheduler and a compositor and a USB stack, and every frame passes through all of them on its way to the screen.

An FPGA does not pretend. It is a chip full of logic that can be wired, by a file loaded at power-on, into any circuit you can describe, and the circuit then runs the way silicon runs: everything at once, every clock. Describe Agnus, Denise and Paula in that language and you have not simulated the Amiga chipset, you have built another one. That is what a MiSTer core is. Agnus is fetching bitplanes while Paula is playing samples while the CPU is executing, in the same cycle, because there is no program taking turns. There is no operating system under it. Power on, and the Kickstart hand appears in the time it took the original.

We bought one because it was supposed to be closer to the machine. It is. It is also the only thing on this bench that no script can see into.

The Amiga core has a longer history than the board. In 2005 a Dutch engineer, Dennis van Weeren, set out to prove the chipset could be done in an FPGA and built Minimig, a credit-card-sized A500 with a real 68000 on it, and released the whole design under the GPL in 2007. Jakub Bednarski took it further; Till Harbaum built MiST, a board with the CPU inside the FPGA too; Rok Krajnc gave it the AGA chipset in 2014, so it could be an A1200. In June 2017 Alexey Melnikov, Sorgelig, ported all of it to a mass-produced Terasic development board, the DE10-Nano, mostly, he has said, because his televisions had HDMI and nothing else did. That project is MiSTer. The Minimig-AGA core on it is the machine in these notes.

Turrican II running on the MiSTer Minimig core.
Turrican II on the core, captured by the MiSTer itself. This is the reason for the board.
A bare MiSTer I/O board with a fan in the middle and a microSD card in its slot.
The board with its I/O daughterboard. The whole machine, Workbench and all, is on the microSD card.

Why it, when WinUAE works

Because the point was never to have an Amiga in a window. It was to have the Amiga: on the television, with a joystick in the port, on when you press the button, off when you press it again, with no updates pending and no mouse to find. The MiSTer is a box the size of a paperback that does that. The picture arrives over HDMI at the television’s native rate, the joystick and keyboard are plugged into it and not into a PC, and the lag between pressing fire and the sprite moving is the lag the original had, because the same logic is doing the work in the same order. A WinUAE on a good PC can be tuned very close to this. The MiSTer is there when you turn it on.

It costs something, and the notes on this bench are largely the bill. The core knows what a disk is and nothing else: no directory mounts, no host folder, no pipe to send it commands, no serial bridge for AmiPilot to talk over. Every file has to be on a hardfile the core will accept, and the hardfile has to be right before it goes on the card, because the only way to see the result is to boot it on the television. Its graphics card is a different driver from WinUAE’s. Its memory is set in an on-screen menu that no script reaches. And there is one rule that a person has to remember, because nothing enforces it: never change a hardfile while the core has it mounted. Ship under a new name, switch in the menu, reset.

So the two machines have jobs. WinUAE is the workshop, where the disk is built, driven, measured and restarted by scripts, because it can be. The MiSTer is where the disk goes when it is finished, minted for the board in one command, checked on the way out, and copied under a dated name. The core is the story of learning that order.

ScreenMode Preferences on the MiSTer with MiSTer:1920x1080 16bit PC selected, 70 Hz.
What the board draws that the chipset never could. The MiSTer RTG driver offers 1920x1080 at 16 bits; this desktop ships at 1280x720, which is the row that was proven end to end.

What the scripts and AmiPilot took over

There is no chapter for this in the guide; it was written for WinUAE. The MiSTer ledger is our own, and this is its summary.

  1. Automated

    The disk

    Take a Workbench hardfile, install the MiSTer graphics driver, pick a screen mode, install MUI, ClassAct, NewIcons and Scalos, fix the palette, check it.

    One command. build_mister_image.sh copies the source disk and, on the copy, removes WinUAE’s uaegfx and installs Picasso96 with the MiSTer monitor, vendors the proven MiSTer:1280x720 16bit PC mode, installs the four packages with Scalos set to boot as the backdrop and the MagicWB palette on both palette files, writes lha and Installer into C:, repairs the game icons, runs check_guide_hdf.sh and stops on any miss, and prints the sha256.

  2. Automated

    The shape

    Make the core accept a WinUAE disk at all.

    uae_raw_to_minimig_hdf.py pads a WinUAE image back to the size its filesystem expects and writes the rigid disk block the core wants. The hardfile is the note about finding that out.

  3. Automated

    The copy

    Get the file onto the card without pulling the card.

    copy_to_mister.sh, or --ship on the mint, copies to /media/fat/games/Amiga/ over ssh, refuses a name that already exists there, and copies nothing if it cannot check. The board password comes from an environment variable, never a command line.

  4. By hand

    The OSD

    —

    F12. The new hardfile as primary master, the games as primary slave, Fast RAM raised, reset. The on-screen menu is the core’s, not the Amiga’s, and there is no way in from outside. Once per new disk.

  5. By hand

    The proof

    Look at the television.

    Everything is proven in WinUAE first, by verify_winuae_desktop.sh and AmiPilot, and then minted for the board. On the board itself there is no AmiPilot path and no capture into the pipeline; the screenshots on this page came off the board itself, by hand. Closing that gap is the next piece of work.

The step-by-step for this machine is Workbench 3.1 on a MiSTer. History from the Minimig-AGA repository and Sorgelig’s account of the project’s start. The words are ours.