Chiaki Switch

From GameBrew
Chiaki
Chiakinx.png
General
AuthorFlorian Märkl (thestr4ng3r)
TypeOther Apps
Version2.1.1
LicenseGPL-3.0
Last Updated2021/01/24
Links
Download
Website
Source

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 and Nintendo Switch.

Note that on latest PS versions you need to use your PSN account ID (PS4 7.0 or greater and PS5).

Installation

Download the .nro file and copy it into the switch/ directory on your SD card.

If it doesn't work try the DDNS/Registration fix version by deuter0n.

Recommended setup for best performance:

  • Use 90DNS to allow Nintendo Switch lan.
  • 802.11ac (a solid network connection for your Switch).
  • Use a wired connection for the PS4 or PS5.
  • Change the Nintendo Switch's network setting MTU from 1400 to 1500.

User guide

If your Console is on your local network, is turned on or in standby mode and does not have Discovery explicitly disabled, Chiaki should find it. Otherwise, you can add it manually. To do so, click the "+" icon in the top right, and enter your Console's IP address.

You will then need to register your Console with Chiaki. You will need two more pieces of information to do this.

Obtaining your PSN AccountID

Starting with PS4 7.0, it is necessary to use a so-called "AccountID" as opposed to the "Online-ID" for registration (streaming itself did not change). This ID seems to be a unique identifier for a PSN Account and it can be obtained from the PSN after logging in using OAuth.

A Python 3 script which does this is provided in scripts/psn-account-id.py. Simply run it in a terminal and follow the instructions. Once you know your ID, write it down. You will likely never have to do this process again.

Obtaining a Registration PIN

To register a Console with a PIN, it must be put into registration mode.

  • To do this on a PS4, simply go to: Settings > Remote Play > Add Device.
  • Or on a PS5: Settings > System > Remote Play > Link Device.

You can now double-click your Console in Chiaki's main window to start Remote Play.

Screenshots

chiakinx2.png

Media

How To Stream PS4/PS5 To Nintendo Switch (Chiaki Setup) (Zombie Killing Koala)

Changelog

v2.1.1 2021/01/24

  • Fix Regist on Switch.

v2.1.0 2021/01/15

  • This is the final release of Chiaki for the time being.
  • After it, the project will be in maintenance mode only.

Changes:

  • Added Motion Support (Linux, Android and Switch only).
  • Added Rumble.
  • Android: Added Touchpad Support.
  • Android: New L1/L2/R1/R2 Buttons and added L3/R3 Buttons.
  • Android: Added Touch Button Haptic Feedback.
  • Android: Extended Touch Areas for Buttons.
  • Android: Fixed Micro-stuttering.
  • Prefer fixed local Port for Discovery.
  • Switch: Fixed audio delay.
  • Added DualSense to Setsu (requires hid-playstation Linux driver).

v2.0.1 2020/12/29

  • Android: Fix Crash on Startup in Database Migration on old SQLite.

v2.0.0 2020/12/29

  • This release brings support for PlayStation 5 and a port for the Nintendo Switch.
  • Please note that Chiaki has been relicensed under AGPL v3 only (+ OpenSSL exemption).

Full changelog:

  • PS5 Remote Play Support.
  • Add Nintendo Switch Borealis GUI.
  • FFMPEG in builds updated to 4.3.1.
  • Fix Manual Host ID reconstruction in GUI.
  • Add Video Profile Auto Downgrade when 1080p is selected for PS4.
  • Update discovered state in DiscoveryManager.
  • Move FFMPEG Decoder to lib.
  • Add correct Bitrate for 1080p.
  • Relicense under AGPL v3 only + OpenSSL.
  • Connect all available controllers in GUI.
  • Add Double Click for Fullscreen in GUI.
  • Ignore IMU-only Controllers in GUI.
  • Add Audio Device Selection to GUI.
  • Add Congestion Control.
  • Add Raspberry Pi Decoder.
  • Add Text Input Support to Library.
  • Use ChiakiKeyState to fix 32bit key state overflow.
  • Add option to use system Nanopb and jerasure.
  • Improve GUI CLI for streaming.
  • Add Sleep Mode Trigger.
  • Add generic Hardware Decoder Selection to GUI.

v1.3.0 2020/12/28

  • This update brings compatibility for PS4 Firmware 8.0 while still staying backwards-compatible.

Changes:

  • PS4 Firmware 8.0 Compatibility (Fix #328).
  • Fix MTU detection (Fix #303) (#304).
  • Add partial Touchpad support (currently ONLY functional on Linux when building from source and only when using a physical DualShock 4 Controller!).
  • Drop Support for QtGamepad in favor of SDL2.
  • Expose videotoolbox hardware decoder (#261, macOS only).
  • Fix build on newer Qt versions (#254, Fix #253).

v1.2.1

  • AppImage: Enable VAAPI (NOTE: this will not work on most systems, see https://github.com/thestr4ng3r/chiaki/issues/214#issuecomment-620088031).
  • Qt GUI: Fix Surface for EGL (Fix #71).
  • Qt GUI: Fix L2/R2 conversion (#243, Fix #189).
  • Qt GUI: Fix a deprecated Qt API usage.
  • Library: Experimental mbed TLS and Nintendo Switch support (No app yet, only library!).

v1.2.0

  • Qt GUI: Support for FreeBSD and OpenBSD (#212).
  • Qt GUI: Add VAAPI Support (Fix #26) (#205).
  • Qt GUI: Add Settings for Keyboard Mappings (#174).
  • Qt GUI: Use Mouse Click for Touchpad Button in GUI (#167).
  • CLI: Add Wakeup Command (#168).
  • Build: Build SDL2 with udev on Linux (Fix #32).
  • Android: Updated Dependencies.

v1.1.3

Android:

  • Prevent screen turning off during streaming (#149).
  • Stream Display Options: Normal, Zoom and Stretch (#146).
  • Touchpad Only Control Option (#130).
  • Export and Import Settings as JSON.
  • Adjust Android Analog Stick Dimensions for better Usability.

Desktop:

  • Fix H264 codec finding for libavcodec < 58.10.100 (#143).
  • Add Pyramid/Box buttons to keybindings (#118).
  • Fix Icon Install Path (Fix #92).

Common:

  • Make psn-account-id.py Script easier for Windows.

v1.1.2 2020/12/28

  • Fix Ctrl recv after Sending Login PIN (Fix #104).
  • Android: Fix a Crash in Regist.
  • Qt GUI: Hide Mouse after Timeout.

v1.1.1

  • Fix some Alignment Issues (especially for 32-bit ARM).

v1.1.0

  • This release brings **Android** Support.

v1.0.4

Changes:

  • Add Regist with Np-AccountId (Fix #51).
  • Bump RP-Version to 9.0 for Session and Ctrl, #51.
  • Add more logging to Ctrl, for #36.
  • Add Audio Buffer Size Setting.
  • Send one Feedback History Packet per Event (#41).
  • Use Qt MacExtras on macOS.
  • Refactor Opus Decoding.
  • Make YUV/RGB conversion more accurate.

v1.0.3

Changes:

  • Add Login PIN Support (Fix #10).
  • Fix Build on FreeBSD.
  • Add Fullscreen Mode on F11 (Fix #9).
  • Add " | Stream" to StreamWindow Title.
  • Switch to Xenial for AppImage Releases (#29) (Fix #25).
  • Fix Box and Pyramid Buttons being swapped (Fix #5).
  • Fix frame_fg Initialization.
  • Free Mutexes in Takion.
  • Free Cond and Mutex of GKCrypt.
  • Fix Crash if Frame Uploader Thread not started.
  • Fix sending Cumulative DATA ACK.
  • Fix Regist Search Non-Broadcast Send (Fix #11).
  • Fix a Leak in ChiakiRegist.

v1.0.2

Changes:

  • Add Bitrate Setting.
  • Create Tarball including git submodules.
  • Disable Windows Thread Name by default (#7).

v1.0.1

Fixes:

  • Make Session ID Checks less strict (#2).

v1.0.0

  • First Release.

Credits

Created by Florian Märkl.

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.

External links

Advertising: