A free, open catalog platform for PlayStation Vita: homebrew and commercial packages.
PS Vita Alive Store helps users discover, download and install content on PlayStation Vita. Infrastructure stays free and server-less: GitHub, GitHub Actions and GitHub Pages.
| Area | Role |
|---|---|
apps/, authors/, categories/ |
Canonical homebrew editable data |
scripts/, .github/workflows/ |
Import, normalize, validate, generate catalogs |
catalog.json, authors.json, categories.json |
Generated homebrew public contract |
catalog_psvita_games.json |
Commercial PS Vita games (PKG / DLC / Updates / Mods) — no embedded zRIF |
catalog_psvita_games.zrifidx |
Separate zRIF index for Vita PKG licenses (content_id → zRIF) |
catalog_psp_games.json |
PSP commercial catalog |
catalog_ps1_games.json |
PS1 commercial catalog |
web/ |
Static website (GitHub Pages) |
Client PSVitaAlive/ |
Native PS Vita client (VPK) |
sources/, catalog_overrides/ |
External source config and manual enrichment |
docs/ |
Extra documentation, including native-client image cache, localization and adaptive downloading / ZIP extraction |
apps/*.json (+ optional external sources if enabled)
│
▼
normalize → merge → overrides → validate
│
▼
catalog.json / authors.json / categories.json
│
├───────────────┐
▼ ▼
Website PS Vita client
Commercial catalogs (catalog_psvita_games.json, etc.) are maintained separately and also consumed by the website and client.
Do not hand-edit generated catalog.json / authors.json / categories.json. Edit apps/ or overrides instead.
https://raw.githubusercontent.com/VegettoSan/PSVitaAlive/main/catalog.json
https://raw.githubusercontent.com/VegettoSan/PSVitaAlive/main/authors.json
https://raw.githubusercontent.com/VegettoSan/PSVitaAlive/main/categories.json
https://raw.githubusercontent.com/VegettoSan/PSVitaAlive/main/catalog_psvita_games.json
https://raw.githubusercontent.com/VegettoSan/PSVitaAlive/main/catalog_psp_games.json
https://raw.githubusercontent.com/VegettoSan/PSVitaAlive/main/catalog_ps1_games.json
https://raw.githubusercontent.com/VegettoSan/PSVitaAlive/main/catalog_psvita_games.zrifidx
Commercial packages are routed by platform and Settings → PSP / PS1 target:
| Catalog / content | Settings target | Path |
|---|---|---|
| Vita Games PKG | (any) | System BGDL + zRIF/RIF → LiveArea (unchanged) |
| PSP / PS1 PKG | LiveArea | System BGDL → LiveArea bubble (NoPspEmuDrm recommended) |
| PSP / PS1 PKG | Adrenaline | Direct download + pkg2zip-style unpack → ux0:pspemu (no LiveArea bubble) |
Adrenaline media format (Settings → PSP media):
| Value | Default | Result |
|---|---|---|
| Folder | yes | PSP → ux0:pspemu/PSP/GAME/<ID>/EBOOT.PBP; PS1 → same GAME layout |
| ISO | PSP → ux0:pspemu/ISO/<title> [<ID>].iso (EBOOT→ISO conversion) |
The client probes PKG content_type before unpacking: only PSP/PSX packages use the Adrenaline path. Vita Game PKGs never go through pspemu unpack, even if Adrenaline is selected.
Vita BGDL flow (when used):
- Resolve zRIF / RIF for the selected link (per-region / per-DLC
content_id) - Enqueue URL + license with the system UI (notification title = game name)
- User monitors LiveArea notifications until install completes
Requires a real device with taiHEN, NoNpDrm (and related plugins as needed), and a client build with UNSAFE privileges for ShellSvc access. See Client PSVitaAlive/source/installer/README.md.
Any HTTP client can consume these JSON files without using this store’s UI.
PSVitaAlive is a free, community-driven catalog built by collecting, reviewing, organizing, validating, and maintaining information from original developers, public community sources, and contributions from the PS Vita scene. We share the homebrew catalog so other stores, tools, and developers can reuse it freely. Maintaining this collection takes ongoing effort.
If you reuse new, original PSVitaAlive catalog contributions published after the licensing transition, attribution is required under CC BY 4.0 wherever that license applies. A credit in your README, documentation, website or app's About/Credits screen is generally an appropriate way to provide it, considering your medium. Example:
Homebrew catalog curation and original metadata: PS Vita Alive Store (PSVitaAlive) and contributors — CC BY 4.0.
When redistributing covered material, also retain the applicable licensing information and indicate if you made changes. The credit does not imply PSVitaAlive endorses your project.
Important CC0 exception: catalog material already published under CC0 — including the full historical snapshot at commit 78b7399 — remains reusable without credit. The previous permission cannot be revoked. The new attribution condition only applies to new, original, rights-covered contributions that PSVitaAlive or contributors are entitled to license under CC BY 4.0. A generated JSON may combine historical CC0 data, new material and third-party references: it must not be presumed that the entire file or all of its factual contents are exclusively CC BY 4.0. See CATALOG_LICENSE.md.
Content ownership: PSVitaAlive curates catalog metadata and links; it does not own the referenced homebrew, VPKs, Game Files / data packs, plugins, ports, mods, PKGs, DLC, updates, source code, images, screenshots, or other third-party downloads. Those remain with their respective creators or rights holders. Please credit original homebrew developers and upstream sources, and respect their applicable licenses. A catalog entry or download link is not a grant of rights to redistribute third-party content.
Every installable or reference URL lives in links[] with a type. The website and the PS Vita client group them into sections so downloads are not mixed together.
type |
Typical content | Website section | Client (detail) |
|---|---|---|---|
Download |
Main .vpk / primary payload |
Downloads | Downloads |
PKG |
Commercial base package | Downloads | PKG |
DLC |
Downloadable content | DLC | DLC |
Update |
Official / game updates | Updates | Updates |
Patch |
Patches (often treated with Updates) | Updates | Updates |
Data Files |
Extra data .zip (extract) |
Data Files | Data Files |
Game Files |
Large game data .zip (extract) |
Game Files | Game Files |
Mod / Mod Pack |
Mods / mod packs | Mods | Mods |
Mirror |
Alternate download URL | Other Links | Other |
Plugin |
taiHEN plugin binary | Plugins | Plugin (install + config.txt) |
Repository / Official Website / Documentation / Issues / Community / Other |
Informational | Other Links | Other |
Optional link fields
| Field | Meaning |
|---|---|
size |
Integer bytes (app generator can enter B/KB/MB/GB and converts) |
extract_path |
Where the client extracts a ZIP without asking (e.g. ux0:data/). Used for Data Files, Game Files, Mod, Mod Pack, Patch. If empty, the client shows the quick-path picker. |
recommended |
At most one link per app may be true (primary install action). |
content_id |
Preferred key for commercial PKG license lookup in catalog_psvita_games.zrifidx. |
PS Vita commercial entries may include per-SKU language notes and update PKG links from NoPayStation-style data. Homebrew records live under apps/*.json (see apps/README.md).
Static catalog browser: homebrew, authors, categories, commercial game pages, App JSON generator, and news/content driven from the repo.
Native client (Title ID PSVAS1178). Users only need to open the client: if a newer GitHub Release exists, the app can check, download and install the update automatically (via helper bubble PSVAUPDT1). No PC required for routine updates.
Highlights
- Catalogs: Homebrew, Vita Games, PSP, PS1
- Search, Settings (PSP/PS1 target, PSP media Folder/ISO, color theme + first-run picker with preview/confirm and smooth palette cross-fade, UI font styles, language System/manual), touch + controls; News modal (from
news.txt); optional Discord error Report - Multilanguage UI: currently packaged
en,es,fr,de,it,pt-PT,pt-BR,ru; unavailable/missing keys fall back to English; catalog text stays unchanged — see docs/MULTILANGUAGE.md - Image cache v3: images download on demand; changing an image URL replaces only that resource; startup checks disk use and, only when cache is over 200 MiB, removes oldest complete files down to about 40 MiB with localized progress — see docs/IMAGE_CACHE.md
- Downloads (MediaFire CDN resolution, Archive.org fastest-edge selection + failover, GitHub, …) with retries on slow networks and SSL connect errors
- Install: VPK (including nested
.vpkinside a release ZIP), ZIP extract (extract_pathor quick paths; large / >2 GB archives; EOCD/ZIP64 retries), licensed Vita PKG via system BGDL, PSP/PS1 PKG via BGDL (LiveArea) or Adrenaline unpack (Folder/ISO via pkg2zip-style pipeline) - Manual ZIP recovery on extraction failure: a fully downloaded data ZIP can be kept under
ux0:data/psvitaalive/manual/<title_id-or-app_id>/for manual extraction, or explicitly deleted; direct VPK failures keep their existing cleanup path - Plugin catalog links: download to
extract_path, append line to taiHENconfig.txt(section-aware, append-only), reboot prompt - Essential plugins prompt after theme + News: detects missing kubridge, fd_fix (file + config line) and libshacccg (file only); one-tap install + reboot
- Plugin updates (planned): remote manifest + size/hash checks — see docs/PLUGIN_UPDATES.md (not implemented yet)
- Free-space check before large downloads (~2.1× payload)
- During download/install/extract: screen forced on, PS button locked, soft power-off menu locked (see Downloads & installations)
- Voluntary Download cancelled UI (no false “Installation failed” / no Report)
- Self-update from Releases (see below)
- Plugin detection (prefer
ur0:tai); Settings INFO shows NoNpDrm / NoPspEmuDrm / kubridge / fd_fix / libshacccg status - Session logs under
ux0:data/psvitaalive/logs/
The client does not preload every catalog image into RAM. Media files are cached on disk in ux0:data/psvitaalive/cache/images/v3/ and requested as needed.
Each image resource receives a stable identity based on catalog + item + role (icon, cover, shot0, ...), while the current remote URL contributes a separate hash. This means a catalog update can identify an old and new version of the same icon/screenshot even before the new file is downloaded.
Replacement is intentionally per image:
new URL requested
→ download/validate new image
→ on success, remove older files for that same resource only
A failed new download does not trigger deletion of the old resource first.
Global disk maintenance is separate and happens only during startup:
<= 200 MiB → keep cache
> 200 MiB → delete oldest whole image files until ~40 MiB remain
The startup loading overlay shows localized checking/cleaning progress. During normal navigation there is no global size scan or eviction loop. An image removed by startup maintenance simply downloads again the next time it is requested.
Detailed design: docs/IMAGE_CACHE.md.
Client performance / integration status (12 Oct 2026): Cache-first startup, image bucket workers and event-driven UX0 were merged via PR #28. The PR #30 asynchronous session logger and reduced diagnostic noise were subsequently approved after a positive real-PS Vita navigation test, preserving logs useful for error reports without opening/closing session.log on the render thread. The experimental binary Homebrew index (.fastidx) was not merged; GPU PNG decoding hitches can still occur in some cases. See docs/CLIENT_PERFORMANCE_STATUS_20261012.md and docs/ASYNC_REPORT_LOGGER_20261012.md.
Open PS Vita Alive Store
│
▼
Check GitHub Releases /latest (if enabled in config/settings)
│
├─ up to date → load catalogs as usual
└─ newer VPK → download → install updater PSVAUPDT1 →
updater promotes new client → relaunches store →
removes temporary updater bubble
- Toggleable (startup config / settings); safe path uses PSVAUPDT1 because a Vita app cannot reliably promote itself while running.
- Manual fallback VPK:
ux0:data/psvitaalive/update/PSVitaAlive.vpk - Details:
Client PSVitaAlive/README.mdandClient PSVitaAlive/source/update/README.md
Releases: https://github.com/VegettoSan/PSVitaAlive/releases
Website: https://vegettosan.github.io/PSVitaAlive/
For stable downloads and HTTPS on real hardware, configure the console as follows.
| Recommendation | Why |
|---|---|
| HENkaku / h-encore / Enso (as appropriate for your firmware) | Required to run homebrew and taiHEN plugins |
| iTLS-Enso — full version | Replaces the system TLS stack so modern HTTPS (GitHub, MediaFire, Archive.org, many CDNs) works. The full package is preferred over minimal installs when you rely on the store client for large HTTPS transfers |
| NoNpDrm | Licensed Vita PKG / DLC / updates (BGDL path) |
| NoPspEmuDrm (kernel + user as required) | PSP / PS1 LiveArea bubbles and related content |
Prefer ur0:tai over ux0:tai |
Survives memory-card changes; client plugin detection prefers ur0 |
iTLS-Enso repository and releases:
- Project: https://github.com/SKGleba/iTLS-Enso
- Releases: https://github.com/SKGleba/iTLS-Enso/releases
Install the full build when possible, reboot, then test HTTPS (open the client and load a catalog).
Use reliable public DNS on the Vita’s Wi-Fi connection so hostnames used by the client resolve consistently:
| Role | Address |
|---|---|
| Primary | 8.8.8.8 |
| Secondary | 8.8.4.4 |
Path on the system UI (typical): Settings → Network → Wi-Fi → [your network] → Advanced settings → DNS → set primary/secondary as above (disable “Automatic” DNS if present).
These are Google Public DNS. Other stable resolvers (e.g. 1.1.1.1 / 1.0.0.1) are acceptable; the important part is not leaving a broken ISP DNS that fails intermittent lookups during multi-GB transfers.
- Prefer a healthy SD2Vita / USB setup with enough free space. The client checks free space at about ~2.1× the expected download size before starting large jobs.
- The client image cache is bounded at startup: it is left alone at or below 200 MiB, and if larger it is trimmed to roughly 40 MiB by deleting oldest complete cached images. This does not affect installed apps or downloaded install payloads.
- Keep the Vita plugged in for multi-GB Game Files / VPK installs when possible.
- Do not force power-off (hold power 10–30s) during an active download or extract — that truncates files and produces incomplete ZIPs.
Technical overview of how the native client moves bytes and installs content. Details live under Client PSVitaAlive/source/installer/README.md.
| Content | Mechanism | Notes |
|---|---|---|
Homebrew VPK (or ZIP containing a .vpk) |
HTTP download → extract if needed → scePromoterUtility (async promote + poll) |
Work dir ux0:data/psva_vpk |
| Data Files / Game Files (ZIP) | HTTP download → integrity pre-check → extract | extract_path from catalog or quick-path picker; large archives supported (including >2 GB via libzip + custom sceIo source) |
| Commercial PKG (Vita / PSP / PS1) | License resolve → BGDL system queue | Progress in LiveArea notifications; not a silent “promote raw PKG” path |
HTTP downloads and ZIP extraction run inside the client process (libcurl + worker threads). Unlike system BGDL for commercial PKG, if the process is suspended or killed mid-transfer:
- TCP streams stop and file handles can become invalid
- Partial ZIP files often lack a valid EOCD / ZIP64 end-of-central-directory marker
- The next install attempt fails with
zip_open/ incomplete archive errors (download must be redone)
To reduce that class of failure, while a job is in Downloading or Installing state the client:
| Protection | API / behaviour | What the user sees |
|---|---|---|
| Anti auto-suspend | sceKernelPowerTick(SCE_KERNEL_POWER_TICK_DISABLE_AUTO_SUSPEND) on a keep-awake thread while busy() |
Console does not idle-suspend during the job |
| Screen stays on | Also DISABLE_OLED_OFF + DISABLE_OLED_DIMMING while busy |
Panel does not dim/blank mid-progress |
| PS button blocked | sceShellUtilLock(SCE_SHELL_UTIL_LOCK_TYPE_PS_BTN) |
Cannot exit to LiveArea until the job ends |
| Soft power-off menu blocked | sceShellUtilLock(SCE_SHELL_UTIL_LOCK_TYPE_POWEROFF_MENU) |
Short power-hold “Power Off” menu suppressed |
| Locks released | sceShellUtilUnlock on Completed / Failed / Cancelled / shutdown |
Normal PS / power behaviour returns |
Hard force power-off (long hold) cannot be blocked in userland — it is a system/hardware path. The UI shows a high-visibility LOCKED banner and toasts if the user presses START, SELECT, L/R, or other keys during a job.
Before opening a downloaded archive, the installer can reject files that do not look complete on disk (missing EOCD / ZIP64 marker near the end of the file). That fails early with a clear error instead of a cryptic extract crash — typical after suspend, kill, or network cut mid-download.
During an active job the progress overlay states explicitly that:
- The screen stays on
- PS button and power menu are disabled
- Only CIRCLE (cancel) is expected until the job finishes
Toasts reinforce the same message if Settings, exit, or catalog switch are attempted.
PSP DLC installs from the client require LiveArea target or Adrenaline Folder mode. Adrenaline ISO mode shows a toast and blocks the DLC action (DLC is not recognised correctly as ISO).
- Start the download and leave the client in the foreground until it finishes or you cancel with CIRCLE.
- Do not rely on turning the screen off to “save battery” during Game Files — the client keeps the screen on on purpose.
- Prefer a stable Wi-Fi link and the DNS settings above; flaky DNS is a common cause of stalled HTTPS.
- Ensure iTLS-Enso (full) is installed if catalogs or CDNs fail TLS handshake.
- After a failure mentioning incomplete ZIP /
zip_open, delete the partial file (cancel already tries to clean the job) and retry on a better connection. - For commercial PKG, after “Queued…”, finish the install from LiveArea notifications — that path is system BGDL and can continue differently from in-app HTTP ZIP downloads.
Prefer pull requests that edit source data (apps/, overrides, scripts) rather than generated catalogs.
- Add or edit
apps/*.json(and authors/categories when needed). - Run validation / generation scripts (or rely on CI).
- Confirm website and client still load the public JSON endpoints.
See module READMEs under apps/, scripts/, and docs/.
The automatic VitaDB feed was removed from the default pipeline. External acquisition may still use VitaHomebrewDB and manual curation while the catalog moves toward independent maintenance.
Historical enrichment may still reflect data that originally came from public VitaDB-era indexes. Credit remains with upstream authors and catalog maintainers.
PSVitaAlive is an index and community discovery project, not the owner of third-party downloads or works. We compile and maintain metadata (names, versions, categories, credits, descriptions and links) from developers, community contributions and upstream catalogs. Listing something does not transfer ownership or grant distribution rights over the linked content.
- Compilation of a unified directory from multiple community and developer sources
- Normalization, validation, deduplication, and consistent categories/subcategories
- Human review, community contributions, and ongoing maintenance of records and links
- Free public catalogs, clients and documentation for discovery and reuse
Our contribution is the work of compiling, organizing and maintaining the catalog, to the extent it is original to this project — not ownership of the applications, external data files, or source materials themselves.
PS Vita / PSP / PS1 package listings and license sidecars may incorporate public metadata associated with communities such as NoPayStation and related tools. Those files are not covered by the homebrew catalog's CC0 dedication; respect third-party rights and do not treat zRIF or PKG links as content owned or licensed for redistribution by this project.
PS Vita Alive Store is a discovery and download helper for the PS Vita scene. It collects references to work shared by developers and the community; it does not claim ownership of third-party homebrew apps, VPKs, Game Files, plugins, ports, source code, mods, icons, screenshots, PKGs or other third-party content. Rights remain with their respective creators or rights holders. Each homebrew entry keeps author information (author_ids / author profiles) and, when available, links to original repositories or releases.
| Part | Terms |
|---|---|
| Software (Vita client, updater, scripts, web tooling, build system) | MIT License — use, copy, modify, distribute, etc., with the MIT notice |
| Part | Terms |
|---|---|
Historical homebrew catalog material (published through commit 78b7399) |
CC0 1.0 — attribution optional; prior permissions remain valid |
| New original homebrew catalog contributions published after this licensing transition, to the extent the project/contributors own licensable rights | CC BY 4.0 — attribution required when the license applies |
| Third-party metadata and referenced works | Their respective owners' licenses and applicable rights; not automatically CC BY 4.0 or CC0 |
The catalog stays free to reuse, modify and redistribute. For new, original PSVitaAlive material under CC BY 4.0, provide appropriate credit to PSVitaAlive and contributors, link the source and license, and indicate modifications. Previously published CC0 material is still free to reuse without attribution. A generated catalog may combine differently licensed materials; factual data and third-party works are not claimed as PSVitaAlive property.
Details and the transition boundary: CATALOG_LICENSE.md.
- Homebrew VPKs, source code, Game Files / data packs, plugins, mods, artwork, icons, screenshots and other binaries retain their original authors' or rights holders' terms.
- The catalog may reference PKG, DLC and updates; these remain third-party content. A link in PSVitaAlive does not grant redistribution rights.
- Information from upstream catalogs and community contributors remains subject to any applicable third-party rights.
- Commercial catalogs and zRIF/license sidecars are not covered by the CC0 homebrew catalog dedication.
- The original CC0 dedication applies only to rights PSVitaAlive could grant in its own historical homebrew catalog compilation, not to anyone else's content. The new CC BY 4.0 terms likewise cover only new, original contributions over which their licensors hold applicable rights.
Public databases and community work (including projects associated with VitaDB, VitaHomebrewDB, and many individual authors) have helped with discovery and enrichment over time. Credit for that work stays with those projects and authors. This store’s goal is to facilitate finding and installing content, not to replace or claim the creators’ work.
- Downloads use libcurl 8.x on VitaSDK; stock OpenSSL is 1.0.2-class. Peer verify is off by design on device (CA store limitations).
- Internet Archive: automatic edge failover via item metadata when TLS fails on
dn*/.ca.archive.orgnodes (preferia*/.us.archive.orgedges). See client logs and optionaldocs/NETWORK_TLS.md. - Retries on
CURLE_SSL_CONNECT_ERROR(35) and related connect failures; host hints for GitLab / Archive / GitHub. - PSP / PS1 target in Settings: LiveArea = PKG via system BGDL (bubble). Adrenaline = pkg2zip-style unpack to
ux0:pspemu(no LiveArea bubble). Vita VPK / Vita PKG paths are unchanged.
Catalog links[] may include type: "Plugin":
| Field | Meaning |
|---|---|
url |
Direct download of .skprx / .suprx / binary |
extract_path |
Destination directory (default ur0:tai/) |
section |
taiHEN section: *KERNEL, *main, *ALL, custom, or none (skip config) |
line |
Exact line appended under that section (e.g. ur0:tai/foo.skprx) |
Install is append-only to config.txt (never deletes existing lines). After one or more plugin installs the client shows a Restart required modal (soft reset via scePowerRequestColdReset); LiveArea exit is blocked until restart. Hold L at boot to disable taiHEN plugins if something goes wrong.
Essential plugins (checked after first-run theme picker + News):
| Plugin | Path | config.txt |
|---|---|---|
| kubridge.skprx | ur0:tai/ (also checks ux0:tai/) |
required under *KERNEL |
| fd_fix.skprx | same | required under *KERNEL |
| libshacccg.suprx | ur0:data/ |
not listed in config (file presence only) |
If any are missing, a modal offers Install plugins or Remind me later. Install uses the same Plugin pipeline and sequential queue.
| Recommendation | Why |
|---|---|
| iTLS-Enso full | Modern TLS for many HTTPS hosts on real hardware |
| DNS primary 8.8.8.8, secondary 8.8.4.4 | Stable resolution for Archive.org / GitHub / CDNs |
| NoNpDrm + NoPspEmuDrm | Licensed Vita PKG and PSP LiveArea bubbles |
| kubridge + fd_fix + libshacccg | Many ports / advanced homebrew |
| Prefer ur0:tai for plugins | Survives memory card swaps better than ux0-only setups |
- PSVitaAlive detects overly deep ZIP directory branches (device-path depth greater than ten components on tested Vita storage), extracts each affected subtree to a shallow temporary directory on the same device, then moves the complete folder to its unchanged original location with
sceIoRename. It never modifies individual ports, omits data, or rewrites the catalog. - Real PS Vita verification (19 October 2026): Simpsons Hit & Run, 3,877 ZIP entries, 1,956,255,106 uncompressed bytes, 56 files in
_stubsmoved to their original folder, extraction completed, game launched. This validates that one hardware/use-case; generic regressions remain important. - In the app detail, the Saved ZIP section lists one named button per recovered ZIP belonging to that app. It is hidden when no validated recovery ZIP exists. Each button re-extracts only the selected ZIP, offline.
- On successful extraction and completion of every pending folder move, PSVitaAlive removes the corresponding downloaded or recovered ZIP and its companion metadata to free storage. On failure, keep archives and staged data for recovery. Previously retained archives from older builds are not purged automatically.
- Technical reference: ZIP recovery, folder relocation and validation. Reinstalling into a nonempty deep destination remains deliberately conservative: the installer will not destructively merge directories.
