Skip to content

hammerill/ps-vita-porter

v0.1.0MIT

Port a C/C++ game whose full source you have (typically a universal-decompiler reconstruction) to PS Vita as a .vpk with an AI agent: project scan, intake questions with recommendations, VitaSDK builds (native or Docker), LiveArea assets, .vpk checks, asset conversion, a PC Vita-simulation profile, Vita3K runs, deployment and logs over vitacompanion, a publish guard and a shared knowledge base.

port-to-vita

Port a game whose full C/C++ source is available (typically a universal-decompiler reconstruction, or any CMake C/C++ project) to the PS Vita as a .vpk, autonomously after one intake conversation. Covers the prerequisite check (complete source, working PC build, supported language), prior art (VitaDB, GitHub, field notes), project scan, tool checks (VitaSDK native or Docker, vdpm, vitaGL), the intake questions with recommendations grounded in the game (controls, touch, rear touch, gyro, glyphs, remapping, resolution and scaling, textures and memory, embedded or external assets, frame rate, title ID), the technical plan (SDL's Vita port + vitaGL, dependency replacements, runtime shaders with libshacccg.suprx, memory budget), adding a Vita target next to the PC one, 32-bit ARM fixes, LiveArea, verification without a Vita (static checks, the PC Vita-simulation profile, Vita3K), the handoff (.vpk, external assets, hardware checklist) and hardware iteration over vitacompanion. Use when the user wants to port, bring, convert or build a game for PS Vita / PSVita / Vita homebrew / a .vpk ("port this to Vita", "make a vpk of my decomp", "can this run on my Vita?").

share-field-notes

Search and contribute to the shared knowledge base of how games were actually ported to PS Vita - field notes with exact versions (game source state, VitaSDK, vitaGL, SDL), the route and why (SDL2/SDL3 + vitaGL, GXM, vitaGL only), what worked, how it was verified (simulation, Vita3K, hardware), and gotchas. Use before starting a port ("has anyone ported X to Vita?", "how do others handle vitaGL shaders / memory?"), when stuck on a toolchain or vitaGL quirk, and at the end of a port to write up what was learned and, with the human's OK, open a pull request so the next agent benefits.

vita-controls-ui

Design and implement a PS Vita port's controls and the UI around them - mapping every PC action to the Vita's buttons and two sticks (no L2/R2/L3/R3), front touch for menus/direct interaction/virtual buttons, rear touchpad zones that never fire while gripping, optional gyro only where it fits, the system confirm button (Cross or Circle), original button glyphs (never Sony's), a remapping menu, touch hints, and the vitaport kit's input API shared with the PC simulation. Use when choosing or changing a Vita control scheme, adding touch or gyro, replacing keyboard/mouse prompts, or when the user reports a control problem.

vita-graphics

Get a PC game's rendering onto the PS Vita - vitaGL (OpenGL over sceGxm) setup and linking, SDL+vitaGL combinations (sdl2 vs sdl2_vitagl), the GL subset and risky features, shaders compiled at runtime through libshacccg.suprx with vitaGL's GLSL translator and shader cache (never offline psp2cgc), Direct3D/Vulkan renderers needing a GL backend, resolution and scaling (native 960x544, lower internal resolution, pillarbox, integer scaling for pixel art), texture memory (CDRAM budget, downscaling, DXT/PVRTC/ETC1 compression with vita assets convert) and GPU performance on the SGX543MP4+. Use when the Vita build shows nothing/garbage, shaders fail, memory runs out, or when planning the graphics side of a port.

vita-packaging

Package a PS Vita port as a .vpk - LiveArea (icon0, pic0, bg0, startup, template.xml) from the game's own art with vita livearea make/check (the ya8 grayscale bug fixed, 0x8010113D avoided), param.sfo fields (TITLE_ID, TITLE, APP_VER, ATTRIBUTE2), safe vs unsafe eboot, vita_create_self/vita_create_vpk through cmake/VitaPort.cmake, embedded (app0:) vs external (ux0:data/<name>/) assets with vita assets convert, vita vpk check, and the handoff package and README install steps (libshacccg.suprx prerequisite). Use when building, validating or shipping the .vpk, when an install fails, or when switching the assets mode.

vita-recon

Decide whether and how a game can be ported to PS Vita before writing any port code - the prerequisite check (complete C/C++ source, a working PC build, a supported engine; universal-decompiler repos get first-class handling), prior art (existing Vita ports on VitaDB/GitHub, field notes), vita scan (dependencies vs vdpm, graphics API and GL features, input and the original control scheme, resolutions, 64-bit/SIMD, threads, paths, assets and memory), vita tools check, and the intake - the grouped practical questions with a recommendation grounded in the game for each - recorded in PORT_PLAN.md. Use at the start of any Vita port, or when the user asks "can this run on a Vita?", "what would a Vita port need?", "is there already a Vita port of X?".

vita-testing

Verify a PS Vita port without a Vita and then on one - static checks (vita build with the unresolved-import check, vita vpk check, vita livearea check), the PC Vita-simulation profile (vita sim - 960x544, Vita controls on keyboard/gamepad/mouse, memory cap with OOM detection, scripted input, screenshots, stats), Vita3K runs (vita emu), the done criterion evidence, the real-hardware checklist, and hardware iteration through vitacompanion (vita deploy, launch, kill, logs, core with vita-parse-core), plus the 3-strike circuit breaker. Use whenever the port must be built, run, checked, compared, debugged on a console, or when something fails repeatedly.