Pyboy

Latest version: v2.5.1

Safety actively analyzes 722491 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 7

2.5.1

* Fix `--no-sound-emulation`
* Hide internal `.event` attribute from WindowEvent and improve `__eq__` method.

2.5.0

* Sound is no longer in beta, and no longer muted by default
* Control sound sample rate, volume or disable entirely
* Introduce API for sound. Sound buffer is provided frame-by-frame.[1]
* Introduce PyBoyException as the base-exception for PyBoy
* Introduce exceptions when accessing features that are not enabled
* Actually release the GIL for improved multi-threading support
* Blank out first frame after enabling LCD (emulation accuracy)
* Implement consistent frame-cycles. Each tick is targeting 70224 emulated CPU cycles.[1]
* Fix bug when using CGB boot ROM with DMG game ROM
* Fix no_input to ignore SDL2 input but keep API input
* Fix a lot of small issues related to determinism and save/load state
* Added documentation for plugin-kwargs on PyBoy constructor
* Python 3.8 support removed as it's past end-of-life
* Fix stepping with debugger after v2.4.0
* Add set_time_left to Super Mario Land wrapper
* More consistent handling of cartridge names in DMG/CGB mode


[1]: When the game enables/disables the LCD, the timing will be shorter than 70224 emulated cycles. Therefore the sound buffer will also be shorter than 16.667ms (60 FPS).

NOTE: If you depend on exact timing of a frame (assume a specific start block in Tetris etc.) then expect these to have changed. These changes improve emulation correctness, and I cannot promise specific frame timings between releases.
Although I don't expect this to become a regular occurrence.

2.4.1

* Python 3.13 support

2.4.0

* **Massive performance improvements (10-40%!)**
* CPU and memory timings have been corrected* (passes Blargg's tests!)
* If you're making a plugin, then note that `post_tick` is now only called once at the end of `pyboy.tick`. Not for every frame.
* Clarify in docs that reads from `pyboy.memory` might return a memoryview in the future.
* If you're running pytest locally, `TEST_CI` has been removed and you now have to specifically set `TEST_VERBOSE_IMAGES=1` to see debug images.

*If you depend on exact timing of a frame (assume a specific start block in Tetris etc.) then expect these to have changed. This change improves emulation correctness, and I cannot promise specific frame timings between releases.

2.3.0

* GameShark cheats support
* Added frame limiter to null window

2.2.2

* **20% faster** with rendering
* **7% faster** without rendering
* Fix address boundary issue in `pyboy.memory`

Page 1 of 7

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.