GithubHelp home page GithubHelp logo

evancreno / chiaki Goto Github PK

View Code? Open in Web Editor NEW

This project forked from thestr4ng3r/chiaki

0.0 1.0 0.0 3.18 MB

Free and Open Source PS4 Remote Play Client

License: GNU General Public License v3.0

CMake 3.58% C++ 23.16% C 58.61% Shell 0.78% Kotlin 13.01% Python 0.40% Dockerfile 0.10% Go 0.36%

chiaki's Introduction

Chiaki Logo

Chiaki

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

Travis Build Status AppVeyor Build status builds.sr.ht Status

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

Screenshot

Features

Everything necessary for a full streaming session, including the initial registration and wakeup of the console, is supported. The following features however are yet to be implemented:

  • H264 Error Concealment (FEC and active error recovery however are implemented)
  • Touchpad support (Triggering the Touchpad Button is currently possible from the keyboard though)
  • Rumble
  • Accelerometer/Gyroscope

Installing

You can either download a pre-built release (easier) or build Chiaki from source.

Downloading a Release

Builds are provided for Linux, Android, macOS and Windows.

You can download them here.

  • Linux: The provided file is an AppImage. Simply make it executable (chmod +x <file>.AppImage) and run it.
  • Android: Install from Google Play, F-Droid or download the APK from GitHub.
  • macOS: Drag the application from the .dmg into your Applications folder.
  • Windows: Extract the .zip file and execute chiaki.exe.
  • Switch: Follow README specific instructions

Building from Source

Dependencies are CMake, Qt 5 with QtMultimedia, QtOpenGL and QtSvg, FFMPEG (libavcodec with H264 is enough), libopus, OpenSSL 1.1, SDL 2, protoc and the protobuf Python library (only used during compilation for Nanopb). Then, Chiaki builds just like any other CMake project:

git submodule update --init
mkdir build && cd build
cmake ..
make

For more detailed platform-specific instructions, see doc/platform-build.md.

Usage

If your PS4 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 PS4's IP address.

You will then need to register your PS4 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 PS4 with a PIN, it must be put into registration mode. To do this, on your PS4, simply go to: Settings -> Remote Play (ensure this is ticked) -> Add Device

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

Joining the Community or Getting Help

There are official groups for Chiaki on Telegram and IRC. They are bridged so you can join whichever you like:

Acknowledgements

This project has only been made possible because of the following Open Source projects: radare2, 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 General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version, with the additional exemption that compiling, linking, and/or using OpenSSL is allowed.

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 General Public License for more details.

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

Additional permission under GNU GPL 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.

chiaki's People

Contributors

thestr4ng3r avatar fmaerkl-sw avatar h0neybadger avatar fearlessspiff avatar meltingrobot avatar lovenemesis avatar svnscha avatar ritiek avatar flplv avatar dschndr avatar fredrum avatar asciiwolf avatar lsiudut avatar tuximail avatar thestr4ng3r-ci avatar axelsimon avatar tillmueller avatar strubbl avatar scrxtchy avatar poussinou avatar invidian avatar tolysz avatar shocklateboy92 avatar kevinxucs avatar gabrielalb avatar g-ray avatar defaultuser avatar fenio avatar 3kinox avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.