top of page
Virtical Flame.png

Welcome To
Project Ember

Virtual CPU And Homebrew Retro Fantasy Video Game Console

Project Ember is an ongoing research and development experiment in classic video game technology. Drawing inspiration from early home video game systems like the Atari 2600, ColecoVision, Nintendo NES, and early home computers such as the Atari 800, Commodore 64, and Amiga, Ember will embrace the spirit of the technology of the time, while drawing on features of later and more modern gaming systems, CPUs, and GPUs.


Starting with a simple system emulator and debugger, Ember will evolve over time into a fully-fledged fantasy video game console. With a custom emulated GPU, sound processor, IO, MMU, DMA, and any other features needed to run actual 80s and 90s era games in real-time on the emulator. Ultimately, we will design a complete FPGA version to run in hardware.

​

Check out these links for more on the origins and goals of the project:

​

Going Old-School: Designing A Custom Homebrew Retro Video Game Console From Scratch

​​

The Ember Console — System Architecture Design: Basic Requirements​

Ember CPU

Ember is the codename for the custom 32-bit CPU design used in this project. While a 32-bit CPU is more advanced than the 8-bit or 16-bit CPUs used in most devices of the target retro period of the 1980s and 1990s, it is still a relatively simple implementation compared to modern CPUs. It has more in common with RISC-V than an x86 or ARM CPU used in today's computers and consoles. 

​

Follow the Ember journey, and learn how to design a 32-bit CPU:​

​

The Ember CPU — Initial Design Part 1: Basic Requirements

Flame GPU

The GPU, or more appropriately, the Display Processor, for the Ember Fantasy Console is codenamed Flame.​ While it has more in common with Pixel Processing Units or Display Processors in era consoles like the NES, SNES, or Atari and Commodore computers, for the purposes of this design, and our younger readers, we will refer to Flame as a GPU, or Graphics Processing Unit.

 

The Flame GPU is an ever-evolving project. We will design various graphics "modes", starting with a simple text display mode, and moving on to ever more complex modes as needed to implement "simple" games of the time, such as Pacman or Galaxian.

​

Learn more about the GPU design in this series:​

​

The Flame GPU — Initial Design Part 1: Basic Requirements

PIA - Peripheral Interface Adapter

One of several additional devices in the design is an external chip responsible for assisting the CPU with various tasks, including interfacing with a keyboard, mouse, or game controller, as well as managing interrupts and system timers.

​

Learn more about the PIA design in this series:​

​

The Ember PIA — Initial Design Part 1: Peripheral Interface Adapter

How Can You Help?

We don't yet have a GoFundMe or Patreon for this project, though that is something we are considering. This is also intended to be an open-source project, so the design and all the source code will be published online, and anyone will be encouraged to participate in designing, coding, and promoting this educational project.

​

If you would like to contribute now, please buy us a virtual coffee (or several)

Photo by Lorenzo Herrera on Unsplash_edited.jpg
Ember: Welcome
  • Mastodon
  • Facebook
  • LinkedIn

©2021 by IARI Ventures

bottom of page