Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stefanschramm/retroload
RetroLoad.com is a web application for converting tape archive files of historical computers into sound.
https://github.com/stefanschramm/retroload
6502 6510 8bit-computers acorn-electron assembly atari800 c64 cpc464 hello-world kc85 lc80 msx retrocomputing retrogaming tape-archive ti994a vic20 vintage-computers z1013 z80
Last synced: 4 months ago
JSON representation
RetroLoad.com is a web application for converting tape archive files of historical computers into sound.
- Host: GitHub
- URL: https://github.com/stefanschramm/retroload
- Owner: stefanschramm
- License: agpl-3.0
- Created: 2023-01-13T09:10:57.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-12-19T22:28:44.000Z (about 1 year ago)
- Last Synced: 2023-12-20T13:07:03.867Z (about 1 year ago)
- Topics: 6502, 6510, 8bit-computers, acorn-electron, assembly, atari800, c64, cpc464, hello-world, kc85, lc80, msx, retrocomputing, retrogaming, tape-archive, ti994a, vic20, vintage-computers, z1013, z80
- Language: TypeScript
- Homepage: https://retroload.com/
- Size: 931 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
# retroload
[RetroLoad.com](https://retroload.com/) is a web application for converting tape images of historical computers into sound for loading them on real devices using an audio line cable or cassette adapter.
This repository contains the npm packages
- **retroload**, a command line interface (CLI) for converting tape images to WAVE files or playing them,
- **retroload-lib**, the fundamental library used by the CLI and RetroLoad.com**Project state:** A lot is still work in progress. Some of the (more complex) tape archive formats are only partly supported.
## Installation from NPM registry
sudo npm install -g retroload
## Using retroload CLI
A list of available command line options can be shown using `retroload --help`.
[MACHINES.md](./MACHINES.md) contains some instructions on how to load tapes on different devices.
### Creating WAVE files
Convert an MSX tape archive into an audio file named example.wav:
retroload retroload-lib/examples/formats/msx_cas_binary/rl.cas -o example.wav
retroload will try to automatically determine the input format by its content and file extension. For formats that are not automatically detected, the `--format` option needs to be specified.
### Playing tape archives directly
When the `-o` option is omitted, retroload automatically tries to play the generated audio data.
## Example collection
[./retroload-lib/examples/formats](./retroload-lib/examples/formats) contains minimal example tape archives of different formats for different machines. Some of them, listed in [Examples.ts](./retroload-lib/src/Examples.ts), have successfully been loaded to real machines and can be used for testing. If the example files won't load on your machine, it's unlikely that any other tape archive will successfully load using retroload.
### Rebuilding examples
There is a Dockerfile that prepares an environment in which the examples can be (re)built. The container has to be started with the formats directory as bind mount to /formats.
Rebuilding all examples:
cd retroload-lib/examples
docker build -t retroload-examples .
docker run -v "$(pwd)/formats:/formats" retroload-examplesOr enter the container to build individual examples:
docker run -itv "$(pwd)/formats:/formats" retroload-examples /bin/bash
cd /formats/msx_cas_binary
make clean
make
exitIf you want to build the examples without Docker, you can look up the Dockerfile for the required tools to be installed in your environment (assemblers, tape format converters).
## Installation from Git repository (development environment)
For development you can build and install retroload directly from the repository using npm link:
git clone https://github.com/stefanschramm/retroload.git
cd retroload
npm ci # install dependencies
npm run build # calls TypeScript "compiler"
sudo npm link retroload/ # the "/" is important!Later you can remove the symlinks by
sudo npm unlink retroload -g