mirror of
https://github.com/Cogential/frametanium.git
synced 2026-10-23 05:00:34 +02:00
manager.py is a standard-library service on the Frame (port 8643). It lists each catalog port's releases, downloads the chosen asset (zip, or an AppImage it unpacks with --appimage-extract and gives a launcher), stages it next to ~/devkit-game/<gameid> and swaps it in, keeping ROMs placed next to run.sh and the previous install for rollback. It refuses while the game runs, fixes executable bits, registers the shortcut with Steam and adds library art. A token in the settings unlocks private repos. app/ is the controller-driven headset front end (C + SDL2, talks to the service over loopback with tab-separated replies); page.html is the browser one. deploy.sh installs both over SSH. Tested on the laptop against the real releases: install, version switch, ROM carry-over, rollback, the running-game guard, the AppImage path (under qemu), and both front ends. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VHDaz86aayqMULHsjByEmT
41 lines
1.5 KiB
JSON
41 lines
1.5 KiB
JSON
[
|
|
{
|
|
"id": "soh",
|
|
"name": "Ocarina of Time (Ship of Harkinian)",
|
|
"repo": "Cogential/Shipwright-frame",
|
|
"asset": "soh-steam-frame-arm64.zip",
|
|
"type": "zip",
|
|
"gameid": "Ocarina_of_Time_SoH",
|
|
"launch": "run.sh",
|
|
"keep": ["*.z64", "*.n64", "*.v64"],
|
|
"data": "~/.local/share/soh",
|
|
"rom_hint": "Send your Ocarina of Time ROM with Frame Inbox, or put a .z64 in ~/.local/share/soh."
|
|
},
|
|
{
|
|
"id": "2ship",
|
|
"name": "Majora's Mask (2 Ship 2 Harkinian)",
|
|
"repo": "Cogential/2ship2harkinian-frame",
|
|
"asset": "*arm64.appimage",
|
|
"type": "appimage",
|
|
"gameid": "Majoras_Mask_2Ship",
|
|
"launch": "run.sh",
|
|
"keep": ["*.z64"],
|
|
"data": "~/.local/share/2ship",
|
|
"rom_hint": "Send your Majora's Mask ROM with Frame Inbox, or put a .z64 in ~/.local/share/2ship.",
|
|
"run_sh": [
|
|
"#!/bin/sh",
|
|
"# Steam Frame launcher for 2 Ship 2 Harkinian (written by Port Manager). Data, saves and the built mm.o2r",
|
|
"# live in ~/.local/share/2ship, so reinstalling this folder keeps them.",
|
|
"D=\"$(cd \"$(dirname \"$0\")\" && pwd)\"",
|
|
"export SHIP_HOME=\"${SHIP_HOME:-$HOME/.local/share/2ship}\"",
|
|
"mkdir -p \"$SHIP_HOME\"",
|
|
"# Hand a ROM shipped next to this script to the extractor until mm.o2r exists.",
|
|
"if [ ! -f \"$SHIP_HOME/mm.o2r\" ]; then",
|
|
" for rom in \"$D\"/*.z64; do [ -f \"$rom\" ] && cp -n \"$rom\" \"$SHIP_HOME/\"; done",
|
|
"fi",
|
|
"chmod +x \"$D/usr/bin/2s2h.elf\" 2>/dev/null",
|
|
"cd \"$D/usr/bin\" && exec ./2s2h.elf \"$@\""
|
|
]
|
|
}
|
|
]
|