Moss

Retro Fantasy Console

Thanks to @catnipped for the moss name, creating the Enias font (built into the console), and choosing the VDP color palette!

It runs on macOS, Windows and Linux!

Install it now!

Video Display Processor (VDP)

  • Fixed 256×144 resolution
  • 32-color palette (5-bit indexed color) (DawnBringer 32)
  • Built-in Enias font (8×8 characters)
  • Sprite rendering with transparency bit
  • Hardware primitives: lines, rectangles, circles (filled and unfilled)

Audio Processing Unit (APU)

  • 8-voice mixer
  • 64 sounds with ADSR envelopes
  • Output: 22,050 Hz (22.05 kHz), 8-bit unsigned PCM, stereo.

Each sound:

  • ADSR envelope generator (attack/decay/sustain/release in milliseconds),
  • Root key (MIDI note)
  • 4 Loop segments
  • Sample playback (mono or stereo, 22.05 kHz)

Each voice:

  • Volume: 0.0 to 1.0 (Q15.16 fixed-point)
  • Pan: -1.0 (left) to +1.0 (right) (Q15.16 fixed-point)

Controller Interface (CI)

Dual digital game controller support.

  • D-Pad: Arrow Keys (↑, ↓, ←, →) or E, D, S, F
  • A Button: Z, C,
  • B Button: X, V,
  • START: enter and ESC

Controller Behavior

  • All inputs are digital (pressed or released).
  • Input state is sampled once per frame.

Planned hardware revision adds support for a second player using a gamepad.

The Link Port lets Moss systems talk to each other - whether they’re sitting side-by-side or miles apart.

Connect two units directly using the Moss-compatible link cable (impossible to get hold of), or route the Link Port through external communications hardware to reach distant systems. All communication is handled asynchronously, ensuring uninterrupted gameplay.

MarshX CPU

MarshX - a load-store RISC-like CPU with 256 32-bit registers.

  • Stack frame-relative and pointer+offset addressing modes
  • Fixed-point arithmetic (Q15.16 format) with the basic transcendental functions (sin, cos, atan2, etc.)
  • Hardware-accelerated collections: HashMap and Pool allocator
  • Efficient block operations (copy, move, clear)