From a03e8e5d67ab059be0d3a38910e696a65c6928fc Mon Sep 17 00:00:00 2001 From: metalhexx Date: Tue, 3 Nov 2026 22:36:18 -0500 Subject: [PATCH 1/6] docs: point the app references at TeensyROM Suite and its Trom apps TeensyROM Suite 1.0.0-beta.1 replaced TeensyROM Web, the TeensyROM UI desktop app and TeensyROM-CLI with one suite: Trom UI, Trom Terminal, Trom Agent and Trom API. The old repos are archived, so the docs that pointed at them now name the Suite apps and link their docs. The C64 Ultimate page shows what the Suite does today, the DJ Mixer joins the ASID sources, and the protocol notes name Trom API as the client that depends on the command format. --- .claude/agents/steward.md | 3 ++- .claude/skills/teensyrom-build/SKILL.md | 4 ++-- .../teensyrom-build/references/flash.md | 2 +- CLAUDE.md | 3 ++- CONTRIBUTING.md | 8 +++---- docs/ASID_Player.md | 7 +++++- docs/Architecture/Comms-Protocol.md | 2 +- docs/C64_Ultimate_Enhancements.md | 24 ++++++++++++------- docs/ControlComms.md | 5 ++-- docs/Ethernet_Usage.md | 4 ++-- docs/General_Usage.md | 2 +- 11 files changed, 38 insertions(+), 26 deletions(-) diff --git a/.claude/agents/steward.md b/.claude/agents/steward.md index 7e37b2149..2cdb52aca 100644 --- a/.claude/agents/steward.md +++ b/.claude/agents/steward.md @@ -203,7 +203,8 @@ The contracts this repository states, and what keeps each one honest: docs in the same change. A `Known-Issues.md` entry the change fixes is closed, and a cited `file:line` that moved is drift. - **The remote protocol.** `docs/ControlComms.md` documents every command and - token, and TeensyROM-Web, TeensyROM-CLI and c64cast depend on it. A command, + token, and Trom API (the engine of the TeensyROM Suite) and c64cast depend on + it. A command, token, response or timing that changed without the doc is drift, and an incompatible change not called out in the PR is a finding. - **Shared layouts.** diff --git a/.claude/skills/teensyrom-build/SKILL.md b/.claude/skills/teensyrom-build/SKILL.md index b659c9e08..f220cbbf7 100644 --- a/.claude/skills/teensyrom-build/SKILL.md +++ b/.claude/skills/teensyrom-build/SKILL.md @@ -70,8 +70,8 @@ Step 2 builds one cartridge type per run. Build both when both kinds of board ne - With more than one Teensy attached, never call `teensy_post_compile -port=...` yourself: with `-port` alone it falls back to auto-search and can write the other board. The flasher passes the board's whole address. -- Stop anything that holds a board's serial port (a TeensyROM app or API, a serial - monitor) before flashing; a board it holds cannot answer and cannot be identified. +- Stop anything that holds a board's serial port (Trom API or another TeensyROM app, + a serial monitor) before flashing; a board it holds cannot answer and cannot be identified. - TeensyROM settings survive a USB flash. ## Options diff --git a/.claude/skills/teensyrom-build/references/flash.md b/.claude/skills/teensyrom-build/references/flash.md index 8463d0cc4..896a7aa1d 100644 --- a/.claude/skills/teensyrom-build/references/flash.md +++ b/.claude/skills/teensyrom-build/references/flash.md @@ -35,7 +35,7 @@ npm run flash -- --all # every board, each with the newest im It refuses, and lists the attached boards, when it cannot tell: two boards of the image's type (name one with `--uid`), a board that does not answer, or none of the image's type (then the image is for the other cartridge). A board that does not answer is usually one -whose serial port another program holds, such as a TeensyROM app or a serial monitor. A board +whose serial port another program holds, such as Trom API or a serial monitor. A board already waiting in the bootloader cannot be asked what it is. On its own it is written on the image's word; beside another board the tool refuses, because the Teensy Loader writes to whichever board it finds in the bootloader. diff --git a/CLAUDE.md b/CLAUDE.md index 9248bf630..48a274a4e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -201,7 +201,8 @@ its size, because a one-line change there does the most damage: defect here can leave a board that needs the program button to recover. - **The remote protocol:** `SerUSBIO.ino`, `Min_SerUSBIO.ino`, `ServiceTCP.ino`, `Min_ServiceTCP.ino`, `RemoteControl.ino`. It is a network-facing trust - boundary, and TeensyROM-Web, TeensyROM-CLI and c64cast depend on its format. + boundary, and Trom API (the engine of the TeensyROM Suite) and c64cast depend + on its format. - **`.github/workflows/`:** the jobs that decide whether a PR may merge and that build release images. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 41d216c2b..cce35d48e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,8 +4,8 @@ Thanks for your interest in TeensyROM! The project is maintained by one person ( Smith / Sensorium Embedded) in spare time, and a growing group of regular contributors now sends a steady stream of pull requests: features, IO handlers, extensions, docs and tooling, alongside the separate -[TeensyROM-Web](https://github.com/MetalHexx/TeensyROM-Web)/[CLI](https://github.com/MetalHexx/TeensyROM-CLI) -tools. Each release's notes credit the people whose work went into it. Reviewing, +[TeensyROM Suite](https://github.com/MetalHexx/TeensyROM-Suite) +apps. Each release's notes credit the people whose work went into it. Reviewing, hardware testing and releasing still go through one person, so this doc covers what to expect on timing (see [Review and release timing](#review-and-release-timing)) and how to help your contribution land on the first pass. @@ -92,8 +92,8 @@ release rather than rejected outright, but flagging it up front saves a review c - **The external protocol is a stable surface other people's projects depend on.** [docs/ControlComms.md](docs/ControlComms.md) documents the USB/Ethernet remote command protocol, and the cartridge register map it's built on is relied on by downstream - projects — [TeensyROM-Web](https://github.com/MetalHexx/TeensyROM-Web), - [TeensyROM-CLI](https://github.com/MetalHexx/TeensyROM-CLI), and + projects — [Trom API](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-api.md), + the engine of the TeensyROM Suite, and [c64cast](https://github.com/kfox/c64cast) (which uses TR+'s Remote DMA feature). If your change alters register meanings, command formats, or timing those tools rely on, call it out explicitly in the PR — a silent break there breaks someone else's project, not just diff --git a/docs/ASID_Player.md b/docs/ASID_Player.md index b9e6eda3d..3c098e415 100644 --- a/docs/ASID_Player.md +++ b/docs/ASID_Player.md @@ -13,6 +13,7 @@ Here are a few ASID sources which can be used to stream to your C64/SID. See det |**[SID Factory II](https://blog.chordian.net/sf2/)**|Win/Mac/Linux|Cross-platform SID music editor with ASID output ([beta branch](https://github.com/Chordian/sidfactory2/tree/asid-support))| |**[ASIDXP](https://elektron.se/support-downloads/sidstation#resources)**|Win/Mac|Stream SID files directly from your local hard drive| |**[SIDPlay](http://www.sidmusic.org/sidplay/mac/)**|Mac|Stream from your local hard drive with visualizations, etc| +|**[Trom UI DJ Mixer](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/dj-mixer.md)**|Win/Mac/Linux|Play and mix SID tunes live on one or two C64s: beat-match, loop, cue and scratch| ## USB/TeensyROM Setup * Connect USB cable from a MIDI Host/computer to the USB Type B Micro Device port on the Teensy module. @@ -100,7 +101,7 @@ Once the Frame Timer is turned on, the buffer size can be selected with `b` (sma * Select the "EMU" tab, in the ASID box, enable output of "Synth V1" and your "TeensyROM-xxxxxxxx" as the destination * Using more than one TeensyROM with ChipSynth C64? See [Using more than one TeensyROM](#using-more-than-one-teensyrom) above, extra instances need to run as the standalone application rather than inside the same DAW. * There are many things you can do with this great program, purchasing will unlock the 10 minute limit per use. - * You can use the [TeensyROM CLI tool](https://github.com/MetalHexx/TeensyROM-CLI) to tweak the Chipsynth presets to work better with ASID. + * You can use [Trom Terminal](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-terminal.md#generate-asid-presets-for-chipsynth) to make ASID-friendly copies of your Chipsynth presets. * Be sure to leave the Frame timer **off** as ChipSynth does not send data in frames. * Here's a [demo video](https://www.youtube.com/watch?v=-Xs3h59-dOU) showing some of the capabilities * **SID Factory II** for cross-platform SID music editing/playing @@ -120,6 +121,10 @@ Once the Frame Timer is turned on, the buffer size can be selected with `b` (sma * Click "Play" * The playback should be emanating from your C64/128! * You can play with the frequency to adjust the playback tempo if needed. +* **Trom UI DJ Mixer** to play and mix SID tunes live on one or two C64s + * Install the [TeensyROM Suite](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/getting-started.md) and connect a TeensyROM by USB for each deck you play + * Open the [DJ Mixer](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/dj-mixer.md) in Trom UI in Chrome or Edge, and allow MIDI access + * Pick the TeensyROM each deck plays through; the mixer starts each one's ASID Player with a click
diff --git a/docs/Architecture/Comms-Protocol.md b/docs/Architecture/Comms-Protocol.md index 735a20a77..fdecb4f9c 100644 --- a/docs/Architecture/Comms-Protocol.md +++ b/docs/Architecture/Comms-Protocol.md @@ -31,7 +31,7 @@ Binary, token-based request/response protocol over USB Serial or Ethernet TCP (p - Commands split into "always-available" (work even while TR is busy — reset, launch, version, DMA memory access, C64 pause) vs "conditionally-available" (return `FailToken` + `"Busy!"` if not idle — file ops, SID commands, most UI commands). While the ASID Player runs, Ping and file ops are also accepted over USB serial (TCP doesn't answer then: the player turns off the Ethernet interrupt); ASID playback can pause while one runs - Firmware-mode-aware: minimal-boot firmware only accepts a restricted command subset — see [Teensy-Firmware.md](Teensy-Firmware.md#minimalboot-vs-full-firmware) - Implemented Teensy-side in `Source/Teensy/SerUSBIO.ino` (serial) and `Source/Teensy/ServiceTCP.ino` (Ethernet, routes into the same parser) -- Several independent third-party client implementations exist (TeensyROM-UI, TeensyROM-Web, TeensyROM-CLI, trterm, c64cast) — see the project table in `docs/ControlComms.md` +- Several independent third-party client implementations exist (Trom API, the engine of the TeensyROM Suite; trterm; c64cast) — see the project table in `docs/ControlComms.md`
diff --git a/docs/C64_Ultimate_Enhancements.md b/docs/C64_Ultimate_Enhancements.md index 7b8446ae7..5691798b2 100644 --- a/docs/C64_Ultimate_Enhancements.md +++ b/docs/C64_Ultimate_Enhancements.md @@ -15,6 +15,7 @@ Much like the hardware synthesizer TherapSID, TeensyROM implements the ASID prot - Stream SID tunes from [DeepSID](https://deepsid.chordian.net/) with multi-SID support - Control the SID chip as a synthesizer using [ChipSynth C64](https://plogue.com/products/chipsynth-c64.html) from Plogue. +- Play and mix SID tunes live on one or two C64s with the [DJ Mixer](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/dj-mixer.md) in Trom UI For more information: [ASID Player Guide](/docs/ASID_Player.md) @@ -41,17 +42,21 @@ For more information: [NFC Loader Guide](/docs/NFC_Loader.md) ## Modern UI Control -TeensyROM apps feature a mashup of modern and retro. By leveraging modern computing power and memory, they unlock instant search, indexing, and random selection across massive file collections—capabilities impossible on vintage hardware alone: +[TeensyROM Suite](https://github.com/MetalHexx/TeensyROM-Suite) is a mashup of modern and retro. By leveraging modern computing power and memory, it unlocks instant search, indexing, and random selection across massive file collections—capabilities impossible on vintage hardware alone: -- **Modern Web Interfaces**: Browse and launch your entire game and media library from any computer via WiFi, Ethernet, or USB -- **Live Video Integration**: Watch your C64 gameplay with large array of authentic CRT emulation effects (Web only) -- **Complete Media Management**: Search, filter, transfer files, create playlists and track favorites across all storage devices -- **Advanced Playback Control**: Shuffle mode, auto-play, progress tracking, and support for multi-device DJ setups -- **Cross-Platform Support**: Apps available for Windows, macOS, and Linux +- **Your Library, Anywhere**: Browse, search and launch every game, demo, SID and image from any computer, phone or tablet on your network, with your TeensyROM on USB or Ethernet +- **Stream It**: Shuffle and auto-play hands-free across all your storage, with favorites, play history and [audio on your phone](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-ui.md#mobile-audio-streaming) +- **Live Video Integration**: Watch your C64 in the browser with a large array of authentic [CRT effects](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-ui.md#video-and-crt-emulation) +- **[DJ Mixer](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/dj-mixer.md)**: One or two C64s become decks: beat-match, loop, cue and scratch SID tunes live, with every note from a real SID chip. Watch the [Mix Preview](https://youtu.be/PjhqYkmsScg) and [Scratch / Beat Juggle](https://youtu.be/xoJBOEPB5IY) +- **[Copy Files](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-ui.md#copy-files-to-your-cart) and [Watch Folders](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-ui.md#watch-folders)**: Drag and drop files, folders and archives onto several TeensyROMs at once, or let a folder on your computer send whatever lands in it +- **[Themes](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-ui.md#themes)**: Recolor the TeensyROM's own menu, on one TeensyROM or all +- **Just Ask**: Tell [Trom Agent](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-agent.md) "play me some Rob Hubbard" or "give me a 30-minute set" +- **Cross-Platform Support**: Windows, macOS, and Linux - **Featured Apps**: - - [Web UI / HTTP API](https://github.com/MetalHexx/TeensyROM-Web) **New App!** (Cross-platform) - - [CLI App](https://github.com/MetalHexx/TeensyROM-CLI) (Cross-platform) - - [Desktop App](https://github.com/MetalHexx/TeensyROM-UI) (Windows Only) + - [Trom UI](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-ui.md): the web app, home of the DJ Mixer + - [Trom Terminal](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-terminal.md): a BBS-style menu plus one-line commands for your scripts + - [Trom Agent](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-agent.md): a plugin for your AI coding agent + - [Trom API](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-api.md): the engine behind them all, open to your own tools - [TR Transfer/Control App](https://github.com/SensoriumEmbedded/TRWinApp) (Windows Only) ## Serial / TCP API @@ -62,6 +67,7 @@ TeensyROM exposes a comprehensive command protocol over USB Serial or TCP/Ethern - **File Operations**: Upload, download, copy, delete, and directory listing capabilities across SD and USB storage - **Playback Control**: Remote file launching, SID player control (pause, speed, voice muting, sub-tune selection) - **Device Management**: System commands including reset, ping, version info, firmware checks, and DMA control +- **HTTP API**: [Trom API](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-api.md#build-your-own-tools) wraps the protocol in an HTTP API with an OpenAPI spec, so your tools can launch files, search your library, copy files and set themes from any language ## Image Launcher Support diff --git a/docs/ControlComms.md b/docs/ControlComms.md index 59b92b6b0..432a3360b 100644 --- a/docs/ControlComms.md +++ b/docs/ControlComms.md @@ -30,9 +30,8 @@ The sections below detail the physical/transport connection options, advanced be The protocol is also currently implemented in several control projects, for reference: |Project name/Link|Developer|Description| |:--|:--:|:--| -|**[TeensyROM-UI](https://github.com/MetalHexx/TeensyROM-UI)** |[MetalHexx](https://github.com/MetalHexx)|Windows based UI with media exploration, uses all available commands| -|**[TeensyROM-Web](https://github.com/MetalHexx/TeensyROM-Web)** |[MetalHexx](https://github.com/MetalHexx)|Cross-platform web based version with stand-alone API server| -|**[TeensyROM-CLI](https://github.com/MetalHexx/TeensyROM-CLI)** |[MetalHexx](https://github.com/MetalHexx)|Cross-platform CLI version| +|**[Trom API](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-api.md)** |[MetalHexx](https://github.com/MetalHexx)|Engine of the TeensyROM Suite: speaks this protocol over USB serial and TCP, and serves it as an HTTP API with an OpenAPI spec| +|**[TeensyROM Suite](https://github.com/MetalHexx/TeensyROM-Suite)** |[MetalHexx](https://github.com/MetalHexx)|Trom UI (web, with the DJ Mixer), Trom Terminal and Trom Agent, all built on Trom API| |**[c64cast](https://github.com/kfox/c64cast/)** |[Kelly Fox](https://github.com/kfox) |Python project to stream video/audio to the C64 via the TR+| |**[TRWinApp](https://github.com/SensoriumEmbedded/TRWinApp)** |[SensoriumEmbedded](https://github.com/SensoriumEmbedded)|Very basic command implementation, used for test/development| |**[TeensyROMControl](https://github.com/SensoriumEmbedded/TeensyROMControl)** |[SensoriumEmbedded](https://github.com/SensoriumEmbedded)|Library for TeensyROM control from a microcontroller| diff --git a/docs/Ethernet_Usage.md b/docs/Ethernet_Usage.md index c48be615a..d5fd5a2fb 100644 --- a/docs/Ethernet_Usage.md +++ b/docs/Ethernet_Usage.md @@ -112,8 +112,8 @@ You can control the TeensyROM via TCP at port 2112 from the various available ex ### Applications Supporting TCP * [TR Transfer/Control App](https://github.com/SensoriumEmbedded/TRWinApp) - Great for testing and exploring the various TCP/Serial command capabilities on Windows. -* [TeensyROM Web Apps](https://github.com/MetalHexx/TeensyROM-Web) - A media player style UI app with advanced usage of the TCP/Serial command capabilities. Available on Mac, Linux and Windows. - * The project extends the TCP support with a simple REST-style HTTP API making it easier to build your own TeensyROM apps without programming low-level TCP/Serial code and managing TeensyROM FW state. +* [Trom API](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-api.md) - The engine of the [TeensyROM Suite](https://github.com/MetalHexx/TeensyROM-Suite), which lets Trom UI, Trom Terminal and Trom Agent reach your TeensyROM over the network as well as USB ([Connect your cart](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/getting-started.md#connect-your-cart)). Available on Mac, Linux and Windows. + * It extends the TCP support with a simple REST-style HTTP API and OpenAPI spec, making it easier to build your own TeensyROM apps without programming low-level TCP/Serial code and managing TeensyROM FW state. >_**Performance Tip**:
Set a static IP address to speed up the network connection process. When launching extra large .crt files, the TeensyROM switches between the Full and Minimal Boot firmware modes. During this mode switch, DHCP is used to reassign the IP address which can slow down the process. Use the [AT commands](#at-commands) to set an IP and disable DHCP. Check your router documentation in case you need to do some additional configuration to retain the same IP._ diff --git a/docs/General_Usage.md b/docs/General_Usage.md index e56be4f3b..d62342f3f 100644 --- a/docs/General_Usage.md +++ b/docs/General_Usage.md @@ -284,7 +284,7 @@ * Get the .hex file containing the latest major (x.x) or minor (x.x.x) release [from the releases page](https://github.com/SensoriumEmbedded/TeensyROM/releases/latest) * Copy the file to a USB Thumb drive or SD card * This can be done by the traditional method of moving the card to a capable computer - * Or directly via USB using **[TeensyROM-Web](https://github.com/MetalHexx/TeensyROM-Web)** (cross-platform, recommended), the **[TeensyROM UI](https://github.com/MetalHexx/TeensyROM-UI)** (Windows desktop), or the cross-platform **[Command Line Interface](https://github.com/MetalHexx/TeensyROM-CLI)** + * Or directly from your computer using **[Trom UI](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-ui.md#copy-files-to-your-cart)** or **[Trom Terminal](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-terminal.md#copy-files)** from the cross-platform **[TeensyROM Suite](https://github.com/MetalHexx/TeensyROM-Suite)** * In the TeensyROM USB or SD Menu, select the Firmware .hex file * A new screen will open and ask you to confirm that you want to update * Check that the file name shown is correct From 9af193359c3b7cc680b9579c1ea69ce8fb6a8bc9 Mon Sep 17 00:00:00 2001 From: metalhexx Date: Tue, 3 Nov 2026 22:36:19 -0500 Subject: [PATCH 2/6] tools: debug scripts name Trom API as the serial port holder With TeensyROM Suite, Trom API holds the cart's serial port, not a desktop app, and it keeps holding it after the browser is closed. `trom api stop` releases it. --- tools/Debug/dma_scope_write.py | 2 +- tools/Debug/run_z_sweep.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/Debug/dma_scope_write.py b/tools/Debug/dma_scope_write.py index 160635a58..6032850e0 100644 --- a/tools/Debug/dma_scope_write.py +++ b/tools/Debug/dma_scope_write.py @@ -14,7 +14,7 @@ python dma_scope_write.py --te 445 --tw 350 te445's te/ty, but tw overridden to 350 instead of 395 The C64 is reset to the menu first: the errors only show while the C64 program is writing RAM, and a quiet -loop hides them. Needs pyserial (pip install pyserial). Close the TeensyROM UI first, it holds the port.""" +loop hides them. Needs pyserial (pip install pyserial). Stop Trom API first (`trom api stop`), it holds the port.""" import argparse, re, sys, time import serial from serial.tools import list_ports diff --git a/tools/Debug/run_z_sweep.py b/tools/Debug/run_z_sweep.py index 5ef9fa553..313b5704d 100644 --- a/tools/Debug/run_z_sweep.py +++ b/tools/Debug/run_z_sweep.py @@ -18,7 +18,7 @@ python run_z_sweep.py --tw 350 sweep nS_DMADataHold alone, te/ty left at their current value python run_z_sweep.py --te 445 --tw 350 te445's te/ty, but tw overridden to 350 instead of 395 -Close the TeensyROM UI first, it holds the port. A badly-faulted board can stall mid-sweep, +Stop Trom API first (`trom api stop`), it holds the port. A badly-faulted board can stall mid-sweep, so the capture window is generous (45s of quiet) before giving up.""" import argparse, sys, time import serial From d757f59281e672942513f33a560a9deb9af982c3 Mon Sep 17 00:00:00 2001 From: metalhexx Date: Tue, 3 Nov 2026 22:42:30 -0500 Subject: [PATCH 3/6] docs: describe TeensyROM Suite in the README The README's remote control list, transfer line and thank-you credit pointed at TeensyROM Web, the TeensyROM UI desktop app and TeensyROM-CLI, which TeensyROM Suite 1.0.0-beta.1 replaced. They now describe the four Trom apps and link their docs, and a DJ Mixer video joins Demo Videos. --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e922cdb29..c413a907c 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,12 @@ * **Internet interface**: Connect to a [Telnet BBS](docs/Ethernet_Usage.md) or use the integrated [web browser](docs/Browser_Usage.md) to surf/search/download * **Remote Control** your C64 using * [NFC Launch System](docs/NFC_Loader.md): The feel of old school cartridges combined with [instant loading](https://www.youtube.com/watch?v=iNfQx2gx0hA) - * The feature rich (and cross-platform) [TeensyROM-Web](https://github.com/MetalHexx/TeensyROM-Web) and [Command Line Interface](https://github.com/MetalHexx/TeensyROM-CLI) + * [TeensyROM Suite](https://github.com/MetalHexx/TeensyROM-Suite) for Windows, macOS and Linux, driving your TeensyROM over USB or Ethernet: + * [Trom UI](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-ui.md): browse, stream and launch your library from any browser, with live video, CRT effects and a [DJ Mixer](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/dj-mixer.md) that plays one or two C64s as decks + * [Trom Terminal](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-terminal.md): a BBS-style menu, plus one-line commands for your scripts + * [Trom Agent](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-agent.md): ask your AI coding agent to play sets, tour your library and set up the suite + * [Trom API](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-api.md): the engine behind them all, open to your own tools over HTTP + * Needs firmware 0.8.0.9 or later ([Getting started](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/getting-started.md#firmware)) * SID File Player with voice muting and speed control * Bitmap Picture viewer, Text/PETSCII viewer, Custom BASIC Commands, Autolaunch, *and more* * Lots of games, utilities, pics, and music built-in: no external media required to get started! @@ -59,7 +64,7 @@ Compatible with C64 and C128 machines/variants, NTSC and PAL supported. * USB thumb Drive * SD card * Teensy Internal Flash Memory - * Transfer directly from PC using [TeensyROM-Web](https://github.com/MetalHexx/TeensyROM-Web) (cross-platform, recommended) or the [TeensyROM UI](https://github.com/MetalHexx/TeensyROM-UI) (Windows desktop) + * Transfer directly from your computer using [Trom UI](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-ui.md#copy-files-to-your-cart) (drag and drop, or watch folders), [Trom Terminal](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-terminal.md#copy-files) or [Trom Agent](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-agent.md) from the [TeensyROM Suite](https://github.com/MetalHexx/TeensyROM-Suite) * See supported file details [here](https://github.com/SensoriumEmbedded/TeensyROM/blob/main/docs/General_Usage.md#loading-files-and-emulating-roms) * [NFC Loading system](docs/NFC_Loader.md) available to quickly select/load with NFC tags. ### **MIDI in/out via USB Host connection:** @@ -116,6 +121,7 @@ Compatible with C64 and C128 machines/variants, NTSC and PAL supported. * MIDI ASID Demo: Stream .SID & .MIDI files directly to your C64/SID * Web Browser and internet file download demo * SID Player and Picture viewer demo + * **[SID DJ on Commodore 64 (ft. TeensyROM)](https://youtu.be/PjhqYkmsScg)**: SID tunes mixed live on real C64s in the Trom UI [DJ Mixer](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/dj-mixer.md), plus a [Scratch / Beat Juggle](https://youtu.be/xoJBOEPB5IY) preview ## Compatibility * TeensyROM compatability has been fully validated on **many** different NTSC **and** PAL machines: C64, C64C, SX-64, and C128 as well as modern reproductions such as the C64U, Ultimate 64, EVO64, Mega65 (r5 and higher), and Reloaded MKII @@ -136,7 +142,7 @@ The Teensy 4.1 is slightly "overclocked" to 816MHz from FW in this design. Per t ## Inspiration and Thank-Yous: * [**Heather S**](https://www.instagram.com/dalliancecreations/): Loving wife, continuous encourager, saintly patience -* [**MetalHexx**](https://github.com/MetalHexx): Big picture ideas, remote controls via [TeensyROM Web](https://github.com/MetalHexx/TeensyROM-Web), [UI](https://github.com/MetalHexx/TeensyROM-UI) and [CLI](https://github.com/MetalHexx/TeensyROM-CLI), testing, friendship +* [**MetalHexx**](https://github.com/MetalHexx): Big picture ideas, remote control via the [TeensyROM Suite](https://github.com/MetalHexx/TeensyROM-Suite), testing, friendship * [**Kelly Fox**](https://github.com/kfox): TR+ contributions ([Host Extensions](docs/TR_Host_Extensions.md), build system and much more), [c64cast](https://github.com/kfox/c64cast) * [**John Swiderski**](https://github.com/ziggystar12) of Mean Hamster Software: [MPE](https://meanhamster.com/games/mpe-power-engine), the first TR Host Extension, and the inspiration behind them * [**Paul Harker aka LessPaul**](https://github.com/LessPaul): Freezer cartridge contributions (Action Replay, Retro Replay, Final Cartridge III, Super Snapshot V5) From 5d60800e1bfddaf7b708ae147c82aaef746651c2 Mon Sep 17 00:00:00 2001 From: metalhexx Date: Tue, 3 Nov 2026 23:11:38 -0500 Subject: [PATCH 4/6] docs: tighten the Suite wording from review The README's remote control entry is back to one line, like the rest of that list. The C64 Ultimate page calls Trom Agent what it is, an AI companion, rather than quoting example requests. The DJ Mixer runs in any browser with MIDI support, not only Chrome or Edge. --- README.md | 7 +------ docs/ASID_Player.md | 2 +- docs/C64_Ultimate_Enhancements.md | 4 ++-- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index c413a907c..e49545312 100644 --- a/README.md +++ b/README.md @@ -22,12 +22,7 @@ * **Internet interface**: Connect to a [Telnet BBS](docs/Ethernet_Usage.md) or use the integrated [web browser](docs/Browser_Usage.md) to surf/search/download * **Remote Control** your C64 using * [NFC Launch System](docs/NFC_Loader.md): The feel of old school cartridges combined with [instant loading](https://www.youtube.com/watch?v=iNfQx2gx0hA) - * [TeensyROM Suite](https://github.com/MetalHexx/TeensyROM-Suite) for Windows, macOS and Linux, driving your TeensyROM over USB or Ethernet: - * [Trom UI](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-ui.md): browse, stream and launch your library from any browser, with live video, CRT effects and a [DJ Mixer](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/dj-mixer.md) that plays one or two C64s as decks - * [Trom Terminal](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-terminal.md): a BBS-style menu, plus one-line commands for your scripts - * [Trom Agent](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-agent.md): ask your AI coding agent to play sets, tour your library and set up the suite - * [Trom API](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-api.md): the engine behind them all, open to your own tools over HTTP - * Needs firmware 0.8.0.9 or later ([Getting started](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/getting-started.md#firmware)) + * [TeensyROM Suite](https://github.com/MetalHexx/TeensyROM-Suite) (cross-platform): [Trom UI](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-ui.md) with its [DJ Mixer](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/dj-mixer.md), [Trom Terminal](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-terminal.md), the [Trom Agent](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-agent.md) AI companion, and [Trom API](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-api.md) for your own tools * SID File Player with voice muting and speed control * Bitmap Picture viewer, Text/PETSCII viewer, Custom BASIC Commands, Autolaunch, *and more* * Lots of games, utilities, pics, and music built-in: no external media required to get started! diff --git a/docs/ASID_Player.md b/docs/ASID_Player.md index 3c098e415..c569486ca 100644 --- a/docs/ASID_Player.md +++ b/docs/ASID_Player.md @@ -123,7 +123,7 @@ Once the Frame Timer is turned on, the buffer size can be selected with `b` (sma * You can play with the frequency to adjust the playback tempo if needed. * **Trom UI DJ Mixer** to play and mix SID tunes live on one or two C64s * Install the [TeensyROM Suite](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/getting-started.md) and connect a TeensyROM by USB for each deck you play - * Open the [DJ Mixer](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/dj-mixer.md) in Trom UI in Chrome or Edge, and allow MIDI access + * Open the [DJ Mixer](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/dj-mixer.md) in Trom UI, in a browser with MIDI support, and allow MIDI access * Pick the TeensyROM each deck plays through; the mixer starts each one's ASID Player with a click
diff --git a/docs/C64_Ultimate_Enhancements.md b/docs/C64_Ultimate_Enhancements.md index 5691798b2..8f907188d 100644 --- a/docs/C64_Ultimate_Enhancements.md +++ b/docs/C64_Ultimate_Enhancements.md @@ -50,12 +50,12 @@ For more information: [NFC Loader Guide](/docs/NFC_Loader.md) - **[DJ Mixer](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/dj-mixer.md)**: One or two C64s become decks: beat-match, loop, cue and scratch SID tunes live, with every note from a real SID chip. Watch the [Mix Preview](https://youtu.be/PjhqYkmsScg) and [Scratch / Beat Juggle](https://youtu.be/xoJBOEPB5IY) - **[Copy Files](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-ui.md#copy-files-to-your-cart) and [Watch Folders](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-ui.md#watch-folders)**: Drag and drop files, folders and archives onto several TeensyROMs at once, or let a folder on your computer send whatever lands in it - **[Themes](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-ui.md#themes)**: Recolor the TeensyROM's own menu, on one TeensyROM or all -- **Just Ask**: Tell [Trom Agent](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-agent.md) "play me some Rob Hubbard" or "give me a 30-minute set" +- **AI Companion**: [Trom Agent](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-agent.md) helps you explore your collection, play mixes, and troubleshoot your setup with [Virtual Travis](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-agent.md#the-setup-doctor) - **Cross-Platform Support**: Windows, macOS, and Linux - **Featured Apps**: - [Trom UI](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-ui.md): the web app, home of the DJ Mixer - [Trom Terminal](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-terminal.md): a BBS-style menu plus one-line commands for your scripts - - [Trom Agent](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-agent.md): a plugin for your AI coding agent + - [Trom Agent](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-agent.md): your AI companion, as a plugin for your AI coding agent - [Trom API](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-api.md): the engine behind them all, open to your own tools - [TR Transfer/Control App](https://github.com/SensoriumEmbedded/TRWinApp) (Windows Only) From dd25e7228438861f57ce8a06ca6e85eed58f2352 Mon Sep 17 00:00:00 2001 From: metalhexx Date: Tue, 3 Nov 2026 23:11:59 -0500 Subject: [PATCH 5/6] docs: keep the flashing skill's generic TeensyROM app wording Both lines mean any TeensyROM app that holds the serial port, not Trom API alone, so they go back to upstream's wording. --- .claude/skills/teensyrom-build/SKILL.md | 4 ++-- .claude/skills/teensyrom-build/references/flash.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.claude/skills/teensyrom-build/SKILL.md b/.claude/skills/teensyrom-build/SKILL.md index f220cbbf7..b659c9e08 100644 --- a/.claude/skills/teensyrom-build/SKILL.md +++ b/.claude/skills/teensyrom-build/SKILL.md @@ -70,8 +70,8 @@ Step 2 builds one cartridge type per run. Build both when both kinds of board ne - With more than one Teensy attached, never call `teensy_post_compile -port=...` yourself: with `-port` alone it falls back to auto-search and can write the other board. The flasher passes the board's whole address. -- Stop anything that holds a board's serial port (Trom API or another TeensyROM app, - a serial monitor) before flashing; a board it holds cannot answer and cannot be identified. +- Stop anything that holds a board's serial port (a TeensyROM app or API, a serial + monitor) before flashing; a board it holds cannot answer and cannot be identified. - TeensyROM settings survive a USB flash. ## Options diff --git a/.claude/skills/teensyrom-build/references/flash.md b/.claude/skills/teensyrom-build/references/flash.md index 896a7aa1d..8463d0cc4 100644 --- a/.claude/skills/teensyrom-build/references/flash.md +++ b/.claude/skills/teensyrom-build/references/flash.md @@ -35,7 +35,7 @@ npm run flash -- --all # every board, each with the newest im It refuses, and lists the attached boards, when it cannot tell: two boards of the image's type (name one with `--uid`), a board that does not answer, or none of the image's type (then the image is for the other cartridge). A board that does not answer is usually one -whose serial port another program holds, such as Trom API or a serial monitor. A board +whose serial port another program holds, such as a TeensyROM app or a serial monitor. A board already waiting in the bootloader cannot be asked what it is. On its own it is written on the image's word; beside another board the tool refuses, because the Teensy Loader writes to whichever board it finds in the bootloader. From 406270d1189fbb696d2691090ef8797ce867f111 Mon Sep 17 00:00:00 2001 From: metalhexx Date: Tue, 3 Nov 2026 23:47:09 -0500 Subject: [PATCH 6/6] docs: list Raspberry Pi among the Suite's platforms TeensyROM Suite adds a 64-bit ARM Linux build for Raspberry Pi, so the places that name the Suite's platforms include it. --- docs/ASID_Player.md | 2 +- docs/C64_Ultimate_Enhancements.md | 2 +- docs/Ethernet_Usage.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/ASID_Player.md b/docs/ASID_Player.md index c569486ca..348999ac8 100644 --- a/docs/ASID_Player.md +++ b/docs/ASID_Player.md @@ -13,7 +13,7 @@ Here are a few ASID sources which can be used to stream to your C64/SID. See det |**[SID Factory II](https://blog.chordian.net/sf2/)**|Win/Mac/Linux|Cross-platform SID music editor with ASID output ([beta branch](https://github.com/Chordian/sidfactory2/tree/asid-support))| |**[ASIDXP](https://elektron.se/support-downloads/sidstation#resources)**|Win/Mac|Stream SID files directly from your local hard drive| |**[SIDPlay](http://www.sidmusic.org/sidplay/mac/)**|Mac|Stream from your local hard drive with visualizations, etc| -|**[Trom UI DJ Mixer](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/dj-mixer.md)**|Win/Mac/Linux|Play and mix SID tunes live on one or two C64s: beat-match, loop, cue and scratch| +|**[Trom UI DJ Mixer](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/dj-mixer.md)**|Win/Mac/Linux/Pi|Play and mix SID tunes live on one or two C64s: beat-match, loop, cue and scratch| ## USB/TeensyROM Setup * Connect USB cable from a MIDI Host/computer to the USB Type B Micro Device port on the Teensy module. diff --git a/docs/C64_Ultimate_Enhancements.md b/docs/C64_Ultimate_Enhancements.md index 8f907188d..96c9c87af 100644 --- a/docs/C64_Ultimate_Enhancements.md +++ b/docs/C64_Ultimate_Enhancements.md @@ -51,7 +51,7 @@ For more information: [NFC Loader Guide](/docs/NFC_Loader.md) - **[Copy Files](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-ui.md#copy-files-to-your-cart) and [Watch Folders](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-ui.md#watch-folders)**: Drag and drop files, folders and archives onto several TeensyROMs at once, or let a folder on your computer send whatever lands in it - **[Themes](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-ui.md#themes)**: Recolor the TeensyROM's own menu, on one TeensyROM or all - **AI Companion**: [Trom Agent](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-agent.md) helps you explore your collection, play mixes, and troubleshoot your setup with [Virtual Travis](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-agent.md#the-setup-doctor) -- **Cross-Platform Support**: Windows, macOS, and Linux +- **Cross-Platform Support**: Windows, macOS, Linux, and Raspberry Pi - **Featured Apps**: - [Trom UI](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-ui.md): the web app, home of the DJ Mixer - [Trom Terminal](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-terminal.md): a BBS-style menu plus one-line commands for your scripts diff --git a/docs/Ethernet_Usage.md b/docs/Ethernet_Usage.md index d5fd5a2fb..e2b7dd59a 100644 --- a/docs/Ethernet_Usage.md +++ b/docs/Ethernet_Usage.md @@ -112,7 +112,7 @@ You can control the TeensyROM via TCP at port 2112 from the various available ex ### Applications Supporting TCP * [TR Transfer/Control App](https://github.com/SensoriumEmbedded/TRWinApp) - Great for testing and exploring the various TCP/Serial command capabilities on Windows. -* [Trom API](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-api.md) - The engine of the [TeensyROM Suite](https://github.com/MetalHexx/TeensyROM-Suite), which lets Trom UI, Trom Terminal and Trom Agent reach your TeensyROM over the network as well as USB ([Connect your cart](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/getting-started.md#connect-your-cart)). Available on Mac, Linux and Windows. +* [Trom API](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/trom-api.md) - The engine of the [TeensyROM Suite](https://github.com/MetalHexx/TeensyROM-Suite), which lets Trom UI, Trom Terminal and Trom Agent reach your TeensyROM over the network as well as USB ([Connect your cart](https://github.com/MetalHexx/TeensyROM-Suite/blob/main/docs/getting-started.md#connect-your-cart)). Available on Mac, Linux, Raspberry Pi and Windows. * It extends the TCP support with a simple REST-style HTTP API and OpenAPI spec, making it easier to build your own TeensyROM apps without programming low-level TCP/Serial code and managing TeensyROM FW state. >_**Performance Tip**: