← Blog

Blog

#retro#computers#fpga

Een Amiga 500 in de nieuwe Commodore 64?

Commodore bestaat weer, en het eerste wat het nieuwe bedrijf uitbrengt is — hoe kan het ook anders — een Commodore 64. De Commodore 64 Ultimate is geen emulator op een verstopte Raspberry Pi, maar een echte hardware-reïmplementatie op een FPGA, ontworpen door Gideon Zweijtzer, de man achter de 1541 Ultimate en de Ultimate 64. Ik heb mijn oog laten vallen op de limited "Commodore 77"-editie in Cyberpunk 2077-stijl: die krijgt niet de standaard Artix-7 XC7A50T, maar de dubbel zo grote XC7A100T.

En dan begint het te kriebelen. Want mijn jeugd bestond niet alleen uit de Commodore 128 — daarna kwam de Amiga 500. Als in die breadbin-behuizing straks een FPGA zit met 100.000 logic cells, 128 MB DDR2-geheugen en een HDMI-uitgang... zou je daar dan ook een complete Amiga 500 op kunnen laten draaien? Ik zocht het uit.

Wat is een FPGA ook alweer?

Een FPGA (Field Programmable Gate Array) is een chip vol digitale bouwblokken die je zelf tot een schakeling kunt configureren. In plaats van software die een computer nadoet (emulatie), beschrijf je de originele chips — de processor, de videochip, de geluidschip — in een hardwarebeschrijvingstaal, en de FPGA wórdt die chips. Cycle-exact, zonder de timingproblemen van emulatie. Precies wat de C64 Ultimate met de 6510, VIC-II en SID doet.

De Amiga 500 is op dat vlak goed verkend terrein. Al in 2005 bouwde Dennis van Weeren de Minimig: de volledige OCS-chipset (Agnus, Denise, Paula — de custom chips met de mooiste namen uit de computergeschiedenis) op een bescheiden Spartan-3 FPGA met amper 8.000 logic cells. Latere ports zoals MiST en MiSTer draaien de hele machine inclusief een 68000-softcore-processor op FPGA's van zo'n 25.000 logic elements. De uitgebreide Minimig-AGA-variant doet er zelfs een 68020, AGA-chipset en tot 24 MB fast RAM bovenop.

Past het?

Ruimschoots. De XC7A100T van de Commodore 77 heeft ruwweg 101.000 logic cells (63.400 LUT6-bouwblokken), zo'n 600 KB block-RAM en 240 DSP-slices. Een OCS/ECS Amiga 500-core met softcore-CPU kost naar schatting 25 à 40 procent daarvan. Er blijft dus marge over voor een 68020, AGA en fast RAM — de Amiga 1200 wenkt al. Op de standaard XC7A50T zou een A500 ook passen, maar krap; juist de 100T van de limited editie maakt dit avontuur comfortabel.

De rest van het board helpt mee: 128 MB DDR2 (de Amiga heeft 512 KB à 2 MB chip-RAM nodig, plus Kickstart-ROM en fast RAM — geen probleem), HDMI tot 1080p, twee echte DB9-joystickpoorten waar ook een Amiga-muis op past, en een mechanisch toetsenbord. En belangrijk: Gideons firmware en FPGA-buildbestanden staan open source (GPL-3.0) op GitHub, inclusief een officiële JTAG-herstelprocedure. Eigen bitstreams laden kan dus, mét vangnet tegen het brikken van je verzamelobject.

De echte uitdagingen

Het moeilijke zit niet in de Amiga-logica — die bestaat al — maar in de integratie met dit specifieke board. De grootste horde is het geheugen: alle Minimig-ports verwachten klassiek SDRAM met voorspelbare timing, terwijl hier DDR2 op zit. Je moet dus een geheugen-backend bouwen met arbitrage en buffering. Gelukkig bewijst Gideons eigen C64-core dat cycle-exacte retrocomputing vanuit diezelfde DDR2 perfect kan, en zijn controller is herbruikbaar.

Tweede werf: de diskettes. Een Amiga zonder ADF-images is een dure klok. Bij MiST en MiSTer serveert een aparte I/O-processor de floppy- en harddisk-images; hier zou de RISC-V-softcore met de bestaande Ultimate-firmware (die al USB, SD en FAT beheerst) die rol moeten overnemen. Dat is vooral firmwarewerk.

Dan de kleinere hindernissen: het C64-toetsenbord heeft 66 toetsen waar de Amiga er zo'n 96 heeft — de Amiga-toetsen, Help en F6 tot F10 moeten via toetscombinaties. De 28,375 MHz PAL-klok van de Amiga komt netjes uit een klokgenerator in de FPGA, waarna een scandoubler het beeld naar de bestaande 1080p-HDMI-pijplijn stuurt. En juridisch: Kickstart en Workbench zijn nog steeds auteursrechtelijk beschermd. Voor ontwikkeling is er het open-source AROS-ROM, voor het echte werk een goedkope Cloanto Amiga Forever-licentie.

Hoe ik het zou aanpakken

Stap één: de open-source repository van Gideon binnenstebuiten keren — welk exact FPGA-part, welke pinnen, hoe werkt de DDR2-controller en de HDMI-uitgang. Vivado, de ontwikkelomgeving van AMD/Xilinx, is gratis voor deze chip; een JTAG-adapter kost een paar tientjes.

Daarna in kleine milestones omhoog klimmen: eerst een eigen testbitstream met een testbeeld op HDMI, dan een geheugentest op de DDR2, dan de Minimig-core die opstart tot het iconische Kickstart-scherm met de hand die een diskette vasthoudt. Vervolgens de floppy-emulatie via de firmware, de toetsenbord- en muismapping, en tot slot geluid, harddisk-images en fast RAM. Wie dan nog honger heeft: AGA en een 68020.

Haalbaar? Absoluut — de chip is er ruim groot genoeg voor en elk deelprobleem is al eens ergens opgelost. Maar het is wel maandenwerk; als hobbyproject eerder zes maanden tot een jaar. Het idee alleen al maakt de Commodore 77 dubbel zo interessant: één breadbin die beide computers van mijn jeugd kan zijn. De C128 aan de buitenkant, de Amiga 500 als slapende tweede ziel in dezelfde chip.