Skip to content

MarcAlx/gb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Game Boy Emulator

A Game Boy Emulator for iOS / iPadOS / macOS written in Swift.

With controller supports and palette customization!

Status Games that don't need MBC supports or advance CPU tricks work, e.g Tetris, Tennis...

Work in progress (still under active development) MBC and Audio coming (ETA: when its done!). For now limited to GB, GBC support planned.

Compatibility

This projects aims at being compatible with the following platforms:

  • iOS (14+)
  • iPadOS (14+)
  • macCatalyst (14+)
  • Swift Playgrounds (both macOS and iPadOS (WIP @see roadmap))

Getting started

Open either ./src/app/GameBoyEmulator/GameBoyEmulator.xcodeproj or ./src/app/GameBoyEmulator.swiftpm with xcode on macOS.

n.b Swift Playgrounds is also supported on macOS but debugging remains impossible as long as performance which are tied to debug xcscheme.

Structure

This project is (for now) a mono repo that holds the following:

  • A core package package GBKit in ./packages/GBKit (where the magic happens)
  • A SwiftUI package GBUIKit in ./packages/GBUIKit (SwiftUI frontend)
  • The emulator app in ./src/app (the macOS/iOS/iPadOS app itself)

Roadmap

  1. Finalize GBKit (./packages/GBKit) (MBC, APU...)

  2. Finalize GBUIKit (./packages/GBKit) (Keyboard support for macCatalyst,...)

  3. Release GBKit (./packages/GBKit) as a standalone Swift Package (with its own git) read to use in any Swift emulator project.

  4. Release GBUIKit (./packages/GBUIKit) as a standalone Swift Package (with its own git) read to use in any Swift emulator project.

  5. Add support for GBC

  6. Create another front-end based on SDL via SwiftSDL

  7. Restore supports for Swift Playgrounds implies to reference GBKit and GBUIKit as dependencies.

Screenshots

iOS (game view / DMG palette) iOS (game view / MGB palette) iOS (game view / custom palette) iOS (game view / landscape fullscreen) iOS (settings view) iPadOS macOS

side notes

Game Boy and Nintendo are used under nominative use. As for logo's bytes inclusion please read Sega v. Accolade.

About

A Swift/SwiftUI GB emulator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages