Skip to main content

retrotool-libsfx

Bundled Optiroc SNES toolchain for the retrotool build pipeline. One wheel, one install, whole stack.

What's inside

Built from vendored upstream sources (git submodules) during wheel construction:

Tool Upstream Purpose
libSFX vendor/libSFX 65816 asm framework (headers + macros, no binary)
SuperFamiconv vendor/SuperFamiconv PNG → tiles / palette / tilemap converter
SuperFamicheck vendor/SuperFamicheck SNES header + checksum fixer
BRRtools vendor/BRRtools BRR audio encode/decode
lz4 vendor/lz4 reference LZ4 compressor
cc65 vendor/cc65 ca65/ld65 assembler + linker for libSFX projects
make_breakpoints vendor/make_breakpoints ld65 symbols → Mesen breakpoints

retrotool can drive the whole chain from a project.toml or MBXML file. Users can pick either ca65 (shipped here) or asar (existing retrotool asm module) as the assembler, per project.

Installation

pip install retrotool[libsfx]      # 0.9.0+

Base retrotool stays pure-python; the toolchain is opt-in via this extra.

Setup (development)

git submodule update --init --recursive
cd packages/retrotool-libsfx
python -m pip install build
python -m build --wheel

On platforms where not every submodule builds cleanly (yet), setup.py skips missing submodules with a warning rather than failing — useful during the 0.8.x → 0.9.0 staged rollout.

Usage

from retrotool_libsfx import (
    superfamiconv_binary, superfamicheck_binary,
    ca65_binary, ld65_binary, brr_encoder_binary, lz4_binary,
    libsfx_include_dir, libsfx_config_dir,
    run_superfamiconv, run_ca65, run_ld65,
    ToolNotBundledError,
)

run_superfamiconv(["tiles", "-i", "bg.png", "-d", "bg.tiles", "-B", "4"])

License

This wrapper package: MIT. Vendored tools retain their own licenses; see each submodule's LICENSE file.

Metadata

Release files for retrotool-libsfx 2026.5.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for retrotool-libsfx 2026.5.15
File Size Uploaded
retrotool_libsfx-2026.5.15.tar.gz 3.8 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for retrotool-libsfx 2026.5.15
File
retrotool_libsfx-2026.5.15-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
retrotool_libsfx-2026.5.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
retrotool_libsfx-2026.5.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
retrotool_libsfx-2026.5.15-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
retrotool_libsfx-2026.5.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
retrotool_libsfx-2026.5.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details

Total release size: 12.4 MB

Release files / retrotool_libsfx-2026.5.15.tar.gz

Download URL retrotool_libsfx-2026.5.15.tar.gz
Size 3.8 MB
Tags Source
SHA-256 checksum
How to use checksums
9b469cefd4bcd4af3b82522a76e035ce8bb177fa7a86c04050c2b951bcc41de4
BLAKE2b-256 checksum
How to use checksums
075c2dcf6cd95d72fc59aae5ae0d5f6a0be127d6b886d591392d11538c50261b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 7, 2026.

Transparency log

Release files / retrotool_libsfx-2026.5.15-cp313-cp313-win_amd64.whl

Download URL retrotool_libsfx-2026.5.15-cp313-cp313-win_amd64.whl
Size 1.4 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
0d101bf08e3646fc1c475c837803ef51f66fbed6c0199504ee95617696e273bd
BLAKE2b-256 checksum
How to use checksums
25a0348aaeebcf112bda0fd092d3f8e97fcd6180e5226fb91a1984af6d5e0860
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 7, 2026.

Transparency log

Release files / retrotool_libsfx-2026.5.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL retrotool_libsfx-2026.5.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.4 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
fbbd4346f32449e7ab7db7c41828008336c55c71bd068424f9350e2ce28b6842
BLAKE2b-256 checksum
How to use checksums
cdc2361be2519b9d3349b49bc50aa58d862644a71f157fb53288507e57d6615d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 7, 2026.

Transparency log

Release files / retrotool_libsfx-2026.5.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL retrotool_libsfx-2026.5.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.4 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
cba5ca67d42dc29271f90917158c8188300214ed4f5955404b623e7fce64fedc
BLAKE2b-256 checksum
How to use checksums
79ff917789e43f0a9b159ad1ea8f87412fa187cf918849555e201f7899283838
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 7, 2026.

Transparency log

Release files / retrotool_libsfx-2026.5.15-cp312-cp312-win_amd64.whl

Download URL retrotool_libsfx-2026.5.15-cp312-cp312-win_amd64.whl
Size 1.4 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
f0343bcd1571cb0fd79893283d0f985366a4d6ddcad39595ec69d455698acd75
BLAKE2b-256 checksum
How to use checksums
b5b27e29cf650b93d330c1c259231ecbe570197863b3dc9beb032c4f900040b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 7, 2026.

Transparency log

Release files / retrotool_libsfx-2026.5.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL retrotool_libsfx-2026.5.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.4 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b717e296bbbd237bca800a9b5d222f1f8755cbc86a132fcb7c3d3f1d2d11e406
BLAKE2b-256 checksum
How to use checksums
82bbe1c71fd5c4be820dd0c20c0298f5d92fb7e2c6dd618ed0dd90fee7ec4884
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 7, 2026.

Transparency log

Release files / retrotool_libsfx-2026.5.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL retrotool_libsfx-2026.5.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.4 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
dca9eb4bcc93b27b85724cfa0fed69d80f87829465c6ad06b0c2aa5028a3fe94
BLAKE2b-256 checksum
How to use checksums
ed1a33086a3e629c1b6f26470431b00b4cec60f69ae8759f35f96f7eddade776
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 7, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2026.5.15 This release

7 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page