Coffeehouse Thread

16 posts

An open letter to the Microsoft Common Controller team

Back to Forum: Coffeehouse
  • NeoTOM

    I have a problem with the 360 controller drivers. No, not an issue. I have a problem.

    The problem is that they *suck*.

    Seriously, I know that the DirectInput interface was secondary to the cause when they were designing them, because they are meant for the newly pioneered Xinput standard instead, but the fact is that the majority of games (namely, all of them) for PC use DirectInput as the API for accessing controllers. (On top of that, its nonstandardization is actually desirable for most development, even if it is a pain to code for.) They're never going to be patched to use Xinput. Never. So, if you want to play a game on the PC with your 360 controller, you'll have to use the DirectInput interface to the Common Controller.

    With both triggers mapped to ONE AXIS AUGH IT HURTS WHAT WERE YOU THINKING?! NO GAME can recognize two triggers on one axis. On top of that, and this has been specifically posted here before, there is no deadzone to the drivers, which would be fine if the controllers didn't require a deadzone directly out of box. There's also a button on my controller with absolutely no functionality with the device that I bought it for.

    Here's my suggestion. With two highly relevant products coming out (The Wireless Xbox 360 controller USB dongle for PC and Windows Vista) and a major push for the "Games for Windows" initiative, rewrite the drivers. Add a step in the configuration where you move your thumbs over the thumbsticks to set up a deadzone. Build some functionality into the Guide Button for Vista, like something that will minimize your game and bring you to the Media Center. And for Bob's sake, reassign each trigger to its own axis. If these controllers only work with XP, you've got enough: just assign the left to Z and the right to Z Rotation. With the vast majority of gamers owning a PC and a wireless Xbox 360 controller that came with their 360, there's going to be a major influx in users using their wireless controllers with Windows Vista after seeing a product with no other purpose than just that (the 360 controller is marketed as an Xbox controller, but the dongle/controller will have no purpose other than for PC use since the Xbox doesn't need the dongle). It's better to have the consumers pleased than to have them disgusted that their games won't work.

    I don't know of any way to submit feedback to the software department of Microsoft Hardware, so I posted this. I'm hoping with the Games for Windows campaign this area will be taken more seriously than as a novel, substandard gimmick.

  • JasonOlson

    I went ahead and forwarded this thread to David Weller. He said that he'll make sure the right people get a look at it.

    Thanks!

  • NeoTOM

    JasonOlson wrote:
    I went ahead and forwarded this thread to David Weller. He said that he'll make sure the right people get a look at it.

    Thanks!




    Would you happen to know who I could talk to in the Microsoft Mouse department? Because Intellipoint has some pretty major issues, too (No "Native Function" support, programmatic button functions don't work either)

  • figuerres

    JasonOlson wrote:
    I went ahead and forwarded this thread to David Weller. He said that he'll make sure the right people get a look at it.

    Thanks!


    Cool, when the xna xbox developer thing was released I started to look at it and said "stick it" the xbox controler move was one of the pain points.  why for the love of good they put together a new input system that leaves all the current pc controlers out of the picture I do not understand.

    for example I can't use a pc game pad on my pc with xna express !

    I hope MSFT is not planning on shiping this way... if I see that a game will not work with my joystick and game pad it had darn well better be the most amazing game ever made!

    sure use the xbox 360 pad, support it, even make it the defualt but if the game is a pc game using the xna stack it better support my hardware!

  • NeoTOM

    Let me see if I understand your point. You're complaining about how XNA doesn't support any controllers other than the Xbox 360 controller. Guess what? That's because it's the only Microsoft Common Controller. I'll explain this for you.

    XNA only supports MCC because games for it are designed to be cross-compatible with the Xbox 360. Common Controller is a controller standard, DirectInput is an input standard. Common Controller means you will have up to 4 controllers each explicitly with with 4 buttons, 2 bumpers, 2 triggers, 2 joysticks with push-sensing, a d-pad and a guide button with a light showing which controller it is. DirectInput says you will have a controller with any variety of axes and buttons. You can have a Common Controller act as a DirectInput controller, but not the other way around (unless your controller happens to have all the capabilities of the 360 controller in which case you are free to write your own MCC drivers for them). With Microsoft Common Controller, you can write a control scheme and not have to design in catches in case they don't have analog triggers or more than two buttons or anything, because you know exactly what they controller they are using will do. Also, Microsoft Common Controller can be accessed with XInput, which is easier to code for (and, supposedly, uses capabilities not existent in the DirectInput protocol even though I seriously can't think of anything you can do with a 360 controller and XInput that you couldn't with DirectInput if you were to write the drivers correctly).

    Basically, if you wanted to design a controller with 18 buttons, 2 joysticks, a slider and 2 triggers, you could do it with DirectInput and have all of the buttons used as Buttons 1-18, the joysticks used as X and y and X and Y Rotation, the triggers used as Z and Z Rotation, and the Slider used as the Slider axis. You could also assign certain buttons to Xbox 360 counterparts, but 9 of them would have to be unused (You can only assign A, B, C, D, LB, RB, Back, Start and the Guide), along with that Slider. You could also create a Power Glove (Remember that? A rather complicated Nintendo controller device used by the bad kid Lucas in their 90-minute cinematic commercial The Wizard) or even write drivers for the Wii controller (Which also tracks its position like the Power Glove) and use the X, Y, and Z and their respective Rotation axes for their intended purpose using DirectInput, but they would not work for XInput.

    That's why XNA uses the 360 controller and not your Sidewinder. If you want to write a game that can use DirectInput devices, write a DirectX game with the DirectX SDK for the PC.

  • figuerres

    my point is that a lot of folks have controlers todat that work with the pc they have.

    so why not have a driver / software adpater that on the pc enables a "standard" game controler to "just plugin and work" with a game written with xna.

    sure use the 360 control as the model, sure on an xbox it's "the controler"

    but why that means that to play an xna pc game I should have to buy a new game pad when I have one that has the same number of buttons and triggers as the 360 one?

    MSFT has made old xbox games run on the 360.
    windows 95 apps run on vista.
    dos games run on windows
    old mice and keyboards work.

    but a gamepad is left in the dust? 

    Perplexed

  • NeoTOM

    Read my post, if you can.

  • Minh

    How would you implement the ring of lights & the guide button on every controller?

  • NeoTOM

    Minh wrote:
    How would you implement the ring of lights & the guide button on every controller?


    Well you could do it with a PS3 controller Wink (Wink because it's because the PS3 controller is just a ripoff amalgamation of the other 2 consoles' controllers)

    But then you'd have to drop force feedback...

  • Massif

    NeoTOM wrote:

    Well you could do it with a PS3 controller (Wink because it's because the PS3 controller is just a ripoff amalgamation of the other 2 consoles' controllers)

    But then you'd have to drop force feedback...


    Isn't the PS3 controller just the PS2 controller with Force feedback replaced with a rubbish motion detector?

    How does it bear any relation to the XBox controller - aside from the fact all console controllers have similar functionality.

  • Minh

    Massif wrote:
    aside from the fact all console controllers have similar functionality.
    True. I think the Xbox360 team just want to make it easier for devs. I like the idea of XInput working on just the one controller. If XInput doesn't work for you, you can always use DirectInput. Nothing is preventing DI from working in conjunction w/ XNA (i think).

  • dentaku

    I know exactly what you're talking about. The XBOX 360 controller is great but game makers don't seem to care and all we get is basic bare bones drivers with no special tweaking abilities from Microsoft.

    Games like Need For Speed Underground 2 are useless with this controller because for some reason they didn't include any deadzone setting in the game and the drivers certainly don't have any way of setting a universal deadzone setting.
    Driving games need a deadzone, se otherwise your car just drifts around by itself.
    I can see how filght simulators and platform jumping games could be annoying too.

    At least ToCa Race Driver 3 has it's own deadzone setting.
    We NEED an XBOX360 Controller configuration/game profile utility of some kind.

    By the way, many people have this problem and at the moment it seems like using the XBCD drivers is the only solution.
    http://www.redcl0ud.com/

  • NeoTOM

    Massif wrote:
    
    NeoTOM wrote:
    Well you could do it with a PS3 controller (Wink because it's because the PS3 controller is just a ripoff amalgamation of the other 2 consoles' controllers)

    But then you'd have to drop force feedback...


    Isn't the PS3 controller just the PS2 controller with Force feedback replaced with a rubbish motion detector?

    How does it bear any relation to the XBox controller - aside from the fact all console controllers have similar functionality.


    The PS3 controller has 4 lights to show which controller number it is along with a guide button. Also, the triggers have been replaced with a bumper and a springy analog trigger (I say springy because, in fact, all buttons on the Dualshock 2 were analog in Analog mode except for Select, Start & the Analog toggle).

  • NeoTOM

    Minh wrote:
    True. I think the Xbox360 team just want to make it easier for devs. I like the idea of XInput working on just the one controller. If XInput doesn't work for you, you can always use DirectInput. Nothing is preventing DI from working in conjunction w/ XNA (i think).


    XInput actually works on any wired 360 controller, Microsoft or Mad Catz or Nyko or whatever, IIRC. Also, XNA I think only works with XInput because it's a cross platform library.

  • NeoTOM

    So... is any thing going to come of this, or is it just going to be another piece of discarded customer feedback?

  • dentaku

    NeoTOM wrote:
    

    So... is any thing going to come of this, or is it just going to be another piece of discarded customer feedback?




    Many people have been waiting for a long time and I doubt anything will be done about it. I think even the wireless controller have drivers now but I doubt they have any more features (like deadzone) than the wired controllers.

Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.