All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[!ATTENTION] Until libretro.py reaches version 1.x, breaking changes may be introduced at any time without warning.
Thanks to @JSensebe for his contributions!
- BREAKING: Rename
SensorInterface
toSensorDriver
. - BREAKING: Rename
GeneratorSensorInterface
toIterableSensorDriver
and some accompanying type aliases. - BREAKING: Decouple
SensorDriver
andInputDriver
so that the former is no longer part of the latter. - Use
InputDriver.max_users
to filter sensor input regardless of the underlying sensor driver.
- Add
SensorDriver.poll
. - Add
SessionBuilder.with_sensor
. - Add
Session.set_controller_port_device
.
- Improved documentation for
IterableSensorDriver
. - Fix a
GET_VARIABLE
dereference error.
- BREAKING: Rename
RumbleInterface
toRumbleDriver
. - BREAKING: Rename
DefaultRumbleDriver
toDictRumbleDriver
. - BREAKING: Rename
GeneratorInputDriver
toIterableInputDriver
.
- Fix the rumble driver raising an exception when setting the rumble state.
- Updated moderngl to 5.12.
- Prevented unhandled OpenGL errors in cores from
cascading into the frontend as exceptions
raised from
moderngl
or PyOpenGL.
- Add
TempDirPathDriver
. - Added various runnable scripts for test purposes.
- Add a new guide for taking a capture with RenderDoc.
- Add labels to OpenGL objects created by
ModernGlVideoDriver
. - Add debug groups to important methods within
ModernGlVideoDriver
.
- BREAKING: Rename
DefaultPathDriver
toExplicitPathDriver
. - Make
TempDirPathDriver
the default path driver used bySessionBuilder
.
- Improved documentation for parts of
SessionBuilder
andVideoDriver
- Removed a
glClear
call inModernGlVideoDriver
that was left in by accident. - Clear the
glGetError
queue at various places inModernGlVideoDriver
to prevent PyOpenGL from misreporting errors that came from moderngl or the loaded core.
- BREAKING: Remove
VideoDriverInitArgs
.
Thanks to @JSensebe for his contributions!
- Add
Language.GALICIAN
andLanguage.NORWEGIAN
to correspond with additions tolibretro.h
. - Add a live documentation website here. (#11)
- Allow
ArrayVideoDriver.screenshot()
to rotate the returned frame (#3) - Add 16-bit pixel format support to
ArrayVideoDriver.screenshot()
. (#5)
- BREAKING: Rename
KeyboardState.return_
toKeyboardState.return_key
- BREAKING: Rename
KeyboardState.break_
toKeyboardState.break_key
- Fix
Core.unserialize
being unable to acceptbytes
objects. (#4) - Fix an exception when a core sets its geometry before its initial AV info is fetched. (#6)
- Fix a crash when a core uses
retro_led_interface
. (#7) - Fix an exception when passing a frame pitch inconsistent with the configured video format. (#8)
- Raise a warning when the core's requested maximum framebuffer size is larger than what the OpenGL implementation can provide.
- Fix
ModernGlVideoDriver.geometry
having an incorrect return type. - Fix
ModernGlVideoDriver
failing to import in Python 3.11.
- Remove some methods or other constructs that were added in Python 3.12, to ensure compatibility with Python 3.11.
- Fixed an incorrect
import
shim in_typing.py
, resulting in the library failing to import on Python 3.12.
- BREAKING: Raise the minimum required Python version to 3.11.
- Remove syntax that prevented compatibility with Python 3.10 and 3.11.
- Added aliases to
typing
symbols as needed if using a Python version older than 3.12. - Added
typing_extensions
as a dependency if using a Python version older than 3.12.
- Don't catch a failure to import
OpenGL
inmoderngl.py
.
- Allow
ModernGlVideoDriver
's import of PyOpenGL to fail with anAttributeError
.
- Prevent a failure to import PyOpenGL from stopping
ModernGlVideoDriver
from being imported.
- Fixed a bug where logging invalid UTF-8 characters in
UnformattedLogDriver
would raise an exception. - Fixed a bug where fetching an unset option from a
DictOptionDriver
wouldn't register the default value for next time. - Fixed a bug where
ModernGlVideoDriver
would try to use OpenGL debugging features even if they weren't available.
- Fixed the GLSL shaders used by
ModernGlVideoDriver
not being included in distributions.
- Added
moderngl
'sheadless
extra when installing this package'sopengl
extra.
- Fixed a bug where
ModernGlVideoDriver
couldn't be used without themoderngl_window
package installed.
- Added OpenGL support via
ModernGlVideoDriver
. - Added support for switching video drivers at runtime
using
MultiVideoDriver
. - Added
pre-commit
hooks to enforce code style.
- Added API documentation for
VideoDriver
. - Allow
VideoDriver.can_dupe
to be settable and deletable. - Don't allow
VideoDriver.get_system_av_info
to returnNone
. - BREAKING: Rename
AbstractSoftwareVideoDriver
toSoftwareVideoDriver
.
- Swap the red and blue channels in
ArrayVideoDriver
. - Immediately reinitialize the video driver when a core calls
RETRO_ENVIRONMENT_SET_SYSTEM_AV_INFO
, as the docs specify.
- BREAKING: Removed
PillowVideoDriver
; useArrayVideoDriver
instead.
- Allow the callbacks in
Core
to acceptCallable
s with equivalent signatures, rather than strictly enforcing the use of theretro_*
CFUNCTYPE
s. - Allow
Core.cheat_set
to accept astr
as the cheat code. - BREAKING: Don't allow the cheat code passed to
Core.cheat_set
to be amemoryview
orBuffer
, as these don't typically represent strings.
- Everything.