Controller only?
#1
I never played the Descent games. I wanted to give them a try. I just built a mini-PC that I have hooked up to my PC for some retro couch gaming.

I control it solely with wireless XBox controllers.

Are there existing config files for mapping controls to an XBox controller? Even when I mapped controls in the game, they didn't work for the UI/Menus.
Reply
#2
The game menus are keyboard/mouse driven. Controllers are considered a form of joystick. I am not aware of any in-game way to use a controller as a mouse. You may be able to use an OS-specific helper to emulate a mouse using your joystick.
Reply
#3
I think way back in the day I saw someone port this to the original XBox, and in their fork/port you could navigate menus with a controller. That might be a nice feature to add.

Maybe even one better, if you detect a standard XBox controller via xinput, have default sane configuration for it.
Reply
#4
I'm not aware of such a port, but that doesn't mean there wasn't one. Only a year or two ago, I became aware of someone who was determined to use the original sources (not Rebirth, nor XL, nor even the parent DXX project, but actual original sources) to run on some tiny game consoles that don't even have a proper OS, so it's definitely possible there are other forks hiding out there. Google searches for "Descent source port" only turn up Rebirth, XL, Retro, and DXX - no mention of the game console fork.

Yes, controller based navigation could be useful for some people. It's not useful enough to me for me to write it, but if you want to submit it, I'll review it. I definitely won't be able to detect a standard XBox controller though, as I have neither a controller to detect, nor a Windows system to which I could attach it. Smile For that also, I'd be happy to merge support if someone who can test it submits it for inclusion.
Reply
#5
This was the port. Someone ported the dxx-rebirth code A LONG time ago on the original XBox.

https://www.gamebrew.org/wiki/XDescent_XBOX

Either way, the ability to use a controller in the menus would make for a more seamless experience for anyone who is using a controller for gameplay. There are people running dxx-rebirth on Raspberry Pi devices already, so I'm probably not the only person who would like to see some couch gaming with dxx-rebirth.

https://www.raspberrypi.org/forums/viewt...hp?t=14108
Reply
#6
Interesting - but if it's old enough that I didn't know about it, it definitely predates the license change from a few years back. I'd need the original author to agree to the new terms before I could merge the code. (I don't expect the author would disagree, based on how the terms changed, but I still need his/her approval to proceed.) Similarly, if it's that old, it almost certainly won't apply anywhere close to cleanly, so it'd be useful only as a reference of what to change, but would need significant hand editing to apply to the current code. If the author is agreeable, I'd be happy to work with him to get his changes brought back into the main tree. Get him to open a pull request and I'll work on it.

As for the Pi, yes, derhass made it work and contributed that code back to the main tree. I don't have a test environment for the Pi, but I try to avoid breaking it. As above, if someone wants to make Rebirth work better (or at all) on non-traditional setups, I'm happy to review the changes and include them so that they do not rot over time. I just don't have the environments, or in some cases the time/expertise, to personally support targetting devices other than traditional laptops/desktops.
Reply
#7
The fork was so old that I'm not sure it makes sense to try and isolate input code differences and then copy it over. I just know it has been done and is possible. That was the work of one coder who knocked out a quick port of dxx-rebirth along with a bunch of other projects they ported to the XBox.

Allowing the use of a controller in menus isn't just for random niche hardware. We're talking about a 6 degree of freedom game where analog controllers work well for the game. As it stands, you have to wipe out the keyboard bindings to add controller/joystick bindings or vice-versa. The game should have sane defaults if a standard controller is detected (and most PC controllers are XBox controllers, or clones).
Reply
#8
I don't think that's the port I was thinking of. The one I remember is still under intermittent development.

If the fork tracked its work in source control, isolating the differences would be easy. Forward-porting them may not be. I know nothing about XBox development, so that person is almost certainly more qualified to do the XBox port than I am. Further, I have no XBox or controller with which to test the port even if I knew what changes were required.

You don't need to clear keyboard bindings. Rebirth lets you bind both keyboard keys and joystick buttons/axes to the same ship controls, and you can switch between them freely during play. I don't disagree that sane defaults are a desirable thing, but:
  • I have no personal stake in such a feature.
  • I have no ability to test such a feature.
  • I have no knowledge of any quirks associated with the relevant hardware.
  • I don't know what defaults would be sane.
  • I don't know how to recognize that a joystick isn't a regular joystick, but is instead an XBox controller (or clone).
Describe specifically how to support the controllers you want to work, and I'll happily add that support so that you can test it. Links to appropriate documentation are also acceptable.
Reply
#9
(09-20-2018, 01:26 AM)Kp Wrote: I don't think that's the port I was thinking of.  The one I remember is still under intermittent development.

If the fork tracked its work in source control, isolating the differences would be easy.  Forward-porting them may not be.  I know nothing about XBox development, so that person is almost certainly more qualified to do the XBox port than I am.  Further, I have no XBox or controller with which to test the port even if I knew what changes were required.

You don't need to clear keyboard bindings.  Rebirth lets you bind both keyboard keys and joystick buttons/axes to the same ship controls, and you can switch between them freely during play.  I don't disagree that sane defaults are a desirable thing, but:
  • I have no personal stake in such a feature.
  • I have no ability to test such a feature.
  • I have no knowledge of any quirks associated with the relevant hardware.
  • I don't know what defaults would be sane.
  • I don't know how to recognize that a joystick isn't a regular joystick, but is instead an XBox controller (or clone).
Describe specifically how to support the controllers you want to work, and I'll happily add that support so that you can test it.  Links to appropriate documentation are also acceptable.

An XBox controller is largely the default joystick in Windows. With xinput, pretty much every joystick in Windows pretends to be an XBox controller. All I'm really asking for is that if you're going to have joystick support, it should be fully supported. Most every joystick that exists for a PC is functionally a clone of an XBox controller and is treated as such by Windows. You're suggesting that you are not capable of testing a joystick in the game?

When I tested the other night and mapped features to a joystick button, it wiped out the keyboard binding. You couldn't go back and forth between them.
Reply
#10
If XBox controllers work like all other joysticks, why do you keep calling them out? I thought from context that they had some special property. Joysticks are fully supported for flight in-game, which is consistent with the original game. No, I am not suggesting that I am not capable of testing a joystick in the game. I am stating, quite explicitly, that I have neither an XBox controller nor a Windows system with which to test the game. Since you are quite adamant that the game needs support for an XBox controller, it seems reasonable to read your posts as implying that an actual XBox controller is under discussion and support for it would need to be tested with an XBox controller or a close clone thereof. I cannot perform such a test. If someone else, hopefully you, since this matters to you, were to submit improvements in this area, I could review them, test that they did not break general joystick support, and merge them. As far as I know, the game does not use xinput on Windows, at least not directly. On Windows, the game relies on SDL to collect joystick inputs. That might be implemented by SDL using xinput. It might be implemented some other way.

I can test joystick support on Linux. I do test that, albeit not often. It works as designed: joystick buttons can be used for digital inputs: firing weapons, changing weapons, toggling map mode, etc. Joystick axes can be used for analogue inputs: pitching, banking, yawing, and accelerating. No one ever attempted to implement in Rebirth or its ancestor projects support for using joysticks to control the menus. If such an attempt were made, it could be included. It seems like it could be useful to some people. It is not sufficiently useful to me, personally, that I am willing to spend time working on it when there are other changes to the engine that I want more.

How did you test mapping to a joystick button? I thought the game crashed at startup for you, so you can't get to the controls panel to map anything.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)