Input Overlay

Input Overlay v5.0.4

overdev

New Member
Are there any kind of working presets for the new version?
The old one had some included.

Do I have to create basic mouse and keyboard presets with the tool myself?
A place where some presets are uploaded for the community would be great.
 

univrsal

Member
Are there any kind of working presets for the new version?
The old one had some included.

Do I have to create basic mouse and keyboard presets with the tool myself?
A place where some presets are uploaded for the community would be great.
 

univrsal

Member
@universallp I'm trying to find the arcade stick looking Dpad texture you have here in your templates but cannot. Could I get a copy of it?
 

Calicifer

New Member
The problem which I had was that your tutorials are unclear with how to use presets. I struggled to find them and then I was applying wrong version presets. Eventually I had solved the issue, but this is where I had struggled. You had made new tutorial which might be clearer, I was following old video tutorial which completely ignores preset part.
 

univrsal

Member
The problem which I had was that your tutorials are unclear with how to use presets. I struggled to find them and then I was applying wrong version presets. Eventually I had solved the issue, but this is where I had struggled. You had made new tutorial which might be clearer, I was following old video tutorial which completely ignores preset part.
What tutorial did you follow?
How do you use this if you have a dual PC setup and the controller is plugged into the gaming PC?
There's a remote connection option, but it's not very polished right now.
 
Last edited:

ryu_highabusa

New Member
Here's my custom arcade stick layout. I've only tested it with my personal button config on DOA6 but this could easily be adjusted to fit other fighting games. The arcade stick layout design was inspired by ASANOHA (pot leaves) and Astro City candy ball tops. The numbered versions are for educational purposes (numpad notation). Not only am I providing ready-to-use PNGs, here is the Inkscape SVG (https://svgshare.com/i/gJs.svg) so please feel free to make your own adjustments to suit your needs. Here's a demo video: https://www.twitch.tv/videos/1456749192?t=00h05m24s

image11379465564greenflower8b87g86g65465456434654654654.png

image11379465564pinkflower8b87g86g65465456434654654654.png

image11379465564greennumbered456465.png

image11379465564pinknumbered456465.png

image11379465564pinksimple8b87g86g65465456434654654654.png


Code:
{
    "default_width": 0,
    "default_height": 0,
    "space_h": 0,
    "space_v": 0,
    "flags": 4,
    "overlay_width": 950,
    "overlay_height": 350,
    "elements": [
        {
            "type": 0,
            "pos": [
                0,
                0
            ],
            "id": "texture0",
            "z_level": "0",
            "mapping": [
                1,
                281,
                950,
                350
            ]
        },
        {
            "type": 8,
            "pos": [
                100,
                40
            ],
            "id": "dpad1",
            "z_level": 0,
            "mapping": [
                0,
                0,
                256,
                256
            ]
        },
        {
            "type": 2,
            "pos": [
                439,
                108
            ],
            "id": "gamepad button2",
            "z_level": 0,
            "mapping": [
                1033,
                363,
                86,
                86
            ],
            "code": 60418
        },
        {
            "type": 2,
            "pos": [
                529,
                74
            ],
            "id": "gamepad button3",
            "z_level": 0,
            "mapping": [
                1127,
                363,
                86,
                86
            ],
            "code": 60419
        },
        {
            "type": 2,
            "pos": [
                625,
                74
            ],
            "id": "gamepad button4",
            "z_level": 0,
            "mapping": [
                1221,
                363,
                86,
                86
            ],
            "code": 60421
        },
        {
            "type": 2,
            "pos": [
                722,
                74
            ],
            "id": "gamepad button5",
            "z_level": 0,
            "mapping": [
                1315,
                363,
                86,
                86
            ],
            "code": 60420
        },
        {
            "type": 2,
            "pos": [
                421,
                202
            ],
            "id": "gamepad button6",
            "z_level": 0,
            "mapping": [
                1408,
                363,
                86,
                86
            ],
            "code": 60416
        },
        {
            "type": 2,
            "pos": [
                511,
                170
            ],
            "id": "gamepad button7",
            "z_level": 0,
            "mapping": [
                1502,
                363,
                86,
                86
            ],
            "code": 60417
        },
        {
            "type": 6,
            "pos": [
                607,
                170
            ],
            "id": "trigger9",
            "z_level": 0,
            "mapping": [
                1596,
                363,
                86,
                86
            ],
            "direction": 3,
            "trigger_mode": true,
            "side": 1
        },
        {
            "type": 6,
            "pos": [
                705,
                169
            ],
            "id": "trigger10",
            "z_level": 0,
            "mapping": [
                1691,
                363,
                86,
                86
            ],
            "direction": 3,
            "trigger_mode": true,
            "side": 0
        }
    ]
}

Can someone make a layout for Arcade stick?
Like this:

View attachment 51454

Eventually with 8 buttons or alternative of 6 like the picture.

I can do the graphic myself on Photoshop but there is no tutorial on how to proper code this into script to make it to work
LTTP but here you go bro
 
Last edited:

fgcdraft

New Member
I've been messing around with this and for the longest time I haven't figured out why my OBS is causing a render lag issue (where you're dropping frames on the render side). Turns out the culprit is the gamepad input overlay. The keyboard and mouse are fine, however as soon as I assign the gamepad input overlay to a controller, the render lag spikes up and I start dropping fps.

1650078884856.png


This is after assigning the input overlay to one of my controllers. It doesn't matter what controller or USB slot I use, as soon as I activate it it starts having render lag. The frame rate dips ever few seconds. Anyone else experiencing this? Is there a fix?

Also, on the input overlay settings this is my set up:
1650079208302.png


My controllers can't be detected when I use Xinput, so I have to use Dinput.
 

univrsal

Member
I've been messing around with this and for the longest time I haven't figured out why my OBS is causing a render lag issue (where you're dropping frames on the render side). Turns out the culprit is the gamepad input overlay. The keyboard and mouse are fine, however as soon as I assign the gamepad input overlay to a controller, the render lag spikes up and I start dropping fps.

View attachment 82777

This is after assigning the input overlay to one of my controllers. It doesn't matter what controller or USB slot I use, as soon as I activate it it starts having render lag. The frame rate dips ever few seconds. Anyone else experiencing this? Is there a fix?

Also, on the input overlay settings this is my set up:
View attachment 82778

My controllers can't be detected when I use Xinput, so I have to use Dinput.
Yeah the pre-release has some issues. I think it has to do with retrieving data from gamepads which takes too long and therefore slows down the rendering. I don't have a fix for this currently.
 

fgcdraft

New Member
Yeah the pre-release has some issues. I think it has to do with retrieving data from gamepads which takes too long and therefore slows down the rendering. I don't have a fix for this currently.
Thanks for replying! I found out the issue is between DInput and XInput. If I use DInput, render lag happens once I assign a controller. Where as assigning a controller through XInput, there's no lag. So while It sucks my generic controller (PS1) isn't recognized on XInput, my arcade stick can, so I've been using that instead. I'm sure there's a way to get my controller through XInput, worst case I'll just get a new one that's more modern lol. This is a great plugin for OBS, thank you for making it!
 

nicholasmatt

New Member
I am a newbie with the OBS thing... I have installed this input overlay but for some reason, it is not responding to the spacebar key.. I have tested the key with the space bar counter and it works. So, the spacebar button is working and I don't know what am I doing wrong here. Can someone pls help me out here?
 

univrsal

Member
I am a newbie with the OBS thing... I have installed this input overlay but for some reason, it is not responding to the spacebar key.. I have tested the key with the space bar counter and it works. So, the spacebar button is working and I don't know what am I doing wrong here. Can someone pls help me out here?
What preset are you using?
 

framedragged

New Member
Hi there, this is a great little plugin that I've really enjoyed so far.

I just have a couple questions/curiosities about it.

First, what's the polling rate/refresh rate on the overlay? I'm assuming it's 60 hz, but if it's the keyboard's rate and is only clipped by the monitor's refresh rate than that would be pretty awesome.

Second, what did you do to create the borders of the keys in your overlay png? I've made a custom one with different keys as I use different bindings than most people and I had a hard time directly matching the original border which was featured (the 5 pixel shear in the x-direction also took me a minute, but hey I got there). I ended up making a second layer with a one pixel larger border of each letter and airbrushed it, and it's pretty close to the original keys, but it might nag at someone who's a little more obsessive about visual details like that.

Anyway, thanks for this really cool plugin.
 

univrsal

Member
First, what's the polling rate/refresh rate on the overlay? I'm assuming it's 60 hz, but if it's the keyboard's rate and is only clipped by the monitor's refresh rate than that would be pretty awesome.
There isn't really a polling rate on the plugin side, if an input happens input overlay receives the input event. The events are processed in one thread and copied every time a frame is rendered.
Second, what did you do to create the borders of the keys in your overlay png? I've made a custom one with different keys as I use different bindings than most people and I had a hard time directly matching the original border which was featured (the 5 pixel shear in the x-direction also took me a minute, but hey I got there). I ended up making a second layer with a one pixel larger border of each letter and airbrushed it, and it's pretty close to the original keys, but it might nag at someone who's a little more obsessive about visual details like that.
I used a normal rectangle in photoshop and then sheared it. You can get the psd files here https://github.com/univrsal/input-overlay/blob/master/docs/cct/layout-projects.zip
 

framedragged

New Member
Hey there, thanks for that fast reply.

There isn't really a polling rate on the plugin side, if an input happens input overlay receives the input event. The events are processed in one thread and copied every time a frame is rendered.
Really? So it's frame accurate then? That's awesome!

I used a normal rectangle in photoshop and then sheared it. You can get the psd files here https://github.com/univrsal/input-overlay/blob/master/docs/cct/layout-projects.zip
I was a little unclear I think, as I have already finished making my overlay using the presets as a guide. My question was the method you used to achieve the black border/shadow of the letters because I wanted to match it exactly for the keys I added. I matched it pretty closely, but it's not quite right. I don't think it's noticeable at the resolution the overlay would be scaled to on screen, but I'm a perfectionist and figured I'd ask. Though seeing that you used photoshop kind of renders my question pointless as I only have access to GIMP and may not be able to match it perfectly in the first place.
 

univrsal

Member
Really? So it's frame accurate then? That's awesome!
I never tested it so I can't really say but https://github.com/univrsal/input-overlay/issues/185 says that it's apparently sometimes 1 frame faster.
I was a little unclear I think, as I have already finished making my overlay using the presets as a guide. My question was the method you used to achieve the black border/shadow of the letters because I wanted to match it exactly for the keys I added. I matched it pretty closely, but it's not quite right. I don't think it's noticeable at the resolution the overlay would be scaled to on screen, but I'm a perfectionist and figured I'd ask. Though seeing that you used photoshop kind of renders my question pointless as I only have access to GIMP and may not be able to match it perfectly in the first place.
It's a shadow filter which is applied to the layers. You can also open the PSD files in https://www.photopea.com/
 

framedragged

New Member
I never tested it so I can't really say but https://github.com/univrsal/input-overlay/issues/185 says that it's apparently sometimes 1 frame faster.
I can definitely confirm that I'm seeing that same behavior, though I actually expected it as soon as you explained how it works. Same keystroke, one goes directly to the overlay and shows up immediately, and one goes to the game and has to wait for the game processing before registering. Depending on where that keystroke happens relative to the refresh time the input will register one frame before or in sync with the game. I don't think it's a big deal though for my use case, but I can certainly see why a speed runner with no other on screen input information might have a hard time with it.

It's a shadow filter which is applied to the layers. You can also open the PSD files in https://www.photopea.com/
That's good to know. I think I'll just let go of the perfectionism though, my modified keys seem just fine when I'm not staring at them intently and super zoomed in haha.

Anyway, thanks again for this feedback!
 
Top