Giter VIP home page Giter VIP logo

controllerpriest's Introduction

Controller Priest

This project has been created as a means to unify multiple controller inputs to a single output port. This is a potentially niche problem but should you have the problem, hopefully this tool can help.

The Problem

I stream with a friend on our Twitch channel Rolling Retro where we play classic video games. Sometimes this can be PS1, PS2 or PC games. Now this is a ton of fun and I highly encourage anybody to check out the stream but due to recent happenings (at time of writing) we haven't been able to be in the same place at the same time.

This is rather problematic, because a crux of our stream is the ability to pass the controller between each other as we talk, drink and generally muck around. When we play online we can't really play our actual consoles, so we default to using emulators like ePSXe. This would be fine if we could swap controllers with ease, but more often than not we would need to take a break, reset some things and start up again. This isn't ideal since it breaks the flow of the streams when we want to just keep things running.

The Solution

This tool offers a solution to the problem. It emulates a controller on a port and that a player can take control of and pass off to other players when they want to. A simple thing, but works surprisingly well. It actually surprises me that emulators don't have this built in, or even Parsec for that matter. So here it is! A simple fix for a simple problem.

Pre-requisites

In order for this to work, you'll need a couple of things.

  1. A Windows PC. Sorry Linux and Mac users, this was built with Windows in mind, because the guts of it relies on a windows driver. If you want to use this on those systems, let me know and I can investigate.

  2. A screen sharing application that emulates a second controller. You could of course use this locally if you wanted, which is a little odd but not unreasonable, however I envisioned this mostly being used for playing with people when they aren't in the same location. Programs like Parsec or Steams Share Play thing do this and should work with them.

  3. You might need to download ViGEm If you have Parsec installed I believe you should be fine but if the controller has any issues starting up or running, it's probably because you need to download the driver. Most of the work is done by ViGEm or SharpDX in this tool, I just wrote some simple bridging code.

  4. Run this on the computer that is running the video game/emulator. No point having it on the other computer.

  5. The game/emulator needs to be XInput compatible or be able to resolve XInput controllers without modification. DirectInput won't work as far as I know, though maybe that's worth integrating in the future.

That's all. If you got all that, you should be fine.

How To Use The Tool

Might be self explanatory, but the wiki has a guide on using the tool.

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.