Skip to content

ashtacore/ziggyboy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ziggyboy

A Game Boy emulator written in Zig.

Overview

ziggyboy is a Game Boy emulator project built using the Zig programming language. The project aims to provide accurate emulation of the original Game Boy hardware.

Features

  • CPU implementation with register management
  • Flag register support (Zero, Subtraction, Half Carry, Carry)
  • Instruction structure for Game Boy opcodes

Building

Make sure you have Zig installed on your system. You can download it from ziglang.org.

zig build

Running

After building, you can run the emulator:

./zig-out/bin/ziggyboy.exe

Alternatively, you can build and run in one step:

zig build run

Testing

Run all tests:

zig build test --summary all

Run specific test suites:

# Run CPU tests only
zig build test-cpu --summary all

# Run instruction tests only
zig build test-instructions --summary all

Project Structure

├── src/
│   ├── main.zig                    # Main entry point
│   ├── cpu.zig                     # CPU implementation
│   ├── library.zig                 # Helper functions
│   └── instructions/
│       ├── instruction.zig         # Instruction structure and types
│       └── instruction_table.zig   # Instruction lookup table
├── build.zig                       # Build configuration
├── build.zig.zon                   # Package configuration
└── LICENSE                         # MIT License

Development Status

This project is currently in early development. Core CPU functionality is being implemented.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

I'm trying to learn Zig and Game Boy emulation on my own, so no PRs please. But feel free to fork or to use this code to learn for yourself!

About

A Gameboy emulator written in zig

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages