CommunityImagemgithub.com

console-anywhere

Compila portas PS2Recomp para Windows, Mac, Linux, Steam Deck, Android e PS Vita e as empacota sem incluir nenhum arquivo do jogo.

O que é console-anywhere?

Este skill permite que uma porta PS2Recomp seja compilada e empacotada para múltiplos dispositivos, como Windows, macOS, Linux, Steam Deck, Android e PS Vita, sem incluir nenhum dado do jogo original. Ele verifica as ferramentas necessárias para cada alvo, gera os passos de compilação baseados na documentação oficial do PS2Recomp e cria uma pasta pronta para distribuição contendo o executável, bibliotecas, scripts de inicialização e instruções para o jogador. O skill também possui proteções rigorosas contra a inclusão acidental de discos, ELFs, módulos IRX ou códigos recompilados, garantindo que o pacote seja seguro para uso pessoal. Suporta os comandos doctor (verificação de ferramentas), plan (exibição dos passos), package (empacotamento), guard (verificação de segurança) e recomp-json (geração de metadados), sendo acionado por frases como 'coloca no meu Steam Deck', 'compila pra Android' ou 'empacota'. Ideal para desenvolvedores que querem distribuir suas portas para amigos ou dispositivos pessoais de forma limpa e segura.

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

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que console-anywhere faz?

Uma porta PS2Recomp é um programa nativo normal (ps2EntryRunner) compilado a partir do código recompilado do jogo, mais o runtime, desenhado com raylib. O mesmo projeto CMake compila no Windows, macOS (Apple Silicon através de sse2neon), Linux e Steam Deck; android/ gera um APK e vita/ gera um vpk. Este skill verifica a toolchain, imprime os passos corretos para cada dispositivo e empacota o resultado para que o jogador traga o jogo do seu próprio disco.

Limitações honestas: o PS2Recomp diz que é testado principalmente com MSVC, então compilações para Mac, Linux, Android e Vita recebem menos testes; o Vita é muito mais lento que um PC; o Android não tem controles na tela ainda. E o executável é compilado a partir do código recompilado do seu jogo, então um pacote é para seus próprios dispositivos: ele nunca contém o disco, mas ainda é derivado do jogo, portanto não é algo para ser enviado para upload.

${CLAUDE_SKILL_DIR} abaixo é a pasta deste skill (onde este SKILL.md reside).

python3 "${CLAUDE_SKILL_DIR}/targets.py" doctor                       # sistema operacional desta máquina
python3 "${CLAUDE_SKILL_DIR}/targets.py" doctor --target android --target vita   # ou --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 zipar ou enviar qualquer coisa
python3 "${CLAUDE_SKILL_DIR}/targets.py" recomp-json --game "My Game" --serial SLUS-20312 --status playable

Alvos: windows, macos, linux, steamdeck, android, vita e web (apenas plan e doctor: uma toolchain separada). plan aceita --repo (seu checkout do PS2Recomp) e --build-dir. package aceita --lib FILE (bibliotecas extras), --allow FILE, --replace, --status, --json. Códigos de saída: 0 ok, 1 algo faltando ou recusado, 2 entrada inválida.

O que ele lê e escreve

arquivoo que é
sua saída de compilaçãops2EntryRunner (+ .dll / .so / .dylib ao lado), app-release.apk ou ps2EntryRunner.vpk
console/dist/<nome>/a pasta do jogador: executável, bibliotecas, game/ (vazia), PLAYERS.md, play.bat / play.command / play.sh / install-android.sh, .recomp.json, .console-dist.json
templates/PLAYERS.mdo modelo de instruções para o jogador
.recomp.jsondescrição opcional do projeto lida por listas recomp (o PS2Recomp em si ignora)
console/STATE.mdlê a pasta de compilação e o caminho do checkout; registra o que foi compilado

Método

  1. Pergunte onde querem jogar e em qual dispositivo: um PC, um Mac, um Steam Deck, um telefone Android, tablet ou TV box, um Vita homebrew. "Na TV" significa uma TV box Android com um controle Bluetooth, ou um PC ou Deck conectado à TV com um controle.
  2. A porta já deve funcionar aqui. Compile e teste com /console-tester na máquina onde você desenvolve primeiro. Uma falha no desktop não vai melhorar em um telefone.
  3. Doctor. targets.py doctor --target <t>. Instale o que está FALTANDO com o comando impresso, depois execute doctor novamente.
  4. Plan. targets.py plan --target <t> --elf-name <o ELF do disco>. Siga os passos no checkout do usuário (aquele que contém o código recompilado). Detalhes por alvo e a fonte de cada informação: reference/targets.md.
  5. Compile com os comandos do plan. Incremental apenas; nunca limpe uma pasta de compilação, nunca use CLEAN=1 para o Vita. Uma pasta de release separada (out/release) mantém a compilação do dia a dia intacta.
  6. Empacote. targets.py package --runner <arquivo compilado> --target <t> --out console/dist/<nome>. Adicione --elf-name (senão o script de inicialização lê BOOT2 do SYSTEM.CNF do jogador) e --game/--serial para .recomp.json.
  7. Leia o veredito do guard. Uma recusa lista cada arquivo e o motivo. Corrija a causa (--lib errado, um arquivo de disco ao lado do executável). Nunca adicione uma linha de permissão para uma imagem de disco, um ELF de PS2, um IRX, SYSTEM.CNF ou fontes do executável: o arquivo de permissão é apenas para um falso positivo que é realmente um arquivo próprio do usuário, com o motivo escrito ao lado. Detalhes: reference/guard.md.
  8. Instale no dispositivo seguindo PLAYERS.md, então o jogador extrai o próprio disco para game/. Teste lá e registre o resultado em console/STATE.md.

Por alvo em uma linha

alvoexecutávelcomo o ELF é encontradonotas
Windowsps2EntryRunner.exe + DLLs FFmpegplay.bat passa game\<ELF>MSVC, o caminho mais testado
macOSps2EntryRunnerplay.command passa game/<ELF>compilações arm64 via sse2neon; precisa de Homebrew FFmpeg a menos que compilado sem ele
Linuxps2EntryRunnerplay.shraylib precisa de cabeçalhos X11 e GL para compilar
Steam Decka compilação Linuxplay.sh, adicionado ao Steam como jogo não-Steamou a compilação Windows via Proton (não testado aqui)
Androidapp-release.apkembutido com -Pps2xBootElf=...arquivos vão para /storage/emulated/0/Android/data/com.ps2x.runner/files/ com adb push; emparelhe um controle
PS Vitaps2EntryRunner.vpkembutido por ./vita/build.sh <caminho ux0:data/...>./vita/setup.sh uma vez; instale com VitaShell; lento
web(não é um alvo do PS2Recomp)snuri00/ps2-web-recomp é um recompilador diferente: uma segunda porta do mesmo disco, experimental

Barreiras de proteção

  • Traga seu próprio jogo. Cada jogador fornece o jogo a partir de um disco que possui, extraído por eles mesmos. Nunca baixe ISOs, ELFs ou arquivos de BIOS, nunca ajude a encontrá-los, nunca peça por eles. Nenhuma BIOS necessária.
  • Nada do jogo é publicado. package recusa imagens de disco (ISO, BIN, IMG, MDF, NRG, CHD, CSO e conteúdo ISO 9660 sob qualquer nome), ELFs de PS2 e módulos IRX (por magic e machine), nomes estilo disco como SLUS_203.12, SYSTEM.CNF, fontes recompiladas de runner/, qualquer coisa em game/ e qualquer arquivo acima de 512 MB. O executável em si é compilado a partir do código recompilado do jogo: o pacote é para os dispositivos do usuário, não para upload. Compartilhe patches, overrides e assets originais.
  • Não afiliado à Sony. PlayStation é uma marca registrada da Sony Interactive Entertainment. Homebrew do PS Vita, Steam, Android e as outras plataformas pertencem a seus proprietários.
  • Nunca destrua os arquivos do usuário. --replace só substitui uma pasta que esta ferramenta criou e recusa enquanto game/ contiver algo (o disco do jogador, saves em mc0/).

Encaminhar para

  • /console-tester para executar a compilação nesta máquina antes e depois do empacotamento.
  • /console-controller para os controles do dispositivo (layout xbox no Steam Deck, zonas de toque ou um controle Bluetooth no Android).
  • /console-saves para mover saves entre dispositivos (mc0/ fica ao lado do ELF do jogo).

Habilidades Relacionadas