How Joystick Gobloon stands between your controllers and a game: create virtual joysticks, hide the physical ones, choose which programs still see them, and set up a two stick game from start to finish.
The idea
How it works
A game reads joysticks through the system. Joystick Gobloon reads your real sticks first, runs your profile on every change, and writes the result to virtual joysticks. The game is set up to use only those virtual joysticks.
The real sticks are then hidden from the game. Otherwise it would see every input twice: once from the stick itself and once from the virtual joystick.
Green pulses are inputs that reach the game through Joystick Gobloon. Red ones are the direct path from a real stick, which device hiding stops.
A two stick game
Take a game flown with a stick in each hand. It has two kinds of controls: a Combat mode and a Travel mode, where the same buttons do different jobs. You want:
Each real stick to appear in the game as its own virtual joystick: the left one as vJoy #1, the right one as vJoy #2.
A short press on one button to cycle the game's mode, and a long press to jump straight between Combat and Travel (a Tempo action).
A thumb button held as M1 to give the other buttons a second layer of jobs (modifiers).
A softer response curve on the pitch and yaw axes for fine aiming (Response curve).
The game to see only the two virtual joysticks, never the real sticks.
The rest of this page sets that up. The last section walks through it in order.
Virtual joysticks
On Windows (vJoy)
On Windows the virtual joysticks come from the vJoy driver. The Joystick Gobloon installer adds the signed vJoy 2.1.9.1 driver if it is missing. You never need the separate Configure vJoy tool: devices are made right in the app.
Open the Virtual joysticks page in the left rail (the gamepad icon).
Press Add a virtual stick at the top right of the page to add a stick; where gamepads are available, Add a virtual gamepad next to it adds one. Sticks and gamepads share one row of tabs. A new stick starts as a copy of the first one.
Switch on the axes the game should see, set the number of Buttons (up to 128) and Hats (up to 4, either Continuous or 4 directions).
Press Create, or Apply for an existing device. Windows asks for administrator rights once per change.
Repeat for the second stick. vJoy supports up to 16 devices.
Devices cannot be changed while a profile runs: stop it first. Now and then Windows needs a restart before a changed device shows up; the app says so when it happens.
On Linux
Linux needs no driver: the virtual joysticks are made by the kernel's uinput module. They use the same Virtual joysticks page and the same profiles.
On the Devices page, click Install on the System Gobloon banner and enter your password once. System Gobloon is a small system service that comes with Joystick Gobloon: it keeps the virtual devices and hides sticks for every program, the way vJoy and HidHide do on Windows. You can also do it later under Settings, General.
Add and set up devices on the Virtual joysticks page as on Windows, with up to 8 axes, 95 buttons and 4 hats each. No password is needed for that.
The devices are there all the time, as vJoy's are: start a game before or after Joystick Gobloon, stop and start profiles, and the game keeps them. With nothing writing to them they rest centered. Games see them as JoyGob 1, JoyGob 2 and so on.
Windows games run through Proton or Wine see only the first hat of a virtual joystick: Wine passes the other hats on as one control. Native Linux games see all four. For games under Proton, map your stick's other hats to virtual buttons with Hat buttons.
Without System Gobloon, click Grant access on the Devices page instead (also once, with your password): the devices then appear only while a profile is active and disappear when you stop it.
Unlike vJoy devices, each Linux joystick is a product of its own for games, so a game does not mix them up when their order changes. In the device editor, Name sets the name games show; the button suggests one: Gobloon and the name of the stick the profile maps onto the device, or Gobloon Stick 1, Gobloon Throttle 1 or Gobloon Panel 1 by its layout. Product ID is normally picked from the device number; enter the ID of an earlier setup to keep a game's bindings. A game sees a renamed device as a new one.
The same page also adds virtual gamepads, up to four, named GameGob 1 and so on. They have the layout of an Xbox 360 controller, so games, Steam and Proton take them for one: a game that only understands gamepads can be played with a stick through Map to gamepad. Windows has no virtual gamepads yet.
The Linux kernel passes on at most 80 buttons of a stick. With System Gobloon installed, Joystick Gobloon reads the rest by itself. Without it, the tab of a stick with more buttons on the Devices page offers Read all buttons: after your password, Joystick Gobloon reads every button from the stick's raw HID device, numbered as on Windows, so profiles match. Programs that read raw devices, such as Steam or Proton, can then read that stick too, even while it is hidden: turn off Steam Input for it.
Test the output
Below the device settings is a tester. Lock the device to take control of it, then move its axes, buttons and hats by hand. Open the game's control settings next to it: when you move an axis here, the game should react to it. The input viewer shows the same device live while a profile runs.
The tester also shows what the open profile does with each output. Blue axes, buttons and hats are used by the profile; amber ones are written by several inputs that run at the same time, so they fight over the output, and a small number shows by how many. The rest are free. Hover one to see the profile and every device, input and mode that uses it. The Used and Conflict boxes above the tester hide those outputs, so only the free ones are left; the profile does not change.
Hiding devices
On Windows (HidHide)
On Windows the HidHide driver hides devices for every program, even when Joystick Gobloon is closed. The installer adds the signed driver if it is missing.
Click the eye button in the top toolbar to open the Device hiding window.
Click the eye of each real stick. A closed red eye means hidden; an open green eye means every program sees it.
Unplug the stick and plug it back in. Windows applies the change on reconnect.
Keep Enable device hiding on. The same switch sits in the status bar at the bottom of the window and on the tray icon, for the moments you want every program to see everything again.
Leave the virtual joysticks visible: they are what the game should read.
Programs that see hidden devices
A hidden stick is not gone: a short list of programs still sees it. Joystick Gobloon puts itself on that list at start, so your profile keeps reading the sticks. You can turn that off in Settings with See hidden devices, but then the profile cannot read hidden sticks.
Open the Applications page in the left rail.
Press Add application and pick the program, for example the stick vendor's configuration tool or a calibration utility.
Each row shows whether that program Sees hidden devices or Does not see hidden devices; switch it per program.
Inverse application cloak turns the list around: then only the listed programs are blind to hidden devices and every other program sees them. Use it when only one or two games should be kept from the real sticks.
The game itself should not be on the list in normal mode. If it is, it sees the real sticks again and inputs come in twice.
On Linux there is no such list: a hidden stick is hidden from every program, and the eye on each row of the Applications page is grayed out. Joystick Gobloon itself still reads hidden sticks through System Gobloon. Hide or show a stick with the eye on its tab.
On Linux
Linux has no HidHide; System Gobloon does its work. Hide sticks with the same eye buttons. With System Gobloon installed (see virtual joysticks on Linux):
A hidden stick is closed to every program, games, Steam and Wine or Proton included, through all its device nodes, raw HID too. It stays hidden while Joystick Gobloon is closed and after you plug it in again or restart the computer.
Only Joystick Gobloon still reads it. There is no list of other programs that still see hidden devices.
Removing System Gobloon (Settings, General) shows the sticks again; Joystick Gobloon keeps the list of hidden sticks and goes on hiding them its own way.
Without System Gobloon, Joystick Gobloon reads a hidden stick exclusively: while the app runs, no other program gets input from it, games included.
Hiding lasts only while Joystick Gobloon runs. Close the app and every program sees the sticks again.
There is no list of programs that still see hidden devices.
Programs that read raw HID (hidraw), such as Steam or Wine and Proton, can open a stick's hidraw node when your system allows it. Then hiding the stick asks for the administrator password once and closes that node too, until you show the stick again (this part stays while the app is closed). Restart programs that had the stick open already.
Without the password the stick gets a warning sign on its tab and in the device hiding window. Show and hide it again to be asked again, or turn off hidraw (or Steam Input) for that stick in those programs, or games see it twice.
Profiles per program
Give a program its profile
Each game on the Applications page can have its own profile. While a profile is active, bringing that game to the front switches to its profile, so you no longer open the right one by hand before every game.
Open the Applications page in the left rail.
Add the game: Add application picks its program file, Add a running program lists the programs that are open right now.
In the game's row, pick its profile: the one open in the window, one another program uses, or Choose a file….
Optionally pick the mode it starts in; Starting mode keeps the profile's own.
Activate any profile with the play button. From then on the game in front decides.
Programs are matched by their file name, so every copy of a game counts, also a test build or a second install. A Windows game under Wine or Proton on Linux is known by its .exe, the same as on Windows. On Linux the program in front is read from X11 windows, which is where Wine and Proton games run, also on a Wayland desktop through XWayland; a native Wayland window in front counts as any other program and keeps the profile. Programs without a profile, like a radio tool listed only to see hidden devices, never change the profile. Joystick Gobloon never picks a profile for itself.
When the profile switches
Only while a profile is active. A stopped profile never switches, and stopping it by hand turns switching off until the next activation. After a stop the profile starts in its own starting mode again, not in the mode a game picked.
A game with a profile comes to the front: within about a second its profile opens in the window and runs. The virtual joysticks and gamepads stay, so a running game does not lose them.
Several games with profiles are running: the one in front wins. Alt-tab to another of them and its profile runs.
Anything else in front (the desktop, a browser, Joystick Gobloon itself) changes nothing, and neither does closing a game: the current profile keeps running.
Back to the same game after alt-tab: its profile keeps running as it was, in the mode you switched to.
The status bar and the tray icon's tooltip say which program chose the profile, for example FlightSim.exe in front: Space flight.xml runs, and the Applications page highlights that program.
Changes while it runs
Activating with unsaved changes
Switching would close the profile you are editing, so Joystick Gobloon asks first: Save current saves it and switches as usual, Continue without switching runs it as it is with no switching until the next activation.
Editing the running profile
The edits take effect at once, and switching waits (the status bar says so). If a game with a profile comes to the front meanwhile, you can Save and switch or Stop switching.
A stick of the profile is unplugged, plugged in or replaced
The profile stops. Profile stopped lists what changed, with Map controls for a replaced stick and Activate to go on. The same happens when the virtual joysticks or gamepads change and no longer have what the profile needs. Other devices, like a mouse or a stick the profile does not use, change nothing.
A game's profile cannot be loaded
The current profile keeps running and stays open in the window; the status bar names the file, and the log has the reason. Nothing pops up in the middle of a game. The game's profile is tried again the next time the game comes to the front, so fixing the file and switching back to the game is enough.
System Gobloon
What it is
System Gobloon is the system part of Joystick Gobloon. Some of the work needs administrator rights: making virtual devices that stay while games run, and hiding real sticks from every program. System Gobloon does that work, so Joystick Gobloon itself runs as a normal program and never asks for your password again after it is installed.
It comes with Joystick Gobloon and has the same version. When the two differ after an update, the banner on the Devices page offers Update. Settings, General shows its state and can install, update or remove it.
On Linux
On Linux System Gobloon is a small system service. Click Install on the banner on the Devices page and enter your password once; nothing else asks for it. It starts with the computer, before you log in.
Virtual devices. It makes the virtual joysticks and gamepads and keeps them all the time, centered while nothing writes to them. Joystick Gobloon borrows them while a profile runs; if the app closes or crashes, the devices stay and rest centered. Keyboard and mouse output of profiles goes through it too.
Hiding. A hidden stick is closed to every program, through all its device nodes, raw HID too, even while Joystick Gobloon is closed. Only Joystick Gobloon still reads it, and gets every button of sticks with more than 80.
Only you. It serves only the user at the computer's screen; other users and remote logins get nothing from it.
Safe to stop. When it stops, crashes or is removed, hidden sticks are visible again. Removing it keeps your list of hidden sticks and your virtual devices; Joystick Gobloon then goes on without it as described above.
For the curious: the service is system-gobloon.service, its program and state live in /var/lib/system-gobloon, and journalctl -u system-gobloon shows what it did.
On Windows
On Windows, vJoy and HidHide do this work today. System Gobloon for Windows will be one driver in their place, with what Linux already has: each virtual stick with a name and product of its own, so games never mix them up. Windows loads only drivers signed through Microsoft, and that needs an extended validation certificate and a hardware developer account, paid every year. We are raising the money for that; if you would like System Gobloon on Windows, a donation brings it closer. Until then Joystick Gobloon keeps using vJoy and HidHide.
Putting it together
Step by step
The two stick game from the start of this page, from nothing to playing:
Create two virtual joysticks on the Virtual joysticks page: vJoy #1 for the left stick and vJoy #2 for the right one, each with the axes and as many buttons as the stick has.
Build or import the profile. Import a Joystick Gremlin profile from the toolbar, or start a new one. If it was made on another PC, use Map controls on the Devices page to match it to your sticks. A profile also remembers the virtual devices it uses: when one is missing here, or has fewer axes, buttons or hats than the profile writes to, a banner on the Devices page offers to set it up. Nothing is removed or made smaller.
Map every input. The quickest way is the wizard, the wand button at the start of the toolbar: name the profile and pick the virtual joystick each stick maps to, here the left stick to vJoy #1 and the right one to vJoy #2. It adds a Map to virtual stick for every axis, button and hat, axes on the same axis where the virtual joystick has it. It warns when a virtual joystick has fewer inputs than its stick; those inputs stay unmapped. Get started walks through the wizard in detail. Or map inputs one by one: select an input on the Devices page and add Map to virtual stick.
Add the extras. A Tempo action on the mode button: a short press sends one vJoy button that the game uses to cycle modes, a long press sends another that jumps between Combat and Travel. Make a thumb button the M1 modifier and give the buttons you want doubled an M1 layer. Put a response curve before Map to virtual stick on pitch and yaw.
Hide the real sticks in the Device hiding window and reconnect them.
Activate the profile with the play button. The virtual joysticks now follow your sticks.
Bind the controls in the game by moving your real sticks: the game only sees vJoy #1 and vJoy #2, so every binding lands on a virtual joystick. Save the profile.
From then on: start Joystick Gobloon, press play, start the game. In Settings, Joystick Gobloon can start with Windows and activate the profile on its own.
When something is off
The game sees every input twice
A real stick is still visible to it. Hide the stick, reconnect it, and make sure the game is not on the Applications list.
The game sees nothing at all
Check that the profile is active (the play button) and that the input uses Map to virtual stick. The tester on the Virtual joysticks page shows whether the device itself reaches the game.
Joystick Gobloon does not see a hidden stick
Keep See hidden devices on in Settings, so the app stays on the list of programs that see hidden devices.
A changed vJoy device does not show up
Stop the profile before changing devices. If the app asks for it, restart Windows.
An axis jitters, or a button fires twice
Worn hardware. On the Calibration page, switch on the Jitter filter of that axis and save: changes smaller than the share of the travel you set are ignored, with no delay, and the axis still reaches its ends and its center. A line on the output bar shows what is sent. For buttons and hats that bounce, switch on Debounce for the device: after a press or release, further changes within that time are ignored, and the first one still passes at once.
The game bound the wrong device
Games remember devices by order or by name. Clear its bindings, keep the real sticks hidden, and bind again by moving the sticks while the profile runs.