Skip to content

danikaze/controller-overlay

Repository files navigation

controller-overlay

Generate a browser source (to use via OBS or any other tool) displaying an overlay of your HOTAS controller in real time.

config=elite

Preview screenshot

config=megadrive6

Preview screenshot

config=megadrive3

Preview screenshot

config=sufami

Preview screenshot

config=snes

Preview screenshot

config=nes

Preview screenshot

config=famicon

Preview screenshot

config=mastersystem

Preview screenshot

config=mastersystemred

Preview screenshot

config=arcade8snes

Preview screenshot

config=arcade6neogeo

Preview screenshot

config=xbox360

Preview screenshot

config=gba

Preview screenshot

How to use it

Download the latest version and open index.html. This should display a webpage like the one shown in the screenshot.

In OBS add a New source > Browser and enter the provided OBS URL in the bottom of the page (to show the page with a transparente background and without the info window at the bottom). This should be something like file:///your-folder/controller-overlay/index.html?config=megadrive&display=1

How to customize it

First version is just a PoC (Proof of Concept) where the shown controls are what I find interesting to show for Elite Dangerous, and the bindings are the ones I use with my X-56, so every value is harcoded.

Later on, I added some other configs as shown in the top of this document

The html will show the Elite one by default, but adding ?config=megadrive should show any other available one (and now it can be chosen with a select input if display=1 is not added).

Support

This project plans to support combinations of inputs and displays:

Digital button 1-axis 2-axis
CSS digital button
CSS analog button
CSS X-axis
CSS Y-axis
CSS XY-axis
Image digital button
Image analog button
Image X-axis
Image Y-axis
Image XY-axis

✔ = done | △ = planned | ✖ = not gonna happen

Rebuilding

First, clone the repository and install the dependencies:

npm install

Then, just build it:

npm build

Building will generate the required files in the app folder, the index.html file is the one to use.

Changelog

0.7.0

0.6.0

0.5.0

  • Added support for logic configuration (AND, OR, NOT) - i.e: to show an image when 2 buttons are pressed at the same time (diagonals), etc.
  • Added a configuration for the Buffalo controller with the Arcade 4+4 stick design.

0.4.0

  • Added styles. Can import extra css files by the style query param or field in the configuration.

0.3.0

0.2.0

  • Allow to fully customize the layout from a config file. Config file is still hardcoded tho, but it's a big step.
  • Added a configuration for the Mega Drive mini 6B controller.
  • Added support for:
    • Digital buttons with images
    • 1-axis shown as a digital button with CSS
    • 1-axis shown as a digital button with images

0.1.0

First version. PoC to test the creation of a browser source in OBS.

It supports:

  • Digital buttons with CSS
  • 1-axis with CSS
  • 2-axis with CSS
  • Digital buttons shown as 1-axis with CSS
  • Digital buttons shown as 2-axis with CSS