/retro-display

Embedded display drivers for retro computers

Primary LanguageRustApache License 2.0Apache-2.0

Crates.io Docs.rs

Embedded Display Drivers for Retro Computers

Embedded-graphics display drivers for retro computers from Commodore, Atari, Nintendo etc. This can be used to run embedded graphics on very old hardware and access geometric shapes, large fonts etc. The screenshot below shows an example running on the Commodore 64 from 1982.

Status

  • Commodore 64:
    • Simple PETSCII color display driver (40 x 25 character "pixels")
    • VIC-II color palette with const conversion from/to embedded-graphics colors
    • Bitmapped display driver

Getting Started

The project requires rust-mos and a docker image is available: mrkits/rust-mos. See also the llvm-mos wiki.

Docker and Visual Studio Code

The easiest way is to use the provided .devcontainer.json configuration for Visual Studio Code. Before starting up VSC, you may want to edit .devcontainer.json to point to a recent, tagged image of mrkits/rust-mos. In particular, if you're on an ARM architecture, e.g. Apple Silicon, make sure to use an image compiled for linux/arm64 as emulating x86 in Docker is painfully slow.

  1. Install and start Docker
  2. Configure Visual Studio Code with the Remote - Containers extension:
    cd retro-display/
    code --install-extension ms-vscode-remote.remote-containers
    code .
    When asked, re-open in Dev container.
  3. Inside a VSC terminal, build with:
    cargo build --release --target mos-c64-none  --example demo
  4. Find the binary in target/ and run in an emulator or transfer to real hardware.