Main > Main Forum

USB "Gamepad" encoder questions

Pages: << < (6/9) > >>

tetsujin:


--- Quote from: NoOne=NBA= on January 28, 2005, 04:38:47 pm ---Can you give a quick rundown of what you are envisioning the end product to be here?
--- End quote ---

My plan in a nutshell:

Upright cabinet around 26"-28" wide with swappable panels.  The first will be a two-player fighter configuration with a trackball, possibly a spinner or two added later.  The second (to be built sometime after the cabinet is completed) will be a four-player sticks-and-buttons configuration for Gauntlet, TMNT, Bomberman, etc.

I'm considering options for making USB ports accessible so that I can expand with regular peripherals if I want to quickly (sub-optimally) support other games or more players using gamepads and such.

NoOne=NBA=:

I think you are trying to make this alot more complicated than it needs to be.

If you approach this in a one encoder/one control set manner, that will leave lots of room on the encoders for admin functions, would still allow for future growth (such as adding a second stick for each player, etc...), and will circumvent alot of the problems you mentioned above regarding controller ID's, etc...

Unless you are planning on having portable controllers, there shouldn't be any need for ID swapping, changability, etc...
The ONLY way that could ever be an issue is if you built an identical set of controllers for a friend, and he brought them to your house to use them.

Do you have plans for any 4-player games that use more than three buttons.
The list you mentioned doesn't include any.
If that list is typical of the games you plan to play, your concerns over latency are pretty unfounded.

tetsujin:


--- Quote from: NoOne=NBA= on January 28, 2005, 05:53:03 pm ---I think you are trying to make this alot more complicated than it needs to be.

If you approach this in a one encoder/one control set manner, that will leave lots of room on the encoders for admin functions, would still allow for future growth (such as adding a second stick for each player, etc...), and will circumvent alot of the problems you mentioned above regarding controller ID's, etc...

....

Do you have plans for any 4-player games that use more than three buttons.
The list you mentioned doesn't include any.
If that list is typical of the games you plan to play, your concerns over latency are pretty unfounded.

--- End quote ---

There won't be physical space on the panel for two-player dual-stick on the first panel.  We don't want the panel to be that cluttered anyway.  So I don't need to plan for that.  But I believe I already mentioned wiring my whole 2-player console to one PIC as a possibility.  The nice thing about USB is that a single controller can represent multiple devices - and since they're all one device their enumeration order will be deterministic.  But rest assured, I'm choosing technical challenges that interest me, so nothing is "more complicated than it needs to be".  It's complicated enough to be fun and very, very rewarding.

I don't know of any four-player games that use more than three buttons - not arcade games at least.  (Console games are another matter...)  It's actually more likely the four-player panel would have four buttons per player, but I was saying that "even with as few as three buttons" it couldn't all be done on a single PIC.

Really there's a lot of MAME I haven't played.  I don't know what I'll end up playing.  What would be a good example of a game that's more timing-critical?

NoOne=NBA=:


--- Quote from: tetsujin on January 28, 2005, 06:08:33 pm ---But I believe I already mentioned wiring my whole 2-player console to one PIC as a possibility.
--- End quote ---
Yes.
You weren't SURE that you wanted to do though.
I was pointing out the safe path again--mostly for other's sake.

A single encoder doesn't leave ANY room to grow if you change your mind.
That's the point I was making.
You get two sticks, eight buttons each, two coinups, and two players starts--that leaves you with 4 admin inputs (exit/pause/tab/enter, most likely) provided your design allows you to USE all 32 inputs.

You haven't mentioned any plans for a shift function (which I'm not sure is even possible using gamepad drivers).
That is how the keyboard encoders have been able to overcome this shortfall.



--- Quote ---I don't know of any four-player games that use more than three buttons - not arcade games at least.  (Console games are another matter...)
--- End quote ---
That was the question I was asking.
Are you planning to use this as a console controller as well?
If so, there are ALOT of issues to keep in mind while designing for that.
Alot of the console emulators have SET keymaps; and, if you don't adhere to those, you're out of luck.
Many PC games have that limitation as well.
They expect you to hook up "Gamepad X", or "Gamepad Y".
If your gamepad mapping doesn't match that, it may be poorly supported--if "supported" at all.
If you don't know going in what you HAVE to do for this game, or that one, you could box yourself in with a bad, or completely useless, control set.
Truthfully, MAME is the least of your worries because of how configurable it is.

Something else for you to investigate, while we are on the subject is keymapping.
Dynamic keymapping has been THE reason that the keyboard encoders have been able to overcome the issue of non-adjustable controls on several emulators/games.
They can swap keysets at the push of a button, (or by opening the control panel and telling them to change).
I don't know if you're going to have that option, when designing a gamepad encoder.
Joystick 1 Button 1 is going to BE Joystick 1 Button 1 in the driver--unless you have a method planned out to overcome that.
The drivers themselves just read what is on the "joystick" they see, they don't interpret it, or dynamically alter it.
The I-pac is using an EEPROM, and can thus CHANGE "Input 1" to be whatever key you'd like it to be, with a simple flashing.



--- Quote --- It's actually more likely the four-player panel would have four buttons per player, but I was saying that "even with as few as three buttons" it couldn't all be done on a single PIC.
--- End quote ---
4-p CAN be done on a single encoder, given limited buttons (3/player being max.).
People are doing it all the time with a KeyWiz.
The Shazaam function is the key piece to doing it though.
On the good side, you won't need to worry about that because you're leaving the encoders IN the CP, so you can just use two on the 4-p CP.


--- Quote ---Really there's a lot of MAME I haven't played.  I don't know what I'll end up playing.  What would be a good example of a game that's more timing-critical?

--- End quote ---
I'm not sure what you mean by timing-critical in this question.

u_rebelscum:

I know most of this has already has been touched, but I thought I'd put my 2 cents in.


--- Quote from: tetsujin on January 26, 2005, 02:28:47 pm ---First, are there any pre-made USB game controller encoders readily available?
--- End quote ---

Well, there's always happs interface:P  If you don't mind $$$.


--- Quote ---Are there any significant performance disadvantages to a USB gamepad as compared to a keyboard encoder on a PS/2 or USB interface?  In terms of latency, mainly.
--- End quote ---

Well, most practical differences were already mentioned, but I'll list the main ones (AFAI care):

keyboard (and "gamepad"): many directX 7+ games only let the keyboard (and each "gamepad") represent one player (can't be split between players).

keyboard: windows only sees "one" keyboard, IOW even if you connected two different keyboards, all apps sees only one unified keyboard.

gamepad: if ID'ed the same, they may switch players on computer reboot.

keyboard: 256 max different "keys" (in windows directX directInput, at least).
joystick: 128 max buttons, 6 axes per joystick device (in windows directX directInput, at least).  (IE: If you have one chip telling the computer it's two joysticks, double that, if three joyticks: triple, ect.)

AFA USB protocols, true there are standard USB keyboard, mouse, and joystick protocols ("protocol" might be too strong a word, though).  However, these do not have to be followed as long as the device driver decodes the non-standard one.  The most commonly not used standard protocol is the mouse one: if you have a 4+ button mouse, or a "two scroll" or "scroll+sideways" or "trackball scroll" mouse (for examples) the standard USB mouse protocol doesn't work, and a different protocol is used.  It's so common, the drivers are standard in XP.


--- Quote ---Along similar lines, would the difference in latency between using low-speed USB controllers on a high-speed hub vs. using full-speed USB controllers on a high-speed hub be significant in terms of gameplay?  Or would it even be better to use a USB 1.1 hub with low-speed or full-speed devices, to avoid the intermediate step that high-speed hubs take with slower devices (buffering the data in each direction and re-transmitting it at a different speed)?  Or does it even matter in practical gaming terms?
--- End quote ---

Does not matter in gaming, usually.  A more likely noticable problem is when you have too many devices on the same root hub (even 4 gamepads + mouse might be too much).  Of course, this really depends on the quality of the external USB hub you use, as some are much worse than others.

Pages: << < (6/9) > >>

Go to full version