Friday, August 04, 2017

Fix: Pokken Tournament controller wrong D-Pad behavior in Cosmic Star Heroine (and other Unity games?)

Symptoms

When using a Pokken Tournament controller (which is a 16-bit-style controller with a D-pad only, no analog sticks) with the game Cosmic Star Heroine in Steam on PC, the game recognizes the up/down D-pad inputs as left/right. For example, pressing Up on the controller moves the character in the game to the left.) The game doesn’t recognize the left/right D-pad inputs at all.

PokkenTournamentController-CosmicStarHeroine

(From research I’ve done, I suspect that this issue may also affect other games built using the Unity engine, and/or the D-pad inputs on other controllers.)

Workaround / Fix

Part 1: Enable Generic Gamepad Configuration Support in Steam

  1. Open Steam.
  2. In the Steam main window, in the View menu, select Settings.
  3. In the Settings window, select Controller (in the left pane), then click General Controller Settings.
  4. In the “Big Picture”-style Controller Settings window, check Generic Gamepad Configuration Support, then click Back.  (You may need to maximize the Controller Settings window to see the Back button near the bottom of that page.  Or, just close the window.)

Part 2: Set up controller configuration for Cosmic Star Heroine

Part 2A: Open the Steam Controller Configuration window for Cosmic Star Heroine.

  1. In Steam, select the Library pane.
  2. In your list of games, select Cosmic Star Heroine.
  3. Under “Links” on the right side of the window, click Controller Configuration.

Part 2B: Disable the Left Analog Stick input.

SteamControllerCongurationPokken

  1. In the Steam Controller Configuration window, click the box in the lower-left that points to the left analog stick on the picture of the controller.
  2. In the Style of Input dropdown, select None. 
  3. Click Back.

Part 2C: Configure D-pad input to be treated as Left Analog Stick input.

  1. In the Steam Controller Configuration window, click the box in the lower-left-center that points to the D-pad on the picture of the controller.
  2. In the Style of Input dropdown, select “Joystick Move”.
  3. In the Output dropdown, select “Left Joystick”.
  4. Click Back.

Part 2D: Save and apply the changes.

  1. Click the Export Config button.
  2. Click the “Save new personal binding” button.
  3. Give your configuration a  name – I used “POKKEN” – and click Save.
  4. Close the Steam Controller Configuration window.

With this workaround, I’m finally able to play the 16-bit-era-like game Cosmic Star Heroine on my 16-bit-era-like, analog-stick-less Pokken Tournament gamepad controller!

Other Things I Tried, Unsuccessfully

I tried using the excellent JoyToKey to remap my controller’s D-pad presses to keyboard keys. Unfortunately, that didn’t work, as Cosmic Star Heroine then acted on both the remapped input and the original (and incorrect) D-pad input, such that pressing “Up” on the controller with my JoyToKey mappings active would result in my character moving diagonally up and left in the game.  (And as of the time of this post, Cosmic Star Heroine doesn’t have any option to just disable or ignore controller input altogether, or to remap controllers from in the game itself.)

I also couldn’t find any config files or registry keys to reconfigure or disable controller input.

Finally, searching and posting on the Cosmic Star Heroine forum on Steam didn’t yield any solutions.