🛈 Announcement
Greetings! The For Honor forums are now archived and accessible in read-only mode, please go to the new platform to discuss the game
  1. #1

    I made a GamePad Display (For screen captures / gameplay review)

    I got bored, so made a gamepad display that I use with OBS so that I can review my footage to see how many frames it takes the game to react to my input. I am releasing this just in case anybody else has interest.

    >> I HAVE ONLY TESTED THIS WITH AN XBOX 360 WIRED CONTROLLER ON WINDOWS 10 WITH NO DPI SCALING AND A RESOLUTION OF 1920x1080 <<
    Any other configuration and/or controller might not work, may appear weird, etc. I am happy to take bug reports, but this project is literally just a couple hours with trial photoshop and c#/monogame for a fun side project.

    Video of the program in action: https://www.dropbox.com/s/y0ycph2xm1...Video.zip?dl=0
    Download the program exe file (FOR SINGLE COMPUTER): https://www.dropbox.com/s/yjgmhc4ndd...adExe.zip?dl=0
    Download the program exe file (FOR MULTI COMPUTER): https://www.dropbox.com/s/vnscpgx9zh...puter.zip?dl=0
    Source code, for developers (VS2015, monogame was used): https://github.com/TournyMasterBot/GamePadDisplay


    How To Use:
    FOR SINGLE COMPUTER
    - Open 'GamePadDisplay.exe'
    - Open OBS Studio
    - Add -> Game Capture
    - Name the scene
    - Select 'Capture specific window'
    - Select 'GamePadDisplay' from the list
    - Allow Transparency
    - Do not capture mouse
    - Do not use anti cheat compatibility hook
    * Note: You probably need to leave the gamepad window non-minimized for OBS to pick up button inputs

    FOR MULTI COMPUTER
    GamePadObsMachine [SERVER]
    - Allow application through firewall (Should prompt automatically, if not add TCP port 42420)
    - Run application
    - Open OBS Studio
    - Add -> Game Capture
    - Name the scene
    - Select 'Capture specific window'
    - Select 'GamePadDisplay' from the list
    - Allow Transparency
    - Do not capture mouse
    - Do not use anti cheat compatability hook

    * If you are seeing extended lag, you can update config.ini to lower the update rate value, if you are seeing flickering buttons, increase the value for the update rate. The update rate is the time in milliseconds input needs to be received from the client before resetting the gamepad to the default state. (This number should be within 30ms of the gaming machine config in most scenarios.)

    GamePadGameMachine [GAMING MACHINE]
    - Update config.ini to use the server computers IP (IE: 192.168.1.6 would be the remote OBS machine)
    - Ensure server application is running
    - Run client application, Be sure to allow the application through the firewall (allow on port 42420 if windows does not prompt you.)
    - Play your game

    * By default, config.ini sends updates to the server every 250ms, if you want this to happen faster, you can lower the value. Please note that lowering the value may increase CPU usage which could cause degredation in your games. If you update the client update rate, please also update the server update rate to be within 30ms of your new client value.

    Q&A:
    Q: Why?
    A: I was bored, and I've always wanted a gamepad display for a bunch of different games - so I made one.

    Q: I don't want to open strange .exe files
    A: That is healthy! Feel free to submit to services like virus total or compile straight from source code. There's no sneaky snek here.

    Q: How does it work?
    A: The application uses monogame (http://www.monogame.net/) to read your controller input for player 1 (and ONLY player 1), I then draw a colored sprite over a base controller image to show when the action is occurring.

    Q: It's broken for me?
    A: Maybe! I only use it on my machine. I'd be happy to try and troubleshoot, but going to be honest, this is just a quick and dirty pet project.

    Q: What tools did you use?
    A: Photoshop trial, Visual Studio 2015 (C# + Monogame), and a googled image of a gamepad controller outline

    Q: Will I get banned for this?
    A: I would be astonished. It doesn't touch the For Honor game in any way, it's a completely separate application that only reads gamepad input.

    Q: This looks ugly, will you make it pretty?
    A: If you supply the background image + sprite cover images, sure. I'm not an artist, I just went for functional here.

    Q: I use <insert non xbox360 controller here> will this work?
    A: Maybe? Dunno, try it and let me know!

    Q: I use <insert non xbox360 controller here> - Will you change the controller display?
    A: Nope, sorry. The source is available though, so maybe someone else will?

    Q: Can I use this for other games?
    A: Sure can! It only requires a controller be plugged in to work.
    Share this post

  2. #2
    By request, I added the ability to use the gamepad display on a remote computer. I have updated the original post to include a download link and some additional instructions for the multi computer setup.
    Share this post

  3. #3
    Hi thanks for this. Is there anyway to output the sequence of press's to a file?
    Share this post

  4. #4
    Not at this time, but I can add it if you give specifics about what you're looking for.

    IE:

    - Does it need a timestamp?
    - Do you need thumbstick angles?
    - Are you looking for start/stop timers, or registered press durations? [IE: One line, verse many lines]
    - What is the end goal for the log? (Not to justify why you want the feature, but so that the feature can be created in a way that suits the request)
    Share this post