Main > Main Forum

USB vs PS/2 vs COM vs LPT

Pages: << < (11/43) > >>

JustMichael:


--- Quote from: Driver-Man on September 22, 2010, 05:43:42 am ---
--- Quote from: RandyT ---No, it's a puzzle just for you.  When you solve it, you can move on to bigger things.  But I'll give you a hint: It's just about the first thing you would have learned about interfacing controls, had you taken the time to try before coming into this forum telling everyone they have been "doing it wrong", albeit very successfully, for the last 10 years.

But if you ask nicely, just about anyone who has been doing this for a while can tell you as well.  In fact, at least one of them already did.

--- End quote ---

No answer? More mystery? Puzzle games?

Ok, that's cool, but this question you did not even see:

USB = ?? bits per second/11 = ?? inputs per frame @ 60 FPS

--- End quote ---

The default polling rate for a USB HID device is 125 times per second.  How many keys or inputs is that?  Depends upon the device.  Considering the size of a block of data from a USB device, it could be HUNDREDS of keys sent all at the same time 125 times per second.  Which means HUNDREDS of keys sent all at once 2 times per game frame.  Using the information AndyWarne provided earlier, all of the I-PAC inputs are sent all at the same time 8 times per game frame.

Judging from your schematic Pins 2, 3, and 4 will either be set low (ground) or high (power).  I am guessing you will always have one pin set low and the other two set high to "rotate" the ground.  Doesn't it seem bad to you to connect ground directly to power?  VERY depended upon the chip(s), a grounded output can pull the high outputs down too.  This will SEVERELY shorten the life of the chip(s).  I wouldn't be surprised at all if on some computers it would release the magic smoke.  What you need is 3 diodes. One on each of your ground lines before they are tied together.  Placed properly, these diodes will prevent ground from being tied directly to power.


Rick:

I'm actually quite surprised of the number of Experts here actually giving the OP the time of day.  Don't get me wrong.  I'm not the guy who's coming in to say he's wrong.  Oh, no.  Actually, his idea might be much better than the current standard, but hey, I honestly have no idea.  What I do note, as have many others, is the delivery of his message.  From the word go, it's basically been a slap in the face to everybody who's done it their way for years.  It's the "my way is right and your way is wrong" attitude that really isn't helping, and really isn't appreciated in this community.  The OP might just be the Stephen Hawking of his time, but because of his choice of delivery, he's coming off like Glenn Beck.

This whole conversation reminds me of one thing, actually.  VCR's.  (Remember them?)  Yeah.  I picture the OP being Beta, and our friendly Experts being VHS.  Sure, his idea might be better, and work exponentially faster and with less error, but we all know who's winning the war in the end.


newmanfamilyvlogs:

Perhaps tangentially on topic:
I found this controller card in a "Silverball 3" cabinet.  I can't find that particular model online, but here is a more modern iteration: http://www.tab.at/tab/en/Desktopdefault.aspx/tabid-63/33_read-23/

It's an ISA card in a beigebox PC that runs the actual game. The Actel chip is a FPGA.



Those array of SMD components along the edge connectors are marked A4 which according to this:
http://www.repairfaq.org/REPAIR/F_SMD_trans.html#SMDTRANS_008

Lists them as BAW62 / 1N4148 diodes.

Obviously this not a parallel port, however the implementation is obviously identical, it's just a question of buses.

Just thought it might be interesting to see how this is done in a commercial product..

edit: Here's as close as I could take a picture of the SMD components:
http://lh5.ggpht.com/_xyVxXgjibE0/TJn9puL1nVI/AAAAAAAABkc/CZHCcSmt7RE/s800/P1080172.JPG


SavannahLion:


--- Quote from: JustMichael on September 22, 2010, 06:44:55 am ---Judging from your schematic Pins 2, 3, and 4 will either be set low (ground) or high (power).  I am guessing you will always have one pin set low and the other two set high to "rotate" the ground.  Doesn't it seem bad to you to connect ground directly to power?  VERY depended upon the chip(s), a grounded output can pull the high outputs down too.  This will SEVERELY shorten the life of the chip(s).  I wouldn't be surprised at all if on some computers it would release the magic smoke.  What you need is 3 diodes. One on each of your ground lines before they are tied together.  Placed properly, these diodes will prevent ground from being tied directly to power.

--- End quote ---

This was the conclusion I drew about this too (Is this the Ack/D0 problem being referred to?). But if that's the case then the lauding Driver's been doing doesn't jibe. He still isn't receiving all of the data in parallel. It's still being polled and likely buffered (I dunno, I haven't had a chance to study his source code references). In that sense, it's not much better than serial. In one blinding swoop, Driver's argument just collapsed, diode or no diode.

Driver-Man:


--- Quote from: KagatoAMV ---Driver-man, have you observed the problem you brought up in your earlier post when using keyboard emulator based controls? Or are you approaching this from the logic/mathematical point of view?

--- End quote ---

It is mostly mathematical, but curiosity was triggered with something I observed...

In Crazy Kong, not Donkey Kong, there is a bug, a trick you can use to skip the first level quickly: - go all the way right to the first ladder and climb up. Tap the joystick to the right to get in position. To know you are good to go you will still see Mario's back but he would be half-way off the edge. If not, try again. Now, the "suicide jump", *TAP* joystick to the right AND jump in the same time, RIGHT+JUMP. If done correctly you will fall through the floor and in to the second level, with big bonus if you manage to do it quickly before any barrels come in a way.

That just did not work as I remember, and after that I noticed it is pretty hard to do "right+jump" or "left+jump", it seemed it works better if I first start to move and then quickly jump, which is not how I think it should be.



--- Quote from: DJ_Izumi ---No you wouldn't.  Because you are still EMULATING the original hardware and that will always add some form of additional lag from input to response just due to additional time needed to not only do the math in the game but do the emulation to give it the input and to spit out the response.

--- End quote ---

I suppose there are ways to help the situation. Do you think MAME uses some of those hacks? Can you stand still then 'jump+right' in Crazy Kong easy?





--- Quote from: JustMichael ---The default polling rate for a USB HID device is 125 times per second.  How many keys or inputs is that?  Depends upon the device.  Considering the size of a block of data from a USB device, it could be HUNDREDS of keys sent all at the same time 125 times per second.  Which means HUNDREDS of keys sent all at once 2 times per game frame.  Using the information AndyWarne provided earlier, all of the I-PAC inputs are sent all at the same time 8 times per game frame.

--- End quote ---

Not with keyboard controller, no. You can not send "all at the same time" via serial line, nor you can stuff them in the keyboard buffer all at once, nor you can generate them all in the same time. -- Where do you pull those numbers from anyway?



--- Quote ---Judging from your schematic Pins 2, 3, and 4 will either be set low (ground) or high (power).  I am guessing you will always have one pin set low and the other two set high to "rotate" the ground. 

--- End quote ---

Yes. 



--- Quote ---Doesn't it seem bad to you to connect ground directly to power?

--- End quote ---

That's not really "ground". Pins 18-25 are real LPT ground. What I call "ground" are LPT-OUTPUT pins, and the 9 "data" lines go to LPT-INPUT pins.



Pages: << < (11/43) > >>

Go to full version