Skip to content

v2.5.0

Latest
Compare
Choose a tag to compare
@Baekalfen Baekalfen released this 17 Feb 14:34
· 1 commit to master since this release
  • 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.