pysidwizard
Pure-Python reader, writer, and bit-exact player for
SID-Wizard (Hermit / Mihaly Horvath) C64
tracker modules. Implements the SWM file format and player IRQ from first
principles, with no native dependencies. The player is validated byte-for-byte
against the anarkiwi/sidtrace
sidplayfp oracle over real HVSC SID-Wizard exports (pytest -m oracle, needs
Docker).
Also consumes .sid files (PSID/RSID containers) and bare .prg images through
the shared pysidtracker base:
SID-Wizard .sid exports (plain or packed SWP) are read into the same
SWMFile model, packed/relocating builds are detected, and container headers
are not trusted. Standalone packed .swp files (SWP1) are read with the same
decodable fidelity. The .sid/.swp paths are read-only and lossy (see
docs/format.md).
Install
pip install pysidwizard
Usage
from pysidwizard import read_swm, write_swm, build_swm
swm = read_swm("tune.swm") # native SID-Wizard module (bare or PRG-wrapped)
print(swm.author_str(), swm.frame_speed, swm.highlight)
for row in swm.patterns[0].rows[:4]: # typed rows; no byte poking
print(row)
write_swm(swm, "out.swm") # byte-exact round-trip
# SID-Wizard tunes exported to .sid read into the same model:
from pysidwizard import read_sid
swm_from_sid = read_sid("tune.sid") # read-only, lossy
# ...as do standalone packed .swp files (SWP1):
from pysidwizard import read_swp
swm_from_swp = read_swp("tune.swp") # read-only, lossy
See docs/usage.md for building modules from scratch, playback,
WAV rendering, raw write iteration, and the CLI, and
docs/format.md for the SWM/.sid/.swp format, data model,
and player correctness. The HVSC oracle survey
runs the player against every HVSC SID-Wizard tune.
Development
pip install -e ".[dev]"
python -m pytest # unit tests (fast, no Docker)
python -m pytest -m oracle # sidtrace oracle; requires Docker
The four SWM test tunes are not tracked in this repo (SID-Wizard binary
artifacts); tests/_swm_cache.py fetches them on demand and SHA-256 verifies
each one.
License
Apache 2.0 — see LICENSE.
Metadata
Release files for pysidwizard 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pysidwizard-0.3.2.tar.gz | 156.2 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pysidwizard-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 258.8 kB
Release files / pysidwizard-0.3.2.tar.gz
| Download URL | pysidwizard-0.3.2.tar.gz |
|---|---|
| Size | 156.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
560dc047e33d476b88f0ce5472f97c29ea089eb99d44a1280099570c2f18b571
|
|
BLAKE2b-256 checksum How to use checksums |
02b29b3648efc9babcc98ab18649f1614e0f530a947b7c0ed69e91bc6ec1b786
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 22, 2026.
Transparency logRelease files / pysidwizard-0.3.2-py3-none-any.whl
| Download URL | pysidwizard-0.3.2-py3-none-any.whl |
|---|---|
| Size | 102.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7a5743d901b66f5c8c7e9aee162c837685c356bb9c73bdfdf4d49de79c779a97
|
|
BLAKE2b-256 checksum How to use checksums |
164b60410c0dae3bc18d6a10f628869b3620149e290647ede89e07fcea015fb6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 22, 2026.
Transparency logSecurity for pysidwizard 0.3.2
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for pysidwizard-0.3.2.tar.gz
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 Oct 22, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.