All Projects → Baekalfen → Pyboy

Baekalfen / Pyboy

Licence: other
Game Boy emulator written in Python

Programming Languages

python
139335 projects - #7 most used programming language
cython
566 projects
TeX
3793 projects

Projects that are alternatives of or similar to Pyboy

jsGBC-core
jsGBC Core Emulator
Stars: ✭ 14 (-99.58%)
Mutual labels:  emulator, gameboy, gameboy-emulator, gameboy-emulator-library
Jitboy
A Game Boy emulator with dynamic recompilation (JIT)
Stars: ✭ 190 (-94.29%)
Mutual labels:  gameboy, gameboy-emulator, emulator
awesome-emu-resources
A curated list of emulator development resources
Stars: ✭ 26 (-99.22%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Elmboy
A Nintendo™ Game Boy™ Emulator written in Elm.
Stars: ✭ 285 (-91.43%)
Mutual labels:  gameboy, gameboy-emulator, emulator
goboy
Playing GameBoy Emulation in GoLang (ported from https://github.com/racerxdl/GameBoyEmulator)
Stars: ✭ 37 (-98.89%)
Mutual labels:  emulator, gameboy, gameboy-emulator
worldwide
A toy GameBoy Color emulator written in golang.
Stars: ✭ 563 (-83.07%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Gopher Boy
🎮 A Game Boy emulator written in Go
Stars: ✭ 206 (-93.81%)
Mutual labels:  gameboy, gameboy-emulator, emulator
Gbemu
A Gameboy emulator in modern C++
Stars: ✭ 149 (-95.52%)
Mutual labels:  gameboy, gameboy-emulator, emulator
Binjgb
Gameboy emulator implemented in C
Stars: ✭ 222 (-93.33%)
Mutual labels:  gameboy, gameboy-emulator, emulator
rusty-boy
Gameboy emulator in Rust
Stars: ✭ 20 (-99.4%)
Mutual labels:  emulator, gameboy, gameboy-emulator
gameboyGO
Gameboy emulator in go
Stars: ✭ 24 (-99.28%)
Mutual labels:  emulator, gameboy, gameboy-emulator
dashboy
Gameboy Emulator implemented by pure Dart
Stars: ✭ 130 (-96.09%)
Mutual labels:  emulator, gameboy, gameboy-emulator
gameboi
An Original GameBoy emulator?
Stars: ✭ 20 (-99.4%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Hades
🔥 A Nintendo Game Boy Advance emulator
Stars: ✭ 44 (-98.68%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Metroboy
MetroBoy - A playable, circuit-level simulation of an entire Game Boy
Stars: ✭ 169 (-94.92%)
Mutual labels:  gameboy, gameboy-emulator, emulator
SkyEmu
Game Boy, Game Boy Color, and Game Boy Advanced Emulator
Stars: ✭ 59 (-98.23%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Cryboy
A Game Boy (Color) emulator written in Crystal
Stars: ✭ 68 (-97.96%)
Mutual labels:  gameboy, gameboy-emulator, emulator
Gbemu
WebAssembly based Gameboy Emulator
Stars: ✭ 120 (-96.39%)
Mutual labels:  gameboy, gameboy-emulator, emulator
Goboy
Multi-platform Nintendo Game Boy Color emulator written in Go
Stars: ✭ 2,403 (-27.75%)
Mutual labels:  gameboy, gameboy-emulator, emulator
Rustyboy
A Gameboy emulator written in Rust.
Stars: ✭ 224 (-93.27%)
Mutual labels:  gameboy, gameboy-emulator, emulator

If you have any questions, or just want to chat, join us on Discord.

It is highly recommended to read the report to get a light introduction to Game Boy emulation. But do be aware, that the Python implementation has changed a lot. The report is relevant, eventhough you want to contribute to another emulator, or create your own.

If you've read the report and want more explicit details, have a look at the Pan Docs.

If you are looking to make a bot or AI, you can find all the external components in the PyBoy Documentation. There is also a short example on our Wiki page Scripts, AI and Bots as well as in the examples directory. If more features are needed, or if you find a bug, don't hesitate to make an issue here on GitHub, or write on our Discord channel.


Installation

The instructions are simple, if you already have a functioning Python environment on your machine.

  1. Install SDL2 through your package manager:

    • Ubuntu: sudo apt install libsdl2-dev
    • Fedora: sudo dnf install SDL2-devel
    • macOS: brew install sdl2
  2. Install PyBoy using pip install pyboy (add --user if your system asks)

Now you're ready! Either use PyBoy directly from the terminal $ pyboy file.rom or use it in your Python scripts:

from pyboy import PyBoy
pyboy = PyBoy('ROMs/gamerom.gb')
while not pyboy.tick():
    pass

When the emulator is running, you can easily access PyBoy's API:

from pyboy import WindowEvent

pyboy.send_input(WindowEvent.PRESS_ARROW_DOWN)
pyboy.tick() # Process one frame to let the game register the input
pyboy.send_input(WindowEvent.RELEASE_ARROW_DOWN)

pil_image = pyboy.screen_image()
pil_image.save('screenshot.png')

If you need more details, or if you need to compile from source, check out the detailed installation instructions. We support: macOS, Raspberry Pi (Raspbian), Linux (Ubuntu), and Windows 10.

At the Wiki page, you will also find out how to interface with PyBoy from your own project: Wiki.

Contributors

Thanks to all the people, who have contributed to the project!

Original Developers

GitHub Collaborators

Student Projects

  • Rewind Time: Jacob Olsen - JacobO1
  • Link Cable: Jonas Flach-Jensen - thejomas
  • Game Boy Color: Christian Marslev and Jonas Grønborg - CKuke and kaff3

Contribute

Any contribution is appreciated. The currently known errors are registered in the Issues tab. Feel free to take a swing at any one of them.

For the more major features, there are the following that you can give a try. They are also described in more detail in the project list:

  • Color
  • Link Cable
  • (Experimental) AI - use the botsupport or game wrappers to train a neural network
  • (Experimental) Game Wrappers - make wrappers for popular games

If you want to implement something which is not on the list, feel free to do so anyway. If you want to merge it into our repo, then just send a pull request and we will have a look at it.

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].