Overview

Beaglesatella PCB

Welcome to BeagleSatella.org, the home of the BeagleSatella project. BeagleSatella is a hardware/software solution that implements the basic interface functions of peripherals compatible with the Super Nintendo (SNES) and Super Famicom (SFC) game consoles. These consoles contain a rarely-used expansion port on their underside that was intended to interface with a variety of hardware peripherals. Unfortunately, very few commercial peripherals were made available, with the most widely used being the Japan-only Satellaview satellite modem.

BeagleSatella is not emulation, but an actual SNES add-on peripheral that plugs directly into your game console. BeagleSatella uses a BeagleBone Black (BBB) single-board computer with a custom "cape" expansion PCB as the hardware to interface with the console. Firmware running on the BBB's pair of programmable real-time units (PRUs) provides the nanosecond-scale timing required to interface with the SNES in real-time. Additional peripheral behaviors are controlled using kernel drivers and userspace software running under the BBB's Linux OS.

Features

The BeagleSatella hardware and firmware offers the following features:

  • CPLD-based Hardware filtering and translation of memory-mapped I/O register accesses from the SNES B-Bus.
  • Integrated JTAG interface for easy CPLD reprogramming.
  • Arbitrary range of up to 64 contiguous memory-mapped I/O registers available.
  • BBB PRU usage guarantees the servicing of register read/write requests within a 150 ns time window.
  • Audio interfacing via the expansion port's stereo audio inputs.
  • Download

    All hardware designs (KiCad schematics and PCB layouts), firmware source (CPLD and PRUs), and software (Linux kernel driver, device tree, and userspace applications) are hosted on Github in the BeagleSatella git repository. You'll need both a Linux development environments to rebuild almost every component of BeagleSatella, but building the CPLD image and writing it via JTAG requires Windows-based tools. Review the README files in the BeagleSatella repository for details on the tools and build process.

    Questions? Send me a mail at hendersa (at) icculus.org.