Adding support for your own GamePad to A Hat in Time Beta Build

For A Hat in Time, we’ve added support for the gamepads we have available (Xbox 360, Xbox One, GameCube (w/ Raphnet adapter), Dual Shock 4, Logitech F710, SNES (w/ RetroLink)).
If you’re using a different controller, the game won’t recognize it, but you can add support for it manually fairly easy. This is a guide on how to do so.

Creating the Config File

  1. Navigate to /SteamApps/Common/HatinTime/HatinTimeGame/Config/GamePads/.
  2. Duplicate the Xbox360.ini file and rename it to suit your controller (examples: SNES.ini, GameCube_MayFlash.ini, etc)
  3. Open the config, and change the value of “ControllerName” to the name of your controller.


Getting the GUID

In order to have the game pick up your specific controller, the game needs to know the ID for your kind of controller. For this we recommend DITool, but there are other tools that do the same.

  1. Download DITool and launch it.
  2. You should get something that looks like the following screen:
  3. In the above picture, I have my Xbox One controller plugged in. The ID we need is guidProduct.
  4. Change the value of “+GUID” to the guidProduct seen in DITool. The “<” and “>” aren’t needed.


Changing Button Layout

This is where things start to get a little bit complex, but it shouldn’t be too bad. We’ll start with changing the digital button IDs.

  1. Open  “Set up USB Game Controllers” in Windows (search for it in Start).
  2. Open the properties for your gamepad, it should look like this:
  3. Press the JUMP button on your gamepad. For our Xbox One controller, (1) lights up. In order to get the button id, we subtract 1. This means that the button ID for JUMP is 0 for our gamepad.
  4. In the config for our gamepad, we go to the [Buttons] group and find Hat_Player_Jump.
  5. We then set the ButtonID for Hat_Player_Jump to 0.
  6. Repeat this for all other digital buttons.


Changing Analog Input

  1. For analog input, there variable to change is AxisID instead of ButtonID. Unfortunately, Windows has no easy way of displaying AxisIDs for gamepads.
  2. You may have to try various values for AxisIDs until you get them right. The AxisIDs usually range between [0 – 5].
  3. You will have to restart the game after making changes to the ini.

After following the above steps, you’re done!
We’re sorry that it’s a bit tedious to add support for gamepads right now; we hope to make this integrated into the game settings in the final release.

If you make a config for a gamepad, please share it with us! We’ll include it so other people can put it to good use.


  • Sick
    Posted March 10, 2015 at 3:19 pm | Permalink

    I found the GUID for the newer mayflash adapter for the Wii Classic Controller but the game seems to be constantly discovering the controller even when they are unplugged, and the stick or the d pad seems to be always pushing to the right. is my deadzone messed up or something? any help would be appreciated.

  • Bore
    Posted March 11, 2015 at 7:51 am | Permalink

    Guuuuys please make physical copies I wanna buy one! I have been playing so much Wind Waker lately. Also, would be super cool if this was on Linux/SteamOS too, but I won’t hold my breath for that one lol

    • Sick
      Posted March 11, 2015 at 11:27 am | Permalink

      They are making physical copies, but I’m not sure you can get one unless you backed at the 50 dollar tier like I did :3

  • Maximilian
    Posted March 11, 2015 at 8:42 am | Permalink

    Using older Mayflash Classic controller adapter (this one: but had same issue as Sick, looked like this:
    Had a mess with the config file and turning all “AbsoluteValue = TRUE” to “AbsoluteValue = FALSE” fixed it. Also messed with button configs as the mappings were off (I assume this is due to mine being the older adapter and the default config from the latest update being for the newer).

    Config for older Mayflash adapter with a Classic Controller Pro:

    Now, new issue though: even with this config, for some reason the y-axis on the left stick (running forward/back) is inverted.

    • Sick
      Posted March 11, 2015 at 10:57 am | Permalink

      The one you linked is the one I own, and I’m fairly certain it is the newest one. Thank you very much for the pastebin!

    • Sick
      Posted March 11, 2015 at 11:32 am | Permalink

      Figured I’d say I am having the same issue with the y axis being inverted with your config, so you know its not just you.

      • Maximilian
        Posted March 11, 2015 at 12:45 pm | Permalink

        Oh, you’re right, missed the model numbers, it is the newer one, yeah.

        Also, update: tried changing “Axis aBaseY Speed=1.0″ to “Axis aBaseY Speed=-1.0″ in every input.ini I could find (Base, Default and HatinTime) and it did nothing at all. Also tried switching “MoveForward” to “Backward” in places, still nothing.

        I fear this may require divine intervention to get working properly.

        • Maximilian
          Posted March 11, 2015 at 2:05 pm | Permalink

          Second update: Deleted baseinput, defaultinput and hatintimeinput and it changed nothing.


          I give up.

          • Sick
            Posted March 11, 2015 at 8:24 pm | Permalink

            Thanks for making your work public Max! I hope the dev’s see this and give us a hand.

    • Maximilian
      Posted March 12, 2015 at 2:45 pm | Permalink

      If you’re still monitoring this, Sick (or anyone else for that matter), Jonas posted a fix: “InvertValue = TRUE” under the header for the axis you want to flip.

      New config:

      • Sick
        Posted March 12, 2015 at 3:31 pm | Permalink

        Thanks a bunch max!

        • Maximilian
          Posted March 12, 2015 at 3:54 pm | Permalink

          No worries d(´ー`)

          • MinibluXtreme
            Posted May 9, 2015 at 9:45 am | Permalink

            Thanks Max!

  • lif
    Posted March 12, 2015 at 3:49 am | Permalink

    Thanks for supporting Raphnet Gamecube adapter directly :) It was a very pleasant surprise to not have to jump through hoops to use something that’s not a standard X360 controller.

    I think you may have subtracted one to many from Hat_Menu_Cancel, by the way. Easy enough fix, just change it to 3, as found in the Hat_Player_Attack setting. Seems a similar problem may be in the new GameCube_vJoy.ini, as well.


  • Nick Crisman
    Posted March 13, 2015 at 1:20 am | Permalink

    Is there a Mac version of this software? My Xbox 360 controllers are not being read by the game. :(

  • octorox
    Posted March 13, 2015 at 5:30 am | Permalink

    how about gamepad support on Mac? I’m using my 360 controller and the unofficial drivers and it works on some other steam games but not this one.

  • asm
    Posted March 14, 2015 at 3:31 am | Permalink

    If it helps Mac users, the configuration file is found here:

    HatinTimeGame (right click, show package contents) > Contents > Resources > HatinTimeGame> Config > Gamepads

    However, I have had no luck getting it to detect my USB gamepad which works with other steam games with no set up. I would have liked to have known there was problems with gamepad support on Mac before paying for the Beta.

  • React
    Posted March 23, 2015 at 11:07 pm | Permalink

    It wont find my gamepad :/

    Did everything as the tutorial said…

  • Blazedy
    Posted April 23, 2015 at 2:16 am | Permalink

    I did everything above, but my Mayflash Gamecube controller isn’t being found.

  • T. J. Brumfield
    Posted May 9, 2015 at 5:19 pm | Permalink

    It’s a little surprising that there isn’t already an open database for controller configs.

  • Marco
    Posted May 12, 2015 at 5:09 pm | Permalink


    my gamepad won´t work :(
    Does any body have the Speedlink Torid Gamepad getting worked on this game?

  • naturelover101
    Posted June 6, 2015 at 10:33 am | Permalink

    I have a logitech f310 model how can I get it working

  • can
    Posted June 28, 2015 at 8:35 am | Permalink

    hopeful there will be a new update soon

    • Posted July 3, 2015 at 7:10 pm | Permalink

      Updates are shared weekly on the Facebook / Twitter accounts.

      If there’s any particular updates you’d like us to share let us know. Currently we’re working towards release so we are somewhat busy to continually manage the social side but we hope people still enjoy the Friday updates.

  • Evan
    Posted July 25, 2015 at 6:51 pm | Permalink

    Here is a mirror for DITool, since the current link is dead.

  • Michael
    Posted January 7, 2016 at 11:27 pm | Permalink

    It says you have the mayflash.ini but it still can’t find it.

Post a Reply to can Cancel reply

Your email is kept private. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>