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.

🔙

Comments
  • Audio Pitch issue

    Audio Pitch issue

    I have looked everywhere online to see if I could find anything about it because I'm not the only one getting this audio bug. Everything is slightly lower pitch. I just wanted to know is it something I'm doing or is it just the program?

    opened by Vasu222 4
  • 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
  • Left Analog starts moving cursor

    Left Analog starts moving cursor

    When I restarted parsec soda, the problem went away. It's never happened before, could a player somehow switch to some other mode? Don't know how to reproduce but I'll update it if happens again...

    opened by Remixful 1
  • "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
  • is it possible to reject keyboard input from others

    is it possible to reject keyboard input from others

    One of my players is using a keyboard to controller remapper and is sending both keyboard and controller inputs.

    Is it possible to reject the keyboard inputs?

    opened by BisericaOrtodoxa 4
  • Parsec soda not having sound in the background when hosting

    Parsec soda not having sound in the background when hosting

    So I've been having this problems for almost a year and never figure out why, The app show that there is sound playing but when someone join there is not sound at all for them. I have seen that some others people streaming they do have sound, what i'm doing wrong? I keep the app updated but still no sound :( Captura de pantalla 2022-08-12 141351

    opened by Heavenskies11 1
  • [Feature Request] Echo cancelling like Parsec

    [Feature Request] Echo cancelling like Parsec

    Discord has double sound when on a discord call and hosting with Parsec Soda. Parsec has a feature to prevent this called echo cancelling. It would be nice to include it in Parsec Soda aswell.

    opened by Ven0m0 1
  • [Feature Request] Automatic Controller connections

    [Feature Request] Automatic Controller connections

    It would be a nice feature if there was a way to automatically connect a controller if a player joins and then disconnect the controller if the player leaves.

    opened by clichayed 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
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 6 Oct 24, 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 6 Aug 4, 2022
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 3 Aug 17, 2022
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 12 Nov 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 1k Nov 20, 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.2k Nov 20, 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 Nov 17, 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 1 Nov 15, 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 19 Nov 22, 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 12 Nov 13, 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 59 Nov 15, 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 13 Oct 29, 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 14 Oct 17, 2022
Command line C++ and Python VSTi Host library with MFCC, FFT, RMS and audio extraction and .wav writing.

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

Leon Fedden 294 Nov 16, 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 501 Nov 18, 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 11 Oct 24, 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 28 Nov 21, 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 3 Jul 21, 2022