Bundled Optiroc SNES toolchain (libSFX, SuperFamiconv, ca65, SuperFamicheck, brrtools, lz4) for retrotool
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file retrotool_libsfx-2026.5.15.tar.gz.
File metadata
- Download URL: retrotool_libsfx-2026.5.15.tar.gz
- Upload date:
- Size: 3.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b469cefd4bcd4af3b82522a76e035ce8bb177fa7a86c04050c2b951bcc41de4
|
|
| MD5 |
8891a91687ab95a91919d9282f9eacb3
|
|
| BLAKE2b-256 |
075c2dcf6cd95d72fc59aae5ae0d5f6a0be127d6b886d591392d11538c50261b
|
Provenance
The following attestation bundles were made for retrotool_libsfx-2026.5.15.tar.gz:
Publisher:
wheels-libsfx.yml on danielburgess/SFCRetroTools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
retrotool_libsfx-2026.5.15.tar.gz -
Subject digest:
9b469cefd4bcd4af3b82522a76e035ce8bb177fa7a86c04050c2b951bcc41de4 - Sigstore transparency entry: 1752800347
- Sigstore integration time:
-
Permalink:
danielburgess/SFCRetroTools@a9d9a4f595326f52d5b34e805f0a2643130bb863 -
Branch / Tag:
refs/tags/libsfx-v2026.5.15 - Owner: https://github.com/danielburgess
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels-libsfx.yml@a9d9a4f595326f52d5b34e805f0a2643130bb863 -
Trigger Event:
push
-
Statement type:
File details
Details for the file retrotool_libsfx-2026.5.15-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: retrotool_libsfx-2026.5.15-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d101bf08e3646fc1c475c837803ef51f66fbed6c0199504ee95617696e273bd
|
|
| MD5 |
aed17fc7a5c901b666814af75b01e27f
|
|
| BLAKE2b-256 |
25a0348aaeebcf112bda0fd092d3f8e97fcd6180e5226fb91a1984af6d5e0860
|
Provenance
The following attestation bundles were made for retrotool_libsfx-2026.5.15-cp313-cp313-win_amd64.whl:
Publisher:
wheels-libsfx.yml on danielburgess/SFCRetroTools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
retrotool_libsfx-2026.5.15-cp313-cp313-win_amd64.whl -
Subject digest:
0d101bf08e3646fc1c475c837803ef51f66fbed6c0199504ee95617696e273bd - Sigstore transparency entry: 1752800524
- Sigstore integration time:
-
Permalink:
danielburgess/SFCRetroTools@a9d9a4f595326f52d5b34e805f0a2643130bb863 -
Branch / Tag:
refs/tags/libsfx-v2026.5.15 - Owner: https://github.com/danielburgess
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels-libsfx.yml@a9d9a4f595326f52d5b34e805f0a2643130bb863 -
Trigger Event:
push
-
Statement type:
File details
Details for the file retrotool_libsfx-2026.5.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: retrotool_libsfx-2026.5.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fbbd4346f32449e7ab7db7c41828008336c55c71bd068424f9350e2ce28b6842
|
|
| MD5 |
15fa5bf09a2ce412ad2814568b1b8097
|
|
| BLAKE2b-256 |
cdc2361be2519b9d3349b49bc50aa58d862644a71f157fb53288507e57d6615d
|
Provenance
The following attestation bundles were made for retrotool_libsfx-2026.5.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
wheels-libsfx.yml on danielburgess/SFCRetroTools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
retrotool_libsfx-2026.5.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
fbbd4346f32449e7ab7db7c41828008336c55c71bd068424f9350e2ce28b6842 - Sigstore transparency entry: 1752800705
- Sigstore integration time:
-
Permalink:
danielburgess/SFCRetroTools@a9d9a4f595326f52d5b34e805f0a2643130bb863 -
Branch / Tag:
refs/tags/libsfx-v2026.5.15 - Owner: https://github.com/danielburgess
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels-libsfx.yml@a9d9a4f595326f52d5b34e805f0a2643130bb863 -
Trigger Event:
push
-
Statement type:
File details
Details for the file retrotool_libsfx-2026.5.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: retrotool_libsfx-2026.5.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cba5ca67d42dc29271f90917158c8188300214ed4f5955404b623e7fce64fedc
|
|
| MD5 |
c3241fd5c76afc5819ad82bdf3eb16fe
|
|
| BLAKE2b-256 |
79ff917789e43f0a9b159ad1ea8f87412fa187cf918849555e201f7899283838
|
Provenance
The following attestation bundles were made for retrotool_libsfx-2026.5.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
wheels-libsfx.yml on danielburgess/SFCRetroTools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
retrotool_libsfx-2026.5.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
cba5ca67d42dc29271f90917158c8188300214ed4f5955404b623e7fce64fedc - Sigstore transparency entry: 1752800654
- Sigstore integration time:
-
Permalink:
danielburgess/SFCRetroTools@a9d9a4f595326f52d5b34e805f0a2643130bb863 -
Branch / Tag:
refs/tags/libsfx-v2026.5.15 - Owner: https://github.com/danielburgess
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels-libsfx.yml@a9d9a4f595326f52d5b34e805f0a2643130bb863 -
Trigger Event:
push
-
Statement type:
File details
Details for the file retrotool_libsfx-2026.5.15-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: retrotool_libsfx-2026.5.15-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0343bcd1571cb0fd79893283d0f985366a4d6ddcad39595ec69d455698acd75
|
|
| MD5 |
54ba833bc140301b2fc83bc168a72f6a
|
|
| BLAKE2b-256 |
b5b27e29cf650b93d330c1c259231ecbe570197863b3dc9beb032c4f900040b8
|
Provenance
The following attestation bundles were made for retrotool_libsfx-2026.5.15-cp312-cp312-win_amd64.whl:
Publisher:
wheels-libsfx.yml on danielburgess/SFCRetroTools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
retrotool_libsfx-2026.5.15-cp312-cp312-win_amd64.whl -
Subject digest:
f0343bcd1571cb0fd79893283d0f985366a4d6ddcad39595ec69d455698acd75 - Sigstore transparency entry: 1752800754
- Sigstore integration time:
-
Permalink:
danielburgess/SFCRetroTools@a9d9a4f595326f52d5b34e805f0a2643130bb863 -
Branch / Tag:
refs/tags/libsfx-v2026.5.15 - Owner: https://github.com/danielburgess
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels-libsfx.yml@a9d9a4f595326f52d5b34e805f0a2643130bb863 -
Trigger Event:
push
-
Statement type:
File details
Details for the file retrotool_libsfx-2026.5.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: retrotool_libsfx-2026.5.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b717e296bbbd237bca800a9b5d222f1f8755cbc86a132fcb7c3d3f1d2d11e406
|
|
| MD5 |
2b706370ab906bf250fbd058349a667f
|
|
| BLAKE2b-256 |
82bbe1c71fd5c4be820dd0c20c0298f5d92fb7e2c6dd618ed0dd90fee7ec4884
|
Provenance
The following attestation bundles were made for retrotool_libsfx-2026.5.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
wheels-libsfx.yml on danielburgess/SFCRetroTools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
retrotool_libsfx-2026.5.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
b717e296bbbd237bca800a9b5d222f1f8755cbc86a132fcb7c3d3f1d2d11e406 - Sigstore transparency entry: 1752800444
- Sigstore integration time:
-
Permalink:
danielburgess/SFCRetroTools@a9d9a4f595326f52d5b34e805f0a2643130bb863 -
Branch / Tag:
refs/tags/libsfx-v2026.5.15 - Owner: https://github.com/danielburgess
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels-libsfx.yml@a9d9a4f595326f52d5b34e805f0a2643130bb863 -
Trigger Event:
push
-
Statement type:
File details
Details for the file retrotool_libsfx-2026.5.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: retrotool_libsfx-2026.5.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dca9eb4bcc93b27b85724cfa0fed69d80f87829465c6ad06b0c2aa5028a3fe94
|
|
| MD5 |
7226f9b0a39b6ae2df27d9b94dd49578
|
|
| BLAKE2b-256 |
ed1a33086a3e629c1b6f26470431b00b4cec60f69ae8759f35f96f7eddade776
|
Provenance
The following attestation bundles were made for retrotool_libsfx-2026.5.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
wheels-libsfx.yml on danielburgess/SFCRetroTools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
retrotool_libsfx-2026.5.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
dca9eb4bcc93b27b85724cfa0fed69d80f87829465c6ad06b0c2aa5028a3fe94 - Sigstore transparency entry: 1752800595
- Sigstore integration time:
-
Permalink:
danielburgess/SFCRetroTools@a9d9a4f595326f52d5b34e805f0a2643130bb863 -
Branch / Tag:
refs/tags/libsfx-v2026.5.15 - Owner: https://github.com/danielburgess
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels-libsfx.yml@a9d9a4f595326f52d5b34e805f0a2643130bb863 -
Trigger Event:
push
-
Statement type: