GamePad Viewer - The Official Controller Display & Tester

Free GamePad Viewer - The Official Controller Display & Tester v2.0-beta

In honor of GPV turning 10 years old (12/26/2013), you can now try out the GPV 2 Beta and take advantage of following new features:
  • Persistent GamePad Links - You can now save your GamePads and load them using a unique link!
  • Easier Classic URL Generation - The URL Generator now makes it easier to create links for classic URLs, but note that you won't be able to update them automatically compared to persistent gamepads you store to your account!
  • Live Preview GamePad Configurator - You can easily preview your gamepad settings when creating or editing a saved GamePad
  • Building Block GamePad Builder - Skin building can be hard, but the new GamePad Builder makes it easy! Give it image links and tweak the sizes and you'll have a custom GamePad with no code required!
Don't forget, you can submit feedback for features you like, submit a bug request for any issues you see, and join us on discord to engage with the rest of the skin creator community or for support!
Version 0.7.0 - August 17, 2016
  • Patreon: Yup, this thing's on Patreon. If you know someone who'd be willing to support, feel free to point 'em in the right direction.
  • New Skin: The long-awaited and much-requested GameCube skin is finally out! Sorry I kinda took too long with this one, it's just that I wanted to get some stuff together and ship this with some other things that needed to be done, as follows...
  • GameCube controller Fix: So, if you own a GameCube controller and MayFlash adapter, you'd get some really weird values for the triggers and sticks, even if you tried remapping. Now, there's new remapping setting which can help you solve that! Just watch the update video to find out how to do just that!
  • Remapping Axis/Button exclusion: Another small but useful update to button remapping is the ability to disable a button or axes' ability to be selected when remapping inputs. This is typically useful for when you have an out of control axis that changes values rapidly and don't want it interfering with remapping. To cancel an input's mapping ability, simply right click it's blue box on the mapping page after a player is selected. To re-enable the input, simply right click the red box.
  • DPAD POV Mapping: Another common issue was that of DPADs that show up as a single axis input, or a Point-Of-View Hat Switch. With the new "DPAD" remapping option, just select the DPAD's axis, fill in the requested values, and the DPAD should be fixed!
  • Remapping feedback: When I was asking someone to test the new remapping options, i found that they had a hard time of telling if something worked or if it failed. To fix that, should a mapping failed, you'll see a persistent error message in red above the appropriate mapping, and if it succeeds, a green success message which fades away.
  • Remapping UI Populated via URL: Before when you would access exported remapping settings via URL, you couldn't edit them or customize them. Now, when accessing the exported mappings via URL, the remapping page will populate with the appropriate settings.
  • Input hints in Generate Page: Now, before entering information into the text boxes you see input hints. Hopefully this helps with people who are unsure of what to place in those inputs.
  • New Generate Page options: You can now disable stick curving and change the stick offset as well.
Version 0.6.2 - April 27, 2016
  • New Digs: Now sure if you've noticed, but the URL doesn't say anymore! Yup, the site's on it's own special domain: Don't worry about the old links either, they'll redirect here properly from the old address.
  • Discord: I've got a Discord Server setup for anyone who feels the need to chat or prefers help in a slightly faster manner. I'm usually on, although that doesn't mean not busy working either :P
  • Problems? Questions? Concerns?: If anything's broken, or if you need help, or just wanna say hi, you can always contact me using the contact form or by visiting the discord server linked above.
Version 0.6.1 - April 23, 2016
  • Mapping Bugfix: Apparently mapping values for buttons that don't exist (like trying to show a touchpad or PS Button press) was broken before, but now it's not!
  • Swanky New Skin: Thanks to an anonymous benefactor, there's a new white DS4 skin, and it looks sweeeeet.
  • DS4 Changes: The DS4's touchpad press is now represented (though not the touches on the touchpad, as I have no way of figuring out that information from the Gamepad API), as well as the PS button. Also, the sticks are inverted now when pressed, and I have no idea why I didn't set them to do that before. Enjoy!
  • Not much else: Yeah, not much else to this update. I've mostly been working on a site redesign for a podcast, so that's been my main focus so far in terms of work. Once I'm done with that, I'll probably get to work on this and go through the tasks I have listed on the trello.
Version 0.6.0 - March 20, 2016
  • Getting Started: There’s a getting started video on YouTube for anyone who’s unsure about how to set up the tool, or for those who are curious and don’t have a gamepad to test! It’s also on the Info & About page too for easy access.

  • Pretty Colors: You can now change the color of the background with a click of a button! Just click the palette icon after you’ve connected your controller and voila, you’re instantly a background artiste.

  • Gamepad Cartesian: Controller button remapping is finally here! It’s got a swanky new modal, some very intuitive functionality, and even the ability to export mappings to the URL generator. Yay! If you’re a little lost on how to use it, simply choose a connected player, add a mapping, select whether you’re mapping an axis or button and select the appropriate choice from the dropdown, click the button to set an axis/button to be mapped to (at this point you have a three second window to press the desired button on the controller), and when you’re finished that process with all applicable mappings, just click “Apply Mappings” or export them for use with Compact Mode. Author’s Note - Yeah, it’s a tad complicated, but I’ll be making a video soon on how to set mappings up easily. Here’s a sort of mini tutorial on how to do it. Also, the Touchpad and PS buttons work, it’s just that none of the skins have anything set up for them when they’re pressed.

  • New Skins: Finally, I’ve included a generic Fight Stick skin setup for use. The background’s transparent so you can use your favorite image as your own background :D
  • White wash: Decided to have the top row of icons all be white to follow some sort of consistency.

  • Ah, the [Scale]ne Triangle: So, I kinda might have broken scaling during the last update. Luckily, I caught it quick and fixed it a couple days after I pushed the last major update, but I thought you should know anyway.

  • Generated Choice: Now if you generate a URL, the tooltip mentions you can hold shift and it’ll copy the link starting with HTTP instead of HTTPS, which leads me to…

  • A word on HTTPS and skins: Ok, so during the last major update, I decided it would be great to force HTTPS. I mean, why not, right? Then I realized people load skins insecurely from their own sites, to which I hurriedly changed the setting. So, if your stylesheet or any assets are loaded via HTTP, access the site from HTTP, else use HTTPS.

  • To name, or not to name: Another sort of unimportant-but-still-interesting-I-kinda-suppose-maybe updates was changing the attribute used to select buttons and axes from name to data-name which has it fall more inline with HTML5’s semantics. Riveting stuff, I know.

  • Addendum on Remapping: It should be noted that you can’t half remap an axis, like say you only want to map the positive or only the negative end. If you try to do that, the mapping is just straight up ignored.
Version 0.5.1 - February 18, 2016
  • FightPad Pro Skin: Not much of an overall update, but an update nonetheless! Many a thanks to King Radinov for being the first skin adopter! If you'd like to show the right stick instead of the left stick, you can use this edit CSS as well.
Version 0.5.0 - February 1, 2016
  • New Slide-in Menu: Who needs square buttons when you have a whole menu to link to stuff. Stuff like...
  • Modals: All brand-spankin'-new content modals, for everything and anything that needs text on it.
  • Contact Form: If you're lonely and want someone to talk to or want to find out more info on the new...
  • Adopt a Skin Initiative: I don't think I could properly summarize what I have written on the page, so here's a link to it instead!
  • Edit CSS Parameter: Because sometimes you just want to make all the colors look psychedelic.
  • Edit Opacity Parameter: Sometimes you just want the controller to melt into the background, forever hidden yet always seen.
  • Click to copy: Now you can simply *click* and easily copy a generated URL. Speaking of which...
  • Generate custom URLs: Long gone are the cavemen times when man used to place numbers into address bars. Behold, a new age of typing things into forms and clicking to copy them dawns upon us!
  • Trigger meters: This a feature many of you have asked for, and one that I've neglected for far too long. It's finally here though and it looks sweeeeet.
  • Better controller centering CSS: This one isn't a very large announcement, since it only really affects custom skins but now centering them is done better and no longer necessary on the custom skin's end of things!
  • X360 Quadrant Fixed: Another bugfix, but anyone who would see a black square for the quadrant shouldn't be having that issue anymore.
Yay, new skins! Finally got around to making a DualShock 4 skin, and it looks pretty sleek if I don't say so myself. Sadly, the Gamepad API doesn't pick up touch input, so I can't display finger location, but it does register a full down-press on the touchpad (though I haven't implemented that yet).

Oh yeah, now you can set your own deadzones! I initially had this set up so I wouldn't get any wonky data when my sticks were at rest, since they're old. I figure if your sticks are worse than mine, this setting is probably a godsend.
  • Added a new skin, the DualShock 4! The trackpad can't show where your finger is, but pushing down on the trackpad is registered (but not shown because I haven't implemented that yet).
  • Added a new deadzone setting, just add &dz=[Any number from 0 to 1] to the URL! The default is set to .25 and the accepted values are anything between 0 and 1 (although at 1 you wouldn't have anything showing because the max the sticks go to is 1)
Please refer to the Main Page for an updated list of parameters
There's not much in this update, but it is still a pretty useful one.

+Added a "delay" parameter which takes millisecond values (1000 = 1s) [Thanks romibi!]

The updated parameters are as follows:

Code:[Player Number]&s=[Style Number]&sc=[Scale Multiplier]&delay=[Millisecond value of delay]&css=[URL to CSS file]
For example:
-Player number can be 1-4 and a player must be specified for this to work.
-Default scale multiplier is 1 (e.g. 1 times the size of the controller skin) and can also take decimal values
-The delay timer takes millisecond values, so 1000 = 1s
-There's no point in setting a style if you're setting a custom CSS as the custom CSS will override the style ID

Style numbers are as follows:
0 = White Xbox One Controller
1 = Xbox One Controller (not necessary to add &s= for this skin as it's set by default)
2 = PlayStation 3 Controller
3 = NES Controller
4 = Xbox 360 Controller
Do you think my skins suck?
Do you think I take my sweet ass time with updates? (more of a fact than an opinion...)
Are you a CSS wizard?
Then fear not, for custom CSS skinning has finally arrived! You can learn more about how to create your own CSS skins with an example file I've uploaded to GitHub's gist. To use a custom css files, simply add &css=[url to CSS file] to the end of the URL (Use ? instead of & if that's the only parameter you're adding to the URL).

Please note that I highly recommend using GitHub's gist for uploading your custom CSS files since it's simple, quick, and lets you make changes easily. For image uploads, you can use any image host that allows hotlinking direct images, like Imgur.
NOTE: If you're using gist, make sure to name your css file!It doesn't matter what you call it, so long as it ends in .css else the site won't read it and think it's just a plain text.

Also, if you're thinking of making your own fightstick skin, there's good news too! I've added a few HTML tags to output the information necessary to style a fightstick. You can read more about that in the CSS file I linked above.
  • Added custom styles! Now, you too can make your own controller skin and share it with your friends!
  • To apply a custom skin, add &css=[url to CSS file] to the end of the address.
  • Added some HTML for future fighstick functionality.
Here's the updated parameters list:

Code:[Player Number]&s=[Style Number]&sc=[Scale Multiplier]&css=[URL to CSS file]
For example:
-Player number can be 1-4 and a player must be specified for this to work.
-Default scale multiplier is 1 (e.g. 1 times the size of the controller skin) and can also take decimal values
-There's no point in setting a style if you're setting a custom CSS as the custom CSS will override the style ID

Style numbers are as follows:
0 = White Xbox One Controller
1 = Xbox One Controller (not necessary to add &s= for this skin as it's set by default)
2 = PlayStation 3 Controller
3 = NES Controller
4 = Xbox 360 Controller