Skip to content

CFdefense/GameBoy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Game Boy Emulator

Overview

This project involves building a Game Boy emulator using Rust.

The Game Boy, launched by Nintendo in 1989, is a pioneering handheld gaming console known for its compact design and extensive library of over 1,000 games. It features a 2.6-inch monochrome LCD screen and is powered by a custom 8-bit Z80-like CPU running at 4.19 MHz. This project will emulate all aspects of this timeless system.

Project Goals

  • Skill Development: Enhance my knowledge of low-level programming concepts and emulator architecture, building on the experience gained from developing a Chip-8 interpreter.
  • Learn Rust: Familiarize myself with Rust’s syntax, features, and ecosystem, emphasizing memory safety and performance.

Resources

To guide the development process, I will utilize the following resources:

  • Game Boy Technical Reference: A comprehensive document detailing the Game Boy architecture, including the CPU, memory mapping, and I/O operations.
  • Game Boy CPU Instruction Set: This document outlines the instruction set for the Game Boy CPU, providing essential information for implementing the instruction decoding and execution phases.

Features

  • CPU Emulation: Implement the Game Boy’s CPU, including the instruction set and registers.
  • Memory Management: Handle memory mapping and interactions with the Game Boy’s memory architecture.
  • Input Handling: Process user inputs from a keyboard or controller to simulate Game Boy controls.
  • Rendering: Implement basic graphics rendering for displaying Game Boy graphics on the screen.

Getting Started

Prerequisites

  • Rust: Ensure you have the latest version of Rust installed. You can download it from the official Rust website.

Installation

  1. Clone the repository:
git clone https://github.com/CFdefense/GameBoy.git
cd gameboy-emulator
  1. Build the project
cargo build
  1. Run the project
cargo run

Releases

No releases published

Packages

No packages published

Languages