ControlStadia

ControlStadia allows arbitrary mapping of input devices to a "standard" virtual input controller which works with Stadia!

What is ControlStadia?

ControlStadia is a Chrome extension developed by ihatecsv, and its main feature is "ControlStadia allows arbitrary mapping of input devices to a "standard" virtual input controller which works with Stadia!".

Extension Screenshots

screenshot

Download ControlStadia Extension CRX File

Download ControlStadia extension files in crx format, manually install Chrome extensions in the browser, or share the crx files with friends to easily install Chrome extensions.

Extension Usage Instructions

                        With ControlStadia, you can:

* Map up to four physical gamepads to a single "standard" virtual gamepad which works with Stadia.

* Scale and offset axis to increase or decrease sensitivity, change axis ranges.

* Do normal things like playing GRID with a steering wheel and pedals!

* Do ridiculous things like playing Borderlands 3 with a flight yoke and throttle quadrant!

Usage:

Simply install the extension and open or refresh Stadia! Click the extension icon to configure your virtual joypad.

Once the extension menu is open, it should automatically look for any joysticks plugged into your PC. If none show up, try pressing a button or moving a stick on one.

Once the mapping controls appear, you can now set each button and axis for the virtual gamepad. The "target gamepad" at selected at the top is the gamepad which will be scanned for input when you click on a mapping button. If you want to include controls from multiple gamepads, make sure you switch this target option to the correct one BEFORE pressing a mapping button.

The "Scale" field will multiply input by the factor specified. For example, setting this to two will cause the joystick to become twice as sensitive, but also lose twice its range of motion, since ControlStadia caps axis values to the range [-1, 1]. You can also use a negative scale to invert the axis.

The "Offset" field will add a constant value to the input.

ControlStadia has manifest permissions to run on html5gamepad.com, where you can view the output values of the virtual controller. I highly recommend setting up your virtual controller while on this page!

Scale and offset example:

Say you're trying to map R2 to a controller axis that ranges from [-1, 1]. Because R2 expects a value in the range [0, 1], we must both scale and offset the axis. In this case, the scale would be 0.5 (changing the range to [-0.5, 0.5]) and the offset would be 0.5, (changing the range to [0, 1]).

If you would like to make a suggestion, report an issue found while playing games on Stadia with ControlStadia, or would like to view the list of currently known issues an suggestions, please visit the GitHub issues page here: https://github.com/ihatecsv/ControlStadia/issues                    

Extension Basic Information

Name ControlStadia ControlStadia
ID faodiopjdcjfeflfmeadfkgodcbioejp
Official URL https://chromewebstore.google.com/detail/controlstadia/faodiopjdcjfeflfmeadfkgodcbioejp
Description ControlStadia allows arbitrary mapping of input devices to a "standard" virtual input controller which works with Stadia!
File Size 56.58 KB
Installation Count 1,514
Current Version 0.0.2
Last Updated 2021-01-12
Publish Date 2020-03-12
Rating 4.07/5 Total 15 Ratings
Developer ihatecsv
Email [email protected]
Payment Type free
Extension Website https://github.com/ihatecsv/ControlStadia
Help Page URL https://github.com/ihatecsv/ControlStadia/issues
Supported Languages en
manifest.json
{
    "update_url": "https:\/\/clients2.google.com\/service\/update2\/crx",
    "name": "ControlStadia",
    "version": "0.0.2",
    "description": "ControlStadia allows arbitrary mapping of input devices to a \"standard\" virtual input controller which works with Stadia!",
    "background": {
        "scripts": [
            "background.js"
        ],
        "persistent": false
    },
    "page_action": {
        "default_popup": "settings.html",
        "default_icon": {
            "16": "img\/cs-16.png",
            "32": "img\/cs-32.png",
            "48": "img\/cs-48.png",
            "128": "img\/cs-128.png"
        }
    },
    "content_scripts": [
        {
            "matches": [
                "https:\/\/stadia.google.com\/*",
                "https:\/\/gamepad-tester.com\/*"
            ],
            "js": [
                "controlstadia.js"
            ],
            "run_at": "document_start"
        }
    ],
    "permissions": [
        "storage",
        "declarativeContent"
    ],
    "icons": {
        "16": "img\/cs-16.png",
        "32": "img\/cs-32.png",
        "48": "img\/cs-48.png",
        "128": "img\/cs-128.png"
    },
    "manifest_version": 2
}