What's new

PyBoy v2.0 is released!

It is a Game Boy emulator written in Python.


The changes are as follows:

– A lot of fixed general
– Improved documentation with examples
– pyboy.tick(10, True) now takes two optional parameters:
n number of frames to progress
. renders when to render the screen on the last processed frame
– pyboy.screen-- image() moved to pyboy.screen.image
– The “botsupport” module has been removed, and most of API is moved to the PyBoy object
– pyboy.button can be used to send input, and will automatically release 1 frame
– pyboy.button-- press(-)--)-------------------------------------------------------
– pyboy.button-- release(--)---------------------------------------------------------
– pyboy.memory[0x100:0x150 plus 123 replacements all three pyboy.get/set/override-memory-value and extended it with an option to bank specify
– pyboy.hook-register(bank, address, callback, context registers) a callback at a specific point in your game. Used for fine-grained tracking of events and control of the game
– pyboy.symbol-lookup(symbol) to look up address for a symbol to use with memory read/write
“dummy” and “headless” windows have been merged into “null” window of because the new pyboy.tick
– pyboy.game-wrapper Game wrappers are now automatically loaded and accessible through the game-wrapper property
– Remove fitness scores from game wrappers
– pyboy.game-area() is a shortcut for pyboy.game.game-- area()
– pyboy.game-area-collision() is a shortcut for pyboy.game-wrapper.game-area-collision()
– pyboy.game--area-------------------------------------------------------------
– pyboy.game-area-mapping(...) can apply a mapping to all game area tiles. I.e. simplify the tiles, or zero-out uninteresting tiles
– OpenAI Gym/Gymnasium has been removed from PyBoy. It will be replaced by an example on the Wiki instead
– pyboy.memory-scanner allows to isolate memory address of interest
– Support for 768 CGB tiles vs. 384 in DMG mode