{"id":49897576,"url":"https://github.com/shayanoh/c64util","last_synced_at":"2026-05-23T20:01:01.386Z","repository":{"id":357492081,"uuid":"1237199420","full_name":"shayanoh/c64util","owner":"shayanoh","description":"Commodore 64 utility for converting games to audio files and other formats","archived":false,"fork":false,"pushed_at":"2026-05-15T23:40:47.000Z","size":84,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-16T01:51:56.196Z","etag":null,"topics":["c64","commodore-64","commodore64","t64","tape","wave"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shayanoh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-13T01:09:42.000Z","updated_at":"2026-05-15T23:40:50.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/shayanoh/c64util","commit_stats":null,"previous_names":["shayanoh/c64util"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/shayanoh/c64util","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shayanoh%2Fc64util","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shayanoh%2Fc64util/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shayanoh%2Fc64util/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shayanoh%2Fc64util/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shayanoh","download_url":"https://codeload.github.com/shayanoh/c64util/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shayanoh%2Fc64util/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33410345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T18:09:33.147Z","status":"ssl_error","status_checked_at":"2026-05-23T18:09:31.380Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c64","commodore-64","commodore64","t64","tape","wave"],"created_at":"2026-05-16T01:04:50.652Z","updated_at":"2026-05-23T20:01:01.379Z","avatar_url":"https://github.com/shayanoh.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Commodore 64 Utility (C64Util)\n\nConvert Commodore 64 tape and disk images to audio files for loading on real\nhardware, or use the interactive play mode to select and preview programs\ndirectly through your computer's speakers — no conversion to disk required.\n\nUsing this utility you can convert games from popular formats to audio files\n(WAV) so you can play them through Commodore's datassette and run the games on\nthe real device.\n\nTo connect the audio output of your computer to Commodore's datassette, you\nshould find the op-amp chip inside, and in my experience the best place would be\nthe v+ pin of the 3rd op-amp, and the gnd pin of the same chip.\n\nIn addition, you can convert between some popular file formats.\n\n## Hints\n\n- If you are converting from D64, make sure the game is single-load, meaning it\n  doesn't need to load additional files from the disk, otherwise it fails.\n- If you are converting from T64, if the game is multi-load, you can convert all\n  of it to a single wave file with kernal (slow) loader, but I suggest trying to\n  convert the main part using turbo loader, and others using standard loader to\n  another wave and playing it when required.\n\n## Supported Formats\n\n- **Read**: T64, PRG, D64\n- **Write**: T64, WAV, TAP, PRG\n\n## Installation\n\nThe latest version is published in NPM repository.\n\nYou can install the latest version using `npm install -g c64util` or you can use\nnpx and easily run with `npx c64util`.\n\n## Usage\n\n### Convert to Audio File\n\n```bash\nc64util -i game.t64                       # Display info on input file\nc64util -i game.t64 -o game.wav           # Convert to WAV\nc64util -i game.t64 -o game.wav -r 44100  # Custom sample rate\nc64util -i game.t64 -o game.wav -t        # Use turbo loader\nc64util -i game.t64 -o game.wav -f 1      # First file only (1-based)\nc64util -i game.t64 -o game.wav -f all    # All files\n```\n\n### Interactive Play Mode\n\nPreview and load programs directly through your speakers without writing to\ndisk. Select a program from an interactive TUI, toggle between Kernal and Turbo\nloader, and play — all in-memory.\n\n```bash\nc64util -i game.t64 -p                    # Enter play mode\nc64util -i game.t64 -p -r 44100           # Play mode with custom sample rate\n```\n\nIn play mode:\n\n- **↑/↓** — Navigate programs\n- **Enter** — Select and play\n- **t** — Toggle Kernal/Turbo loader\n- **q** — Return to file list (from player) or quit (from list)\n\n### Convert Between Formats\n\n```bash\nc64util -i game.t64 -o game.tap           # Convert T64 to TAP\nc64util -i game.t64 -o game.prg           # Convert T64 to PRG\nc64util -i game.t64 -o output.t64         # Convert to T64\nc64util -F                                # List supported formats\n```\n\n## Development\n\nTo read the source code or help the development, visit\n[C64Util GitHub](https://github.com/shayanoh/c64util).\n\n```bash\npnpm install        # Install dependencies\npnpm run build      # Build only\npnpm run start      # Run the built version\npnpm run dev        # Build and run\npnpm run clean      # Remove the dist/ folder\n```\n\n## Architecture\n\nExtensible plugin-based design:\n\n- `src/` - All source codes (TypeScript)\n- `src/types/` - Type definitions\n- `src/readers/` - Format readers\n- `src/writers/` - Format writers\n- `src/player/` - Interactive play mode TUI\n- `src/base/` - Abstract base classes and factories\n- `c64turbo/` - A turbo loader with graphics screen, written in commodore 64\n  assembly\n- `assets/` - Assembled turbo loader and graphics screen, for use in\n  `c64util -t`\n- `dist/` - Compiled JavaScript output\n- `docs/` - Documentation for file formats\n\nAdd new formats by creating reader/writer classes inheriting from base classes.\n\n## Resources\n\n- TAP, T64, and more file specification acquired from:\n  https://vice-emu.sourceforge.io/vice_17.html\n- Detailed docs for file formats inside `docs/`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshayanoh%2Fc64util","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshayanoh%2Fc64util","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshayanoh%2Fc64util/lists"}