Gp2x Joystick Exposed - The Internals


How is it going? (Radek & Otheres)

My Gp2X is gathering a lot of dust :)

Well... it's progressing albeit slowly (yet)... I found SMD versions of chips I'd need. I'm optimistic that after removing the stock stick there would be enough place inside to fit new stick plus logic circuit. The whole replacement should be just one piece of pcb soldered to the base where stick normaly is.

At worst the logic circuit would be at backside of gp2x's mainboard. There is even more free space (and the logics outs can be connected to backside too).

I'm now searching for appropriate stick. The stock stick dimension are 13.5x13.5x6.8mm and there is place for extra 1mm of height.

Until I gather all parts I will not be able to tell more.

Sorry I guess I assumed you were doing the DPAD thing, not a new STICK. Though I guess both stick\dpad would benefit from the PCB with hotspots wired to original contacts through logic circut, but dpad would be best :)

What can I do to help for DPAD? I'll go hunting around for actual dpad parts or something, let me know what I can do.
 
Last edited by a moderator:
How is it going? (Radek & Otheres)

My Gp2X is gathering a lot of dust :)

Well... it's progressing albeit slowly (yet)... I found SMD versions of chips I'd need. I'm optimistic that after removing the stock stick there would be enough place inside to fit new stick plus logic circuit. The whole replacement should be just one piece of pcb soldered to the base where stick normaly is.

At worst the logic circuit would be at backside of gp2x's mainboard. There is even more free space (and the logics outs can be connected to backside too).

I'm now searching for appropriate stick. The stock stick dimension are 13.5x13.5x6.8mm and there is place for extra 1mm of height.

Until I gather all parts I will not be able to tell more.

Sorry I guess I assumed you were doing the DPAD thing, not a new STICK. Though I guess both stick\dpad would benefit from the PCB with hotspots wired to original contacts through logic circut, but dpad would be best :)

I'm doing logic circuit first as it's mandatory for any replacement of gp2x's stick.
(good news - I'm finishing the project of pcb and it's small - should have a real one soon) :)

What can I do to help for DPAD? I'll go hunting around for actual dpad parts or something, let me know what I can do.

I personally will not mount a pad in my gp2x. I want to have just a proper microswitch based stick. My logic converter is universal - it will work with any digital 4-switch input. Search for anything you would like and think how it could be fitted inside gp2x. The worst problem would be modification of the gp2x's front panel.
 
Last edited by a moderator:
Sounds great! Keep up the good work! :)

What would sound cool is to replace the pad contacts with microswitches. Then you dont need the room for another component to do the pad's connections like in normal dpads...
 
technically, there's enough space for the classic gameboy dpad on the gp2x's case.
if you have the right tools, you could cut trim the front cover of the gp2x to give you enough space to implement the dpad.
and i mean any dpad with those 4 rubber-knop kontacts. because you can install the board under front cover, solder the contacts to the logic circuit and it will behave like a classic gameboay or similar game thingies.

but i have no idea how ti trim the gp2x' case without destroying it...
 
Has anyone bought a replacement joystick without the bias and soldered it in? I'd be interested to know if that helps...
 
Note: I only just got my GP2x yesterday, and I’m brand new to the whole GP2x world, so if this thread makes some really stupid points…well…you’ve been warned :p

I tried plugging an Xbox controller into my computer today to see how it goes playing some Snes roms. I found that it performed exactly the same as the GP2x joystick, leading me to believe that even with all this diagonal bias, it's still performing the same as every other 16-way joystick out there (the xbox joystick is 16-way isn't it? I think there is one higher which actually maps out the entire movement for the stick, rather than just the contact points, which the xbox controller appears to be from watching the movements in the joystick config window). I might be stating the obvious, but I just wanted to mention that while we are all blaming the poorly made joystick contacts, it may be the same as any other 16-way joystick - even a fancy Xbox one.

Now, the other thing I found odd today was when I tried to play Super Mario World. This game appears to be hardcoded to only use 'Case 6'. Not surprisingly, the game plays like a dream. Although unlike the diagram that shows the X/Y changeover point for Case 6, I found that with this game it's where sw1, sw3, sw5, and sw7 are, so it's kinda like 'Case 6', with a bit of a rotation to it.

I went through a few games and found that quite a few of them have this hardcoded 'nearly Case 6', where as others (Super Smash TV) seem to use 'Case 3' (on both the GP2x and the Xbox controller).

It just got me thinking that even if we change all the joysticks around, at the end of the day, isn’t it all going to come down to just how the game is coded to interact with the input? If each game seems to have its own directional bias, having a ‘one joystick fits all’ type setup for the GP2x would only work if every game had the same directional bias to begin with. What joystick mod suits one game may ruin another, so wouldn’t it have to be taken on a game by game basis?

In my mind, the only two options are to have a directional pad and ditch the joystick altogether (which many people are already working on, and I know is easier said than done), or perhaps build it into the emulators to catch the commands from the joystick and compare them to an user set joystick bias, then apply those movements to the game, overriding the in game joystick bias. Because the way I see it, we can install the most amazing 8 way joystick in the world into the GP2x, but if the game just goes right ahead and overwrites whatever bias is built into the joystick (as seen with the Xbox controller), we’re just back at square one.
 
boolean posted on Feb 16 2006 at 08:18 AM said:
Note: I only just got my GP2x yesterday, and I’m brand new to the whole GP2x world, so if this thread makes some really stupid points…well…you’ve been warned :p

I tried plugging an Xbox controller into my computer today to see how it goes playing some Snes roms. I found that it performed exactly the same as the GP2x joystick, leading me to believe that even with all this diagonal bias, it's still performing the same as every other 16-way joystick out there (the xbox joystick is 16-way isn't it? I think there is one higher which actually maps out the entire movement for the stick, rather than just the contact points, which the xbox controller appears to be from watching the movements in the joystick config window). I might be stating the obvious, but I just wanted to mention that while we are all blaming the poorly made joystick contacts, it may be the same as any other 16-way joystick - even a fancy Xbox one.

Now, the other thing I found odd today was when I tried to play Super Mario World. This game appears to be hardcoded to only use 'Case 6'. Not surprisingly, the game plays like a dream. Although unlike the diagram that shows the X/Y changeover point for Case 6, I found that with this game it's where sw1, sw3, sw5, and sw7 are, so it's kinda like 'Case 6', with a bit of a rotation to it.

I went through a few games and found that quite a few of them have this hardcoded 'nearly Case 6', where as others (Super Smash TV) seem to use 'Case 3' (on both the GP2x and the Xbox controller).

It just got me thinking that even if we change all the joysticks around, at the end of the day, isn’t it all going to come down to just how the game is coded to interact with the input? If each game seems to have its own directional bias, having a ‘one joystick fits all’ type setup for the GP2x would only work if every game had the same directional bias to begin with. What joystick mod suits one game may ruin another, so wouldn’t it have to be taken on a game by game basis?

No. Games are always expecting 8 directions (up/left/down/right and diagonal combinations of them) so as long these directions will be provided reliably there will not be problems.
(what the game will do with these it's then only internal matter of a game)

The gp2x's stick has really two issues - the strange bias towards diagonals and its mechanics. Compare it to a d-pad where you are limited by construction to only 8 physical movements. The gp2x's stick can move freely - you can push it at any angle thought it can output only discrete values. So imagine you want move from up to the left (for an example). On a d-pad it's very hard to hit combination of up+left in a way where on the gp2x's stick you will get it for certain.

It's really easy to see in games what are using upper diagonals for jumping. Prince Of Persia or Killing Game Show are prime victims of that.
(on Atari ST running emulated on the Castaway).

Even DaveC schemes can not help too much expect the "case 5". That's so because the intermediate diagonal combis are very thin.

boolean posted on Feb 16 2006 at 08:18 AM said:
In my mind, the only two options are to have a directional pad and ditch the joystick altogether (which many people are already working on, and I know is easier said

The chalenge here is to do that without destroying (at least not too much) the front panel of gp2x.

boolean posted on Feb 16 2006 at 08:18 AM said:
than done), or perhaps build it into the emulators to catch the commands from the joystick and compare them to an user set joystick bias, then apply those movements to the game, overriding the in game joystick bias. Because the way I

There are already some ideas about it. They are just waiting to be implemented. However it's doubtful that they will get any bigger acceptance as they would have to be coded in every aplication. Perhaps someone will include them in SDL (or other similar libs) so apps could get support automatically.

boolean posted on Feb 16 2006 at 08:18 AM said:
see it, we can install the most amazing 8 way joystick in the world into the GP2x, but if the game just goes right ahead and overwrites whatever bias is built into the joystick (as seen with the Xbox controller), we’re just back at square one.

I will repeat - the diagonal bias of gp2x's stick is only one of its issues.
(and gp2x's stick is digital but with strange twists)
 
Last edited by a moderator:
Radek posted on Feb 16 2006 at 04:24 PM said:
No. Games are always expecting 8 directions (up/left/down/right and diagonal combinations of them) so as long these directions will be provided reliably there will not be problems.
(what the game will do with these it's then only internal matter of a game)

So if the diagonal contacts are easier to hit, Super Mario World would be coded to just say 'Right = Right, Right+up=right', so the diagonal bias is taken care of in this case by the game. But with games that DO use diagonal direction (like the ones you mentioned), the bias on the joystick is going to be saying 'Right+up' with more occurrence than 'Right', which the game recognises as a valid movement, and is not what the user wants to press.

I see how that makes sense now. This is probably why I was having just as much trouble with the Xbox controller, because anything with 16-way+ directions is going to be very hard to use.

Do some of the older games (like Pac-man) have nothing in them for diagonal direction (due to the fact they were probably only written for only a 4-way input), so when the GP2x sends a Right+Up command, the game just sits there waiting for an input it recognises (Up-Down-Left-Right)?
 
Last edited by a moderator:
There is much debate about 4-way and 8-way D-Pads. In my experience with other controllers, 8-way D-pads are awful to use as it is very hit and miss as to whether you hit a diagonal or not.

Lots of games (NES, SNES, NeoGeo Pocket, many NeoGeo (non fighting games), many older MAME games, Megadrive/Genesis) only use 4-Way. If you can live without playing fighting games and Metal Slug, you don't need diagonals (this is right, isn't it?).

You could, in this scenario, solder the connections which connect the joystick connections with wires, take the top off the GP2x joystick, feed the wires up through the hole where the joystick stick used to be, connect these wires externally to a constructed D-pad, and blu-tac the assembly to the external joystick housing area (thereby not having to destruct the outer casing). The only fly in the ointment is the centre press button - using one of the carbon buttons from an old controller (D-pad type), a small hole could be made somewhere convenient on the GP2x for this feature.

Looking at old posts, I saw a link to a source of the joystick:

LP75P1Szi2c2tzynduu9EJWdqXH7og5p0060.jpg


I found a .pdf file showing the connections for that joystick as:

joystickconnections.jpg


Presumably, this gives the blueprint for what connects to what - so you could make a 4-way Dpad or an 8-way Dpad work by just connecting the relevant connectors to the GP2x connectors? (or am I wrong)?

Personally, I love 4-way D-pad gaming. It is so natural using it on Nintendo units. I would personally prefer a 4-way Dpad rather than a hard to control 8-way.

Comments?
 
boolean posted on Feb 17 2006 at 07:58 AM said:
Radek posted on Feb 16 2006 at 04:24 PM said:
No. Games are always expecting 8 directions (up/left/down/right and diagonal combinations of them) so as long these directions will be provided reliably there will not be problems.
(what the game will do with these it's then only internal matter of a game)

So if the diagonal contacts are easier to hit, Super Mario World would be coded to just say 'Right = Right, Right+up=right', so the diagonal bias is taken care of in this case by the game. But with games that DO use diagonal direction (like the ones you mentioned), the bias on the joystick is going to be saying 'Right+up' with more occurrence than 'Right', which the game recognises as a valid movement, and is not what the user wants to press.

I see how that makes sense now. This is probably why I was having just as much trouble with the Xbox controller, because anything with 16-way+ directions is going to be very hard to use.

Do some of the older games (like Pac-man) have nothing in them for diagonal direction (due to the fact they were probably only written for only a 4-way input), so when the GP2x sends a Right+Up command, the game just sits there waiting for an input it recognises (Up-Down-Left-Right)?

it might be so and very often is. When games is accepting only ordinals then diagonal will not be registered. For such games the DaveC's "Case5" of software biasing will fix that.

For full 8-way output things aren't that easy unfortunately.

bacteria posted on Feb 17 2006 at 11:55 AM said:
There is much debate about 4-way and 8-way D-Pads. In my experience with other controllers, 8-way D-pads are awful to use as it is very hit and miss as to whether you hit a diagonal or not.

They can be both really "8-way" but with these directions implemented differently. The typical dpad has only 4 switches for every ordinal. However two of them can be pushed simultaneously so in the end there are 8 direction possible.
(and by construction only "8" as simply there no way to push it otherwise)

With 8 switches things get complicated as such controller can output 16 directions (with intermediate diagonals) and even worse - its mechanics aren't imposing such limits on movements like in the 4 switch dpad.

So control reliability will be worse in not that different way as it's with analog joystick.

Sometimes the phrase "less is more" is indeed true.

bacteria posted on Feb 17 2006 at 11:55 AM said:
Lots of games (NES, SNES, NeoGeo Pocket, many NeoGeo (non fighting games), many older MAME games, Megadrive/Genesis) only use 4-Way. If you can live without playing fighting games and Metal Slug, you don't need diagonals (this is right, isn't it?).

Diagonals are needed, they just have to be implemented reliably.

bacteria posted on Feb 17 2006 at 11:55 AM said:
You could, in this scenario, solder the connections which connect the joystick connections with wires, take the top off the GP2x joystick, feed the wires up through the hole where the joystick stick used to be, connect these wires externally to a constructed D-pad, and blu-tac the assembly to the external joystick housing area (thereby not having to destruct the outer casing). The only fly in the ointment is the centre press button - using one of the carbon buttons from an old controller (D-pad type), a small hole could be made somewhere convenient on the GP2x for this feature.

Yes but at cost of losing the diagonals entirely. That would be so because aplications are expecting 8 switches not 4. These 4 extra switches in the gp2x's stick are encoding the diagonals directly and from software standpoint it's looking like 8 flags - every for one direction.

There is a solution thought.

bacteria posted on Feb 17 2006 at 11:55 AM said:
Looking at old posts, I saw a link to a source of the joystick:

LP75P1Szi2c2tzynduu9EJWdqXH7og5p0060.jpg


I found a .pdf file showing the connections for that joystick as:

joystickconnections.jpg


Presumably, this gives the blueprint for what connects to what - so you could make a 4-way Dpad or an 8-way Dpad work by just connecting the relevant connectors to the GP2x connectors? (or am I wrong)?

Yes.

bacteria posted on Feb 17 2006 at 11:55 AM said:
Personally, I love 4-way D-pad gaming. It is so natural using it on Nintendo units. I would personally prefer a 4-way Dpad rather than a hard to control 8-way.

Comments?

8-way dpad will work without problems. The 4-way will need some extra circuit to preserve diagonals.
 
Last edited by a moderator:
hello forum!

first, my english isn´t the best so please don´t care :huh:

I´m struggling with the stick as well and a came to the conclusion it would be just good to write a piece of sowftware that makes the upper right direction the top direction (bottom left would be down then).
it would feel more natural, because the thumb lays more diagonal on my device if I just put it on it.
Could this be a solution? Would this be possibe (kernel integration?)=?
I hope you get an idea of what I mean...
greetings from germany,
Ghanji
 
Hi everybody.

I would like to add here that the joystick is the one thing that has stopped me from getting a couple of GP2Xs. Having read this discussion though, I feel a bit more favourable towards it, assuming that the issues can be worked around. I'll be getting a couple of these little joysticks on Monday so I can experiment.

The main problem seems to be that while the joystick is physically an 8-way unit, it is logically 16-way, as it is possible to get intermediate directions (as can be seen by looking at the switches in the test utility), in the same way that microswitched joysticks give the 8 directions from 4 switches.

Most of the software on the machine, including GPH's own menu (!) is not designed to take this into account. Up to now, programmers have only had to consider up, down, left and right, plus the diagonals formed by combining these 4 directions. Now we have 8 inputs instead of 4, giving us double the number of input conditions to test, N, NE, E, SE, S, SW, W and NW. In addition, there are 8 new 'soft' directions resulting from the combining of all the pairs of adjoining inputs, NNE, NEE, SEE, SSE, SSW, SWW, NWW and NNW. Messy, but hardly rocket science.

Part of the problem is that the internal workings of the joystick seem to use a floating circular contactor which moves over flat contacts, which add a whole level of inaccuracy in itself when you get down to those sizes.

As I see it, there are a couple of options.
  • Software workarounds (i.e. DaveC's proposals). Any code designed to be run on the GP2X absolutely has to be aware of the joystick hardware, if only so that it can filter the directions in software. As far as I can see, this is the problem that's affecting a lot of the software in some way or another, e.g. when you have the stick pushed E, and it nudges NEE, the program takes that as a NE input, whereas it should still see it as E. For instance, I think Vektar suffers from this, in that it seems far too easy to unintentionally activate thrust.
    Historically, most games work on the basis of getting 4 directional inputs and working everything out from that. I think a big improvement will come from programmers (myself included) taking into account the extra direction information. I'm going to go out on a limb here and say that in the long run, this might possibly become a positive feature of the GP2X, but there is going to be a lot of pain...
    Perhaps the best thing would be to come up with some kind of a common joystick input routine which will allow for ORing and ANDing of the various inputs on some kind of hierarchical level, again similar to the diagrams and ideas put forward earlier (I will seriously think about this, and if anyone's interested I will post a proposal of how I think it might be implemented, plus some sample code and binaries if possible)
  • Hardware modifications of the stick. Some people have suggested replacing the little plastic knob with something else. This may work for some people, but I think it's going to be a case of personal preference, as some people prefer a large dished thumbstick, whereas (personally) it seems to give a better feel by taking the plastic knob off altogether. This is a little hard on your thumb though. I'm going to try sticking a small toughened rubber cab on the brass stick to see if that helps. With a small contact area on the top, it seems to reduce the throw length considerably and feels a lot more accurate.
  • Hardware modifications of the switch itself. There's been talk of soldering, shims, etc. One thing I don't think I saw mentioned (although I might have missed it) was the possibility of reshaping the internal circular contactor, to make it more of an octagonal shape perhaps, which would have the advantage of transferring some physical feedback through the stick as the contact moved around. This is one thing I want to experiement with. Another thing is making some kind of a film membrane to go between the internal contacts and the contactor, with slots cut out on the 8 directions. This should (in theory) have the effect of isolating the directions, which could be a disadvantage, because you don't necessarily want dead spaces between each compass point (it would certainly be unique in the field of joysticks). The positive aspect would be that the contactor (and by extension, the stick itself) should feel like it is dropping into the slots, giving valuable feedback through your thumb that you have selected a direction.
  • Hardware modification of the GP2X or the switch enclosure. I think it might be possible to add a collar around the brass stick as a kind of guide. So, instead of the stick going around in a circular restraint as it does now, having something like an 8-pointed star shape (imagine a square laid on top of an identical one, but rotated 45 degrees) might get the stick to physically prefer the directions that are actually available.
None of this even takes into account the possibility of ditching the current joystick and putting something else in its place - Perhaps some kind of d-pad. Like the joystick, however, a d-pad can be next to useless, or extremely uncomfortable if it's poorly designed.

After all of that, however, the main problem is that the joystick was not designed for games, and it was an extremely poor design decision on GPH's part to even put it in without seriously considering the implications.

Hopefully GP2X game porters & designers will seriously think about how they implement their control schemes, and will do some critical playtesting before they release. This, coupled with redefinable controls, will help the GP2X to succeed, which I hope it does, especially now that GPH are sorting out their GPL obligations.

Who knows, I may even end up flogging off my PSP and NDS. After all, the only thing the PSP has now, after the constant shenanigans of drip-feed firmware upgrades, is the big screen. The only thing the NDS has is the touch & dual screen. Of course, they're both a hell of a lot more impressive in terms of battery life, and they can go into standby (try telling your boss you can't finish your lunch break because you're halfway through Ghosts 'n' Goblins), but perhaps these are issues that we will all be able to help resolve over the next year.

I think the thing to remember is that every problem has a solution, and the community that the GP2X is building is made up of the exactly the sort of people who can solve these problems - Take note, GPH!
 
scorpio posted on Mar 4 2006 at 04:42 PM said:
Hi everybody.

I would like to add here that the joystick is the one thing that has stopped me from getting a couple of GP2Xs. Having read this discussion though, I feel a bit more favourable towards it, assuming that the issues can be worked around. I'll be getting a couple of these little joysticks on Monday so I can experiment.

The main problem seems to be that while the joystick is physically an 8-way unit, it is logically 16-way, as it is possible to get intermediate directions (as can be seen by looking at the switches in the test utility), in the same way that microswitched joysticks give the 8 directions from 4 switches.

Most of the software on the machine, including GPH's own menu (!) is not designed to take this into account. Up to now, programmers have only had to consider up, down, left and right, plus the diagonals formed by combining these 4 directions. Now we have 8 inputs instead of 4, giving us double the number of input conditions to test, N, NE, E, SE, S, SW, W and NW. In addition, there are 8 new 'soft' directions resulting from the combining of all the pairs of adjoining inputs, NNE, NEE, SEE, SSE, SSW, SWW, NWW and NNW. Messy, but hardly rocket science.

These intermediate direction are very narrow and are ignored by most software. It's safe to assume that they just don't exists. There is a small improvements using DaveC's scheme 5 but it's really improves handling only marginally.

scorpio posted on Mar 4 2006 at 04:42 PM said:
Part of the problem is that the internal workings of the joystick seem to use a floating circular contactor which moves over flat contacts, which add a whole level of inaccuracy in itself when you get down to those sizes.

Yes yes yes. Try moving from up to right for an example. It's nearly impossible to not hit the upper-right diagonal in the way. It ruins completely some games however it can be somewhat remedied by time domain filtering. I have done such filter myself - the timegate - it is somewhere in the GP32x's archive (the best is the second version - the 3rd is overcomplicated and not really better in a practice).

scorpio posted on Mar 4 2006 at 04:42 PM said:
As I see it, there are a couple of options.
  • Software workarounds (i.e. DaveC's proposals). Any code designed to be run on the GP2X absolutely has to be aware of the joystick hardware, if only so that it can filter the directions in software. As far as I can see, this is the problem that's affecting a lot of the software in some way or another, e.g. when you have the stick pushed E, and it nudges NEE, the program takes that as a NE input, whereas it should still see it as E. For instance, I think Vektar suffers from this, in that it seems far too easy to unintentionally activate thrust.


  • Add my idea of timegating to that.

    scorpio posted on Mar 4 2006 at 04:42 PM said:
    Historically, most games work on the basis of getting 4 directional inputs and working everything out from that. I think a big improvement will come from programmers (myself included) taking into account the extra direction information. I'm going to go out on a limb here and say that in the long run, this might possibly become a positive feature of the GP2X, but there is going to be a lot of pain...

    Such things were discussed already, look here:
    http://www.gp32x.de/board/index.php?showtopic=25060&hl=

    scorpio posted on Mar 4 2006 at 04:42 PM said:
    Perhaps the best thing would be to come up with some kind of a common joystick input routine which will allow for ORing and ANDing of the various inputs on some kind of hierarchical level, again similar to the diagrams and ideas put forward earlier (I will seriously think about this, and if anyone's interested I will post a proposal of how I think it might be implemented, plus some sample code and binaries if possible)

    [*]Hardware modifications of the stick. Some people have suggested replacing the little plastic knob with something else. This may work for some people, but I think it's going to be a case of personal preference, as some people prefer a large dished thumbstick, whereas (personally) it seems to give a better feel by taking the plastic knob off altogether. This is a little hard on your thumb though. I'm going to try sticking a small toughened rubber cab on the brass stick to see if that helps. With a small contact area on the top, it seems to reduce the throw length considerably and feels a lot more accurate.

    [*]Hardware modifications of the switch itself. There's been talk of soldering, shims, etc. One thing I don't think I saw mentioned (although I might have missed it) was the possibility of reshaping the internal circular contactor, to make it more of an octagonal shape perhaps, which would have the advantage of transferring some physical feedback through the stick as the contact moved around. This is one thing I want to experiement with. Another thing is making some kind of a film membrane to go between the internal contacts and the contactor, with slots cut out on the 8 directions. This should (in theory) have the effect of isolating the directions, which could be a disadvantage, because you don't necessarily want dead spaces between each compass point (it would certainly be unique in the field of joysticks). The positive aspect would be that the contactor (and by extension, the stick itself) should feel like it is dropping into the slots, giving valuable feedback through your thumb that you have selected a direction.

    [*]Hardware modification of the GP2X or the switch enclosure. I think it might be possible to add a collar around the brass stick as a kind of guide. So, instead of the stick going around in a circular restraint as it does now, having something like an 8-pointed star shape (imagine a square laid on top of an identical one, but rotated 45 degrees) might get the stick to physically prefer the directions that are actually available.
scorpio posted on Mar 4 2006 at 04:42 PM said:
None of this even takes into account the possibility of ditching the current joystick and putting something else in its place - Perhaps some kind of d-pad. Like the joystick, however, a d-pad can be next to useless, or extremely uncomfortable if it's poorly designed.

After all of that, however, the main problem is that the joystick was not designed for games, and it was an extremely poor design decision on GPH's part to even put it in without seriously considering the implications.

I suggest a complete replacement of the stock's stick. I have already done the logic converter what will allow to connect 4-switch based controller to the mainboard of GP2x without any compatibility problems. It's based on the cmos gates and it's using 3 dip14 chips. It fits inside GP2x without problems. I should have a final version ready very soon. It's powered directly from AAs and mod is very easy to do (fitting and connecting the circuit). The problem is appropriate controller... (or lack of it)
 
Last edited by a moderator:
I don't understand the idea of hitting up and up-left at the same time. Surely the hardware can only detect one at a time, and software acts as such?

Someone explain this to me or point me at something that does, as I'm looking to implement better controls in my code and haven't a clue how it's meant to work.
 
nickspoon posted on Mar 4 2006 at 05:42 PM said:
I don't understand the idea of hitting up and up-left at the same time. Surely the hardware can only detect one at a time, and software acts as such?

Someone explain this to me or point me at something that does, as I'm looking to implement better controls in my code and haven't a clue how it's meant to work.

The "case 2" in my stick chart (sig) helps explain a bit. The code treats an intermediate diagonal as an ordinal. It helps to reduce the diagonal bias. Since those intermediate directions don't exist in many games they are normally ignored or treated as one of the 8 directions. Hitting up and up-left could also be read as a 22.5° movement if you are making an original game. hitting a regular diagonal gives a 45° direction.
 
Last edited by a moderator:
I see... so I've got to make it respond to both at the same time? I'm confused as to how, but I'll work out something...
 
nickspoon posted on Mar 4 2006 at 07:00 PM said:
I see... so I've got to make it respond to both at the same time? I'm confused as to how, but I'll work out something...


If you are doing an 8-way game (I don't know what you are working on) you can in code equate the up+upleft to an "up" only. This increases the ordinal target area size which is needed because the stick is normally diagonal biased.
 
Last edited by a moderator:
nickspoon posted on Mar 4 2006 at 08:00 PM said:
I see... so I've got to make it respond to both at the same time? I'm confused as to how, but I'll work out something...
Look at the code inside SDL2X, that should help you out. It certainly did for me.
 
Last edited by a moderator:
Back
Top