D-pad Stick Replacement Project


Julius posted on Sep 6 2006 at 08:03 PM said:
DaveC posted on Sep 6 2006 at 06:08 PM said:
I will have pics of the new module soon with the better proffessionally made boards.

Sweet, can't wait.

btw is Radek still missing?


Radek is still MIA yes.

I need help. If anyone here can spot a good cheap source of N-Gage QD pads please let me know. I don't have that many and everyone that wants a kit won't be able to buy one unless I can find a good source.

They have to be the white cross with red dots kind. The crystal pads that I see won't work as the rubber is too stiff.
 
Last edited by a moderator:
I may have found something for you Dave. I'm not sure how cheap it is, but it looks to be the only potentially substantial source for the parts:

http://lawswl.tripod.com/QD/

The drawback is, it looks like you have to order the whole faceplate, but at least two of the faceplates come with the type of pad you described.
 
Hmm that seems pretty cheap (well if you can get a shipping rebate; paying 9.90 for each due to the high shipping cost would be insane)... these are certainly not original ones, but maybe they are just fine (I would order a test piece first)... it says 'high quality' after all :D

The cool thing is that there are colors availabe that fit much better to the GP2X than the original 'white&red' pad.

Edit: there are a few german onlineshops that are selling the original ones but those cost always 20€ or more :(

Ok the cheapest source of original pads I could find is this one:
http://www.yourhandy.de/query.php?cp_sid=9...amp;cp_tpl=main
Note, if you buy 4 or more you get 20% rebate on each, but its says that they have only 5 stocked right now (but maybe they can order more).
Oh and if you order for 50€ or more there is no shipping fee (in europe that is).

Edit2: I just noticed something interesting: It says that Nokia is offering 2 years warranty on these pads, so maybe these pads could be aquired from nokia directly.

Hmm, or maybe someone could think of a clever way to break the numpad proportion of it in order to get a free replacement from nokia in addition to the nice dpad :D
 
Julius posted on Sep 7 2006 at 01:33 AM said:
The cool thing is that there are colors availabe that fit much better to the GP2X than the original 'white&red' pad.


Yeah guys thanks for the info. I ordered one of those colored ones with the faceplate before. The rubber seems stiff though. That is why the red dot ones seem best so far. If you can find others let me know.

Here is a pic of what I have now.

The metal piece is a template that snaps on as a guide making cutting the hole easier and consistant.

dpad.jpg
 
Last edited by a moderator:
Wouldn't it be possible to hack the diagonals at the software level? Just patching the kernel module responsible for the joystick input I mean. This way there's no need for Radek's PCB. Not to be taken as a stab at Radek, but why put in more hardware when all that needs to be done is to patch some software?

Anyway, DaveC, any word on when you might be able to have your kits for sale? Can't seem to find any updates on this story. I guess even a kit without the actual ngage d-pad would be cool to have already; the pad we can probably find on our own if needs be...

Edit: just talked to a friend of mine who's into kernel hacking; gave him access to my unit through the usb network, and apparently he was intrigued enough to have a look at patching the kernel to do diagonals on 4-way pads, and perhaps teach me a thing or two about kernel hacking in the process. No promises, but this might be useful for those that replaced their sticks with regular d-pads, if we can get this to work... Fingers crossed.
 
Nighty posted on Sep 21 2006 at 09:22 AM said:
Wouldn't it be possible to hack the diagonals at the software level? Just patching the kernel module responsible for the joystick input I mean. This way there's no need for Radek's PCB. Not to be taken as a stab at Radek, but why put in more hardware when all that needs to be done is to patch some software?

Anyway, DaveC, any word on when you might be able to have your kits for sale? Can't seem to find any updates on this story. I guess even a kit without the actual ngage d-pad would be cool to have already; the pad we can probably find on our own if needs be...

Edit: just talked to a friend of mine who's into kernel hacking; gave him access to my unit through the usb network, and apparently he was intrigued enough to have a look at patching the kernel to do diagonals on 4-way pads, and perhaps teach me a thing or two about kernel hacking in the process. No promises, but this might be useful for those that replaced their sticks with regular d-pads, if we can get this to work... Fingers crossed.
There are many, many posts on the forum which make it quite clear that the 4 ordials on a D-pad make 8 way connections (ie diagonals). If you read the forum you will see these posts. There is no need for Radek's board, it is redundunt. Please read the forum posts, all will be clear...
 
Last edited by a moderator:
bacteria posted on Sep 21 2006 at 11:36 AM said:
There are many, many posts on the forum which make it quite clear that the 4 ordials on a D-pad make 8 way connections (ie diagonals). If you read the forum you will see these posts. There is no need for Radek's board, it is redundunt. Please read the forum posts, all will be clear...

Wrong, there are many, many posts on the forum which state it's kind of unnecessary since most emulators handle this case in software rather than relying on hardware diagonals, but that doesn't mean that the 4 ordinals actually make 8-way connections. As a matter of fact, I have read up on this on the boards before posting; don't assume that because I just recently registered that I didn't do my homework.

Now, in order to prove you wrong I was searching the boards to compile a list of posts that quite literaly and undeniably state:
  1. True diagonals are lost when replacing the joystick with a dpad
  2. In order to get the diagonals back, some hardware/software hack is necessary
  3. Most emulators fix this at the application level
  4. The application level is the wrong approach because it relies on every coder adhering to the standards instead of offering a centralised solution
But then I came accross this little post by you in which you actually agree with some other forum member who had the same idea I proposed (seems I'd missed that thread previously), which makes this whole exercise in link aggregation pretty pointless.

Now I don't care that diagonals are not such a big priority since "most" apps don't rely on them; I don't care that most people feel they're overrated because they're such a bitch to hit with the default stick anyway, hence nobody uses them. They're part of the official specifications, and for the modded gp2x to remain fully compatible they need to be there. Even if the only application that actually uses them is the joystick test app.

Let's just say that I see your point, and in some way I can understand it. I probably wouldn't mind too much either if the only way to get a dpad is to give up diagonals, but why choose when we can have both?
 
Last edited by a moderator:
@ Nighty - I don't flame other users intentionally, so rather than getting into handbag throwing (let's keep above this level), I will re-iterate what I (and other users, but mostly me, as I started this whole debate from my first D-pad project back in March/April) have said, many times, from EXPERIENCE:

It doesn't matter whether when you press in a diagonal if it registers on the diagonal direction on T-mode, or whether two directions light up (eg up and left) - unlike a PC, the GP2x registers whatever is pressed at that point of time as true; so pressing up and left WILL give a direction as a diagonal. You are not giving up diagonals at all. All games (apart from one minor game) and all emulators on the GP2x recognise either method as a diagonal. This means that a 4 way D-pad provides in reality 8 way. This is not unique - the NeoGeo Pocket (which is thought to be 8 way) is only 4 way - look at pics of the inside of the NGPC. Gamepads on other controllers (D-pads) can also register 8 way with only 4 directions. I have been saying all this since around March, it is getting rather boring repeating all this months later still. Those who have made a D-pad on their GP2x (as I have done, and others in different forms) also know this to be true.

I am not wrong, I know exactly what the situations are - my postings and guides on the forum have enabled other users to experiment and successfully implement a D-pad into their GP2x by showing them what joystick connections to solder to. I have spent hundreds of hours on my GP2x using my own D-pads, using diagonals in virtually all games (over 99.9%) very successfully. By trying to make out that I am "wrong", you are only proving that you either don't "get it" or haven't "got it" - no offence, but you will not prove me wrong in this matter, in any practical way. I have conducted hundreds of hours of research into this, by using my own D-pads on the GP2x. :huh: It doesn't matter what registers for a diagonal in T-mode, all you should be interested in is the result - press an ordial and it goes that way, press a diagonal and you get a diagonal - it is not rocket science - why is this concept so hard for some to agree with?

The link you refer to was (I believe) referring to the centre-push button. As stated, you don't need a PCB for this (unless using DaveC's design), there are two connectors on the back of the joystick contacts to connect to which do this. If you have done "research" you will have seen others using my plans for this - one member recently put a commerical D-pad (NES) one into the GP2x and has incorporated a centre push, in exactly the way I had suggested, and from documents I posted before (my "how to Guide").

Radek's PCB is redundant (even if it did work properly) as it doesn't serve any purpose anymore, and unless you go for the idea of pressing all 4 directions at the same time = centre push, you don't need a PCB at all, nor any cost in buying one.
 
bacteria posted on Sep 21 2006 at 10:08 PM said:
unlike a PC, the GP2x registers whatever is pressed at that point of time as true;
So does a PC, except that on a PC you usually couldn't press more than 3 keys at the same time due to hardware restrictions.

bacteria posted on Sep 21 2006 at 10:08 PM said:
so pressing up and left WILL give a direction as a diagonal.
No, pressing up and left will give you up + left; most emulators interpret this as a diagonal, but it's not equivalent to the hardware diagonal.

bacteria posted on Sep 21 2006 at 10:08 PM said:
All games (apart from one minor game) and all emulators on the GP2x recognise either method as a diagonal.
There you go: all games apart from one minor game. This means all games have to include a workaround for this. If it's hacked into the kernel, it wouldn't matter if they had a workaround; it would just work.

bacteria posted on Sep 21 2006 at 10:08 PM said:
This means that a 4 way D-pad provides in reality 8 way. This is not unique - the NeoGeo Pocket (which is thought to be 8 way) is only 4 way - look at pics of the inside of the NGPC. Gamepads on other controllers (D-pads) can also register 8 way with only 4 directions. I have been saying all this since around March, it is getting rather boring repeating all this months later still. Those who have made a D-pad on their GP2x (as I have done, and others in different forms) also know this to be true.
Again: because the software compensates for this. Software that doesn't compensate for this will not register any diagonals. it's not the pad that provides 8-way movement, it's the game that does this. Any game that doesn't include the workaround for dpads (which, might I remind you are not standard, hence not official, hence nobody is expected to support them) will simply not see any diagonals.


bacteria posted on Sep 21 2006 at 10:08 PM said:
I am not wrong, I know exactly what the situations are - my postings and guides on the forum have enabled other users to experiment and successfully implement a D-pad into their GP2x by showing them what joystick connections to solder to. I have spent hundreds of hours on my GP2x using my own D-pads, using diagonals in virtually all games (over 99.9%) very successfully. By trying to make out that I am "wrong", you are only proving that you either don't "get it" or haven't "got it" - no offence, but you will not prove me wrong in this matter, in any practical way. I have conducted hundreds of hours of research into this, by using my own D-pads on the GP2x. :huh: It doesn't matter what registers for a diagonal in T-mode, all you should be interested in is the result - press an ordial and it goes that way, press a diagonal and you get a diagonal - it is not rocket science - why is this concept so hard for some to agree with?
I agree that for most games/emus this is probably true, but that's where you and I differ in opinion.

The way you see it: Meh, it might not be theoretically correct, but it works most of the time, so it's good enough.
The way I see it: I don't care how many times it works correctly; if it doesn't adhere to the specs, chances are some day it will bite you in the ass.

This probably has something to do with the kind of software I write; one example would be my software that handles the paychecks for the company I work at (and I'm not talking about some 3 guys in a garage shop kind of company either), so "works most of the time" is not good enough; it has to be provably correct or it's a no-go.

bacteria posted on Sep 21 2006 at 10:08 PM said:
The link you refer to was (I believe) referring to the centre-push button.
No, I was refering to the first part of the post. Read back a little and you'll see it refers to diagonals being handled by the kernel when two ordinals are pressed simultaneously.

bacteria posted on Sep 21 2006 at 10:08 PM said:
Radek's PCB is redundant (even if it did work properly) as it doesn't serve any purpose anymore, and unless you go for the idea of pressing all 4 directions at the same time = centre push, you don't need a PCB at all, nor any cost in buying one.
Totally agree with you there. This doesn't need another piece of hardware that eats more batteries, no matter how little it may be, and costs money to implement and some skill to add to your unit; this can be perfectly done in software, in the kernel module that's responsible for reading out the joystick. The only problem is it requires a rebuild of the complete kernel, since the gp2x has those input modules compiled into the kernel, and not as separate modules which are loaded at runtime and are easy to replace. This means I'll probably better buy one of those BOBs before I attempt at hacking this into the kernel, just in case I brick my toy.
 
Last edited by a moderator:
Nighty is worse than DaveC: jesus christ, you can hack it into the OS if you care so much about it. A kernal patch just for a small input change should be extremely easy to do, and if it breaks you can ALWAYS just reinstall the original firmware (WE HAVE THE GODDAMN SOURCE FOR FUCK'S SAKE). IT DOES NOT MATTER AND IT NEVER WILL, so DROP IT.
 
You realise that by changing the kernel on the GP2x you are likely to create problems which will "bite you in the ass" ( to use your expression - in the UK we say "arse").... ;)

I discovered the fact back in March that two ordials on the GP2x resulted in a diagonal, it took ages before other forum members accepted this as correct. Sure, it might be "make do", but the bottom line is that all games, with one (minor) exception, work perfectly well on the GP2x with diagonals by a D-pad. That is something over 5000 games (via emulators like Megadrive, MAME, NES, SNES, SMS, homebrew, etc). Sure, I am practical, not a perfectionist; if it works, go with it I say - why re-invent the wheel (same result after all)? Judging by the software you write, I can see why you are arguing the toss (UK expression), but we are talking here about a "toy" as you put it, not a professional commercial business software system - if that were not the case, the software in the GP2x would not have had as many issues with its firmware as we have all had to endure over the last months - it would have been virtually perfect from day one.

It's fine, a forum is a forum of opinions after all, it doesn't matter if you or I am right or wrong or whatever, we all have our views. All I have done is to give those people who do not like the stock joystick on the GP2x an option to change it, some have done it, thousands have read about it. What I know is my method works (and others have tried it too), I don't consider it matters if it is a clean or dirty solution, the fact is the result is the same - it works and it will not have any hardware/software incompatabilities!

Shikaku posted on Sep 21 2006 at 10:21 PM said:
Nighty is worse than DaveC: jesus christ, you can hack it into the OS if you care so much about it. A kernal patch just for a small input change should be extremely easy to do, and if it breaks you can ALWAYS just reinstall the original firmware (WE HAVE THE GODDAMN SOURCE FOR FUCK'S SAKE). IT DOES NOT MATTER AND IT NEVER WILL, so DROP IT.
Thank you!! :lol:
 
Last edited by a moderator:
bacteria posted on Sep 21 2006 at 10:46 PM said:
I discovered the fact back in March that two ordials on the GP2x resulted in a diagonal, it took ages before other forum members accepted this as correct.

mi Atari 2600 joystick "ole betsy" worked that way :)
 
Last edited by a moderator:
it's sooooo easy :
GP2x does NOT consider up-left as diagonals, most of softwares do ,
but "THE GP2X" DOESN'T don't say it that way it's a totally wrong statement , games are not the gp2x, they are games

other software will logically just input the first pressed one, or the second pressed one, or nothing once the second one is pressed, or a random one, depending how they are made

and yes that must be quite easy to fix with a firmware

conclusion : we can already make dpads and fix the diagonals later by software and stop arguing about if it's "necessary" vs "profitable" :p


bacteria: in computer language "most of the time" is not "yes", if a GREAT soft is released that only uses the gp2x diagonals,and there's no source or support or whatever to fix it; it'll be bother me, i don't wanna be bothered, up to you if you wanna take the risk, but keep in mind we're all different individuals with different tastes here :p

nighty: just looks at bacteria's tuning, you'll figure he won't care about losing a diagonal or two , it's useless to try to convince him, it won't change anything, it's still software fixable with or without him :p
 
Nighty posted on Sep 21 2006 at 10:13 PM said:
this can be perfectly done in software, in the kernel module that's responsible for reading out the joystick.

AFAIK there is no kernel module or code in the kernel that handles button input. The only way to get the status of the buttons is from GPIO. Proably something that really should be abstracted by the kernel but it isn't.

I'm no expert but the only way I can see it working is if the kernel watches for when programs mmap() GPIO and instead of mapping GPIO maps some other part of memory that it manipulates to look like GPIO just with the required changes. Sounds pretty complex and a bit of a hack.
 
Last edited by a moderator:
nik166 posted on Sep 22 2006 at 12:37 AM said:
nighty: just looks at bacteria's tuning, you'll figure he won't care about losing a diagonal or two , it's useless to try to convince him, it won't change anything, it's still software fixable with or without him :p
As I said: I've been reading up on the forums prior to registering. I have a general idea of who's who around here, and I've seen his mods. Sure, I'm not impressed with the aesthetics and would never "mutilate" my precious toy like that, but regardles of whether you agree with his aesthetical choices and his approach, you have to respect the man for putting his gp2x in danger every time he hacks on it, just so he can report his experience to the community.


stinch posted on Sep 22 2006 at 02:36 AM said:
AFAIK there is no kernel module or code in the kernel that handles button input. The only way to get the status of the buttons is from GPIO. Proably something that really should be abstracted by the kernel but it isn't.

I'm no expert but the only way I can see it working is if the kernel watches for when programs mmap() GPIO and instead of mapping GPIO maps some other part of memory that it manipulates to look like GPIO just with the required changes. Sounds pretty complex and a bit of a hack.
Thanks, finally someone who gives some useful info instead of bitching "but I don't need it, so sod off". I'm no kernel hacker myself either but this issue bothers me enough to attempt to fix it, with the help of an expert friend who'll probably end up doing most of the work anyway. Heck, even if it turns out we weren't able to fix it, at least I'd have learned something in the process.
 
Last edited by a moderator:
I really don't agree with Bacteria's "nothing I use needs the HW diagonal so piss off" arguement too much. It is true that most stuff does work fine. That is great, until some uber coder releases a perfect SNES emu with one catch: it won't read 2 ordinals as a diagonal. So now you are screwed. Will that happen? maybe maybe not. The possibility always does exist though.

A patch would be good. If not possible maybe all of the SDK coders can put in the docs that 2 ordinals should ALWAYS give a diagonal. This way any future coder will support it automatically.
 
Nighty posted on Sep 22 2006 at 02:13 AM said:
As I said: I've been reading up on the forums prior to registering. I have a general idea of who's who around here, and I've seen his mods. Sure, I'm not impressed with the aesthetics and would never "mutilate" my precious toy like that, but regardles of whether you agree with his aesthetical choices and his approach, you have to respect the man for putting his gp2x in danger every time he hacks on it, just so he can report his experience to the community.

that is not the point, i'm not telling about respect, i respect him, you, myself, whatever you want, i'm just showing how his opinion is logically fitting his obvious nature : he knows all you say, he just don't care :p
so save your nerves ;)
 
Last edited by a moderator:
Back
Top