Skip to content

Releases: Baekalfen/PyBoy

v2.4.0

07 Oct 11:01
Compare
Choose a tag to compare
  • 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.

v2.3.0

14 Sep 20:07
Compare
Choose a tag to compare
  • GameShark cheats support
  • Added frame limiter to null window

v2.2.2

13 Jul 17:18
Compare
Choose a tag to compare
  • 20% faster with rendering
  • 7% faster without rendering
  • Fix address boundary issue in pyboy.memory

v2.2.1

03 Jul 00:30
Compare
Choose a tag to compare
  • First PyBoy version built with NumPy 2
  • Remove OpenGL Accelerate as it has issues with NumPy 2
  • Small internal improvements

v2.2.0

12 Jun 18:43
Compare
Choose a tag to compare
  • Introduce PyBoyRegisterFile to access CPU registers

v2.1.0

27 May 07:48
Compare
Choose a tag to compare
  • Fix Pokemon game wrapper for API v2.0
  • Document log_level on PyBoy constructor
  • Improved documentation on hooks
  • Added Pokemon Pinball game wrapper
  • Fix broken RTC
  • Introduce experimental RTC locking API

v2.0.3

22 Apr 09:00
Compare
Choose a tag to compare
  • Fix missing .py files in sdist package

v2.0.2

18 Apr 16:03
Compare
Choose a tag to compare
  • Desperately trying to do a full and functional deploy while fighting PyPI limits
  • Breakpoints optimized internally
  • Drastically reduced PyPI file sizes (slightly faster pip install)

v2.0.1

21 Mar 07:48
Compare
Choose a tag to compare
  • Fix 'readonly' bug
  • Add delay to send_input

v2.0.0

17 Mar 11:55
Compare
Choose a tag to compare
  • A lot of general fixes
  • Improved documentation with examples
  • pyboy.tick(10, True) now takes two optional parameters:
    • n number of frames to progress
    • render whether 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(β€˜a’) can be used to send input, and will automatically release after 1 frame
  • pyboy.button_press(β€˜a’) allows for manual control of input
  • pyboy.button_release(β€˜a’) allows for manual control of input
  • pyboy.memory[0x100:0x150] = 123 replaces all three pyboy.get/set/override_memory_value and extends it with an option to specify bank
  • 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 because of 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_wrapper.game_area()
  • pyboy.game_area_collision() is a shortcut for pyboy.game_wrapper.game_area_collision()
  • pyboy.game_area_dimensions(…) can be used to configure 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