More Details

Ant64 treats advanced graphics, audio, and CPU as first-class hardware citizens — all running on the same FPGA, sharing the same timing domain.

Ant64 is a modern, hardware-first computer inspired by the design philosophy of classic systems — the Commodore Amiga, Atari 8-bit line, Jaguar, and Sega Saturn — reimagined with today's FPGA capacity, memory bandwidth, and integration techniques.

The system is designed to excel at games, creative tools, and system-level experimentation. The main FPGA-based CPU and chipset are together called FireStorm.


Major Chips and Roles

The three main roles

Chip Role
FireStorm (GoWin GW5AST) Main CPU and chipset in a single FPGA — RV64GC CPU plus graphics, audio, blitter, copper, raycaster. The GW5AST-138 silicon also contains a hard 800 MHz 32-bit RISC-V coprocessor for chipset debug / monitoring.
DeMon (Raspberry Pi CM5 + ESP32-C5) AntOS host (Linux) + system supervisor — boot, recovery, network, HDMI display feed (AntOS UI + sprite/tilemap layers), Triple SID audio engine (L/C/R), SAM speech synthesizer, keyboard touchscreen
Pulse (ESP32-P4) Music & sequencer brain + secondary synth engine — MIDI, jog dials, AMY software synthesis, sample / tracker / emulator engines, MIPI display feed (sequencer / mixer UI + sprite/tilemap layers), circular display on case, 32MB PSRAM
Sticky (AVR128DB64) 5V joypad I/O — sacrificial protection layer
Clicky (AVR128DB64) Keyboard controller

FireStorm — FPGA CPU and Chipset

FireStorm is one FPGA containing both the main CPU and the full custom chipset. CPU and chipset are treated as the same silicon by software — there is no driver layer, no abstraction wall, no copy-and-DMA path between "main RAM" and "video RAM".

CPU Side

  • 64-bit RISC-V (RV64GC compatible)
  • Seven custom extensions: Xcrisp, Xstack, Xcond, Xlate, Xctx, Xmath, Xwide
  • Shallow OoO microarchitecture (scoreboarding, dual-issue, DSP-block-backed multipliers)
  • ~380 MHz on GW5AST-138

Chipset Side

  • Layered 2D/2.5D graphics pipeline (up to 16 layers)
  • Sprite, tilemap, vector, voxel, raycasting, and command-list rendering
  • Hardware Copper and command processors
  • Audio synthesis and mixing (128+ voices)
  • Multiple video outputs

DDR3 RAM (FPGA side)

Model Capacity Width Peak bandwidth
Ant64S 1.125GB (→4.5GB) 72-bit ~7.2 GB/s
Ant64 2.25GB 72-bit ~7.2 GB/s
Ant64C 4.5GB 72-bit ~7.2 GB/s

Used for: OS, applications, large tilemaps, isometric maps, voxels, raycasting grids, command lists, streaming assets, cartridge/SD data, sample banks.

Wide-Mode SRAM

One bus of ~4.5MB fast SRAM (1M × 36-bit) — true random access with deterministic latency. Holds FireStorm wide-mode code (hot-path code that benefits from the 64-register file, predication, wider immediates).

On-Chip BSRAM

GoWin GW5AST-138: 340 BSRAM blocks × 18 Kbits = ~765KB total. Dual-port, ~380 MHz. Used for: scratchpad data structures, sprite line buffers, palette RAM, copper lists, Xstack stack frames, Xctx context state, audio voice state, hot LUTs.


Graphics Layer System

Build a picture from layers

Up to 16 independent layers, each independently typed. Per-layer controls:

  • Scanline start · Enable/disable
  • Z-buffer participation · Blend mode · Palette mode

Layer Types

Layer Type Key Features
Tilemap Orthogonal, isometric, or side-view · depth extrusion · hardware scrolling · Z-buffer participation
Sprite 4-bit+ colour · scaling · rotation · Z-aware (inside the world, not just on top)
Text 3-bit glyph indices · per-layer colour registers · optimised for UI and system text
Bitmap 12-bit 4-4-4 true colour · 12-bit indexed (64 palettes × 64 colours)
Command List GPU-style command stream · ImGui compatible · Copper can inject commands
Vector Lines, curves, polygons · optional instancing as sprites
Raycasting / Voxel Hardware ray queries · collision distance · voxel column rendering
Supervisor overlay HDMI feed from DeMon (CM5) — boot UI, recovery, system menus

Layer Merging and Z-Buffering

Per-pixel Z-buffer stored in BSRAM, layers merged per scanline. Each layer can obey or ignore the Z-buffer:

  • Sprites embedded in depth tilemaps
  • 2.5D effects for side-scrollers (Mario-style depth)
  • Isometric worlds with verticality

Copper and Update Units

Copper list (tied to scanline position)
    |
    ├── Modify layer registers
    ├── Modify palettes
    ├── Inject into command lists
    └── Trigger FireStorm Execution Engine interrupts (e.g. for mid-frame logic)

Update Units
    |
    ├── Burst updates
    ├── Dirty-flagging
    └── Cached descriptors

Audio and Copper update units share the same optimisations.


Audio System

Making sound on Ant64

  • Multi-channel sample playback with hardware mixing (128+ voices)
  • DMA from DDR3
  • MIDI-driven synthesis via Pulse Sequencer
  • FM / virtual-analog / granular / physical-modelling engines
  • FireStorm EE runs synthesis setup, envelope updates, MIDI parsing — Xmath accelerates per-voice math

Video Outputs

Output Resolution Notes
Main HDMI up to 4K@60 All models — via Parade PS176 DP→HDMI bridge fed by FPGA SerDes
Retro VGA + 3.5mm audio 480p–1080p60, plus 240p superresolution All models — via AG6201 HDMI→VGA bridge fed by FPGA fabric HDMI TX; MiSTer-compatible 240p output for genuine 15 kHz CRTs through SCART adapters

Both outputs support:

  • Independent layer selection per output
  • Line buffering and pixel repetition
  • Main HDMI capable of 4K-class output with reduced layer set
  • DeMon's HDMI feed composited as an overlay layer (AntOS UI, system menus)
  • Pulse's MIPI feed composited as a second overlay layer (sequencer / mixer UI)

Auxiliary displays (outside the FPGA path):

  • Keyboard touchscreen — DeMon-driven, MIPI DSI; always active even when the FPGA is reloading
  • Circular TFT on the case — Pulse-driven, SPI, mounted at far left above the keyboard; also always active

DeMon — Supervisor (Raspberry Pi CM5 + ESP32-C5)

The system supervisor handles boot, recovery, network, keyboard, touchscreen, and the AntOS UI:

  • Raspberry Pi CM5 — quad-core ARM (Cortex-A72/A76), gigabytes of RAM, VideoCore GPU, HDMI + PCIe to the FPGA, USB host — runs AntOS on Linux
  • ESP32-C5 — Wi-Fi 6 (2.4 + 5 GHz), Bluetooth 5.3, Thread, Zigbee
  • Boots the FPGA via JTAG
  • HDMI display output → FireStorm FPGA — AntOS UI plus sprite and tilemap layer descriptions, rendered by FireStorm at scanout
  • Triple SID audio engine (L/C/R, 9 SID voices, in software on the CM) — system sounds, AntOS audio cues, SID file playback, third compositional voice palette; streamed to FireStorm over HDMI/PCIe for mixing
  • SAM speech synthesizer — formant text-to-speech in the tradition of S.A.M. (1982); in software on the CM; AntOS uses it for voice prompts, accessibility, and system narration; Pulse can dispatch text/phoneme events for musical use; FireStorm can dispatch dialogue for games/demos
  • Keyboard touchscreen — MIPI DSI, AntOS-rendered; always visible regardless of FPGA state
  • Real-time clock (MCP79410 with CR2450 backup, ~20 years)
  • Internal HS USB hub — DBFS drive (D:) + DBFS shadow (D!:) + internal general drive (B:) + external memory stick (E:) · external SD card slot · separate FS hub for keyboard / mouse / HID
  • USB host for keyboard, mouse, joypad

What DeMon Can Reprogram

  • FireStorm FPGA bitstream (JTAG) and flash
  • Pulse Sequencer
  • Sticky
  • Clicky keyboard controller
  • ESP32-C5 firmware

Pulse — Music & Sequencer (ESP32-P4 + 32MB PSRAM)

The real-time musical brain of the Ant64.

  • Traditional MIDI — DIN / DOUT / DTHRU (Ant64C), MIDI 1.0, plus USB MIDI 2.0 (both host and device)
  • USB mouse support
  • 8× RGB-illuminated jog dials with integrated push buttons
  • Round auxiliary TFT display — mounted on the far left of the case, above the keyboard; SPI-driven from Pulse, for jog dial labels and per-knob state; always visible regardless of FPGA state
  • MIPI display feed into FireStorm — Pulse composes its own sequencer / mixer / sample-browser UI and sprite/tilemap layer descriptions, streamed to the FPGA which renders them at scanout
  • AMY synth library (github.com/shorepine/amy) running natively on the ESP32-P4 — additive / FM / PCM / partials / filters / envelopes; output streamed to FireStorm via MIPI for mixing
  • 32MB PSRAM for sample libraries, AMY patch banks, sequencer state, software synth working memory
  • Bidirectional SPI ↔ DeMon (peer command/data link) · OPI register window into FireStorm
  • 4× 3.5mm trigger / CV inputs (Kick · Snare · Sync · Foot)
  • Classic FM / VA / granular synth emulators in firmware (speech synthesis on DeMon — SAM — triggered by Pulse via the SPI link)

Sticky — AVR 5V I/O & Joypads

  • 4 joypad ports — each reconfigurable in firmware: Atari/Commodore/Sinclair/Amstrad sticks · Sega 3- & 6-button · Amiga CD32 · paddles · mice / trak-balls / spinners · keypad controllers · Team Player / Mega Mouse / XE-1 AP
  • Electrically isolated from the FPGA — sacrificial protection layer
  • Cheap, replaceable, and robust
  • Talks only to Pulse Sequencer

Clicky — AVR128DB64 Keyboard Controller

  • 75% form factor, custom mechanical keyboard
  • Per-key RGB (NeoPixel) lighting
  • Jog dial with button
  • Vertical TFT touch screen in place of the numpad
  • Row/column scanned and decoded to UTF-8 on-chip, sent to DeMon over UART2 — readable before USB is up
  • Also drives the status LEDs and buzzer on DeMon's behalf
  • DeMon reflashes Clicky over UPDI

Heavy Compute — No Separate Accelerator

Earlier designs offered an optional Raspberry Pi Zero 2W on the FPGA's expansion header. It's gone — DeMon is now itself a quad-core Raspberry Pi CM5, so the application-class CPU is already central. Heavy work runs on DeMon directly:

  • Heavy emulation cores, software audio plugins, video codecs
  • Linux services for community-built extensions
  • Larger AI / DSP and ML inference — quad ARM + NEON SIMD + VideoCore GPU

For latency-sensitive offload, FireStorm hands kernels to the on-die A25 hard core or to the CM over the provisional Xaccel path; personalities reach the same services through the Accelerator compatibility layer.


Cartridge & Personality System

Cartridges may contain FPGA images, OS ROMs, game images, or CPU configuration data.

Ant64 can temporarily become a different classic system — often massively enhanced.

This is the personality cartridge system: slot in a cartridge and the hardware reconfigures itself around it. FireStorm's RV64GC compatibility means the same cartridge can host RISC-V code as well as personality-specific firmware.

Important: The Ant64 family of home computers are at early design/prototype stage, everything you see here is subject to change.