Xosera is an FPGA based video adapter designed with the rosco_m68k retro computer in mind (and adaptable to similar systems).
Currently the design is supported for the iCE40UP5K FPGA which is fully supported by the open Yosys/NextPNR tools. Development is being done on the iCEBreaker FPGA board with the rosco_m68k prototype PCB using an embedded Upduino 3.0 board (uses every GPIO pin).
Planned Xosera features:
- Second overlaid video play-field (with transparent color)
- Sprite for mouse cursor (and possibly other sprites)
- 4 stereo 8-bit audio channels with full mixing with sigma-delta DAC
- "Blitter" to accelerate copy and fill operations as well as 2D drawing
- Line-draw and polygon acceleration
Current Xosera features:
- VGA or HDMI (DVI) output at 640x480@60Hz or 848x480@60Hz (16:9 widescreen 480p)
- 128KB of embedded video RAM (embedded SPRAM in iCE40UP5K)
- 256 color palette out of 4096 colors (12-bit RGB)
- Screen synchronized "copper" processor for on-the-fly video changes without interrupts
- V-blank, scan-line, draw done and other interrupt support
- 1-BPP (with color attribute), 4-BPP (16-color) and 8-BPP (256 color) support
- Bitmap and tiled modes for all BPP. Tiles can be in VRAM or dedicated 8KB tile RAM
- Smooth horizontal and vertical pixel scrolling
- Up to 8x16 tile size with 4-bit foreground/background color per character in text mode
- Full featured ANSI compatible terminal driver for rosco_m68k system.
- Multi-colored tiled modes for graphics supporting up to 1024 tiles and H, V mirroring
- Made with fully open tools using GNU Make and the excellent pre-built open FPGA tool binaries from OSS CAD Suite (builds on Linux, Windows 10 and MacOS etc.).
- Fast Verilator simulation using SDL2 for PNG screenshot of each video frame
- Icarus Verilog simulation
- SPI interface to registers for development from PC via FTDI (handy with iCEBreaker FPGA)