Gpsp 0.9-2xb


Exophase said:
I don't intend to release a new version for a while still so someone might want to try changing this themselves and seeing if it improves things. I don't recommend using devkitGP2X, I've tried it, I can't get it to produce good binaries. I use the Open2x toolchain (if it wasn't obvious from the makefile)
Seeing this as your approval I've quickly built a custom version here. It's just the .gpe, which should be copied to gpsp directory. It passed a 40 minute test for me. Nothing has been changed, except 2 lines of code moved to fix the problem described above (see this diff). Oh and I added -funroll-loops -ffast-math options just for fun, but they don't seem to improve anything, only increase size of the binary.

Daid said:
I'm currently stuck in zelda minish cap with a 100% of the time crash at a sertain point. I can walk back fine, but every time I enter a certain room it hangs after a few seconds.
This sounds like a completely different issue to me (not related to that deadlock).
 
Last edited by a moderator:
notaz said:
Exophase said:
I don't intend to release a new version for a while still so someone might want to try changing this themselves and seeing if it improves things. I don't recommend using devkitGP2X, I've tried it, I can't get it to produce good binaries. I use the Open2x toolchain (if it wasn't obvious from the makefile)
Seeing this as your approval I've quickly built a custom version here. It's just the .gpe, which should be copied to gpsp directory. It passed a 40 minute test for me. Nothing has been changed, except 2 lines of code moved to fix the problem described above (see this diff). Oh and I added -funroll-loops -ffast-math options just for fun, but they don't seem to improve anything, only increase size of the binary.

Daid said:
I'm currently stuck in zelda minish cap with a 100% of the time crash at a sertain point. I can walk back fine, but every time I enter a certain room it hangs after a few seconds.
This sounds like a completely different issue to me (not related to that deadlock).


Thanks. Well, since the source code changes are so small I'm sure you can supply a diff if anyone wants it.

Everyone, let me know how this works for you.

EDIT: durrr, the diff was already supplied.. never mind that.
 
Last edited by a moderator:
geez Notaz you're a god :) I wish I could be as good as you guys! You deserve a fresh beer

right_default2.jpg
 
I've been playing Final Fantasy Dawn of Souls for about 2 hours, and no lock ups. I usually get a lock up every 45 mins. or so. So far so good...
*fingers crossed*

Reap
 
So far so good here too.

Been playing Mario Kart Super Circuit and Pokemon Emerald with no lock ups :)
 
I overclock to 220Mhz and Without Sound (Sound Buffer is 4096 bytes). Full Screen Scaling and Playing for Super Robot D. I am playing for more than 20mins. No Hang. Usually, it will hang after playing around 10mins.
 
Nice find!

I was wondering if it would be worth the while building with assembler versions of memcpy and memset?

Every bit of extra speed helps. I noticed that there was a memcpy in flip_screen() as well as a few additional memcpy/memsets here and there.
 
slaanesh said:
Nice find!

I was wondering if it would be worth the while building with assembler versions of memcpy and memset?

Every bit of extra speed helps. I noticed that there was a memcpy in flip_screen() as well as a few additional memcpy/memsets here and there.
That memcpy in flip_screen is only if the scale factor is not 1, it's just a quick integer scaler for the x86 version (I don't ever use it though)

fill_line is like a memset and can be replaced with a more optimized version, but it probably isn't used too much.

I'm actually going to be doing an alternate renderer based on some other ideas, hopefully. It should have some nice opportunities for optimization and hardware acceleration if it works out. Of course, that's all tentative right now.
 
Last edited by a moderator:
Many thanks, Notaz. My crashes were *fairly* rare, but there were a few games where it was getting annoying. Hopefully this'll fix them :D
 
Been playing Tony Hawks Underground for a few hours straight now, used to freeze quite often for me, and I don't think I got past 30 mins without a freeze in any previous version, looking good so far, thanks to all involved for all your effort.
 
Woo! Notaz is the man of the moment! Great stuff, I'll grab this tonight and give Advance Wars another hammering... :lol:
 
Exophase, I have a little suggestion. When you save the current state into a slot, clear screen and show a "Saving in Progress". When it finish, return it to original menu. It is better for us to know I press the correct key and saved. It is quite annoying if I press a key for saving. I just keep to trying to move the up/down key to know it is finished.

:p
 
Thanks to Zodttd for originally porting this emulator, thanks to Exophase for making this emulator and for his continued work, and thanks to Notaz for fixing the horrible freezing bug.

*there I think thats everybody*

;)
 
Tobriand said:
Well, still Exophase for makng it, but definitely worth hailing Notaz for fixing evil crashes :D
Thats true. :) I will test everything. Now I can start with Advance Wars (sadly not the european version).
Let's see how far we come with the new (really size increased :lol: ) .gpe :)
 
Last edited by a moderator:
Exophase said:
Daid said:
Exophase said:
Indeed, good find. I moved the unlock/signal to the end of the function. I just wonder why I haven't noticed this sooner.. I guess it's a pretty narrow section for it to get stuck in.

Let me know if you see anything else.. I don't like synchronization code ^_^

I don't intend to release a new version for a while still so someone might want to try changing this themselves and seeing if it improves things. I don't recommend using devkitGP2X, I've tried it, I can't get it to produce good binaries. I use the Open2x toolchain (if it wasn't obvious from the makefile)
Would disabling sound rule out this possible deadlock? I'm currently stuck in zelda minish cap with a 100% of the time crash at a sertain point. I can walk back fine, but every time I enter a certain room it hangs after a few seconds.

I haven't been able to build gpSP yet. But then again, I shouldn't have tried it with devkitGP2X ;) as soon as I can build succesfully I'll try to investigate this hangup (or crash, haven't accessing linux afterwards yet)


Turning off sound won't change anything, that just mutes the output. What point are you stuck at? Well, if you have a deterministic location, definitely see if it's fixed by this.

Actualy, I used tested it. And the emulator dies:
CODE
[root@gp2x gba]$./gpsp.gpe
Using mmuhack.o
SDL_GP2X: Looking for a mouse
SDL_GP2X: No mice found
SDL_SYS_JoystickInit
SDL_GP2X: SYS_JoystickName(0)
SDL_GP2X: Allocated
SDL_GP2X: Allocated
SDL_GP2X: Allocated
SDL_GP2X: Allocated
SDL_GP2X: Allocated
SDL_GP2X: Allocated
SDL_GP2X: Allocated
SDL_GP2X: Allocated
Killed
[root@gp2x gba]$

It cashes when I get to this room: (works fine in VBA 1.7.2)
gpSPcrash.JPG
 
Last edited by a moderator:
Back
Top