Releases: Baekalfen/PyBoy
Releases Β· Baekalfen/PyBoy
v2.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 ofpyboy.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 setTEST_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
v2.2.2
v2.2.1
v2.2.0
v2.1.0
v2.0.3
v2.0.2
- 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
v2.0.0
- A lot of general fixes
- Improved documentation with examples
pyboy.tick(10, True)
now takes two optional parameters:n
number of frames to progressrender
whether to render the screen on the last processed frame
pyboy.screen_image()
moved topyboy.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 framepyboy.button_press(βaβ)
allows for manual control of inputpyboy.button_release(βaβ)
allows for manual control of inputpyboy.memory[0x100:0x150] = 123
replaces all threepyboy.get/set/override_memory_value
and extends it with an option to specify bankpyboy.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 gamepyboy.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 forpyboy.game_wrapper.game_area()
pyboy.game_area_collision()
is a shortcut forpyboy.game_wrapper.game_area_collision()
pyboy.game_area_dimensions(β¦)
can be used to configure game_areapyboy.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