Xinput rumble support (Selaco has it already)

Post a reply

Smilies
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :geek: :ugeek: :!: :?: :idea: :arrow: :| :mrgreen: :3: :wub: >:( :blergh:
View more smilies

BBCode is ON
[img] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Xinput rumble support (Selaco has it already)

Re: Xinput rumble support (Selaco has it already)

by McDoogle138 » Fri Apr 25, 2025 5:51 pm

I don't know how to do coding in order to backport these features, but I'm pretty sure that the code needed is in these links:

https://steamcommunity.com/app/1592280/ ... 944658245/
https://github.com/Cacodemon345/gzdoom/ ... xinput.cpp

Re: Xinput rumble support (Selaco has it already)

by Muusi » Fri Sep 20, 2024 2:04 pm

Cacodemon345 wrote: Fri Sep 20, 2024 1:34 pm I don't have any Ko-Fi or Patreon accounts and I don't have any PayPal accounts either due to where I live. Sorry.
Damn. Anyone willing to do it and also lacks a controller please let me know :)

Re: Xinput rumble support (Selaco has it already)

by Cacodemon345 » Fri Sep 20, 2024 1:34 pm

I don't have any Ko-Fi or Patreon accounts and I don't have any PayPal accounts either due to where I live. Sorry.

Re: Xinput rumble support (Selaco has it already)

by Muusi » Fri Sep 20, 2024 1:26 pm

Cacodemon345 wrote: Fri Sep 20, 2024 12:15 pm For everyone else looking to backport Selaco's rumble support to GZDoom, I traced the commit from where its engine fork branched off and uploaded the changes here to the "pancake" branch: https://github.com/Cacodemon345/gzdoom/tree/pancake

Diff is here: https://github.com/Cacodemon345/gzdoom/ ... b47c761a1e

I don't have a rumble-capable controller yet so I can't backport the backend input changes to GZDoom yet. But this should save everyone's time seeking to actually do so and in general seeking to backport other changes.
Have a ko-fi or something? I'll gladly buy you a wired 360 controller.

Re: Xinput rumble support (Selaco has it already)

by Cacodemon345 » Fri Sep 20, 2024 12:15 pm

For everyone else looking to backport Selaco's rumble support to GZDoom, I traced the commit from where its engine fork branched off and uploaded the changes here to the "pancake" branch: https://github.com/Cacodemon345/gzdoom/tree/pancake

Diff is here: https://github.com/Cacodemon345/gzdoom/ ... b47c761a1e

I don't have a rumble-capable controller yet so I can't backport the backend input changes to GZDoom yet. But this should save everyone's time seeking to actually do so and in general seeking to backport other changes.

Re: Xinput rumble support (Selaco has it already)

by Muusi » Fri Sep 20, 2024 7:50 am

So basically there's a version of GZDoom with working controller rumble but you only get to play Selaco. That's depressing. Even bought it because my dumbass thought that it still supported regular Doom WADs but of course not duhh.

Re: Xinput rumble support (Selaco has it already)

by Rachael » Fri Sep 20, 2024 6:48 am

Professor Hastig wrote: Fri Sep 20, 2024 3:24 am It is hard to tell what they did - there's too many random changes throughout the code which makes comparing it very hard, much less finding the commit where they branched off.
dpJudas wrote: Fri Sep 20, 2024 1:45 am I'm sorry Muusi, but any changes you see in Selaco was done in such a way to only serve their own game. It is their right to do that per the license, but it ultimately also means their stuff will most likely never end up in GZDoom proper until someone else implements the same thing in a proper way that meets the quality standards required to survive as a PR.
Highlighting these two statements because they simply cannot be overstated.

If they really wanted to benefit the GZDoom community as a whole - they'd stop sequestering themselves away from it and actually do the PR's and code reviews to get their additions working. Just saying "it's there, we're so kind and generous" isn't enough. As dpJudas said, that's enough to satisfy the license - not helping with crucial and critical things like code deltas.

Let's not even start on the shim they used for the Steam achievements - I can't find a source for that anywhere, and GPL requires that if you distribute other items with a GPL project they too must be open source. That isn't following the license.

Re: Xinput rumble support (Selaco has it already)

by Professor Hastig » Fri Sep 20, 2024 3:24 am

It is hard to tell what they did - there's too many random changes throughout the code which makes comparing it very hard, much less finding the commit where they branched off.

Re: Xinput rumble support (Selaco has it already)

by Muusi » Fri Sep 20, 2024 3:18 am

dpJudas wrote: Fri Sep 20, 2024 1:45 am I'm sorry Muusi, but any changes you see in Selaco was done in such a way to only serve their own game. It is their right to do that per the license, but it ultimately also means their stuff will most likely never end up in GZDoom proper until someone else implements the same thing in a proper way that meets the quality standards required to survive as a PR.
Ah dammit of course. There's also a VR fork called QuestZDoom but I guess with that too it was made in a way to only work with that specific version of the engine, even though the "haptic feedback" is just standard controller rumble.

If there's any interest by any dev to make normal everyday Xinput rumble happen in GZDoom, I will contribute with my wallet since I have absolutely 0 knowledge about coding myself. There's no way I'm the only one who would love that feature, especially with Steam Deck being so popular.

Re: Xinput rumble support (Selaco has it already)

by dpJudas » Fri Sep 20, 2024 1:45 am

Muusi wrote: Thu Sep 19, 2024 8:53 pm "If a modder / GZDoom developer wants to put it in stock GZDoom, they are free to do so! We're just too busy to be doing such things ourselves at the moment"
This is why I don't like the Selaco devs. They make it seem like they are being generous here, but the truth is they are doing NOTHING themselves, only doing the absolute minimum required to be compliant with the GPL license. They even bragged at one point about how much they were helping GZDoom. So let me reply in kind:

If Selaco wants their changes to end up in GZDoom, they are free to do so! We're just too busy to be doing such things ourselves at the moment...

I'm sorry Muusi, but any changes you see in Selaco was done in such a way to only serve their own game. It is their right to do that per the license, but it ultimately also means their stuff will most likely never end up in GZDoom proper until someone else implements the same thing in a proper way that meets the quality standards required to survive as a PR.

Re: Xinput rumble support (Selaco has it already)

by Gez » Fri Sep 20, 2024 12:24 am

Muusi wrote: Thu Sep 19, 2024 11:53 pm The problem is i have no idea how to compile anything. Would comparing the files between Selaco an GZDoom and pointing out the changes to you smarter people help any?
Not really, it's something that can be done easily with programs like WinMerge.

The issue is not so much finding what changed, than filtering these changes out to just what is actually needed. It can be more than it appears at first glance; but it can also be less! Then there's the question of motivation. Never forget that GZDoom is a hobby project. The developers work on what they want to work on. The Selaco devs may get paid to work on Selaco, but the GZDoom devs don't get paid to work on GZDoom...

Re: Xinput rumble support (Selaco has it already)

by Muusi » Thu Sep 19, 2024 11:53 pm

Gez wrote: Thu Sep 19, 2024 11:35 pm
Muusi wrote: Thu Sep 19, 2024 8:53 pm Am I wasting my time if I myself search for every single file for mentions of joy_feedback and paste it here?
What you could do is:
  1. Install everything needed to compile GZDoom
  2. Start porting the relevant code portions from pancake to GZDoom
  3. Test if it a. compiles, and b. works as intended
  4. Do a pull request with the code changes once satisfied
The problem is i have no idea how to compile anything. Would comparing the files between Selaco an GZDoom and pointing out the changes to you smarter people help any?
Graf Zahl wrote: Thu Sep 19, 2024 11:42 pm To cut it short:

There is no proper rumble implementation in the engine, just an interface being controlled from their own game code. None of the rumble functions ever get called from inside the engine.

An no, I do not have a rumble capable controller. All I got is a 12 year old gamepad I once needed for implementing controller support in a professional project.
If you ever have the spare time to start tackling the controller rumble support, message me and i will immediately donate you the amount of money + shipping for a wired Xbox 360 controller which is a perfect controller for PC.

Re: Xinput rumble support (Selaco has it already)

by Graf Zahl » Thu Sep 19, 2024 11:42 pm

To cut it short:

There is no proper rumble implementation in the engine, just an interface being controlled from their own game code. None of the rumble functions ever get called from inside the engine.

An no, I do not have a rumble capable controller. All I got is a 12 year old gamepad I once needed for implementing controller support in a professional project.

Re: Xinput rumble support (Selaco has it already)

by Gez » Thu Sep 19, 2024 11:35 pm

Muusi wrote: Thu Sep 19, 2024 8:53 pm Am I wasting my time if I myself search for every single file for mentions of joy_feedback and paste it here?
Yes, kinda.

What you could do is:
  1. Install everything needed to compile GZDoom
  2. Start porting the relevant code portions from pancake to GZDoom
  3. Test if it a. compiles, and b. works as intended
  4. Do a pull request with the code changes once satisfied
Note that if the developers don't have rumbly controllers, they can't do that themselves because they can't test it! It's the same problem with VR stuff.

Re: Xinput rumble support (Selaco has it already)

by Muusi » Thu Sep 19, 2024 8:53 pm

https://codeberg.org/sag/pancake-engine ... ne/m_joy.h

m_joy starts talking about vibration at line 60. Of course i have no idea how any of this stuff works so maybe there's a 100 files where vibration needs to be worked on lol. I asked Nexxtic about it too but haven't yet gotten a response other than
It can be found in the source code! We rewrote significant portions of the gamepad code to be up to modern standards.

If a modder / GZDoom developer wants to put it in stock GZDoom, they are free to do so! We're just too busy to be doing such things ourselves at the moment
I tried asking for a specific area of interest in the code, hopefully they remember where that specific code is.

EDIT: the cvar for the vibration is called "joy_feedback". Am I wasting my time if I myself search for every single file for mentions of joy_feedback and paste it here?

Top