Vitaki fork

This is ywnico's fork of AAGaming's (@AAGaming00) Vitaki. AAGaming did all the hard work of porting Chiaki to Vita, along with jbaiter_. This fork just adds some features and fixes on top of that foundation.

2026 Update (TLDR: check out VitaRPS5)

[!IMPORTANT] I do not plan to make more significant updates to vitaki-fork. Thanks to everyone for using it, and to the many people who contributed PRs.

Fortunately, @mauricio-gg has developed a greatly improved version: VitaRPS5! It has better latency, an overhauled UI, and many, many other fixes and improvements. Keep having fun with remote play on Vita :)

Updates made in this fork

This fork builds on AAGaming's work with the following updates:

  1. Implemented audio
  2. Implemented controls
    • Control mappings for L2, R2, L3, R3, and touchpad (trapezoid button), following the official ps4 remote play maps in vs0:app/NPXS10013/keymap/. Note that Select + Start sends the PS (home) button.
    • Motion controls (thanks to @Epicpkmn11, who also contributed some other controller improvements)
    • Enable use of external controllers on PSTV (thanks to @TheThomasD)
  3. Implemented external network remote play (with manually-specified remote IP addresses)
  4. Fixed console wakeup
  5. Made debug logs visible, added tooltips on some buttons
  6. Fixed instant disconnection bug
  7. Disabled vblank_wait and set fps to 30 to reduce lag.
    • NOTE: the fps in the config file (chiaki.toml) will be ignored
  8. Merged in updates from chiaki4deck (improved some connection issues)
  9. Included ghost's LiveArea icon fixes
  10. Many bug and crash fixes

Instructions

Local connection

  1. Connect PS Vita and PS5 (or PS4) to the same local WiFi network.
  2. Log in to the same PSN account on both the PS5 and the Vita.
  3. Open Vitaki on PS Vita.
  4. Check settings (gear icon) to ensure your encoded PSN ID is there (if it's not automatically populated, or you accidentally deleted it, press START to re-detect it).
  5. The console should be automatically detected and appear as an icon.
  6. Select the console and Vitaki should ask for a registration code. On the PS5, navigate to Settings > System > Remote Play and select Pair Device. An 8-digit numeric code should appear; enter this into Vitaki and hit triangle to save.
  7. Select the console again in Vitaki. It should now connect (and in the future, will not ask for the device pairing code).

Remote connection

UDP holepunching is not supported. Instead, a remote connection requires a static IP and port forwarding.

  1. Register your console on your local network following the above instructions.
  2. Follow the "manual remote connection" section in these instructions to set up a static IP and port forwarding on your network.
  3. Select the add remote host button (the leftmost button in the toolbar) in Vitaki. Enter the remote IP address and the registered console.

If you are on the local network, your console will be discovered locally and a separate tile for remote connection will not be shown. If you want to test on the local network, turn off discovery (wifi icon in the toolbar).

Currently, Vitaki cannot detect the status of remote hosts. Therefore, when selecting one, it will both send the wakeup signal and immediately try to start remote play. If the console was asleep, then this first attempt at remote play will fail, so try again in 10 or 15 seconds.

Note: if the remote host cannot be reached, it will get stuck on "Trying to request session" for 90 seconds and then time out. If the remote host was reachable but asleep, "Trying to request session" should fail after just a few seconds.

Config settings

Some configuration lacks a UI but can be set in the config file located at ux0:data/vita-chiaki/chiaki.toml.

Swapping circle/cross in UI

circle_btn_confirm = true swaps circle and cross in the main UI, so that circle is confirm and cross is cancel (false makes cross into confirm and circle into cancel). Note that this does not affect the button mappings in remote play, only in the UI before remote play starts.

Disabling auto discovery

auto_discovery = false makes Vitaki not start discovery on launch. It can still be started manually by selecting the wifi icon.

Enabling AnalogsEnhancer plugin

enable_analogsenhancer = true makes Vitaki-fork compatible with the AnalogsEnhancer plugin. This option is false by default, since compatibility with PSTV controllers is then broken.

Priority hosts

Experimental: I don't actually have enough consoles to confirm whether this feature works or not.

The Vitaki UI is limited to 4 consoles. If you are on a crowded network with many consoles and yours isn't showing up, you can manually add the following to the config file:

[[priority_hosts]]
server_mac = "00:11:11:11:11:11"

[[priority_hosts]]
server_mac = "00:22:22:22:22:22"

and so on for each console you want to prioritize, where the MAC address is the LAN MAC address of your PS5/PS4 console (you can find it in Settings > Network > Connection Status > View Connection Status).

Note that each additional priority host should have its own [[priority_hosts]] header above it. Also, be sure to quote the MAC address. If Vitaki crashes immediately on opening, it is probably due to an invalid TOML file breaking the parser.

Known issues & troubleshooting

If problems arise:

Chiaki4deck

chiaki4deck

An open source project looking to help users of the Steam Deck get the most out of Chiaki. Click here to see the accompanying site for documentation, updates and more.

Disclaimer: This project is not endorsed or certified by Sony Interactive Entertainment LLC.

Chiaki is a Free and Open Source Software Client for PlayStation 4 and PlayStation 5 Remote Play for Linux, FreeBSD, OpenBSD, NetBSD, Android, macOS, Windows, Nintendo Switch and potentially even more platforms.

Acknowledgements

This project has only been made possible because of the following Open Source projects: Rizin, Cutter, Frida and x64dbg.

Also thanks to delroth for analyzing the registration and wakeup protocol, grill2010 for analyzing the PSN's OAuth Login, as well as a huge thank you to FioraAeterna for giving me some extremely helpful information about FEC and error correction.

About

Created by Florian Märkl

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Additional permission under GNU AGPL version 3 section 7

If you modify this program, or any covered work, by linking or combining it with the OpenSSL project's OpenSSL library (or a modified version of that library), containing parts covered by the terms of the OpenSSL or SSLeay licenses, the Free Software Foundation grants you additional permission to convey the resulting work. Corresponding Source for a non-source form of such a combination shall include the source code for the parts of OpenSSL used as well as that of the covered work.