Giter VIP home page Giter VIP logo

nucleuscoop's Introduction

Nucleus Co-Op

Nucleus Co-Op is a tool for Windows that allows split-screen play on many games that do not initially support it. Its purpose is to make it as easy as possible for the average user to play games locally. Essentially, Nucleus opens multiple instances of the same game with sym-linked files, each with its own customized version of xinput libraries that will only answer to ony specific gamepad instance.

Support its development by donating!

Patreon: https://www.patreon.com/distro

Bitcoin: 37UABQVXTsy1qsu2RTyYGJ5qAN24jtM5vm

Ethereum: 0x6fd82824cfdEDAF489e55aF67Ec1E8232813AAD3

Litecoin: LZ6uPb6QjzxtYd3KgVWoNdezQVwTi6hsh5

Bitcoin Cash: 1EQFkXUKPB9RLA8BpiFKkPAfqrz6dNyyBy

Subscribe to our subreddit: https://www.reddit.com/r/nucleuscoop/

Join our Discord: https://discord.gg/jrbPvKW

alt text

How does it work?

Starting from Alpha 4, all games use a generic handler that can handle pretty much all situations. To add a new game, you can just create a new *.js file in the games folder, and describe what your game needs to run. Now, what the GenericHandler actually does?

When the user hits play:

  • If the game needs modifications to the save files, we backup them so when the splitscreen session ends we can return all the configurations back to normal.
  • The app symlinks the entire game folder to the Data folder, so we can launch each instance of the game with custom DLLs.
  • Runs the JavaScript engine, so any custom code that needs to be executed by player ID runs
  • We copy a custom xinput dll specific for each gamepad: Each xinput passthroughs a specific gamepad input to the 1st gamepad (xinput1 just passthroughs, xinput2 passes to 2, i.e).
  • If needed, we extract SmartSteamEmu and start the game using it.
  • Now we keep track of the processes, looking for the launcher and the actual game window, so we can position it correctly on the screen.

How to help with development?

If you want to contribute code, here is a brief summary of what you need to begin developing: TODO: finish up this section :/

For the application: - Visual Studio 2015 or 2017 (Community works fine)

For the games's Javascript files - Visual Studio Code - ProcessExplorer

Built With

nucleuscoop's People

Contributors

lucasassislar avatar r-mach avatar d1maxa avatar celsobielskis avatar byhemechi 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.