CommunityImagengithub.com

Jakeschincariol/console-skill

Construye puertos para Windows, Mac, Linux, Steam Deck, Android y PS Vita y los empaqueta sin incluir ningún archivo del juego. doctor verifica las herramientas de la máquina para un objetivo e imprime el comando exacto de instalación para lo que falte; plan imprime los pasos de compilación tomados del README de PS2Recomp, android/README.md y scripts de vita; package crea una carpeta de jugador en console/dist/ (el ejecutor, sus librerías, una carpeta game/ vacía, PLAYERS.md, un script de inicio, .recomp.json) y se niega rotundamente si hay una imagen de disco, un ELF de PS2, un módulo IRX, código fuente del ejecutor recompilado u otros datos del juego dentro; guard ejecuta esa verificación en cualquier carpeta; recomp-json escribe el .recomp.json opcional del proyecto. Úsalo cuando el usuario diga 'ponlo en mi Steam Deck', 'compílalo para Android', 'juega en mi teléfono', 'en mi TV', 'build de Vita', 'build de Mac', 'empaquétalo', 'crea una carpeta de lanzamiento', '¿es seguro comprimir esto?' o después de que el puerto funcione en la máquina donde se construyó.

¿Qué es console-skill?

Esta habilidad para Claude permite construir y empaquetar puertos de juegos de PS2 (basados en PS2Recomp) para múltiples plataformas: Windows, macOS, Linux, Steam Deck, Android y PS Vita. Está diseñada para automatizar todo el flujo de trabajo: verificar las herramientas necesarias para cada plataforma (doctor), generar los pasos de compilación específicos para cada objetivo (plan), compilar el ejecutor recompilado, y empaquetarlo en una carpeta lista para el jugador (package) que incluye el ejecutor, librerías, un script de inicio y un archivo .recomp.json, pero que **nunca** contiene archivos del juego original (imágenes de disco, ELF, IRX, etc.). La habilidad incluye un sistema de protección (guard) que verifica que no se incluya ningún dato del juego en el paquete. Se usa mediante comandos de Python (targets.py) con diferentes opciones y está diseñada para que el usuario final agregue su propia copia del disco en la carpeta game/ vacía. Funciona con cualquier proyecto que use PS2Recomp y requiere que el juego ya funcione en la máquina de desarrollo antes de empaquetar. Soporta los objetivos: windows, macos, linux, steamdeck, android, vita y web (solo plan y doctor).

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Jakeschincariol/console-skill/tree/HEAD/console-anywhere

Installed? Explore more Imagen skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

console-anywhere

Un puerto de PS2Recomp es un programa nativo normal (ps2EntryRunner) compilado a partir del código de juego recompilado más el runtime, renderizado con raylib. El mismo proyecto CMake lo compila en Windows, macOS (Apple Silicon mediante sse2neon), Linux y Steam Deck; android/ genera un APK y vita/ genera un vpk. Esta habilidad verifica el toolchain, imprime los pasos correctos para cada dispositivo y empaqueta el resultado para que el jugador aporte el juego desde su propio disco.

Límites honestos: PS2Recomp dice que se prueba principalmente con MSVC, por lo que las compilaciones para Mac, Linux, Android y Vita reciben menos pruebas; la Vita es mucho más lenta que una PC; Android no tiene controles en pantalla todavía. Y el ejecutor se compila a partir del código recompilado de tu juego, por lo que un paquete es para tus propios dispositivos: nunca contiene el disco, pero sigue derivando del juego, por lo que no es algo para subir.

${CLAUDE_SKILL_DIR} más abajo es la carpeta de esta habilidad (donde reside este SKILL.md).

python3 "${CLAUDE_SKILL_DIR}/targets.py" doctor                       # el SO de esta máquina
python3 "${CLAUDE_SKILL_DIR}/targets.py" doctor --target android --target vita   # o --target all
python3 "${CLAUDE_SKILL_DIR}/targets.py" plan --target steamdeck --elf-name SLUS_203.12
python3 "${CLAUDE_SKILL_DIR}/targets.py" package --runner out/release/ps2xRuntime/ps2EntryRunner \
        --target linux --elf-name SLUS_203.12 --game "My Game" --serial SLUS-20312 \
        --out console/dist/mygame-linux
python3 "${CLAUDE_SKILL_DIR}/targets.py" guard console/dist/mygame-linux   # antes de comprimir o subir nada
python3 "${CLAUDE_SKILL_DIR}/targets.py" recomp-json --game "My Game" --serial SLUS-20312 --status playable

Objetivos: windows, macos, linux, steamdeck, android, vita y web (plan y doctor solamente: un toolchain aparte). plan acepta --repo (tu checkout de PS2Recomp) y --build-dir. package acepta --lib FILE (librerías adicionales), --allow FILE, --replace, --status, --json. Códigos de salida: 0 ok, 1 algo faltante o rechazado, 2 entrada incorrecta.

Lo que lee y escribe

archivoqué
tu salida de compilaciónps2EntryRunner (+ .dll / .so / .dylib a su lado), app-release.apk o ps2EntryRunner.vpk
console/dist/<nombre>/la carpeta del jugador: ejecutor, librerías, game/ (vacía), PLAYERS.md, play.bat / play.command / play.sh / install-android.sh, .recomp.json, .console-dist.json
templates/PLAYERS.mdla plantilla de instrucciones para el jugador
.recomp.jsondescripción opcional del proyecto leída por listas de recomp (PS2Recomp mismo lo ignora)
console/STATE.mdlee la carpeta de compilación y la ruta del checkout; registra lo que se compiló

Método

  1. Pregunta dónde quieren jugar y en qué: una PC, una Mac, una Steam Deck, un teléfono Android, tableta o caja TV, una Vita homebrew. "En la TV" significa una caja Android TV con un mando Bluetooth, o una PC o Deck conectada a la TV con un controlador.
  2. El puerto ya debe funcionar aquí. Compílalo y pruébalo con /console-tester en la máquina donde desarrollas primero. Un fallo en el escritorio no mejorará en un teléfono.
  3. Doctor. targets.py doctor --target <t>. Instala lo que FALTA con el comando impreso, luego ejecuta doctor de nuevo.
  4. Plan. targets.py plan --target <t> --elf-name <el ELF del disco>. Sigue los pasos en el checkout del usuario (el que contiene su código recompilado). Detalles por objetivo y la fuente de cada hecho: reference/targets.md.
  5. Compila con los comandos del plan. Solo incremental; nunca limpies una carpeta de compilación, nunca CLEAN=1 para la Vita. Una carpeta de lanzamiento separada (out/release) deja intacta la compilación diaria.
  6. Empaqueta. targets.py package --runner <archivo compilado> --target <t> --out console/dist/<nombre>. Añade --elf-name (si no, el script de inicio lee BOOT2 del SYSTEM.CNF del jugador) y --game/--serial para .recomp.json.
  7. Lee el veredicto de guard. Un rechazo lista cada archivo y por qué. Corrige la causa (--lib incorrecto, un archivo de disco junto al ejecutor). Nunca añadas una línea de permiso para una imagen de disco, un ELF de PS2, un IRX, SYSTEM.CNF o fuentes del ejecutor: el archivo de permisos es solo para un falso positivo que sea realmente un archivo propio del usuario, con la razón escrita a su lado. Detalles: reference/guard.md.
  8. Instala en el dispositivo siguiendo PLAYERS.md, luego el jugador extrae su propio disco en game/. Pruébalo allí y registra el resultado en console/STATE.md.

Por objetivo en una línea

objetivoejecutorcómo se encuentra el ELFnotas
Windowsps2EntryRunner.exe + DLLs de FFmpegplay.bat pasa game\<ELF>MSVC, la ruta más probada
macOSps2EntryRunnerplay.command pasa game/<ELF>compilaciones arm64 mediante sse2neon; necesita Homebrew FFmpeg a menos que se compile sin él
Linuxps2EntryRunnerplay.shraylib necesita encabezados de X11 y GL para compilar
Steam Deckla compilación de Linuxplay.sh, añadido a Steam como juego no Steamo la compilación de Windows con Proton (no probado aquí)
Androidapp-release.apkincluido con -Pps2xBootElf=...los archivos van a /storage/emulated/0/Android/data/com.ps2x.runner/files/ con adb push; empareja un controlador
PS Vitaps2EntryRunner.vpkincluido por ./vita/build.sh <ux0:data/... ruta>./vita/setup.sh una vez; instala con VitaShell; lento
web(no es un objetivo de PS2Recomp)snuri00/ps2-web-recomp es un recompilador diferente: un segundo puerto del mismo disco, experimental

Barandillas de seguridad

  • Trae tu propio juego. Cada jugador proporciona el juego desde un disco que posee, extraído por él mismo. Nunca descargues ISOs, ELFs o archivos BIOS, nunca ayudes a encontrarlos, nunca los pidas. No se necesita BIOS.
  • Nada del juego se publica. package rechaza imágenes de disco (ISO, BIN, IMG, MDF, NRG, CHD, CSO y contenido ISO 9660 con cualquier nombre), ELFs de PS2 y módulos IRX (por magia y máquina), nombres estilo disco como SLUS_203.12, SYSTEM.CNF, fuentes recompiladas de runner/, cualquier cosa dentro de game/ y cualquier archivo de más de 512 MB. El ejecutor en sí está compilado a partir del código del juego recompilado: el paquete es para los dispositivos propios del usuario, no para subir. Comparte parches, overrides y activos originales.
  • No afiliado con Sony. PlayStation es una marca registrada de Sony Interactive Entertainment. PS Vita homebrew, Steam, Android y las demás plataformas pertenecen a sus dueños.
  • Nunca destruyas los archivos del usuario. --replace solo reemplaza una carpeta creada por esta herramienta y se niega mientras game/ contenga algo (el disco del jugador, partidas en mc0/).

Pasar el testigo a

  • /console-tester para ejecutar la compilación en esta máquina antes y después de empaquetar.
  • /console-controller para los controles del dispositivo (distribución xbox en Steam Deck, zonas táctiles o un mando Bluetooth en Android).
  • /console-saves para mover partidas entre dispositivos (mc0/ está junto al ELF del juego).

Skills relacionados