Mouse & Keybaord adapter for XBox and PS2 FPS Games!

JHendrix

Jello Pudding Pop, Y'know? Like that whole Bill C
Joined
Jun 27, 2001
Posts
9,436
http://www.lik-sang.com/news.php?artc=3495

The item is pre-order only right now, but it comes out this month. Just in time to ruin Halo 2 if it works right, but if you read on I don't think it'll work quite as well as everyone thinks.

The sad part is I was trying to work on something like this a few months ago, there were even a few people here I told about the idea, but I couldn't hack it out.

I was going to use PIC's and was going to hack an XBox controller by having the PIC read the PS/2 data coming in and then output the data in a parrallel binary level to a DAC to translate that to a voltage level to send to the analog terminals on a XBox pad. The whole point was to do it through an actual XBox controller so that MS and co. couldn't detect it was being used through Live and ban the device.

Figuring that part out was easy and I was pretty close to picking up a PIC set and start programing but I hit the wall.

A mouse is based on delta movement, ie. you move the mouse and you're there. With the analog stick it's actually time dependant. How long you hold the analog stick in one direction determines how far you move. As far as I got theoretically was that you could easily figure out the timing delays vs. a movement delta to keep the voltage level up for a high enough length of time, but if you tried to issue another move command you could easily get into a case where your new movement data would be coming in while still waiting for the previous time delay state to finish, which would wreak havock with playing the game.

Thus my whole idea of hacking it at the hardware level just didn't work too well. :(

Of course programing your own microcontroller to interface to the XBox can obviously get around that problem (they actually got this thing to work). I'm still trying to figure out how they got around that though.

And if they're smart enough to have the device send the right HID ID codes to the XBox to say that it's just a regular MS manufactured controller, it could be unstoppable. That's probably illegal, but I don't think these guys really care. Still if they did enough reverse engineering to make this thing behave just like an XBox controller it could theoretically be undetectable by Live. Of course that'll ruin Halo 2's online play which would kinda suck.

Even though I've since begun to fall in love with playing Halo on XBox, I did order one. Pretty much out of sheer principle. I'm interested to see how well it works, considering I figured it'd be near impossible to do well.
 

genjiglove

So Many Posts
No Time
For Games.
Joined
Mar 17, 2003
Posts
15,080
Sounds pretty awesome. Looks like I might not need to upgrade for Doom 3 and HL2.
 

Loopz

Formerly Punjab,
Joined
Aug 16, 2001
Posts
12,871
My buddy Bruce at work will be thrilled...thrilled I tell ya.
At last he can participate in Halo get-togethers.
We'll have to see how it changes the dynamics of folks playing online.
If the game isn't tuned specifically for KB/mouse, I don't see how it could be particularly unbalanced using them...you're still bound by the same relatively slow movement speed. Oh well, I plan to get the majority of my Halo joy from the old-school gatherings. Live play will just be icing on the cake.
 

Spike Spiegel

Onigami Isle Castaway
20 Year Member
Joined
Apr 24, 2001
Posts
13,706
I just don't see how it would work with games that aren't meant to be used with it. At this point, I'd like to say that I was one of the guys that used a mouse and keyboard for my Quake 3 game for DC. That was really cool!

Spike
 

shirt

Andy's Clothes Designer
Joined
Dec 21, 2003
Posts
3,333
I'm guessing you'd own shit up in FPS against people who use the controller. I'll probably pick one up.
 

JHendrix

Jello Pudding Pop, Y'know? Like that whole Bill C
Joined
Jun 27, 2001
Posts
9,436
It's not the movement speed that's the factor, it's the turning/aiming speed.

I highly doubt the device will work as well as playing a FPS on PC would, for the reasons I stated in my first post anyway, but that's pretty much what I'm buying it for.

Reguardless, if it works half as well as it does on PC shooters people using the mouse will be far far more accurate than anyone using the controller.

It'll probably be a lot like playing HaloCE online on PC is now, lots of people running around with the pistol getting headshots from the opposite side of Blood Gulch. :rolleyes:

I just want to see how well it works, if the way I'm thinking on how they did it is correct (and I'm pretty sure I am) then this will not work as well as it may seem at first.

I'm actually kind of sad cause I gave up on the idea after working on it for a month and these guys actually got some kind of a working product out of it. :(
 

RAINBOW PONY

DASH DARK ANDY K,
20 Year Member
Joined
Apr 15, 2002
Posts
24,310
it will NEVER work and if it does it will be half assed at best. the games will have to support it to work and on xbox they won't, hell only PSO supports a KB.

but if it did work, fuck yeah i'd get one and i'd be owning fools on halo 2 with my optical intellimouse.
 

JHendrix

Jello Pudding Pop, Y'know? Like that whole Bill C
Joined
Jun 27, 2001
Posts
9,436
DashK said:
it will NEVER work and if it does it will be half assed at best. the games will have to support it to work and on xbox they won't, hell only PSO supports a KB.

but if it did work, fuck yeah i'd get one and i'd be owning fools on halo 2 with my optical intellimouse.

:rolleyes:

Did you even read the link? It emulates a gamepad while letting you use a mouse and keyboard, so every game automatically supports it.
 

syringe

Banned
Joined
Nov 17, 2003
Posts
5,467
It might depend on the game but I don't think the calibration issue will be that severe since in most games you can still tweak the sensitivity regarding the analog sticks and toggle auto aim.
 

Big Shady

Kyukyogenryu Black Belt
15 Year Member
Joined
Apr 16, 2003
Posts
4,945
JHendrix,

I thought the movement on the analog sticks is dependent on voltage levels being read from the drop across a potentiometer. As the stick moves the resistance changes giving different readings for voltage levels. Also my question is how would the left analog stick function with the keys of a keyboard? Pressing a key on a keyboard sends out a binary bit string to read, but I could see how you could translate the key presses to voltage drops. Also out of curiousity, what set of PICs were you planning to use? I am currently doing my senior design project with with the MicroChip PIC16F877 and doing the assembly language on MPLab 6.60. I imagine you'd do this project in assembly and not PIC Basic, that shit is a mess :p

Overall I am very interested in how these people made the convertor. Like JHendrix mentioned, its quite an impressive feat that us college bums, or ex-college bums, couldn't do ourselves :p
 

RAINBOW PONY

DASH DARK ANDY K,
20 Year Member
Joined
Apr 15, 2002
Posts
24,310
JHendrix said:
:rolleyes:

Did you even read the link? It emulates a gamepad while letting you use a mouse and keyboard, so every game automatically supports it.

yeah i read it, but there is no way it'll be perfect, and if it's not as accurate as using a real mouse, what will be the point? honestly the S controller is so fucking godly with halo why would it matter, you might be at a disadvatage maybe using the converter?
 

Loopz

Formerly Punjab,
Joined
Aug 16, 2001
Posts
12,871
I think this is just one of those things that will have to be used before anyone can make a call on it either way. I think it'll be hard to calibrate properly (think using a keyboard/mouse to play emulated MAME games using specialized analog throttles/wheels/etc.), but we'll just have to see.

I think it would suck if it provides some kind of tremendous advantage, and if so hopefully is detectable/bannable. If not, then it should just be one more playable option.

I think the game controls just fine with an 'S' pad though. Of course, the PC freaks are going to contend that playing an FPS with something besides a KB/mouse is like not using a joystick with a fighting game. To each his own.
 

JHendrix

Jello Pudding Pop, Y'know? Like that whole Bill C
Joined
Jun 27, 2001
Posts
9,436
Big Shady said:
JHendrix,

I thought the movement on the analog sticks is dependent on voltage levels being read from the drop across a potentiometer. As the stick moves the resistance changes giving different readings for voltage levels. Also my question is how would the left analog stick function with the keys of a keyboard? Pressing a key on a keyboard sends out a binary bit string to read, but I could see how you could translate the key presses to voltage drops. Also out of curiousity, what set of PICs were you planning to use? I am currently doing my senior design project with with the MicroChip PIC16F877 and doing the assembly language on MPLab 6.60. I imagine you'd do this project in assembly and not PIC Basic, that shit is a mess :p

Overall I am very interested in how these people made the convertor. Like JHendrix mentioned, its quite an impressive feat that us college bums, or ex-college bums, couldn't do ourselves :p

Well basically there are two terminals for each axis of the analog stick; one for the source voltage across the pot and the other being the output. All you have to do really is know what the idle voltage is and then what the extreme voltages were for each axis. Pretty much what I did was do some hot testing to see what the voltage was coming out of each terminal when the stick was pressed in each direction. It follows a simple +/- 5V or so on each axis of the potentiometer, which makes it easy to plot the voltage levels for each direction you would push the analog stick in. I don't have my notes handy now with the exact numbers though.

Anyway when you go in diagonals the voltage is essentially a combination of the two extremes; well at least with the measurements that I did seemed to verify that.

It also makes sense that they're using PS/2 stuff for this since it's extremely easy to simulate a host for a PS/2 device (they're rather dumb compared to USB). But yeah all the PS/2 stuff does is send out a serial set of data which each PIC (one for the mouse and one for the keyboard) would do serial to parallel conversion and then output the 8bit byte in parrallel form to either a multiplexer controlled resistor network (only 8 or so levels of sensitivity, aka not so good for the mouse part) or a real nice DAC that I could control the output voltage levels on (good but hard to implament).

The keyboard part is way easy to do though, since essentially it's an 8-way joystick meaning 8 possible directions, so you could just do the easy resistor network to send the right voltages to the left analog stick terminals. You'd have to program some simple logic functions into the PIC to detect when multiple valid key combinations are pressed at the same time to move on the diagonal, then just use the 8 needed output lines to trigger the right voltage level and bam you're golden. This part works out extremely well since on a keyboard the amount you move forward is dependent on the time you're holding down a key, which correlates perfectly to the analog stick.

The mouse is the harder part since like I said before it's movement delta based instead of a time based current level like the analog stick. Plus finding a good DAC that lets you control the voltage levels is hard to come by for this specific job.

As far as the PIC's go, at my school we did our VHDL stuff on Altera boards which were pretty expensive. The PICs I was looking at were some cheap stuff from the various sources. I didn't get to the ordering part since I hit the wall while trying to figure out how to correllate the mouses direction vectors with the right amount of current. All I was looking for was something with enough input/output pins and something that I could get a cheap programming station for.

Anyway I think I figured out how this thing may work, and why it's not going to be as accurate as a real mouse+keyboard on a PC FPS would be.

You're probably going to have to turn the analog stick sensitivity way up for it to work right so that the time needed to get a fast turning movement is as short as possible. Then they basically have to make the translation table that goes from the largest mouse vector (255) to how long they're going to hold the voltage level for at a given sensitivity. Then they have to make it so that if another movement vector comes in while still in the time period that you're holding a voltage level from the previous movement vector they over-ride it and start doing the new movement vector immediately.

This does work since you'll be moving the mouse in reference to where you see it on screen at the time; however there will still probably be a noticable delay between you moving your mouse and the camera actually turning in game. This will really only be evident when doing those long swooping mouse movements to do the top spin type turns, where you'll be done moving the mouse hoping to be turned around, but you'll still be waiting for your character on screen to react since the time delta is still going on. The bigger the movement, the bigger the time delta, the longer the wait. What this will probably mean is that you'll be doing one of those "move the mouse, pick it up, move the mouse, pick it up" type things, which will probably work relatively well but no where near as it would on PC.

You probably will still be far more accurate in the short tuning type situations for aiming, I just don't know how well it's going to be when you're trying to quickly turn 90 degrees around a corner though.

Of course now I'm really wishing I hadn't ditched the idea since the time-delta problem probably isn't as bad as I envisioned. :(
 

Big Shady

Kyukyogenryu Black Belt
15 Year Member
Joined
Apr 16, 2003
Posts
4,945
JHendrix,

Oh wow man, you REALLY had this planned out. If given the proper resources I think you could have done it. You're graduated right? If you were still at school maybe you could get a professor to help you :p

Yeah, we learn VHDL also on the ALTERA max, but we also do some assembly programming on Motorolla 68k and the PIC16F877 to learn low level coding. I just happend to like it so much I decided to make the PIC the heart of my Senior Design project :tickled: The PIC16F877 is pretty nice, handles 8 bit instructions, 40 pin chip so its kind of big. My convertor box would definitely be not as compact as lik-sang's :p

Anyways, best of luck to you JHendrix. Can you be ballsy enough and buy one of these convertors and crack it open :D
 

Amano Jacu

Charles Barkley
Joined
Sep 11, 2001
Posts
8,594
I wish I was able just to understand all this... :( What kind of studies are needed to learn all this stuff?

I am also wondering what would you guys need to create a device that can be used as an I/O for the Naomi board, just for digital controls. The Naomi control port is a regular USB one, and there are devices called I/O that convert the digital controls from a regular cab (through the JAMMA standar) to this USB port. The Naomi also needs to detect an I/O present, otherwise it boots to an error screen. Some of those I/O also convert other stuff like video, audio and energy, but I've got all of them covered, the controls are the only one I don't have a clue.

I guess you would need to know how the data is encoded anyway... :crying:
 

JHendrix

Jello Pudding Pop, Y'know? Like that whole Bill C
Joined
Jun 27, 2001
Posts
9,436
Big Shady said:
JHendrix,

Oh wow man, you REALLY had this planned out. If given the proper resources I think you could have done it. You're graduated right? If you were still at school maybe you could get a professor to help you :p

Yeah, we learn VHDL also on the ALTERA max, but we also do some assembly programming on Motorolla 68k and the PIC16F877 to learn low level coding. I just happend to like it so much I decided to make the PIC the heart of my Senior Design project :tickled: The PIC16F877 is pretty nice, handles 8 bit instructions, 40 pin chip so its kind of big. My convertor box would definitely be not as compact as lik-sang's :p

Anyways, best of luck to you JHendrix. Can you be ballsy enough and buy one of these convertors and crack it open :D

Yeah I really was close to ordering parts and was going to start on this, but then I figured it wasn't going to work out well.

And yes I'm gradumanated. :p I dunno if the professors would have been able to help a whole lot more though, other than trying to get me to use the more expensive stuff.

We also did a lot of Assembly work and most of it was on the Motorolla 68k though we did some x86 assembly work too. We actually built single board computers off the 68k and had a big ol' lab on it as well. The assembly stuff was actually my strongest area in school, it's really what got me through it all. I'd help a lot of people in our class with that and they'd help me figure out all the analog circuit stuff. Worked out so well that I was even a TA for the M68k class the semester after I finished the course. :D

And no I ain't cracking that thing open anyway, considering it's coming out of a company with resources (and the fact that it's in a package that small) means it'll probably be an EEPROM and a decent PLA or PIC and I'm willing to bet the security bit will be set so I can't dump the program out. :p

I do want to see how well it works though, considering I don't think it's possible to be able to really get it be as good as a mouse/keyboard is on PC anyway.

Amano:

I went through school for a Computer Engineering degree and I think that's what Shady is in right now too.

As for creating a NAOMI I/O, you'd basically have to program a USB device, and figure out what byte format the I/O sends the data to the NAOMI. USB is way more complicated than just going off a simple PS/2 device though and takes a bit more work. I think you'd really be out of luck though if you wanted to create one. The chips are cheap enough to get sure, but it's the programming boards that cost too much. You'd probably spend more on that board than you would getting an I/O.

Of course if you wanted to create I/O's to sell people then that may be one thing, but I'm pretty sure that creating that and selling em off would violate copyright of some kind and would be illegal. Maybe not, but I dunno.
 

Big Shady

Kyukyogenryu Black Belt
15 Year Member
Joined
Apr 16, 2003
Posts
4,945
JHendrix, you are right I am in Computer Engineering at the fine, fine Villanova University :p I am also getting a minor in Computer Science, cause my main passion is programing, but I believe the hardware aspects of Computer Engineering are so important, that a Comp Sci guy cannot be successful without them.
 

evil wasabi

The Jongmaster
25 Year Member
Joined
Aug 20, 2000
Posts
60,434
Sounds cool, and Dash is an idiot for thinking it wouldn't work. PS for the best results if you have a mouse to aim with I'd probably move to sensitivity 10. might pick one of these up.
 

JHendrix

Jello Pudding Pop, Y'know? Like that whole Bill C
Joined
Jun 27, 2001
Posts
9,436
Big Shady said:
JHendrix, you are right I am in Computer Engineering at the fine, fine Villanova University :p I am also getting a minor in Computer Science, cause my main passion is programing, but I believe the hardware aspects of Computer Engineering are so important, that a Comp Sci guy cannot be successful without them.

LOL, I'm going for my Masters in Computer Science in the next semester. My best area in school was programing as well.

Great minds eh? :D

PS. I still think that this thing will have Mouse Lag (ie. move the mouse and wait for the game to catch up turning wise).
 

Amano Jacu

Charles Barkley
Joined
Sep 11, 2001
Posts
8,594
JHendrix said:
Amano:

I went through school for a Computer Engineering degree and I think that's what Shady is in right now too.

As for creating a NAOMI I/O, you'd basically have to program a USB device, and figure out what byte format the I/O sends the data to the NAOMI. USB is way more complicated than just going off a simple PS/2 device though and takes a bit more work. I think you'd really be out of luck though if you wanted to create one. The chips are cheap enough to get sure, but it's the programming boards that cost too much. You'd probably spend more on that board than you would getting an I/O.

Of course if you wanted to create I/O's to sell people then that may be one thing, but I'm pretty sure that creating that and selling em off would violate copyright of some kind and would be illegal. Maybe not, but I dunno.

Nah, I was just curious. When I finished High School I didn't know if I wanted to do Mathematics or Engineering (possibly Telecommunications), but finally chose with Maths because I just suck at labs. Maybe I'll do some electronic engineering when I finish my PhD in Statistics just for fun.

The reason I was asking is because currently an I/O is more expensive than a mobo+game. If you have a JAMMA cab then you just need it, but for people with a supergun is just redundant to use one. I mean, a supergun converts the JAMMA standar into something usable at home without a cab, and then you have to use the I/O to convert it to the JVS standar the naomi uses. So I wanted to deal directly with the JVS. Video and audio are dead easy to get from it (standar VGA and RCA ports, lol), power is a bit tricky but can be done, but I just found a wall with the controls.

Don't worry, I already have an I/O, and people is better just buying a complete kit that includes it. Or using a Dreamcast :loco:

Thanks anyway.
 
Top