How big is the support for my wrapper
  4 / 6    
Shader hunting with a racing wheel would be awesome.
Shader hunting with a racing wheel would be awesome.

#46
Posted 02/12/2015 09:23 AM   
[quote="Flugan"]I'm using XINPUT_GAMEPAD_TRIGGER_THRESHOLD which is a predefined constant,[/quote]I didn't notice that constant in the API - thanks, that seems like a better default than > 0. [quote]I invented LEFT_TRIGGER as it was consistent with the buttons.[/quote]Agreed - I chose the exact same thing for the same reason. [quote]For my usage I only needed controller 1 and I've had trouble dealing with multiple controllers. Loads of games use any controller without separation. Hunting using XInput never worked well.[/quote]I only have one controller to test with, so I can't really comment on how well it will work with multiple controllers. My thinking was that it might be useful to use controller 2 if a game was using controller 1 (I seem to recall some mention in the original 3Dmigoto input implementation mentioning this), so I wanted to have that flexibility built in. [quote]I believe your syntax is too verbose and why specify the trigger treshhold when it is just given to us on a plate.[/quote]Not all games will necessarily use that constant for trigger threshold, so I like the option of having it customisable. The threshold can be omitted (and typically would), so I disagree that my syntax is any more verbose - it only has a different prefix. Changing the default to use XINPUT_GAMEPAD_TRIGGER_THRESHOLD does seem like a sensible idea though. [quote]I like my current syntax and it's simple to use. You can Always add numbers to specify which controller. XB_ <- controller 1 (index 0) X1_ <- controller 1 (index 0) X2_ <- controller 2 (index 1)[/quote]I do like the XB prefix, but I'm less keen on X1, X2, etc. It works though and is still pretty concise, so I don't mind changing 3Dmigoto to use that. Another option might be to have the controller number as a separate option - but I'm not keen on that idea as we would want an aiming override to apply to any controller, while hunting bindings might only be set on a specific controller. [quote]All the keyboard keys are like VK_ So by prefix XB_ I could separate easily.[/quote]Fair enough, though in 3Dmigoto I made the VK_ prefix optional. The XB_ prefix will be mandatory though - otherwise A, B, X and Y would be ambiguous. [quote]What third input layer do you anticipate or do you complicate things just in case something comes along.[/quote]The mouse - it's already covered by GetAsyncKeyState(), but Helix mod uses that same call and we know that there are certain games (e.g. some Unity games) where that does not work for mouse input. I don't know what alternate backend could be used for mouse input, but I want to keep the option open. [quote]Please contenplate why you want to bind the same key simultanously on multiple controllers which appears to be your defauult. It does not make sense to me although many games do just that. Which is what make hunting using XInput pretty hard.[/quote]Right - it's exactly because many games do that that it should be the default. The main use case I see for this is aiming overrides, which should work with whatever controller the player is using and preferably with minimal effort on their part - not all players are necessarily going to be comfortable with editing an ini file. I see less value in supporting controllers for shader hunting since the fixer will be using the keyboard out of necessity to edit shaders, but it's easy to support and may have some use so we may as well (e.g. laptop with no number pad, or games that end a cutscene when any keyboard button is pressed, but not controller buttons). The difference is that the one person working on fixing the game will definitely be comfortable with editing the ini file and tuning it to work for their setup. I think based on your above suggestion for prefixes I'll make XB all controllers and X1-X4 specific controllers. [quote]Please support a simplified syntax for controller 1 preferably the same as mine. I hope we'll sort it out swiftly.[/quote]Ok, you seem to like your syntax so I'll change the prefix in 3Dmigoto to match. I would still like to support specifying controller numbers and trigger thresholds, but just as before this will be optional syntax - you could make your wrapper ignore it, but I'm not expecting it to be used very often so it might be just as easy to change the ini file if that situation does arise. So typically the syntax would be this, exactly the same as your wrapper expects: Key=XB_LEFT_TRIGGER But rarely someone might do this: Key=X1_RIGHT_TRIGGER > 128
Flugan said:I'm using XINPUT_GAMEPAD_TRIGGER_THRESHOLD which is a predefined constant,
I didn't notice that constant in the API - thanks, that seems like a better default than > 0.

I invented LEFT_TRIGGER as it was consistent with the buttons.
Agreed - I chose the exact same thing for the same reason.

For my usage I only needed controller 1 and I've had trouble dealing with multiple controllers. Loads of games use any controller without separation. Hunting using XInput never worked well.
I only have one controller to test with, so I can't really comment on how well it will work with multiple controllers. My thinking was that it might be useful to use controller 2 if a game was using controller 1 (I seem to recall some mention in the original 3Dmigoto input implementation mentioning this), so I wanted to have that flexibility built in.

I believe your syntax is too verbose and why specify the trigger treshhold when it is just given to us on a plate.
Not all games will necessarily use that constant for trigger threshold, so I like the option of having it customisable. The threshold can be omitted (and typically would), so I disagree that my syntax is any more verbose - it only has a different prefix. Changing the default to use XINPUT_GAMEPAD_TRIGGER_THRESHOLD does seem like a sensible idea though.

I like my current syntax and it's simple to use.
You can Always add numbers to specify which controller.
XB_ <- controller 1 (index 0)
X1_ <- controller 1 (index 0)
X2_ <- controller 2 (index 1)
I do like the XB prefix, but I'm less keen on X1, X2, etc. It works though and is still pretty concise, so I don't mind changing 3Dmigoto to use that. Another option might be to have the controller number as a separate option - but I'm not keen on that idea as we would want an aiming override to apply to any controller, while hunting bindings might only be set on a specific controller.

All the keyboard keys are like
VK_
So by prefix XB_ I could separate easily.
Fair enough, though in 3Dmigoto I made the VK_ prefix optional. The XB_ prefix will be mandatory though - otherwise A, B, X and Y would be ambiguous.

What third input layer do you anticipate or do you complicate things just in case something comes along.
The mouse - it's already covered by GetAsyncKeyState(), but Helix mod uses that same call and we know that there are certain games (e.g. some Unity games) where that does not work for mouse input. I don't know what alternate backend could be used for mouse input, but I want to keep the option open.

Please contenplate why you want to bind the same key simultanously on multiple controllers which appears to be your defauult. It does not make sense to me although many games do just that. Which is what make hunting using XInput pretty hard.
Right - it's exactly because many games do that that it should be the default. The main use case I see for this is aiming overrides, which should work with whatever controller the player is using and preferably with minimal effort on their part - not all players are necessarily going to be comfortable with editing an ini file.

I see less value in supporting controllers for shader hunting since the fixer will be using the keyboard out of necessity to edit shaders, but it's easy to support and may have some use so we may as well (e.g. laptop with no number pad, or games that end a cutscene when any keyboard button is pressed, but not controller buttons). The difference is that the one person working on fixing the game will definitely be comfortable with editing the ini file and tuning it to work for their setup.

I think based on your above suggestion for prefixes I'll make XB all controllers and X1-X4 specific controllers.

Please support a simplified syntax for controller 1 preferably the same as mine. I hope we'll sort it out swiftly.
Ok, you seem to like your syntax so I'll change the prefix in 3Dmigoto to match. I would still like to support specifying controller numbers and trigger thresholds, but just as before this will be optional syntax - you could make your wrapper ignore it, but I'm not expecting it to be used very often so it might be just as easy to change the ini file if that situation does arise.

So typically the syntax would be this, exactly the same as your wrapper expects:
Key=XB_LEFT_TRIGGER

But rarely someone might do this:
Key=X1_RIGHT_TRIGGER > 128

2x Geforce GTX 980 in SLI provided by NVIDIA, i7 6700K 4GHz CPU, Asus 27" VG278HE 144Hz 3D Monitor, BenQ W1070 3D Projector, 120" Elite Screens YardMaster 2, 32GB Corsair DDR4 3200MHz RAM, Samsung 850 EVO 500G SSD, 4x750GB HDD in RAID5, Gigabyte Z170X-Gaming 7 Motherboard, Corsair Obsidian 750D Airflow Edition Case, Corsair RM850i PSU, HTC Vive, Win 10 64bit

Alienware M17x R4 w/ built in 3D, Intel i7 3740QM, GTX 680m 2GB, 16GB DDR3 1600MHz RAM, Win7 64bit, 1TB SSD, 1TB HDD, 750GB HDD

Pre-release 3D fixes, shadertool.py and other goodies: http://github.com/DarkStarSword/3d-fixes
Support me on Patreon: https://www.patreon.com/DarkStarSword or PayPal: https://www.paypal.me/DarkStarSword

#47
Posted 02/12/2015 01:46 PM   
I've just pushed a commit that makes this change in 3Dmigoto.
I've just pushed a commit that makes this change in 3Dmigoto.

2x Geforce GTX 980 in SLI provided by NVIDIA, i7 6700K 4GHz CPU, Asus 27" VG278HE 144Hz 3D Monitor, BenQ W1070 3D Projector, 120" Elite Screens YardMaster 2, 32GB Corsair DDR4 3200MHz RAM, Samsung 850 EVO 500G SSD, 4x750GB HDD in RAID5, Gigabyte Z170X-Gaming 7 Motherboard, Corsair Obsidian 750D Airflow Edition Case, Corsair RM850i PSU, HTC Vive, Win 10 64bit

Alienware M17x R4 w/ built in 3D, Intel i7 3740QM, GTX 680m 2GB, 16GB DDR3 1600MHz RAM, Win7 64bit, 1TB SSD, 1TB HDD, 750GB HDD

Pre-release 3D fixes, shadertool.py and other goodies: http://github.com/DarkStarSword/3d-fixes
Support me on Patreon: https://www.patreon.com/DarkStarSword or PayPal: https://www.paypal.me/DarkStarSword

#48
Posted 02/12/2015 02:05 PM   
I just realized I'm not a fan of X1_ as it seems cryptic I would prefer XB1_ etc. I have not implemented anything more than XB_ as I didn't find it likely to be useful with XB2_ while playing. I'm trying to anticipate where two controllers are used and is having trouble with the use-case of multiple controllers. I have like 8 xbox controllers that I own. It is bad if the same key config is interpreted differently by each wrapper. Isn't checking a single controller much simpler than checking all four. Checking all controllers at once seem like a really bad idea. If a hold button is pressed on controller 1 and before it is released the same button is pressed on controller 2 wouldn't this give massive headache. In summary XB1_ rather than X1_ XB_ behaves the same as XB1_ in my oppinion. Looking forward to your feedback as it is important to stay consistent. I do need to be able to parse custom treshholds or it will break for that Key. Sharing configuration ini file makes things more complex by a mile. I made some choices, you made different choices and unless the result sync up there will be pain. As an possible infrequent feature we'll have to agree what happens if 4 controllers are connected. To reiterate I don't believe you should bind one action to multiple keys at the same time as you are doing in the XB_ case where the controller used doesn't matter. There are too many ways for that to fail.
I just realized I'm not a fan of X1_ as it seems cryptic
I would prefer XB1_ etc. I have not implemented anything more than XB_ as I didn't find it likely to be useful with XB2_ while playing. I'm trying to anticipate where two controllers are used and is having trouble with the use-case of multiple controllers. I have like 8 xbox controllers that I own. It is bad if the same key config is interpreted differently by each wrapper. Isn't checking a single controller much simpler than checking all four. Checking all controllers at once seem like a really bad idea. If a hold button is pressed on controller 1 and before it is released the same button is pressed on controller 2 wouldn't this give massive headache.

In summary
XB1_ rather than X1_
XB_ behaves the same as XB1_ in my oppinion.

Looking forward to your feedback as it is important to stay consistent. I do need to be able to parse custom treshholds or it will break for that Key.

Sharing configuration ini file makes things more complex by a mile.
I made some choices, you made different choices and unless the result sync up there will be pain.

As an possible infrequent feature we'll have to agree what happens if 4 controllers are connected.

To reiterate I don't believe you should bind one action to multiple keys at the same time as you are doing in the XB_ case where the controller used doesn't matter. There are too many ways for that to fail.

Thanks to everybody using my assembler it warms my heart.
To have a critical piece of code that everyone can enjoy!
What more can you ask for?

donations: ulfjalmbrant@hotmail.com

#49
Posted 02/12/2015 04:10 PM   
@DarkStarSword / Flugan Will be possible to add a "DELAY" for keybinding? For both 3Dmigoto and Flugan Wrapper. Expressed in miliseconds, example is 1 sec delay [code]delay=1000[/code]
@DarkStarSword / Flugan

Will be possible to add a "DELAY" for keybinding?
For both 3Dmigoto and Flugan Wrapper.
Expressed in miliseconds, example is 1 sec delay

delay=1000

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

#50
Posted 02/12/2015 04:19 PM   
I'm not at home will look into it. are we talking type=normal type=toggle or type=hold Sounds doable. need to find the api for time.
I'm not at home will look into it. are we talking type=normal type=toggle or type=hold
Sounds doable. need to find the api for time.

Thanks to everybody using my assembler it warms my heart.
To have a critical piece of code that everyone can enjoy!
What more can you ask for?

donations: ulfjalmbrant@hotmail.com

#51
Posted 02/12/2015 04:28 PM   
Here's a quick summary of what Flugan and I discussed on chat: We have agreed to use XB1-XB4 for specific controllers, as this is clearer than X1-X4. My motivation for having the default case check the inputs of all four controllers is for the case where a player may have multiple controllers plugged in and is using one of them to play the game, but it may not necessarily be controller 1 - checking all four means they don't need to care. This is not aimed at split screen multiplayer games. Using a preset in these games doesn't really make sense as either player could trigger a preset that affects both players, regardless of what input devices are used. Flugan's wrapper will treat XB_ the same as XB1_, while 3Dmigoto will check all four controllers when XB_ is used. In the majority of cases players only have one controller so there will be no difference.
Here's a quick summary of what Flugan and I discussed on chat:


We have agreed to use XB1-XB4 for specific controllers, as this is clearer than X1-X4.


My motivation for having the default case check the inputs of all four controllers is for the case where a player may have multiple controllers plugged in and is using one of them to play the game, but it may not necessarily be controller 1 - checking all four means they don't need to care.

This is not aimed at split screen multiplayer games. Using a preset in these games doesn't really make sense as either player could trigger a preset that affects both players, regardless of what input devices are used.


Flugan's wrapper will treat XB_ the same as XB1_, while 3Dmigoto will check all four controllers when XB_ is used. In the majority of cases players only have one controller so there will be no difference.

2x Geforce GTX 980 in SLI provided by NVIDIA, i7 6700K 4GHz CPU, Asus 27" VG278HE 144Hz 3D Monitor, BenQ W1070 3D Projector, 120" Elite Screens YardMaster 2, 32GB Corsair DDR4 3200MHz RAM, Samsung 850 EVO 500G SSD, 4x750GB HDD in RAID5, Gigabyte Z170X-Gaming 7 Motherboard, Corsair Obsidian 750D Airflow Edition Case, Corsair RM850i PSU, HTC Vive, Win 10 64bit

Alienware M17x R4 w/ built in 3D, Intel i7 3740QM, GTX 680m 2GB, 16GB DDR3 1600MHz RAM, Win7 64bit, 1TB SSD, 1TB HDD, 750GB HDD

Pre-release 3D fixes, shadertool.py and other goodies: http://github.com/DarkStarSword/3d-fixes
Support me on Patreon: https://www.patreon.com/DarkStarSword or PayPal: https://www.paypal.me/DarkStarSword

#52
Posted 02/12/2015 04:31 PM   
make more sense for type=hold, but can be implemented for the 3 type....just in case :)
make more sense for type=hold, but can be implemented for the 3 type....just in case :)

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

#53
Posted 02/12/2015 04:31 PM   
I'm going with XB_ == XB1_ which is stable when it comes to connecting multiple controllers. DarkStarSword is more flexible working with any controller as long as no other controller is used. Edit: I have changed my mind and will make XB_ the most common case where only one gamepad is in use. No need for it to be connected as controller 0.
I'm going with XB_ == XB1_ which is stable when it comes to connecting multiple controllers. DarkStarSword is more flexible working with any controller as long as no other controller is used.

Edit: I have changed my mind and will make XB_ the most common case where only one gamepad is in use.
No need for it to be connected as controller 0.

Thanks to everybody using my assembler it warms my heart.
To have a critical piece of code that everyone can enjoy!
What more can you ask for?

donations: ulfjalmbrant@hotmail.com

#54
Posted 02/12/2015 04:34 PM   
[quote="DHR"]@DarkStarSword / Flugan Will be possible to add a "DELAY" for keybinding? For both 3Dmigoto and Flugan Wrapper. Expressed in miliseconds, example is 1 sec delay [code]delay=1000[/code] [/quote]Yes, this has been on my TODO list for a while - now that someone has asked for it I'll bump it's priority up, and start coding up something after work tomorrow :) I was thinking of specifying separate delays for both up and down (for type=hold) - Helix mod only supports delays for button down, but delaying on button release can be useful as well to better sync with the game's animation. Is there a pressing need for a delay on anything other than type=hold (I might do it anyway if it's easy - just want to know if I should concentrate on it now)?
DHR said:@DarkStarSword / Flugan

Will be possible to add a "DELAY" for keybinding?
For both 3Dmigoto and Flugan Wrapper.
Expressed in miliseconds, example is 1 sec delay

delay=1000

Yes, this has been on my TODO list for a while - now that someone has asked for it I'll bump it's priority up, and start coding up something after work tomorrow :)

I was thinking of specifying separate delays for both up and down (for type=hold) - Helix mod only supports delays for button down, but delaying on button release can be useful as well to better sync with the game's animation.

Is there a pressing need for a delay on anything other than type=hold (I might do it anyway if it's easy - just want to know if I should concentrate on it now)?

2x Geforce GTX 980 in SLI provided by NVIDIA, i7 6700K 4GHz CPU, Asus 27" VG278HE 144Hz 3D Monitor, BenQ W1070 3D Projector, 120" Elite Screens YardMaster 2, 32GB Corsair DDR4 3200MHz RAM, Samsung 850 EVO 500G SSD, 4x750GB HDD in RAID5, Gigabyte Z170X-Gaming 7 Motherboard, Corsair Obsidian 750D Airflow Edition Case, Corsair RM850i PSU, HTC Vive, Win 10 64bit

Alienware M17x R4 w/ built in 3D, Intel i7 3740QM, GTX 680m 2GB, 16GB DDR3 1600MHz RAM, Win7 64bit, 1TB SSD, 1TB HDD, 750GB HDD

Pre-release 3D fixes, shadertool.py and other goodies: http://github.com/DarkStarSword/3d-fixes
Support me on Patreon: https://www.patreon.com/DarkStarSword or PayPal: https://www.paypal.me/DarkStarSword

#55
Posted 02/12/2015 04:38 PM   
Another random thought - is there any interest in a transition rather than a delay? Like adjusting the convergence smoothly over the delay period rather than suddenly after the delay? Might be something to experiment with anyway... I certainly notice the sudden convergence change in Far Cry 2, but the animation in Stranded Deep has a specific point where the sudden transition was better.
Another random thought - is there any interest in a transition rather than a delay? Like adjusting the convergence smoothly over the delay period rather than suddenly after the delay?

Might be something to experiment with anyway... I certainly notice the sudden convergence change in Far Cry 2, but the animation in Stranded Deep has a specific point where the sudden transition was better.

2x Geforce GTX 980 in SLI provided by NVIDIA, i7 6700K 4GHz CPU, Asus 27" VG278HE 144Hz 3D Monitor, BenQ W1070 3D Projector, 120" Elite Screens YardMaster 2, 32GB Corsair DDR4 3200MHz RAM, Samsung 850 EVO 500G SSD, 4x750GB HDD in RAID5, Gigabyte Z170X-Gaming 7 Motherboard, Corsair Obsidian 750D Airflow Edition Case, Corsair RM850i PSU, HTC Vive, Win 10 64bit

Alienware M17x R4 w/ built in 3D, Intel i7 3740QM, GTX 680m 2GB, 16GB DDR3 1600MHz RAM, Win7 64bit, 1TB SSD, 1TB HDD, 750GB HDD

Pre-release 3D fixes, shadertool.py and other goodies: http://github.com/DarkStarSword/3d-fixes
Support me on Patreon: https://www.patreon.com/DarkStarSword or PayPal: https://www.paypal.me/DarkStarSword

#56
Posted 02/12/2015 04:46 PM   
[quote="DarkStarSword"]Another random thought - is there any interest in a transition rather than a delay? Like adjusting the convergence smoothly over the delay period rather than suddenly after the delay? Might be something to experiment with anyway... I certainly notice the sudden convergence change in Far Cry 2, but the animation in Stranded Deep has a specific point where the sudden transition was better.[/quote]I've mentioned that before as a 'too bad HelixMod didn't'. :) I definitely think it could work really well in certain cases, a transitional delay to and/or from would be ideal in certain games, like Resident Evil: Revelations for instance where I tried to compensate for the delay in animation and the quick Convergence snap in AHK. I didn't know about 'delay=' at the time, that might have worked as well but I think a smooth transition would always look better. I say think because it's really one of those things that sound good in theory but you have to see in action before you can really decide ... that said I've seen the Convergence snap and I know I don't like it.
DarkStarSword said:Another random thought - is there any interest in a transition rather than a delay? Like adjusting the convergence smoothly over the delay period rather than suddenly after the delay?

Might be something to experiment with anyway... I certainly notice the sudden convergence change in Far Cry 2, but the animation in Stranded Deep has a specific point where the sudden transition was better.
I've mentioned that before as a 'too bad HelixMod didn't'. :)

I definitely think it could work really well in certain cases, a transitional delay to and/or from would be ideal in certain games, like Resident Evil: Revelations for instance where I tried to compensate for the delay in animation and the quick Convergence snap in AHK. I didn't know about 'delay=' at the time, that might have worked as well but I think a smooth transition would always look better. I say think because it's really one of those things that sound good in theory but you have to see in action before you can really decide ... that said I've seen the Convergence snap and I know I don't like it.
#57
Posted 02/12/2015 06:10 PM   
Delay is implemented. I extended and later removed XInput for performance reasons. Need a different approach. Currently it's up to xpadder which is good enough for me. I got the intended behaviour and testing with two controllers one key was bound on both devices while another was locked to XB1. delay=1000 type=hold means if you hold the button less than a second nothing will happen as the button was never pressed so nothing to restore on keyup. If you hold it down longer than a second it will be as if you pressed the button 1 second later.
Delay is implemented. I extended and later removed XInput for performance reasons. Need a different approach. Currently it's up to xpadder which is good enough for me. I got the intended behaviour and testing with two controllers one key was bound on both devices while another was locked to XB1.

delay=1000
type=hold

means if you hold the button less than a second nothing will happen as the button was never pressed so nothing to restore on keyup. If you hold it down longer than a second it will be as if you pressed the button 1 second later.

Thanks to everybody using my assembler it warms my heart.
To have a critical piece of code that everyone can enjoy!
What more can you ask for?

donations: ulfjalmbrant@hotmail.com

#58
Posted 02/12/2015 08:51 PM   
Transitions are more complex as more behaviour have to be designed. I should probably start with the simplest quick switch keys start at value move to target over 100ms for instance.
Transitions are more complex as more behaviour have to be designed. I should probably start with the simplest quick switch keys start at value move to target over 100ms for instance.

Thanks to everybody using my assembler it warms my heart.
To have a critical piece of code that everyone can enjoy!
What more can you ask for?

donations: ulfjalmbrant@hotmail.com

#59
Posted 02/12/2015 08:55 PM   
Just wondering, is it possible to implement depth override into a wrapper as well? There's talk of auto-convergence etc. I used to use the depth.bat file and in 3d surround it seems that I get additional depth anyway, but lack of depth used to be a common complaint.
Just wondering, is it possible to implement depth override into a wrapper as well? There's talk of auto-convergence etc.
I used to use the depth.bat file and in 3d surround it seems that I get additional depth anyway, but lack of depth used to be a common complaint.

GTX 1070 SLI, I7-6700k ~ 4.4Ghz, 3x BenQ XL2420T, BenQ TK800, LG 55EG960V (3D OLED), Samsung 850 EVO SSD, Crucial M4 SSD, 3D vision kit, Xpand x104 glasses, Corsair HX1000i, Win 10 pro 64/Win 7 64https://www.3dmark.com/fs/9529310

#60
Posted 02/12/2015 10:07 PM   
  4 / 6    
Scroll To Top