Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

piersfinlayson/one-rom

Open more actions menu

Repository files navigation

One ROM

One ROM - One ROM To Rule Them All

The most flexible ROM replacement for your retro computer. It is highly configurable and low-cost. Get them fabbed at JLC for under $5 each in a quantity of 10 or more.

Based on a Raspberry Pi RP2350 (One ROM Fire 🔥) or STM32F4 (One ROM Ice ❄️).

One ROM emulates any system's 2364, 2332 and 2316 ROMs, with any chip select configuration, and can serve different images to multiple ROM sockets simultaneously.

Replaces failed ROMs in Commodore 64s, VIC-20s, PETs, disk drives and another brands of retro systems, including Atari, TI, etc.

One ROM was formerly known as Software Defined Retro ROM (SDRR).

Quick Start

See https://onerom.org/start/

Key Features

💰 Based on sub-$2 microcontrollers. Choose from Raspberry Pi (Fire 🔥) or STM (Ice ❄️) flavours.

Fast enough for PETs, VIC-20s, C64s, 1541s, IEEE drives, etc. Support faster systems with higher end microcontroller.

📐 Same footprint as original ROMs - doesn't overhang the socket like other solutions.

🔌 USB Version - no programmer required, program from your browser.

🚀 Quick programming - build and flash in <10 seconds.

🛠️ Reflash in situ - no need to remove the ROM from the host when reprogramming.

⚙️ Software configurable chip select lines - no hardware jumpers required.

💾 Stores up to 16 ROM images of different sizes and chip select configurations. Image selectable via jumpers.

📦 Replace multiple ROMs with one ROM a single One ROM can replace up to 3 original ROMs e.g. all of C64 kernel, BASIC, character set.

🔀 Dynamic bank switching - switch between ROM images on the fly, e.g. different char ROMs.

💻 Hackable at runtime - change the ROM images being served and access telemetry from the ROM at runtime using Airfrog or other SWD probes.

🧩 Images combined automatically - no need to manually build up your own larger PROM image containing multiple retro ROMs.

🏭 Two layer PCB, component on single-side, limited BOM for low manufacturing cost/complexity.

🎯 Supports multiple STM32F4xxR variants: F401, F411, F405, F446 (others can be added).

🔓 Open source software and hardware.

Introduction

The video below provides an introduction to One ROM:

Video Title

Hardware

This is the Fire 24-pin version, hardware revison A. See sdrr-pcb for the hardware designs and documentation.

One ROM RP2350 24 pin rev A side on

Documentation

Topic Description
Getting Started Detailed instructions for flashing your One ROM
Frequently Asked Questions Answers to common questions about One ROM.
Installation Installation of dependencies.
Programming How to program One ROM.
Available Configurations Various pre-collated ROM collection configurations.
MCU Selection How to select the appropriate MCU for your application.
Image Selection How to tell One ROM which of the installed ROM images to serve.
Image Sets How to use a single One ROM to support multiple ROMs simultaneously or to dynamically switch between images.
Configuration One ROM configuration options.
Runtime Access/Control Access and control the One ROM while it is serving ROMs.
Compatibility Compatibility with various retro systems.
Logging How to enable and use One ROM logging.
Technical Summary Overview of the One ROM architecture, operation and design decisions.
Technical Details Technical details of the One ROM firmware and hardware.
ROMs Glorious ROMs Everything you ever wanted to know about 23/27 series ROMs but were afraid to ask.
Custom Hardware Guide on designing custom hardware for One ROM.
Build System How the One ROM build system works.
Voltage Levels How the One ROM supports the required logic voltage levels.
Pi Pico Programmer How to use a $5 Raspberry Pi Pico as a programmer for One ROM.
Manufacturing Test Information on testing One ROM during manufacturing.
STM32 Clones Information using STM32 clones with One ROM.
Future Enhancements Possible future enhancements under consideration.
License One ROM software and hardware licenses.

Debugging

The best place to start with debugging is Logging. This will help you see what the One ROM is doing, and why it may not be working as expected.

If you have an Airfrog, you can use it to inspect the One ROM firmware and its current state.

If you'd like a hand, raise an issue on the GitHub issues page. Please provide:

  • the MCU you are using and the PCB type/revision
  • the retro system you are trying to One ROM with
  • any logging from One ROM
  • ideally, the firmware image, if you are happy to share.

If you have built the firmware yourself, rather than using a pre-built release image, also provide:

  • your build configuration
  • the output from make info-detail.

License

See LICENSE for software and hardware licensing information.

About

The most flexible ROM replacement for retro systems - using a sub-$2 Raspberry Pi RP2350 or STM32 microcontroller.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  
Morty Proxy This is a proxified and sanitized view of the page, visit original site.