Stella For Gp2x


Okie dokie. We are addressing the joystick issue. We hope to have it solved in 2.1.1. There were a few other issues that needed addressing so we are addressing them in the next release. How soon? That depends entirely on how much we break when we fix what we intend to fix.
 
Okie dokie. We are addressing the joystick issue. We hope to have it solved in 2.1.1. There were a few other issues that needed addressing so we are addressing them in the next release. How soon? That depends entirely on how much we break when we fix what we intend to fix.

More data from me, I am using FW1.01, no hacks patches, original skin.

It only seems to do it when changing direction. Again use berzerk as a test. When it does freeze then press the fire button. You will notice that it is shooting in the wrong direction.

It is like the sw1+sw2 etc intermediate diagonal is confusing it.

So for example if I was moving up-left diagonal and I rolled the stick to UP it then freezes. The key here is that you must be keeping constant pressure on the stick for the freezing to occur. If I then press the fire button when frozen it will still be firing up-left diagonal even though I am definetly pressing UP. It freezes and ignores the UP input. If I let off pressure on the stick slightly then press back the same exact up direction it will then unfreeze and move UP as it should.
 
Last edited by a moderator:
It is like the sw1+sw2 etc intermediate diagonal is confusing it.
Yeah it does look like the problem is that when one of these "off" diagonals is detected its somehow getting treated as a dead spot and gets "stuck". Once that happens the stick needs to be returned to neutral before any more input will be handled.
 
Last edited by a moderator:
It is like the sw1+sw2 etc intermediate diagonal is confusing it.
Yeah it does look like the problem is that when one of these "off" diagonals is detected its somehow getting treated as a dead spot and gets "stuck". Once that happens the stick needs to be returned to neutral before any more input will be handled.

Thanx guys that does help some. I think I might have an idea. I'll get back to you shortly. I have something in mind... but I need authorial approval.
 
Last edited by a moderator:
I hold fire, I move the stick, and the sprite fires in every direction I point. What firmware version are you using?


Don't hold fire, walk around slowly holding the stick in a direction always, like in a circle (don't let up on the stick) the character will stop.
 
Last edited by a moderator:
It is like the sw1+sw2 etc intermediate diagonal is confusing it.
Yeah it does look like the problem is that when one of these "off" diagonals is detected its somehow getting treated as a dead spot and gets "stuck". Once that happens the stick needs to be returned to neutral before any more input will be handled.

Thanx guys that does help some. I think I might have an idea. I'll get back to you shortly. I have something in mind... but I need authorial approval.


Remember from the chart case 2, the intermediate "off" diagonals should be interpreted as an ordinal direction such as UP, RIGHT, etc. For example the SW1+SW2 should be an UP direction.

Like this:

SW1 =up
SW1+SW2 = up
SW2 = diagonal
SW2+SW3= right
SW3=right
SW3+sw4= right
SW4=diagonal
and so on....
 
Last edited by a moderator:
Last edited by a moderator:
It is like the sw1+sw2 etc intermediate diagonal is confusing it.
Yeah it does look like the problem is that when one of these "off" diagonals is detected its somehow getting treated as a dead spot and gets "stuck". Once that happens the stick needs to be returned to neutral before any more input will be handled.

Thanx guys that does help some. I think I might have an idea. I'll get back to you shortly. I have something in mind... but I need authorial approval.


Remember from the chart case 2, the intermediate "off" diagonals should be interpreted as an ordinal direction such as UP, RIGHT, etc. For example the SW1+SW2 should be an UP direction.


I think I finally see how it would be coded... this is a copy of the psuedo code I sent Stephen.

From the up position, clockwise:

case
SDL_UP)
send UP;
SDL_UP && SDL_UPRIGHT)
send up;
SDL_UPRIGHT)
send upright;
SDL_UPRIGHT && SDL_RIGHT)
send right;
SDL_RIGHT)
send right;
SDL_RIGHT && SDL_DOWNRIGHT)
send right;
SDL_DOWNRIGHT)
send downright;
SDL_DOWN && SDL_DOWNRIGHT)
send down;
SDL_DOWN)
send down;
....

This is from up to down clockwise. If anyone could verify this psuedo code algorithm for me I'd appreciate it.
 
Last edited by a moderator:
It is like the sw1+sw2 etc intermediate diagonal is confusing it.
Yeah it does look like the problem is that when one of these "off" diagonals is detected its somehow getting treated as a dead spot and gets "stuck". Once that happens the stick needs to be returned to neutral before any more input will be handled.

Thanx guys that does help some. I think I might have an idea. I'll get back to you shortly. I have something in mind... but I need authorial approval.


Remember from the chart case 2, the intermediate "off" diagonals should be interpreted as an ordinal direction such as UP, RIGHT, etc. For example the SW1+SW2 should be an UP direction.


I think I finally see how it would be coded... this is a copy of the psuedo code I sent Stephen.
.....


Is that like this where Sw= "switch":

SW1 =up
SW1+SW2 = up
SW2 = diagonal
SW2+SW3= right
SW3=right
SW3+sw4= right
SW4=diagonal
and so on....

I can't read code so I am not sure. But if it means what I wrote here than yes that is it.
 
Last edited by a moderator:
Is that like this where Sw= "switch":

SW1 =up
SW1+SW2 = up
SW2 = diagonal
SW2+SW3= right
SW3=right
SW3+sw4= right
SW4=diagonal
and so on....

I can't read code so I am not sure. But if it means what I wrote here than yes that is it.


That is the same. Sometimes it's better to see a coded representation than a visual one. Ok... now we are on the same page. Now getting it to work, is another matter. Thanx DaveC.
 
Last edited by a moderator:
Last edited by a moderator:
Is that like this where Sw= "switch":

SW1 =up
SW1+SW2 = up
SW2 = diagonal
SW2+SW3= right
SW3=right
SW3+sw4= right
SW4=diagonal
and so on....

I can't read code so I  am not sure.  But if it means what I wrote here than yes that is it.


That is the same. Sometimes it's better to see a coded representation than a visual one. Ok... now we are on the same page. Now getting it to work, is another matter. Thanx DaveC.


Ok then that is the solution. Implement that sucessfully and that problem is solved :)

Then maybe can move on to other things if you are willing like adding scroll wrap in rom selector and maybe rom filters like in Rlyeh's GP32 emus. With that you have alpha characters at the top ABCDEF etc. If you click on a it only shows ROMs beginning with A etc. This helps alot if you have the whole romset on your card. Or just allow directory browsing so you can split up the ROMs into separate dirs for similar effect. You could have directories with A having all of the A roms, B having all of the Bs etc..

Thanks for the great work.
 
Last edited by a moderator:
Side note: The major improvements to this port are made possible by an overworked and underpaid man named Steve Anthony. He's the one to thank. ;)
I gave him a well deserved thanks already. And one to you as well.

I should add this to my sig, definitely an inside GP2X joke.

SDL_UP && SDL_UPRIGHT = Huh? :)

:lol:

I wish I had the time to get up to speed on SDL (and well graphics in general), I could probably actually contribute something useful to the community. <_<
 
Last edited by a moderator:
Side note: The major improvements to this port are made possible by an overworked and underpaid man named Steve Anthony. He's the one to thank. ;)
I gave him a well deserved thanks already. And one to you as well.

I should add this to my sig, definitely an inside GP2X joke.

SDL_UP && SDL_UPRIGHT = Huh? :)

:lol:

I wish I had the time to get up to speed on SDL (and well graphcis in general), I could probably actually contribute something useful to the community. <_<

:lol:

I think I'm sigging that myself.
 
Last edited by a moderator:
Perhaps the SDL joystick reader is screwy?

There shoudl be no dead-zones from the joystick-reader; how you interpret the switches is up to the dev, but SDL interprets them in some specific manner; if SDL is reporting real dead zones, then its broken.

ie: I'd test that.. if the stick is reporting dead zones via SDL, SDL is broken.

If no dead zones reporting from SDL, then the next thing is to see how the SDL reported switcvhes are being used in the emu; perhaps the emu code isn't handling them right?

Lastly, perhaps the emulation core doesn't like certain combinations due to how the interface maps them to the core.. ie: Perhaps its done in such a way where the emu core itself maps things to dead zones in the virtual machine?

jeff
 
Back
Top