0xreversed/with.ai
AppsWorksSource available
Target: pygoattracker

anarkiwi/pygoattracker

by anarkiwi Repository0 views
Platform
Python
Outcome
Works

Evidence at a glance

Based on the linked sources. The author's reported result and independent confirmation are separate checks.

AI involvement
Reported models: Claude. Tools: pysidtracker, sidplayfp, 6502 emulator. The writeup below describes the work attributed to AI.
Reported result
Works. This is the directory's source-based outcome classification.
Independent confirmation
Not reported.
Human work and limitations
The project uses a collaborative workflow where AI models (Claude) assist in refactoring, testing, and implementing features. Several known limitations and open issues are tracked via strict xfails in the test suite.

Original sources

What was done

A Python library for reading, writing, and playing GoatTracker 2 (.SNG) and GoatTracker 1 songs. It supports .sid file decompilation using a 6502 emulator and provides byte-exact audio rendering validated against sidplayfp.

pygoattracker is a pure-Python library designed to read, write, and play GoatTracker 2 (.SNG) songs. The tool supports the recovery of songs from .sid files (PSID/RSID containers) and bare .prg images by utilizing a 6502 emulator to handle crunched or relocated images, as container headers are not trusted. Additionally, the library recognizes and decompiles GoatTracker 1.x packed tunes into a Gt1Song format for playback. The player implementation derives from pysidtracker.MemPlayer, with audio rendering validated byte-exactly against a sidplayfp oracle. Development history shows ongoing collaboration with AI models, specifically Claude Opus 5.5 and Claude Sonnet 5.5, which have contributed to code refactoring, player dispatch logic, and the implementation of strict xfails for open issues such as specific GT1 playroutine clusters and binary-relocator players. The library is available via pip and includes support for register logs and WAV rendering. Documentation and usage examples are provided in the repository, including details on the format specification and oracle testing. Source: pygoattracker.

Reproduce it

setup
pip install pygoattracker; from pygoattracker import decompile_sid, write_sng; result = decompile_sid('tune.sid'); write_sng(result.song, 'tune.sng')