Parsec Soda is a custom open-source game streaming app that integrates with Parsec API and is focused in Host experience.

Overview


Parsec Soda

The open-source Parsec Arcade hosting tool

👍 Leave a star and fork this repo if you like this project! 😉

📥 DOWNLOAD the newest version from RELEASES tab


💰 Donate | Doações

Brazil

Pix   43.379.701/0001-96   (Flávio Freitas)

Worldwide

BTC LTC ETH
bc1qmvuljqen7tcs57z6pems5jam7dt0taswp6y5x9 ltc1q349yxyzt09u7kvdz5xvkln0pappxhcwl4g4mt9 0x4B0d629d60e7b910d03f3f15d0Db25146Be05642

📋 Summary


📺 Video Demos

Video 1: - Trailer Video 2: - Fighting-game gameplay
Video 3: - Nucleuscoop integration Video 4: - A very detailed tutorial

📣 Social

Discord Server - Parsec Soda

Linktree - My personal networks


🎮 What is Parsec Soda?

Parsec Soda is a custom and open-source Parsec tool dedicated to improve Hosting experience in Parsec Arcade.

I created this tool for my personal use and it has grown too large for me to maintain it by myself, so now I humbly ask this community for help. 😂

Parsec Soda has a plethora of Features to assist the Host.


What Parsec Soda is not about?

  • Parsec Soda is NOT a replacement for the official Parsec client.
  • Parsec Soda can create Arcade rooms, but not join them. So if you want to join a room instead of hosting, you still need the official Parsec client to do it (including your own room created with Parsec Soda) - and I recommend you use the official client for testing your Parsec Soda room.

📜 License

Parsec Soda code is under MIT license, BUT all of the code from Parsec SDK has it's own license, the Parsec SDK License.

Therefore, if you build this source code into a software, you MUST abide by their terms, which means you are NOT ALLOWED TO SHARE an executable file that uses the Personal API - currently used by this source, more specifically by ParsecSession class.

You may only build a copy of your own for personal use (and preferably to also help me improve this project, haha).

In order to share executables, you must set USE_PARSEC_PERSONAL_API to FALSE in CompilerDirectives.h:

#define USE_PARSEC_PERSONAL_API FALSE

🚩 Features

  • Plug/unplug, pre-instance gamepads manually.
  • Manual assignment of gamepad ownership to players via drag-and-drop.
  • Lock/unlock player inputs.
  • Read player inputs in background.
  • Desktop sharing in Arcade.
  • Audio control panel with support to Microphone and Speaker channels.
  • Ban/unban players (including the ones who left the room).
  • Edit room name, thumbnail, player slots, privacy, room link in real-time. No need to close and reopen the room.
  • Dedicated chat and log window with support to chatbot commands.
  • Role tiers for chatbot commands. Guests have their own set of commands like "pick a specific gamepad", "drop gamepad" and "play sound effect". And admins can ban/unban guests from chat commands.

🙋 How to contribute?

  1. Open a new issue reporting what you're going to do (this helps preventing merge conflicts/doubled work).
  2. Fork this repository.
  3. Create a branch for your feature.
  4. Make your local changes.
  5. Submit a pull request.

You can also check my Trello board here.


👷 Build Instructions

The building process is not trivial, so I'll guide you through the process and prevent the major caveats.

  1. Download Visual Studio Community 2019.
  2. Install the C++ development packages.
  3. Pay attention to the checkboxes at the right, you don't need all of them and you can save a lot of disk space by unchecking some of them. I can't tell for sure which ones are expressly required, but most of them are unimportant.
  4. You may need to install the C++/CLI build tools support package from the individual components tab.
  5. When applying the installation, I recommend that you pick the option to download all at once, and then install all at once. It seems faster that way.
  6. Clone this repository to some folder of your preference. Visual Studio generally uses the path {user folder}/source/. You can clone it by download and unzipping from GitHub or by using some version control app (I particularly use Fork).
  7. Start Visual Studio 2019 and open the Project Solution.
  8. Now you must choose one of many paths, depending on the goals of your build. Your options are:
  • Debug: intended for developers, creates a larger executable but that allows developers to inspect code flow.
  • Release: intended for final use, creates a lightweight executable stripped from all unnecessary attachments.
  • x64: For 64-bit Windows users.
  • x86: For 32-bit Windows users.

Below, I list all possible executable directories:

Build Goal Folder
x64 Debug /x64/Debug
x64 Release /x64/Release
x32 Debug /Debug
x32 Release /Release
  1. Choose your build options and hit "Build >> Build Solution" (or Ctrl + Shift + B), the folder of your choice will be created and the build MAY FAIL at first, but the directory will be created. Even if the build does not fail, when you try to run ParsecSoda.exe it will crash. And that is because you need to copy some dependencies to the executable folder.

Please note the first build may take a minute to complete.

  1. Below I list all of the dependencies you need to copy to the build folder to get the app working properly. Copy all of them to the root of your build folder:
Dependency File Source What is it for?
Parsec SDK dll parsec.dll or parsec32.dll /Dependencies/parsecsdk/windows/ Prevents application from crashing, since everything related to Parsec SDK is built upon that dll. Copy parsec.dll if your system is x64. For 32 bits, copy parsec32.dll.
SDL2 SDL2.dll /Dependencies/sdl/lib/x64 or /Dependencies/sdl/lib/x86 Prevents the application from crashing, since the usage of SDL2 in the Master of Puppets requires that dll. Copy SDL2.dll from the /x64 subfolder if your system is x64. For 32 bits, copy it from the /x86 subfolder.
icons The icons folder /ParsecSoda/icons Without this, ParsecSoda displays no icons, every button and image becomes blank.
fonts The fonts folder /ParsecSoda/fonts Without this, all fonts and font sizes will be wrong, degrading user experience.
sfx The sound effects folder /ParsecSoda/sfx These are standard sound effects. Without this, the app may crash when a sfx is played (e.g.: when blocking or kicking an user).
  1. This is how your final build folder should look like:

  2. Now, build the project one more time just to be sure (Ctrl + Shift + B) and your executable should be good to go. Enjoy ParsecSoda.

🔙

Issues
  • cant change account

    cant change account

    i have two account . here just call A and B i often use A .B is what i make but i give it to my friends. but when use parsecsoda it will login my friends account , how to fix ?

    opened by MadShura 3
  • SDL2 added to the dependency table

    SDL2 added to the dependency table

    While helping someone to build Parsec Soda, I noticed that SDL2.dll was missing from the Dependency table of things that need to be added to the build folder's root.

    hacktoberfest-accepted 
    opened by CollinCodez 3
  • Parabéns

    Parabéns

    Parabéns Flavio por ter criado um (talvez até o primeiro) programa de streaming para o parsec, é incrível pensar como um brasileiro conseguiu fazer uma coisa que agora, ta quase todo mundo usando, apenas... parabéns!

    opened by ImKing-github 3
  • My friends connect but they dont have a controller.

    My friends connect but they dont have a controller.

    My friends connect but they dont have a controller, they want to use the keyboard as a gamepad, how do i do that keyboard to gamepad on parsec? i have seen people have the keyboard to gamepad thing on their room.

    opened by borjita2019 3
  • incorrect controller input logos

    incorrect controller input logos

    image I have my controller plugged in and enabled 4 controllers. it shows 2, "player 2 xbox" logos. ik this is a local thing and stuff but it confused meat first.

    opened by rlem0n 2
  • Tried to build, nothing happens

    Tried to build, nothing happens

    I followed the instructions perfectly and hit Build Solution, after the build failed (it always fails), there was no output, just an empty x64/Release folder. I then did a search through the entire system for ParsecSoda.exe, also nothing.

    Update: file not found: C:\Users/melonsoda/source\repos\ParsecSoda\x64\Debug\icon.ico - I think the problem may be this?

    opened by Bruniiin 2
  • "Reset Gamepads" button causes app to crash when no gamepads are connected.

    This is issue is specific to the master branch when compiled myself. It does not occur on the 1.0.1 Pre-Compiled release.

    If you press the "Reset Gamepads" button while all controllers are inactive (red), Parsec Soda will crash. Connecting one gamepad first will prevent the crash, but if you later disconnect all gamepads and hit the "Reset Gamepads" button, it can still crash.

    On the first run after being compiled, this issue does not occur for some reason, but it happens on any subsequent runs. This happens with a freshly downloaded, unmodified copy of the code from the master branch.

    opened by CollinCodez 1
  • [Bug] Suddenly can't connect physical controllers

    [Bug] Suddenly can't connect physical controllers

    Soda worked completely fine before but one day the physical controllers just didn't connect anymore when i clicked them. https://gyazo.com/c5f77fdaf50239665c5f8f60c22322c6

    My real controller works fine, soda detects it and can even puppet the disconnected physical ones...

    I tried reinstalling, updating and downgrading but none worked.

    The only thing i can think of is that few days prior i deleted a few programs to free up my space but i didnt even delete that many and i dont think soda is using another program

    ok i figured it out, i was missing ViGEmBus, its weird i dont think i needed this when i installed soda, maybe it auto installed when i got soda and didnt know about it when deleted those apps hh

    opened by BoardAnims 0
  • Parsec Soda crasha

    Parsec Soda crasha

    Se eu estiver com o adaptador de controle de ps2 conectado o parsec soda crash e não abre, acontece também com outros programas, como x360e e Xoutput você sabe o que pode ser e como arrumar isso?

    opened by Tadashi22xx 1
  • Gamcube Controller doesn't work properly

    Gamcube Controller doesn't work properly

    When connecting to a Soda hoster, gamecube controls become all turboified and all buttons including the analogue sticks will be a rapid input. This is not because the controller or adapter has the turbo function on or anything like that this only happens when I specifically join soda based rooms.

    opened by Amaterachu 4
  • Simple readme fixes

    Simple readme fixes

    • Changed VS Community download link so it directs to the global, not Portuguese version.
    • Changed all the images below Build Instructions to English to make it easier to read for non-Portuguese speakers.
    opened by pauche-arg 0
  • [Feature Request] Ping Limit

    [Feature Request] Ping Limit

    Would be nice to add a ping limit with integer value. An auto-kick system for guests which have, for example, 100+, 200+ or more ping will be kicked immediately.

    opened by LoneWolf1987 0
Releases(1.1.0)
Owner
Flávio Freitas
Flávio Freitas
FFF is a decentralized blockchain based on IPFS/RIPPLE, which integrates lua virtual machine-based smart contracts.

FFF is a decentralized blockchain based on IPFS/RIPPLE, which integrates lua virtual machine-based smart contracts. It is also a software platform designed to help coordinate voluntary free market operations amongst a set of social actors.

gen2600 5 May 31, 2022
Flutter-Clock-and-Reminder-App - a highly functional clock and reminder app developed on flutter framework.

clock_app A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if thi

Umar Baloch 5 Dec 27, 2021
If the button pressed esp will reset and App mode will on. App mode will on then led will on, network is connected led will off.

DHT22-to-Google-sheet-Reset-Using-ESP8266-LED-Switch If button pressed esp will reset and App mode will on. App mode will on then led will on, network

Md. Harun-Or-Rashid 4 Oct 5, 2021
Growtopia internal cheat focused around enhancements and framework, that is loaded automatically. By: ama6nen

CREDITS TO AMA6NEN ORIGINAL REPO: https://github.com/ama6nen/INZERNAL INZERNAL INZERNAL has been discontinued for public usage and a private version t

TheC0mpany 9 Jun 4, 2022
"Sigma File Manager" is a free, open-source, quickly evolving, modern file manager (explorer / finder) app for Windows, MacOS, and Linux.

"Sigma File Manager" is a free, open-source, quickly evolving, modern file manager (explorer / finder) app for Windows, MacOS, and Linux.

Aleksey Hoffman 892 Jun 27, 2022
OpenScan is an open-source document scanner app that enables users to scan hard copies of documents or notes and convert it into a PDF file. No ads. No data collection. We respect your privacy.

OpenScan An open source app that enables users to scan hardcopies of documents or notes and convert it to a PDF file. No ads. No data collection. We r

Ethereal Developers Inc 1.1k Jun 25, 2022
An operating system. Its main goal? Readable code, developer experience and documentation.

OS Dependencies Required for development. sudo apt install build-essential nasm grub-pc-bin grub-common xorriso Required for building cross-compiler.

Stijn Rogiest 2 Jun 20, 2022
The core engine forked from NVidia's Q2RTX. Heavily modified and extended to allow for a nicer experience all-round.

Polyhedron - A Q2RTX Fork A fork of the famous Q2RTX project by NVIDIA™ that strives to improve all of its other factors of what was once upon a time

Polyhedron Studio 13 Jun 3, 2022
A utility to automate the installation, maintenance, and debugging of Asterisk/DAHDI, while integrating additional patches to provide the richest telephony experience

PhreakScript A utility to automate the installation, maintenance, and debugging of Asterisk/DAHDI, while integrating additional patches to provide the

null 6 Jun 5, 2022
Free and Open Source API and drivers for immersive technology.

OpenHMD This project aims to provide a Free and Open Source API and drivers for immersive technology, such as head mounted displays with built in head

null 1.1k Jun 22, 2022
sour is a complete multiplayer Sauerbraten experience in the web delivered as a single Docker image.

sour sour is a complete multiplayer Sauerbraten experience in the web delivered as a single Docker image. Overview I have always loved playing Sauerbr

Caleb Foust 45 Jun 13, 2022
Make your Pop!_OS (Ubuntu Linux) shortcut key experience more like Mac OS

Meta Mac Enables a Mac OS-like shortcut key experience on Pop!_OS (and most Ubuntu-based Linux distros). Installation Download or git clone this repos

Duane Johnson 11 May 27, 2022
A graphical application to enhance user experience with Ubuntu on WSL during the distro installation process.

Ubuntu WSL Splash TODO: Place a CI badge here. TODO: Put a nice screenshot here when we get one. A graphical application to enhance user experience wi

Ubuntu 10 Jun 8, 2022
Command line C++ and Python VSTi Host library with MFCC, FFT, RMS and audio extraction and .wav writing.

______ _ ___ ___ | ___ \ | | | \/ | | |_/ /___ _ __ __| | ___ _ __| . . | __ _ _ __

Leon Fedden 279 Jun 18, 2022
Tiny and portable usb host and device stack for mcu with usb ip

Tiny and portable usb host and device stack for mcu with usb ip

sakumisu 364 Jun 28, 2022
Streaming video over USB 3.0 using MAX10 FPGA and CYUSB3014 synchronous slave mode.

DECA_USB3_Cam Streaming video over USB 3.0 using MAX10 FPGA and CYUSB3014 synchronous slave mode. Video: Block diagram _______

Dmitry Koroteev 9 Apr 18, 2022
bsdiff changed to remove bz2, the header and to allow streaming interfaces, to be used on the esp32 with idf as a component

bspatch for esp32 This project adds support for bspatch to the esp32 with some changes: no compression (bz2), no header and changed the interfaces to

Blockstream 8 Apr 26, 2022
ESP32S2 Arduino USB host printer, MIDI, and keyboard demos

ESP32 S2 USB Host Jumpstart A collection of experiments and demos using Espressif ESP32 S2 in USB host mode. Most of the sketches have little or no C+

null 14 Jun 17, 2022
ARPANET NCP for Linux, and IMP-host interface to SIMH

ARPANET Network Control Program for Linux, interfacing with the SIMH IMP emulator. This is a work in progress. At this point, the NCP is not a high qu

Lars Brinkhoff 4 May 11, 2022