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
| arquivo | o que é |
|---|---|
| sua saída de compilação | ps2EntryRunner (+ .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.md | o modelo de instruções para o jogador |
.recomp.json | descrição opcional do projeto lida por listas recomp (o PS2Recomp em si ignora) |
console/STATE.md | lê a pasta de compilação e o caminho do checkout; registra o que foi compilado |
Método
- 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.
- A porta já deve funcionar aqui. Compile e teste com
/console-testerna máquina onde você desenvolve primeiro. Uma falha no desktop não vai melhorar em um telefone. - Doctor.
targets.py doctor --target <t>. Instale o que está FALTANDO com o comando impresso, depois execute doctor novamente. - 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. - Compile com os comandos do plan. Incremental apenas; nunca limpe uma pasta de compilação, nunca use
CLEAN=1para o Vita. Uma pasta de release separada (out/release) mantém a compilação do dia a dia intacta. - Empacote.
targets.py package --runner <arquivo compilado> --target <t> --out console/dist/<nome>. Adicione--elf-name(senão o script de inicialização lêBOOT2doSYSTEM.CNFdo jogador) e--game/--serialpara.recomp.json. - Leia o veredito do guard. Uma recusa lista cada arquivo e o motivo. Corrija a causa (
--liberrado, 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.CNFou 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. - Instale no dispositivo seguindo
PLAYERS.md, então o jogador extrai o próprio disco paragame/. Teste lá e registre o resultado emconsole/STATE.md.
Por alvo em uma linha
| alvo | executável | como o ELF é encontrado | notas |
|---|---|---|---|
| Windows | ps2EntryRunner.exe + DLLs FFmpeg | play.bat passa game\<ELF> | MSVC, o caminho mais testado |
| macOS | ps2EntryRunner | play.command passa game/<ELF> | compilações arm64 via sse2neon; precisa de Homebrew FFmpeg a menos que compilado sem ele |
| Linux | ps2EntryRunner | play.sh | raylib precisa de cabeçalhos X11 e GL para compilar |
| Steam Deck | a compilação Linux | play.sh, adicionado ao Steam como jogo não-Steam | ou a compilação Windows via Proton (não testado aqui) |
| Android | app-release.apk | embutido com -Pps2xBootElf=... | arquivos vão para /storage/emulated/0/Android/data/com.ps2x.runner/files/ com adb push; emparelhe um controle |
| PS Vita | ps2EntryRunner.vpk | embutido 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.
packagerecusa 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 comoSLUS_203.12,SYSTEM.CNF, fontes recompiladas derunner/, qualquer coisa emgame/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.
--replacesó substitui uma pasta que esta ferramenta criou e recusa enquantogame/contiver algo (o disco do jogador, saves emmc0/).
Encaminhar para
/console-testerpara executar a compilação nesta máquina antes e depois do empacotamento./console-controllerpara os controles do dispositivo (layoutxboxno Steam Deck, zonas de toque ou um controle Bluetooth no Android)./console-savespara mover saves entre dispositivos (mc0/fica ao lado do ELF do jogo).