A Python binding for libretro intended for testing cores, but suitable for any purpose. Ease of use, flexibility, and complete API support are top priorities.
libretro.py has the following requirements:
- Python 3.11 or newer. May not work on alternative Python implementations like PyPy.
- Supported on Windows, macOS, and Linux. May work on other platforms, but no promises.
Nothing else is required for most functionality, but some extra features have additional dependencies or constraints.
If contributing then just
is optional but recommended,
as it will simplify most development tasks.
For details, run just
(no arguments) in the project root.
libretro.py supports Python 3.11 or newer. Nothing else is required for most functionality, but some extra features have additional dependencies.
You can install libretro.py with pip
like so:
# Install the base libretro.py
pip install libretro.py
Using a virtual environment is recommended:
# Create a virtual environment
python -m venv ./venv
# Activate the virtual environment (in Bash)
source ./venv/bin/activate
# Activate the virtual environment (in PowerShell)
./venv/Scripts/activate.ps1
Or if you have just
installed, let it figure out the details for you:
just venv
To install additional features,
add one or more of the following extras to the install
command:
cli
: Test scripts that don't rely on the nuances of any particular core. Use these to simplify your own core's test process.dev
: Assorted tools used to help develop libretro.py. Required if contributing to libretro.py.opengl
: Support for the built-in OpenGL video driver. Required if testing a core's OpenGL support.opengl-window
: Same as theopengl
extra, but with support for opening an actual window. Can help simplify some debugging tasks, e.g. RenderDoc usage.
For example, if you want to submit an improvement to the OpenGL video driver, you would install libretro.py like so:
pip install libretro.py[opengl,dev]
And if you just want to test your libretro core's OpenGL support:
pip install libretro.py[opengl]
Some of these extras have additional dependencies.
If using OpenGL support on Linux,
you may need to install the libopengl0
package.