Hey-lo...
I did a keyboard hack... It was a pain in the buttocks, compared to how the I-Pac works... I'm glad I did it, because now I know what it takes to get something like that working - a lot of TIME to piddle around determining a good keyboard configuration.
For me, looking at the pre-mapped out matrices for different keyboards didn't matter much, because my keyboard didn't fit any of the pre-mapped brands. I didn't care much, anyway, I just wanted to have at it.
So I picked apart the keyboard, and started touching wires together on the circuitboard, and watched what keys appeared (look for the keyboard testing programs on this site for this) on the screen.
I wrote down all the different keys associated with the contact point on the keyboard card in a little chart: 1, 1 -> 'm'; 1,2->'n', (etc.)... On my keyboard card, I had 8 different contact points in one part, and 16 contact points in another, which I'd suppose make it an 8*16 matrix? I crossed out all of the keys that I wanted to not map my joystick to - keys that mame uses, keys that the Hot Rod uses (I wanted to use the HotRod together with my joystick, which doesn't work yet... Hopefully my new I-Pac will fix that when it arrives).
So anyway, I basically ignored all of the mathematical logic stuff everyone talks about for figuring out the maximum number of keys I could have pressed at one time... Too darned complicated. I soldered something to the keyboard card to let me clip wires in and out of each contact, so that I could put jumpers between them, and use wires to 'hold down' many keys at once. I tried combination after combination, until I had something like 11 keys that could all be held down at once with no ghosting, or any of that stuff. I applied those to my primary buttons - 2 directions for each joystick, and 2 main buttons (* 2 players, that's 8 keys... I used the extra keys elsewhere).
Then, for the remaining joystick inputs, I searched like a madman for opposite directions from the 2 that I chose, for ones that I could use any combination of the directions with the other joystick and buttons, until I found ones that worked OK... (There were a lot of possible combos)... For the coin/start buttons, I didn't worry about ghosting or anything, figuring that it would be rare to run into problems using these with the other buttons.
It was a pain in the butt, but not TOO TOO bad. It was kind of fun, I was interested in saving a few bucks, and learning to solder a little bit. When I do something, I want to learn the hard way why I would spend $50 on a silly I-Pac.
Anyway, it ended up working GREAT as a joystick (2 joys/4 play buttons apiece/2 coin buttons/2 start buttons). The only reason I'm getting an I-Pac is because the HotRod doesn't pass the input through to the computer properly when all controllers are being accessed at once (2 players from my controller + 2 players from the HotRod). I'm hoping the I-Pac will fix that, and I'm going to move my keyboard hack into another controller I'm working on.
My point is, I guess, that if a keyboard hack is REALLY what you want to do, then it can work great, but it takes a lot of thinking and a lot of solving little problems... But heck, that's the whole fun of building an arcade controller, right? And anybody with a little stick-to-it-iveness could probly do it.
The I-Pac, however, from what I've heard, WORKS... Perfectly... And easily... But where's the pride in using the I-Pac?