Community影像github.com

Jakeschincariol/console-skill

將 PS2Recomp 的移植作品打包到 Windows、Mac、Linux、Steam Deck、Android 和 PS Vita,不包含任何遊戲檔案。內建檢查工具鏈與建置規劃功能。

console-skill 是什麼?

`console-anywhere` 是一個 AI agent 技能,用於將 PS2Recomp 的移植作品(即重新編譯的遊戲程式碼加上 raylib 執行時)打包成可在多種平台獨立執行的格式,但不包含任何遊戲資料(如光碟映像、PS2 ELF、IRX 模組等)。該技能支援 Windows、macOS(Apple Silicon 透過 sse2neon 支援)、Linux、Steam Deck、Android(APK)和 PS Vita(VPK),並提供 `doctor`、`plan`、`package`、`guard` 和 `recomp-json` 等指令。`doctor` 會檢查目標平台的工具鏈是否齊全,並輸出遺失工具的安裝指令;`plan` 根據 PS2Recomp 官方文件顯示建置步驟;`package` 將執行檔、函式庫、空白 game/ 資料夾、PLAYERS.md 啟動腳本和 .recomp.json 打包到 console/dist/ 中,且會拒絕任何遊戲相關檔案。`guard` 在壓縮或分享前檢查資料夾,確保不含機敏內容。此技能特別適用於使用者要求「幫我放到 Steam Deck 上」、「幫我編成 Android 版」、「包成發佈資料夾」等場景。

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

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

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

console-anywhere

PS2Recomp 的移植作品是一個正常的原生程式(ps2EntryRunner),由重新編譯的遊戲程式碼加上執行時庫組成,並使用 raylib 繪圖。同一個 CMake 專案可在 Windows、macOS(透過 sse2neon 支援 Apple Silicon)、Linux 及 Steam Deck 上編譯;android/ 可產生 APK,vita/ 可產生 vpk。本技能會檢查工具鏈、顯示各裝置的建置步驟,並將結果打包,讓玩家從自己的光碟中提取遊戲。

誠實的限制:PS2Recomp 表示主要使用 MSVC 測試,因此 Mac、Linux、Android 和 Vita 的建置較少測試;Vita 比 PC 慢得多;Android 尚未支援螢幕觸控。此外,執行檔是由您的遊戲重新編譯程式碼編譯而成,因此套件僅供您自己的裝置使用:它絕不包含光碟內容,但仍衍生自遊戲,因此不適合上傳。

${CLAUDE_SKILL_DIR} 指的是本技能的資料夾(即 SKILL.md 所在位置)。

python3 "${CLAUDE_SKILL_DIR}/targets.py" doctor                       # 本機作業系統
python3 "${CLAUDE_SKILL_DIR}/targets.py" doctor --target android --target vita   # 或 --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   # 在壓縮或推送任何東西之前
python3 "${CLAUDE_SKILL_DIR}/targets.py" recomp-json --game "My Game" --serial SLUS-20312 --status playable

目標平台:windows、macos、linux、steamdeck、android、vita 和 web(僅限 plan 和 doctor:使用獨立的工具鏈)。plan 可使用 --repo(您的 PS2Recomp 檢出版本)和 --build-dir。package 可使用 --lib FILE(額外的函式庫)、--allow FILE、--replace、--status、--json。結束代碼:0 代表成功,1 代表缺少某項或拒絕,2 代表輸入錯誤。

讀取與寫入的內容

檔案說明
您的建置輸出ps2EntryRunner(+ 旁邊的 .dll / .so / .dylib)、app-release.apk 或 ps2EntryRunner.vpk
console/dist/<name>/玩家資料夾:執行檔、函式庫、game/(空目錄)、PLAYERS.md、play.bat / play.command / play.sh / install-android.sh、.recomp.json、.console-dist.json
templates/PLAYERS.md玩家說明範本
.recomp.json選擇性的專案描述,供 recomp 列表讀取(PS2Recomp 本身忽略)
console/STATE.md讀取建置資料夾和檢出路徑;記錄建置的內容

方法

  1. 詢問他們要在哪裡玩 以及平台:PC、Mac、Steam Deck、Android 手機、平板或電視盒、或是自製的 Vita。「在電視上玩」意指 Android TV 盒搭配藍牙手把,或者是連接電視並使用控制器的 PC 或 Deck。
  2. 移植作品必須先在這裡能跑。 先在您的開發機器上建置並用 /console-tester 測試。桌面環境會當機的版本,在手機上不可能更好。
  3. Doctor。 執行 targets.py doctor --target <t>。使用顯示的指令安裝遺漏的工具,然後再次執行 doctor。
  4. Plan。 執行 targets.py plan --target <t> --elf-name <光碟的 ELF>。依照使用者檢出版本(存放重新編譯程式碼的位置)中的步驟進行。各目標的詳細資訊和每項事實的來源:reference/targets.md。
  5. 使用 plan 中的指令進行建置。 僅增量建置;絕對不要清除建置資料夾,也絕對不要對 Vita 使用 CLEAN=1。使用獨立的 release 資料夾(out/release)來保持日常建置不受影響。
  6. Package。 執行 targets.py package --runner <已建置的檔案> --target <t> --out console/dist/<name>。可以加上 --elf-name(否則啟動腳本會讀取玩家的 SYSTEM.CNF 中的 BOOT2)以及 --game/--serial 來產生 .recomp.json。
  7. 閱讀 guard 的結果。 拒絕時會列出每個檔案及其原因。修正原因(錯誤的 --lib、執行檔旁邊有光碟檔案)。切勿為光碟映像、PS2 ELF、IRX、SYSTEM.CNF 或執行檔原始碼加入 allow 規則:allow 檔案僅用於真正屬於使用者自己的誤報情況,並且旁邊必須寫明原因。詳細資訊:reference/guard.md。
  8. 按照 PLAYERS.md 將套件安裝到裝置上,然後玩家將自己的光碟內容放入 game/。在裝置上進行測試,並將結果記錄在 console/STATE.md 中。

各目標一覽

目標執行檔如何找到 ELF備註
Windowsps2EntryRunner.exe + FFmpeg DLLplay.bat 傳入 game\<ELF>MSVC,測試最徹底的路徑
macOSps2EntryRunnerplay.command 傳入 game/<ELF>透過 sse2neon 支援 arm64 建置;需要 Homebrew FFmpeg(除非不使用 FFmpeg 建置)
Linuxps2EntryRunnerplay.shraylib 建置需要 X11 和 GL 標頭檔
Steam DeckLinux 建置版本play.sh,以非 Steam 遊戲形式加入 Steam或者使用 Proton 執行 Windows 建置版本(此處未測試)
Androidapp-release.apk使用 -Pps2xBootElf=... 內建檔案透過 adb push 放到 /storage/emulated/0/Android/data/com.ps2x.runner/files/;需配對控制器
PS Vitaps2EntryRunner.vpk由 ./vita/build.sh <ux0:data/... 路徑> 內建需要先執行 ./vita/setup.sh 一次;使用 VitaShell 安裝;速度較慢
web(非 PS2Recomp 目標)snuri00/ps2-web-recomp 是另一個重新編譯器:同一個光碟的第二個移植版本,實驗性質

安全防護

  • 自備遊戲。 每位玩家都必須從自己擁有的光碟中提取遊戲。決不下載 ISO、ELF 或 BIOS 檔案,不協助尋找,也不要求提供。無需 BIOS。
  • 遊戲內容不會被發布。 package 會拒絕光碟映像(ISO、BIN、IMG、MDF、NRG、CHD、CSO 以及任何名稱下的 ISO 9660 內容)、PS2 ELF 和 IRX 模組(根據魔術特徵碼和機器判斷)、類似 SLUS_203.12 或 SYSTEM.CNF 的光碟風格檔名、重新編譯的 runner/ 原始碼、game/ 中的任何內容,以及任何超過 512 MB 的檔案。執行檔本身是由重新編譯的遊戲程式碼所建置:套件僅供使用者自己的裝置使用,不可上傳。請分享修補程式、覆蓋設定和原始素材。
  • 與 Sony 無關。 PlayStation 是 Sony Interactive Entertainment 的商標。PS Vita 自製軟體、Steam、Android 及其他平台歸其各自所有者所有。
  • 絕不破壞使用者的檔案。 --replace 僅會取代本工具建立的資料夾,且在 game/ 中有任何內容(玩家的光碟、mc0/ 中的存檔)時拒絕執行。

交接給

  • /console-tester 在打包前後於本機測試建置版本。
  • /console-controller 處理裝置的控制器設定(Steam Deck 使用 xbox 配置,Android 使用觸控區域或藍牙手把)。
  • /console-saves 在裝置間搬移存檔(mc0/ 位於遊戲的 ELF 旁邊)。

相關技能