All Projects → gabrieloc → Giovanni

gabrieloc / Giovanni

Licence: mit
A Gameboy Emulator for the Apple Watch

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Giovanni

SkyEmu
Game Boy, Game Boy Color, and Game Boy Advanced Emulator
Stars: ✭ 59 (-92.83%)
Mutual labels:  emulator, gameboy, emulation
Provenance
iOS & tvOS multi-emulator frontend, supporting various Atari, Bandai, NEC, Nintendo, Sega, SNK and Sony console systems… Get Started: https://wiki.provenance-emu.com |
Stars: ✭ 4,732 (+474.97%)
Mutual labels:  gameboy, emulator, emulation
Vaporboy
Gameboy / Gameboy Color Emulator PWA built with Preact. ⚛️ Powered by wasmBoy. 🎮Themed with VaporWave. 🌴🐬
Stars: ✭ 182 (-77.89%)
Mutual labels:  gameboy, emulator, emulation
khedgb
Experiments in Game Boy emulation
Stars: ✭ 15 (-98.18%)
Mutual labels:  emulator, gameboy, emulation
worldwide
A toy GameBoy Color emulator written in golang.
Stars: ✭ 563 (-31.59%)
Mutual labels:  emulator, gameboy, emulation
Kotlin-Gameboy-Emulator
A GameBoy emulator written in Kotlin
Stars: ✭ 12 (-98.54%)
Mutual labels:  emulator, gameboy, emulation
Eka2l1
An experimental Symbian OS emulator
Stars: ✭ 462 (-43.86%)
Mutual labels:  emulator, emulation
Higan
higan is a multi-system emulator focused on accuracy, preservation, and configurability.
Stars: ✭ 457 (-44.47%)
Mutual labels:  emulator, emulation
Skyline
Run Nintendo Switch homebrew & games on your Android device!
Stars: ✭ 670 (-18.59%)
Mutual labels:  emulator, emulation
Xqemu
Open-source emulator to play original Xbox games on Windows, macOS, and Linux
Stars: ✭ 518 (-37.06%)
Mutual labels:  emulator, emulation
Xenia
Xbox 360 Emulator Research Project
Stars: ✭ 5,404 (+556.62%)
Mutual labels:  emulator, emulation
Bsnes
bsnes is a Super Nintendo (SNES) emulator focused on performance, features, and ease of use.
Stars: ✭ 526 (-36.09%)
Mutual labels:  emulator, emulation
Bsnes
bsnes is a Super Nintendo (SNES) emulator focused on performance, features, and ease of use.
Stars: ✭ 444 (-46.05%)
Mutual labels:  emulator, emulation
Gameboy.live
🕹️ A basic gameboy emulator with terminal "Cloud Gaming" support
Stars: ✭ 4,263 (+417.98%)
Mutual labels:  gameboy, emulator
Citra
A Nintendo 3DS Emulator
Stars: ✭ 7,009 (+751.64%)
Mutual labels:  emulator, emulation
Jsnes Web
A browser UI for JSNES, a JavaScript NES emulator
Stars: ✭ 398 (-51.64%)
Mutual labels:  emulator, emulation
Coreboy
A GameBoy Emulator, in C#
Stars: ✭ 397 (-51.76%)
Mutual labels:  gameboy, emulator
Sameboy
Game Boy and Game Boy Color emulator written in C
Stars: ✭ 732 (-11.06%)
Mutual labels:  gameboy, emulator
Pcsx2
PCSX2 - The Playstation 2 Emulator
Stars: ✭ 5,830 (+608.38%)
Mutual labels:  emulator, emulation
Mooneye Gb
A Game Boy research project and emulator written in Rust
Stars: ✭ 557 (-32.32%)
Mutual labels:  gameboy, emulator

GIOVANNI GAMEPLAY GIOVANNI

A Gameboy Emulator for the Apple Watch.

Interested in how this was made? Check out the write-up here

Installation

Giovanni uses git submodules for it's one dependency, a modified version of the Gambatte emulator. When cloning, ensure submodules are also pulled down:

$ git clone --recursive [email protected]:gabrieloc/GIOVANNI.git

To run on your device:

  1. Make sure you have an Apple developer account
  2. Select your development team under the Signing area for each target (giovanni_iOS, giovanni_watchOS, giovanni WatchKit Extension, and Gambatte_watchOS)
  3. Change the Bundle Identifier for each of the above targets to something unique. For example, giovanni_iOS uses com.gabrieloc.giovanni, so change that to something like com.YOUR_USERNAME.giovanni.
  4. Select the giovanni scheme in the top left corner with your device selected and run.

If you are still having issues, please following the tutorial provided by Redmond Pie

Usage

Games are loaded from your iPhone's documents directory. In iTunes, drop .gb or .gbc files into the Giovanni app documents folder, and they'll show up automatically on your Apple Watch. When you play a game for the first time, it'll download to your watch and get cached in the watch's documents directory. Subsequent loads are immediate.

UPDATE: Giovanni can open ROMs natively, allowing you to bypass iTunes entirely. More info.

Emulator saving and loading is automatic, and happens whenever the app gets closed/inactivated or opened/activated. In-game saving and loading is completely separate. If for some reason the emulator save gets corrupted, force-touching the screen will bring up the option to reset the emulator, allowing you to resume from your in-game save.

The control scheme is as follows:

Controls

Troubleshooting

Disclaimer: Due to the constraints of watchOS, you may experience crashes or graphical glitches. Keep in mind that this project likely does not align with what Apple expects from the platform, which in turn makes it difficult to optimize and debug.

If for some reason the app becomes unresponsive and must be force-quit, you can do so by having the app in the foreground, pressing the side button, then pressing and holding the Digital Crown for about 5 seconds.

Games don't show up

Because Giovanni relies on your iPhone for transferring games, ensure your paired iPhone is on and within reach.

Garbled (or all white) pixels

Video memory often gets corrupt, in which case you will have to force emulation to be reset. While in-game, force touch the screen and select Reset. If the app closes after that, you will have to re-open, and repeat the process until it works.

Colors wrong

Some games appear to format pixel data differently. The rendering work is done in GameCoreSnapshots.swift, you may have luck adjusting how the Core Graphics context is created.

Known Issues

Games sometime crash when trying to fill the sound buffer

The sound buffer isn't even used, but required by Gambatte. The issue goes away after re-opening the app, but is a huge pain regardless.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].