Skip to content

# Vita3K - RetroBIOS

Type | standalone
Source | https://github.com/Vita3K/Vita3K
Version | 0.2.1
Profiled | 2026-03-18
Cores | vita3k
Systems | sony-playstation-vita
Firmware file | PSVUPDAT.PUP
Firmware source | https://www.playstation.com/en-us/support/hardware/psvita/system-software/
Firmware install | decrypts PUP, extracts FAT/exFAT images into os0/, vs0/, sa0/, pd0/
Firmware detection | pup_decrypt

Firmware modules

auto_lle:

    - **source_ref:** vita3k/module/src/load_module.cpp:142-161
    - **note:** These modules are automatically loaded via LLE when firmware is present
    **modules:**

    - id: SCE_SYSMODULE_HTTP
    - id: SCE_SYSMODULE_SSL
    - id: SCE_SYSMODULE_HTTPS
    - id: SCE_SYSMODULE_ULT
    - id: SCE_SYSMODULE_SAS
    - id: SCE_SYSMODULE_PGF
    - id: SCE_SYSMODULE_FIOS2
    - id: SCE_SYSMODULE_SYSTEM_GESTURE
    - id: SCE_SYSMODULE_XML
    - id: SCE_SYSMODULE_SQLITE
    - id: SCE_SYSMODULE_RUDP
    - id: SCE_SYSMODULE_NET_ADHOC_MATCHING
    - id: SCE_SYSMODULE_MP4
    - id: SCE_SYSMODULE_ATRAC
    - id: SCE_SYSMODULE_FACE
    - id: SCE_SYSMODULE_SMART
    - id: SCE_SYSMODULE_AVPLAYER
    - id: SCE_SYSMODULE_JSON

preload:

    - **source_ref:** vita3k/interface.cpp:497-504, vita3k/module/src/load_module.cpp:187
    - **note:** These modules are always loaded from firmware (LLE), never HLE
    **modules:**

    - name: libc, note: C standard library
    - name: libSceFt2, note: FreeType2 font engine
    - name: libpvf, note: PlayStation Vita Font library
    - name: libcdlg, note: Common dialog library

sysmodule_map:

    - **source_ref:** vita3k/module/src/load_module.cpp:25-109
    - **note:** Complete mapping of SCE_SYSMODULE IDs to firmware library filenames
    **modules:**

    - id: SCE_SYSMODULE_NET
    - id: SCE_SYSMODULE_HTTP
    - id: SCE_SYSMODULE_SSL
    - id: SCE_SYSMODULE_HTTPS
    - id: SCE_SYSMODULE_PERF
    - id: SCE_SYSMODULE_FIBER
    - id: SCE_SYSMODULE_ULT
    - id: SCE_SYSMODULE_DBG
    - id: SCE_SYSMODULE_RAZOR_CAPTURE
    - id: SCE_SYSMODULE_RAZOR_HUD
    - id: SCE_SYSMODULE_NGS
    - id: SCE_SYSMODULE_SULPHA
    - id: SCE_SYSMODULE_SAS
    - id: SCE_SYSMODULE_AUDIOCODEC
    - id: SCE_SYSMODULE_AACENC
    - id: SCE_SYSMODULE_ATRAC
    - id: SCE_SYSMODULE_VOICE
    - id: SCE_SYSMODULE_VOICEQOS
    - id: SCE_SYSMODULE_PGF
    - id: SCE_SYSMODULE_IME
    - id: SCE_SYSMODULE_HANDWRITING
    - id: SCE_SYSMODULE_APPUTIL
    - id: SCE_SYSMODULE_FIOS2
    - id: SCE_SYSMODULE_SYSTEM_GESTURE
    - id: SCE_SYSMODULE_LOCATION
    - id: SCE_SYSMODULE_CLIPBOARD
    - id: SCE_SYSMODULE_TRIGGER_UTIL
    - id: SCE_SYSMODULE_LIVEAREA
    - id: SCE_SYSMODULE_BG_APP_UTIL
    - id: SCE_SYSMODULE_INCOMING_DIALOG
    - id: SCE_SYSMODULE_IPMI
    - id: SCE_SYSMODULE_NOTIFICATION_UTIL
    - id: SCE_SYSMODULE_SHUTTER_SOUND
    - id: SCE_SYSMODULE_SCREEN_SHOT
    - id: SCE_SYSMODULE_NP_BASIC
    - id: SCE_SYSMODULE_NP
    - id: SCE_SYSMODULE_NP_COMMERCE2
    - id: SCE_SYSMODULE_NP_UTILITY
    - id: SCE_SYSMODULE_NP_MATCHING2
    - id: SCE_SYSMODULE_NP_SCORE_RANKING
    - id: SCE_SYSMODULE_NP_ACTIVITY
    - id: SCE_SYSMODULE_NP_TROPHY
    - id: SCE_SYSMODULE_NP_MESSAGE
    - id: SCE_SYSMODULE_NP_PARTY
    - id: SCE_SYSMODULE_NP_TUS
    - id: SCE_SYSMODULE_NP_SNS_FACEBOOK
    - id: SCE_SYSMODULE_NP_SIGNALING
    - id: SCE_SYSMODULE_NP_WEBAPI
    - id: SCE_SYSMODULE_MP4
    - id: SCE_SYSMODULE_AVPLAYER
    - id: SCE_SYSMODULE_AVCDEC
    - id: SCE_SYSMODULE_MP4_RECORDER
    - id: SCE_SYSMODULE_PHOTO_EXPORT
    - id: SCE_SYSMODULE_VIDEO_EXPORT
    - id: SCE_SYSMODULE_MUSIC_EXPORT
    - id: SCE_SYSMODULE_XML
    - id: SCE_SYSMODULE_JSON
    - id: SCE_SYSMODULE_SQLITE
    - id: SCE_SYSMODULE_RUDP
    - id: SCE_SYSMODULE_NET_ADHOC_MATCHING
    - id: SCE_SYSMODULE_PSPNET_ADHOC
    - id: SCE_SYSMODULE_FACE
    - id: SCE_SYSMODULE_SMART
    - id: SCE_SYSMODULE_MARLIN
    - id: SCE_SYSMODULE_MARLIN_DOWNLOADER
    - id: SCE_SYSMODULE_MARLIN_APP_LIB
    - id: SCE_SYSMODULE_TELEPHONY_UTIL
    - id: SCE_SYSMODULE_DTCP_IP
    - id: SCE_SYSMODULE_VIDEO_SEARCH_EMPR
    - id: SCE_SYSMODULE_BEISOBMF
    - id: SCE_SYSMODULE_BEMP2SYS
    - id: SCE_SYSMODULE_NEAR_UTIL
    - id: SCE_SYSMODULE_NEAR_DIALOG_UTIL
    - id: SCE_SYSMODULE_LOCATION_EXTENSION
    - id: SCE_SYSMODULE_MAIL_API
    - id: SCE_SYSMODULE_TELEPORT_CLIENT
    - id: SCE_SYSMODULE_TELEPORT_SERVER
    - id: SCE_SYSMODULE_APPUTIL_EXT
    - id: SCE_SYSMODULE_CODECENGINE_PERF

internal_modules:

    - **source_ref:** vita3k/module/src/load_module.cpp:114-136
    **modules:**

    - id: SCE_SYSMODULE_INTERNAL_JPEG_ENC_ARM
    - id: SCE_SYSMODULE_INTERNAL_AUDIOCODEC
    - id: SCE_SYSMODULE_INTERNAL_BXCE
    - id: SCE_SYSMODULE_INTERNAL_INI_FILE_PROCESSOR
    - id: SCE_SYSMODULE_INTERNAL_NP_ACTIVITY_NET
    - id: SCE_SYSMODULE_INTERNAL_PAF
    - id: SCE_SYSMODULE_INTERNAL_SQLITE_VSH
    - id: SCE_SYSMODULE_INTERNAL_DBUTIL
    - id: SCE_SYSMODULE_INTERNAL_ACTIVITY_DB
    - id: SCE_SYSMODULE_INTERNAL_COMMON_GUI_DIALOG
    - id: SCE_SYSMODULE_INTERNAL_MSG_DIALOG
    - id: SCE_SYSMODULE_INTERNAL_SAVEDATA_DIALOG
    - id: SCE_SYSMODULE_INTERNAL_IME_DIALOG
    - id: SCE_SYSMODULE_INTERNAL_COMMON_DIALOG_MAIN
    - id: SCE_SYSMODULE_INTERNAL_DB_RECOVERY_UTILITY
    - id: SCE_SYSMODULE_INTERNAL_DRM_PSM_KDC
    - id: SCE_SYSMODULE_INTERNAL_LOCATION_INTERNAL

Fallback fonts

- source_ref: vita3k/gui/src/gui.cpp:276-318

- path: data/fonts/ files:

- name: mplus-1mn-bold.ttf, purpose: Primary fallback monospaced font

- name: SourceHanSansSC-Bold-Min.ttf, purpose: Chinese fallback font

- name: neodgm.ttf, purpose: Korean fallback font

- note: Open-source fonts bundled with Vita3K, used when firmware fonts (sa0) are not installed

I/O devices

- source_ref: vita3k/io/include/io/VitaIoDevice.h:22-50 firmware_partitions:

- device: os0, purpose: Core OS kernel modules

- device: vs0, purpose: System firmware modules and apps
- device: sa0, purpose: System assets (fonts)
- device: pd0, purpose: System data (BGM, resources)

user_partitions:

- device: ux0, purpose: Main storage (memory card)
- device: ur0, purpose: Internal user storage
- device: uma0, purpose: USB mass storage (PSTV)
- device: imc0, purpose: Internal memory card (Slim)
- device: grw0, purpose: Game card (writable area)
- device: gro0, purpose: Game card (read-only area)

app_partitions:

- device: app0, purpose: Current running application
- device: addcont0, purpose: Additional content (DLC)
- device: savedata0, purpose: Save data (slot 0)
- device: savedata1, purpose: Save data (slot 1)

Partitions

os0:

    - **image:** os0.img
    - **filesystem:** FAT
    - **source_ref:** vita3k/packages/src/pup.cpp:293
    - **note:** Core OS partition. Contains kernel modules and low-level system components.

vs0:

    - **image:** vs0.img
    - **filesystem:** FAT
    - **source_ref:** vita3k/packages/src/pup.cpp:299
    - **note:** Main system partition. Contains firmware modules (sys/external/*.suprx), system apps (app/), LiveArea resources, themes, and system configuration.

    **directories:**

        **sys_external:**

            - **path:** vs0/sys/external/
            - **source_ref:** vita3k/modules/module_parent.cpp:332
            - **note:** Primary firmware module directory. Modules are loaded as .suprx files. RPCS3-style LLE/HLE toggle: Vita3K can load real firmware modules (LLE) or use built-in reimplementations (HLE) per module.

        **app:**

            - **path:** vs0/app/
            - **note:** System applications (settings, browser, store, etc)
        **data_internal:**

            - **path:** vs0/data/internal/
            - **note:** Internal system data: themes, LiveArea defaults
            **files:**

            - path: theme/, purpose: Default system themes
            - path: livearea/default/sce_sys/icon0.png, purpose: Default app icon

sa0:

    - **image:** sa0.img
    - **filesystem:** FAT
    - **source_ref:** vita3k/packages/src/pup.cpp:297
    - **note:** System assets partition. Contains firmware fonts (PVF files).
    **directories:**

        **fonts:**

            - **path:** sa0/data/font/pvf/
            - **source_ref:** vita3k/gui/src/gui.cpp:228-267
            - **note:** PS Vita system fonts in PVF format (PlayStation Vita Font). Used for system UI, LiveArea, and games that use the sceFt2/libpvf font API. Without these, Vita3K falls back to bundled open-source fonts.

            **files:**

            - name: ltn0.pvf, type: Latin Regular, required: True, note: Primary UI font, checked at startup
            - name: jpn0.pvf, type: Japanese, required: False
            - name: kr0.pvf, type: Korean, required: False
            - name: cn0.pvf, type: Chinese Simplified, required: False

pd0:

    - **image:** pd0.img
    - **filesystem:** exFAT
    - **source_ref:** vita3k/packages/src/pup.cpp:295
    - **note:** System data partition. Contains system BGM and other data.
    **files:**

    - path: data/systembgm/initialsetup.at9, purpose: Initial setup background music

Firmware version

- path: PUP_DEC/PUP/version.txt
- source_ref: vita3k/packages/src/pup.cpp:303-309
- note: Read from version.txt inside the decrypted PUP during installation

Technical notes

Vita3K requires the official PS Vita firmware (PSVUPDAT.PUP) from Sony for full compatibility. The firmware is decrypted using SCE keys and extracted into four partition images: os0 (kernel), vs0 (system), sa0 (assets), pd0 (data).

The most important firmware components are: 1. vs0/sys/external/.suprx - Firmware modules loaded by games 2. sa0/data/font/pvf/.pvf - System fonts (ltn0.pvf is checked at startup) 3. vs0/data/internal/ - LiveArea resources and default themes

Vita3K uses a hybrid LLE/HLE approach: - Some modules (libc, libSceFt2, libpvf, libcdlg) are always loaded from firmware (LLE) - Others can be toggled between LLE and HLE per module via settings - Without firmware, many games will fail to load required modules

The module loading path is: first check app0:sce_module/{name}.suprx (game-bundled), then fall back to vs0:sys/external/{name}.suprx (firmware). This allows games to ship their own module versions.

CLI firmware install: vita3k --firmware /path/to/PSVUPDAT.PUP GUI: File > Install Firmware

Vita3K does not have a libretro core. It is standalone only.

No BIOS or firmware files required. Generated on 2026-03-25T14:56:43Z