This is an old revision of the document!


Project Name: Game Console (Game Boy Replica)

Introduction

What it does:

This project is a portable video game console featuring a minimalist hardware architecture. It allows users to play 8-bit style games loaded directly from a MicroSD card, which acts as a game cartridge.

Purpose:

The primary goal is to build a fully functional gaming system from scratch. I wanted to do something that I would enjoy using and that I could really use from time to time. I'm also hoping other people might be interested in this console and try it out.

Initial Idea:

The project is heavily inspired by classic 8-bit retro systems like the original Game Boy. I always enjoyed Nintendo games, especially the ones from the old retro consoles, and I always enjoyed emulating them on my phone to play. So, the idea was to recreate that nostalgic experience using accessible, modern microcontroller components.

Utility:

For others, this project serves as an example of simple embedded programming that could be replicated with cheap components. For me, it is an opportunity to deeply understand hardware-software interfacing, memory management, and timing optimization on AVR microcontrollers. The practical utility of the console is simply enjoying gaming and having fun.

General Description

The user interacts with the console via an analog XY joystick and 2 standard buttons. The microcontroller reads these inputs (using ADC for the joystick and GPIO for the buttons) and applies software debouncing.

The core of the system relies on a shared SPI bus. Because the microcontroller has limited RAM, the game logic and graphical assets are stored on the MicroSD card. The system uses a strict Chip Select multiplexing routine to read game data sectors from the SD card, process them, and immediately push the resulting pixel framebuffer to the Nokia 5110 LCD over the same SPI lines. Audio is handled concurrently via a hardware timer generating variable PWM signals sent to a passive piezo buzzer.

Component Name Qty Role
AVR Development Board (ATmega328P) 1 Main microcontroller, handles game logic and shared SPI bus
Nokia 5110 LCD Display 1 Renders game graphics via SPI
MicroSD Card Adapter Module 1 Acts as the cartridge reader for raw game binaries
Logic Level Converter (3.3V to 5V) 1 Protects the 3.3V display from 5V logic signals
XY Analog Joystick Module 1 Provides directional movement input (D-pad)
16mm Tactile Push Buttons 2 Action inputs (A and B)
Passive Piezo Buzzer Module 1 Synthesizes 8-bit sound effects using PWM
Breadboard & Jumper Wires 1 set Used for prototyping and physical hardware connections
pm/prj2026/bianca.popa1106/cristian.stefan1712.1778343230.txt.gz · Last modified: 2026/05/09 19:13 by cristian.stefan1712
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0