Gpsp2x Goes Public With V9008!


I onestly think that the speed is OK in lots of games..even at 200 mhz. I think that the first need is improve the audio performance because it is too stuttering. The possibility of lowering down sample rate by an ad-hoc option could give us a chanche to remove some stuttering?
And of course making a new menu is another important thing :D
 
Zodttd said we had to make another 500 posts, so :p

All this is incredible! :D I just can't wait to play Mario Kart at fullspeed with less than fs3!
Zod, if I were gay, I would have chosen you :ph34r:

Thanks
 
cowai posted on Mar 18 2007 at 10:17 AM said:
Zodttd said we had to make another 500 posts, so :p

All this is incredible! :D I just can't wait to play Mario Kart at fullspeed with less than fs3!
Zod, if I were gay, I would have chosen you :ph34r:

Thanks

If I was zottd, I`d stop developing this emulator right now! :unsure:
 
Last edited by a moderator:
suppafly posted on Mar 18 2007 at 05:51 PM said:
cowai posted on Mar 18 2007 at 10:17 AM said:
Zodttd said we had to make another 500 posts, so :p

All this is incredible! :D I just can't wait to play Mario Kart at fullspeed with less than fs3!
Zod, if I were gay, I would have chosen you :ph34r:

Thanks

If I was zottd, I`d stop developing this emulator right now! :unsure:

then I'm happy, that you are NOT zodttd :p
 
Last edited by a moderator:
Elektranox posted on Mar 18 2007 at 11:50 AM said:
did you already wrote a tutorial, how to add entries to the game_config file? Would be nice, if some european games are added ^^

Alright, I'm hope I'm not going too far off-topic with this reply. I spent some time googling around, and found some instructions on a Japanese PSP information site (http://pspnfo.orz.hm/index.php, try looking for "GPSP" in the left column). Now I didn't have time to test this on my Windows box (and for some reason Wine refuses to launch VisualBoyAdvance), but it might be worth a try. They're using VisualBoyAdvance for Windows, so you might need to get that first. Here's a quick translation of what they've found out:

1. Start VBA
2. Choose "Disassemble" from menu
3. Check the "Automatic Update" box
4. Load game. The "Disassemble" window should fill up with pointers now (just tell me if I'm using the wrong expressions here... I'm not a doctor, just translating that stuff :rolleyes:)
5. The information in the "Disassemble" window might be scrolling quite fast. However you should try to look for obvious loops in their examples. They included an example on the page mentioned above (the GPSP link), or just have a look at the 3rd and 4th pictures on this page: http://bandersnatch.blog54.fc2.com/blog-entry-27.html
See the final line in the example given? It seems like 08000252 is causing a jump to 0800024a, thus creating an idle loop. Now that should be the pointer you'd want to eliminate using the "idle_loop_eliminate_target" parameter.

In every game, there might be a couple of loops, depending on the screen you're at. In Gradius Generation (J), for example, they have discovered four different loops so far:
# Gradius Generation (J)
game_name = GRADIUSGENER
game_code = AGAJ
vender_code = A4
#-Opening Demo
idle_loop_eliminate_target = 08010308
#-Title
idle_loop_eliminate_target = 08010968
#-Power Up Select
idle_loop_eliminate_target = 08012650
#-Stage
idle_loop_eliminate_target = 080151e4

As for the additional data like "game_name" and the likes, it seems like you can find them under "File-> Rom Information" in VBA.

That's all they've got... now I don't know if this works as easily as it sounds, but it certainly might be worth a try. They've also compiled a list with configurations for various (J) games, which seem to work quite o.k, though admittedly I didn't test theses games withoutthese settings. Except for the occasional random freezes, I had no problems at all running Advance Wars 1+2, FF5, Made in Wario (AKA Warioware Inc.) and Rhythm Tengoku.

Now... a good way to begin might be to just load up a game where we already have some loops in the game_config, and try to find these loops on your own using VBA(that's what I'm probably going to do tonight). Once you start to get the hang of it, its time to start exploring uncharted games...

Once again, I don't have any programming skills, and I don't even now if that method works....... so don't sue my if something breaks :p
 
Last edited by a moderator:
sirfelius posted on Mar 18 2007 at 05:55 PM said:
Elektranox posted on Mar 18 2007 at 11:50 AM said:
did you already wrote a tutorial, how to add entries to the game_config file? Would be nice, if some european games are added ^^

Alright, I'm hope I'm not going too far off-topic with this reply. I spent some time googling around, and found some instructions on a Japanese PSP information site (http://pspnfo.orz.hm/index.php, try looking for "GPSP" in the left column). Now I didn't have time to test this on my Windows box (and for some reason Wine refuses to launch VisualBoyAdvance), but it might be worth a try. They're using VisualBoyAdvance for Windows, so you might need to get that first. Here's a quick translation of what they've found out:

1. Start VBA
2. Choose "Disassemble" from menu
3. Check the "Automatic Update" box
4. Load game. The "Disassemble" window should fill up with pointers now (just tell me if I'm using the wrong expressions here... I'm not a doctor, just translating that stuff :rolleyes:)
5. The information in the "Disassemble" window might be scrolling quite fast. However you should try to look for obvious loops in their examples. They included an example on the page mentioned above (the GPSP link), or just have a look at the 3rd and 4th pictures on this page: http://bandersnatch.blog54.fc2.com/blog-entry-27.html
See the final line in the example given? It seems like 08000252 is causing a jump to 0800024a, thus creating an idle loop. Now that should be the pointer you'd want to eliminate using the "idle_loop_eliminate_target" parameter.

In every game, there might be a couple of loops, depending on the screen you're at. In Gradius Generation (J), for example, they have discovered four different loops so far:
# Gradius Generation (J)
game_name = GRADIUSGENER
game_code = AGAJ
vender_code = A4
#-Opening Demo
idle_loop_eliminate_target = 08010308
#-Title
idle_loop_eliminate_target = 08010968
#-Power Up Select
idle_loop_eliminate_target = 08012650
#-Stage
idle_loop_eliminate_target = 080151e4

As for the additional data like "game_name" and the likes, it seems like you can find them under "File-> Rom Information" in VBA.

That's all they've got... now I don't know if this works as easily as it sounds, but it certainly might be worth a try. They've also compiled a list with configurations for various (J) games, which seem to work quite o.k, though admittedly I didn't test theses games withoutthese settings. Except for the occasional random freezes, I had no problems at all running Advance Wars 1+2, FF5, Made in Wario (AKA Warioware Inc.) and Rhythm Tengoku.

Now... a good way to begin might be to just load up a game where we already have some loops in the game_config, and try to find these loops on your own using VBA(that's what I'm probably going to do tonight). Once you start to get the hang of it, its time to start exploring uncharted games...

Once again, I don't have any programming skills, and I don't even now if that method works....... so don't sue my if something breaks :p

Definitely sounds like a plan! :)
That description sounds highly plausible, thanks for doing the legwork! :)
 
Last edited by a moderator:
sirfelius is pretty much on target for a tutorial on finding idle loops. :)
If anyone finds a new idle loop address, please PM me with it. Credit given where credit's due. :)

As for v9008 being "slower" than v9006. It's really not. It's just the autoframeskip and defaults changing. The sound quality was greatly increased and syncing is better as well. Those two combined make things appear slower, but the performance of the dynarec has increased to allow such.

Please check out what sirfelius said if you have a game running too slowly.
Also view the new gpSP dev blog for information on optimizing the GP2X dynarec. Link is in sig.
 
mh sounds easy... I think I'll install an virtual WIN System later... But I've got a second question: what are the "translation_gate_target" and how do I find them?

Edit: I'm sorry, but I cant check this, because I've not a single ROM, which is in the game_config, too ;) Perhaps can somebody post a demo line for this? :)
 
daclassicgamingmaster posted on Mar 18 2007 at 12:46 PM said:
What sirfelius said went right over my head, but I noticed his member group....and it doesn't sound too pleasant. Did he do something wrong?

You can change your members group.

edit: no, wait that's your member title. D'oh!
 
Last edited by a moderator:
zodttd posted on Mar 18 2007 at 07:41 PM said:
Also view the new gpSP dev blog for information on optimizing the GP2X dynarec. Link is in sig.

I guess virtualization is out it sounds like :(

Oh well hopefully it can get to a good speed with good sound still with dynarec.

Zod do you think we will ever be able to get rid of the need for the "game_config" thing? It is kind of a pain because: Not all games are supported there, the names must match exactly, it doesn't support Japanese, and other ROMs.
 
Last edited by a moderator:
I wanted to say thanks Zodttd! Absolutely fantastic job on this emu! It passed the acid test as I handed WarioWare to my wife and she played a few games. If I had tried this with the versions before your dynarec I'm sure she would have told me no thanks. We have a Wii with Wario Smooth Moves and she likes this GBA version too. You really made playing a GBA possible now on the GP2X! I have so many more fun games to look forward to now!

Thanks again!
 
daclassicgamingmaster posted on Mar 18 2007 at 08:46 PM said:
What sirfelius said went right over my head, but I noticed his member group....and it doesn't sound too pleasant. Did he do something wrong?
His post was picked up as spam by our spam bot detection system,
the system hides the post moves the membr in another group and sends a message to all mods so we can verify if it really is spam,
in this case it was not so his post was aproved, however it takes a little bit longer until he gets moved out of the group.
 
Last edited by a moderator:
sirfelius posted on Mar 18 2007 at 06:55 PM said:
Elektranox posted on Mar 18 2007 at 11:50 AM said:
did you already wrote a tutorial, how to add entries to the game_config file? Would be nice, if some european games are added ^^

Alright, I'm hope I'm not going too far off-topic with this reply. I spent some time googling around, and found some instructions on a Japanese PSP information site (http://pspnfo.orz.hm/index.php, try looking for "GPSP" in the left column). Now I didn't have time to test this on my Windows box (and for some reason Wine refuses to launch VisualBoyAdvance), but it might be worth a try. They're using VisualBoyAdvance for Windows, so you might need to get that first. Here's a quick translation of what they've found out:

1. Start VBA
2. Choose "Disassemble" from menu
3. Check the "Automatic Update" box
4. Load game. The "Disassemble" window should fill up with pointers now (just tell me if I'm using the wrong expressions here... I'm not a doctor, just translating that stuff :rolleyes:)
5. The information in the "Disassemble" window might be scrolling quite fast. However you should try to look for obvious loops in their examples. They included an example on the page mentioned above (the GPSP link), or just have a look at the 3rd and 4th pictures on this page: http://bandersnatch.blog54.fc2.com/blog-entry-27.html
See the final line in the example given? It seems like 08000252 is causing a jump to 0800024a, thus creating an idle loop. Now that should be the pointer you'd want to eliminate using the "idle_loop_eliminate_target" parameter.

In every game, there might be a couple of loops, depending on the screen you're at. In Gradius Generation (J), for example, they have discovered four different loops so far:
# Gradius Generation (J)
game_name = GRADIUSGENER
game_code = AGAJ
vender_code = A4
#-Opening Demo
idle_loop_eliminate_target = 08010308
#-Title
idle_loop_eliminate_target = 08010968
#-Power Up Select
idle_loop_eliminate_target = 08012650
#-Stage
idle_loop_eliminate_target = 080151e4

As for the additional data like "game_name" and the likes, it seems like you can find them under "File-> Rom Information" in VBA.

That's all they've got... now I don't know if this works as easily as it sounds, but it certainly might be worth a try. They've also compiled a list with configurations for various (J) games, which seem to work quite o.k, though admittedly I didn't test theses games withoutthese settings. Except for the occasional random freezes, I had no problems at all running Advance Wars 1+2, FF5, Made in Wario (AKA Warioware Inc.) and Rhythm Tengoku.

Now... a good way to begin might be to just load up a game where we already have some loops in the game_config, and try to find these loops on your own using VBA(that's what I'm probably going to do tonight). Once you start to get the hang of it, its time to start exploring uncharted games...

Once again, I don't have any programming skills, and I don't even now if that method works....... so don't sue my if something breaks :p

I'm still have no clue what I have to searching for. I choosed Metroid Fusion because it's NOT in the rom-gfg-list and could use every existing tweak because of some Sound and Performance-glitches ( somteimes short hangs when Music/Sound starts again for example)
The debugger produces an immense ammount of "stuff" and ther's alot Numbers with an "$" and Many "???" and so on. So how can I find the "Bad guys" ?

EDIT: Oh, it looks like Metroid just havn't any loops :lol: I checked an existing Game in the CFG:
Code:
# Bomberman Tournament (U)
game_name = BOMSTORYUSA
game_code = ABSE
vender_code = 52
idle_loop_eliminate_target = 08000526
and i found EXACTLY this target in the debugger -a fast scrolling, always repeading loop/jump of exactly this line: 08000526

This means, Metroid can't be optimized and I have to say goodbye to my beloved "manual FS 1" in Areas with special GFX-Effects (heat in background, many big enemies, Water....). ^^""""
 
Last edited by a moderator:
sirfelius posted on Mar 18 2007 at 11:25 PM said:
Elektranox posted on Mar 18 2007 at 11:50 AM said:
did you already wrote a tutorial, how to add entries to the game_config file? Would be nice, if some european games are added ^^

Alright, I'm hope I'm not going too far off-topic with this reply. I spent some time googling around, and found some instructions on a Japanese PSP information site (http://pspnfo.orz.hm/index.php, try looking for "GPSP" in the left column). Now I didn't have time to test this on my Windows box (and for some reason Wine refuses to launch VisualBoyAdvance), but it might be worth a try. They're using VisualBoyAdvance for Windows, so you might need to get that first. Here's a quick translation of what they've found out:

1. Start VBA
2. Choose "Disassemble" from menu
3. Check the "Automatic Update" box
4. Load game. The "Disassemble" window should fill up with pointers now (just tell me if I'm using the wrong expressions here... I'm not a doctor, just translating that stuff :rolleyes:)
5. The information in the "Disassemble" window might be scrolling quite fast. However you should try to look for obvious loops in their examples. They included an example on the page mentioned above (the GPSP link), or just have a look at the 3rd and 4th pictures on this page: http://bandersnatch.blog54.fc2.com/blog-entry-27.html
See the final line in the example given? It seems like 08000252 is causing a jump to 0800024a, thus creating an idle loop. Now that should be the pointer you'd want to eliminate using the "idle_loop_eliminate_target" parameter.

In every game, there might be a couple of loops, depending on the screen you're at. In Gradius Generation (J), for example, they have discovered four different loops so far:
# Gradius Generation (J)
game_name = GRADIUSGENER
game_code = AGAJ
vender_code = A4
#-Opening Demo
idle_loop_eliminate_target = 08010308
#-Title
idle_loop_eliminate_target = 08010968
#-Power Up Select
idle_loop_eliminate_target = 08012650
#-Stage
idle_loop_eliminate_target = 080151e4

As for the additional data like "game_name" and the likes, it seems like you can find them under "File-> Rom Information" in VBA.

That's all they've got... now I don't know if this works as easily as it sounds, but it certainly might be worth a try. They've also compiled a list with configurations for various (J) games, which seem to work quite o.k, though admittedly I didn't test theses games withoutthese settings. Except for the occasional random freezes, I had no problems at all running Advance Wars 1+2, FF5, Made in Wario (AKA Warioware Inc.) and Rhythm Tengoku.

Now... a good way to begin might be to just load up a game where we already have some loops in the game_config, and try to find these loops on your own using VBA(that's what I'm probably going to do tonight). Once you start to get the hang of it, its time to start exploring uncharted games...

Once again, I don't have any programming skills, and I don't even now if that method works....... so don't sue my if something breaks :p

I tried this with Need for Speed - Porsche Unleashed. Got a reported frame rate of 45-53 in game, up from 28-33. This is at 260.

# Need for Speed - Porsche Unleashed
game_name = NEEDFORSPEED
game_code = AZFP
vender_code = 20
idle_loop_eliminate_target = 03005738
 
Last edited by a moderator:
I got 2 targets for NFS-MW. Both seem to up the reported rate by 15-20 fps at 260. The game is still too slow to be considered playable.

# Need for Speed - Most Wanted
game_name = NFSMW
game_code = BNWE
vender_code = 69
idle_loop_eliminate_target = 03004e7c
#idle_loop_eliminate_target = 03005118
 
Back
Top