0f2fe6de62411cbbc3d87908ed7561115bca9350
RETROARCH_STORE.md is the design, written from measurements rather than documentation: the format samples, thumbnail layout and core names come from a real RetroArch install on this machine, the core availability from the libretro buildbot index, and the CRC32s from the catalog itself. Three findings shaped it. The playlist folder is not necessarily inside the RetroArch directory — on the machine measured, playlist_directory is under ~/Documents while cores and thumbnails are under ~/Library — so reading retroarch.cfg is a requirement, not a nicety. Thumbnails must be PNG, and one of our covers is a GIF, which no store had cared about before. And a .lpl entry has nowhere to put a description, so desc and author do not survive the trip. Built the same day, in three repositories: engines/warpstore (the shared core, extracted immediately rather than in the second phase the plan proposed), tools/warp-engine-retroarch-store and tools/ttg-retroarch-store. The closing section of the design records what the implementation changed about it. MORE_STORES.md item 4 is closed, its "a minta" section now points at the extracted core, and REPO_REFACT.md carries the three new repos — check-repos.sh is green at 49. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
devarea
Workspace management repo for TTG: use it to clone the whole workspace in
its category-folder structure, and to verify that the clone list is in sync
with the Gitea server (git.teletypegames.org).
Quick start
On a fresh machine:
mkdir TTG && cd TTG
git clone ssh://git@git.teletypegames.org:2222/tools/devarea
cd devarea
make setup # install tea + clone all repos + check
Repos are cloned into the parent directory of the devarea checkout (the
workspace root). To use a different target: make clone ROOT=/path/to/workspace.
Make targets
| Target | What it does |
|---|---|
make help |
List available targets (default) |
make tea |
Install tea (Gitea CLI) via Homebrew if missing, and verify the login |
make clone |
Clone all repos based on scripts/repos.list; existing ones are skipped |
make check |
Compare the clone list against the server (tea repo list --output json) |
make setup |
All three in one: tea + clone + check |
Scripts
All scripts live under scripts/ and can also be run standalone:
install-tea.sh— installs tea and verifies the login. Without a login it prints the setup command (tea login add --name ttg --url https://git.teletypegames.org).clone-repos.sh [target-dir]— clones every line ofrepos.listinto the given structure. Idempotent: existing clones are skipped.check-repos.sh— checks in both directions: repos that exist on the server but are missing from the list (MISSING), and repos listed as Gitea repos but absent from the server (STALE). Exits with 1 on any hit, so it is CI-friendly.
Data files
scripts/repos.list— the repos to clone, one per line in<workspace-relative path>|<clone URL>form. New repo on the server → add it here (make checkwill complain if it is missing). Non-Gitea repos (GitHub) may also appear; the check skips those.scripts/repos.ignore— repos that exist on the server but are intentionally not cloned (<owner>/<name>); the check does not report these as missing.
Workspace structure
TTG/
├── devarea/ # this repo
├── teletypegames/ # public site monorepo (GitHub)
├── wiki-pages/ # wiki mirror (Grav)
├── archive/ # retired projects
├── demos/ # engine demos, experiments
├── games/ # games
├── media/ # assets, images (not git)
├── tools/ # standalone tools, infra
├── tools_bbs/ # BBS-related repos
├── tools_build/ # engine/build toolchains (*-tools)
└── tools_libs/ # own libraries (inkwell, rubbs, gorpg)
Estate documentation
These describe the estate as a whole, which is why they live here rather than in any single repo:
- WIKI_CONNECTION.md — which repo is documented by which wiki page, and which Gitea org each repo belongs to.
- REPO_REFACT.md — the Gitea org structure: what each org is for and what it contains.
- ECOSYSTEM_PLAN.md — what we have per org towards a complete game development lifecycle, and what is still missing.
- MORE_STORES.md — which further host platforms could get a store like the Batocera one, measured against what the catalog actually ships.
The ttg-ops plugin in ttg-marketplace reads these rather than carrying its
own copy of the rules.
Languages
Shell
83.6%
Makefile
16.4%