#13934 - Nessie - Thu Dec 25, 2003 6:58 am
Weird, in the game I'm working on, I usually playtest on a GBA SP and had been getting a weird ?crash? for quite some time. Turns out, I can consistently get the lockup by pressing in the whole dpad as if it were a button. Normally you wouldn't want to do this, but it seems to occasionally happen anyway during regular usage.
Armed with this repro information, I tried it on a regular GBA and the GC GBA Player I have, and no lockup whatsoever.
Anyone heard if there is something different about the SP dpad??
#13938 - Miked0801 - Thu Dec 25, 2003 7:39 am
Are you polling the DPAD or using interrupts? Either way - I'd be interested in how your handling the input.
#13949 - Nessie - Thu Dec 25, 2003 6:45 pm
The input is polled once per 'frame' and stored.
Anyway, I figured it was the code itself...and it was, but...a given input should produce the same results on a GBA and GBA SP, and it doesn't....so, that kind of sucks.
With the GC GBA Player being emulated and using a different controller, I can cut that some slack for not behaving the same, heh.
If there are any additional details I find as to why, I'll post that here.
#13952 - DDRfreak121 - Thu Dec 25, 2003 8:21 pm
Do you beat the D pad .....
If you do thats the problem
#13957 - tepples - Thu Dec 25, 2003 9:44 pm
Are you crashing on Left+Right or Up+Down presses?
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#13959 - Nessie - Thu Dec 25, 2003 10:17 pm
Um, 'beating the dpad' is not the problem.
There's actually two problems...the first is that a given set of inputs caused the game to lock up--this is a bug in our code.
The second is that the SP hardware seems to readily generate this unexpected input..whereas the other two systems do not generate the same input based on performing the exact same action--this is potentially an inconsitency based on the hardware itself.
Anyway, robust software needs to handle 'beating the dpad' regardless of whether or not it's the right thing to do when playing a game...I don't think a consumer is going to appreciate a game locking up when they are playing even if there is a note of caution about deliberate or accidental dpad mashing.
Cheers
Edit...
Tepples, I didn't investigate whether it was up+down or left+right presses, but based on what we were doing with our code, I'd guess it would be a left+right press.
Actually, does anyone know if the SP does anything different with memory initialization?? I know that's a vague question, which will probably warrant an equally vague answer, heh...but..
#14374 - SmileyDude - Mon Jan 05, 2004 10:33 pm
Nessie wrote: |
Actually, does anyone know if the SP does anything different with memory initialization?? I know that's a vague question, which will probably warrant an equally vague answer, heh...but.. |
The internal hardware on the SP is the exact same as the regular GBA -- so, you can't tell the difference between the two programatically. Now, I guess you could have the user try to mash L+R on the control pad at the same time, but that just seems kinda silly :P
_________________
dennis
#14386 - tepples - Mon Jan 05, 2004 11:00 pm
It is easy to press Left+Right or Up+Down on a GameCube controller, but the Game Boy Player filters those combinations out before they get to the GBA hardware.
It is easy to press Left+Right or Up+Down on a dance pad, but dance pads don't work with common PS1->GameCube adapters.
Details
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#21330 - Nessie - Thu May 27, 2004 10:49 pm
Dang it, I think I finally found out what the problem was.
For starters, I have two flash carts and I realized that only one of them ever shows the problem. Of course, the one that does show the problem is also a bit fussy about fitting in the GBA SP cart slot...if it's not pressed in very firmly, the game won't boot.
Someone pointed out that the dpad is very close to the cart connector on the SP (thanks col)...so pressing the dpad is apparently often-times enough to push this certain flash cart out far enough to cause it to disconnect.
...sigh...