Help - Search - Members - Calendar
Full Version: [gpsp] Exophase Has Done It Again! Incredible!
GP32X.com - GP32 GP2X Pandora The Wiz - open source entertainment > GP2X > General talk [GP2X]
Pages: 1, 2, 3, 4
zodttd
Hi everyone,

Well the pressure of seeing my dynarec seems to have worked, as Exophase has taken a week to work on the gpSP2X dynarec and I just received a extremely private build. He's done what people have said was impossible, and...

I am currently playing Sonic Advance 2 with frameskip turned off and sound turned on at 260MHz and I'm getting a steady 60 FPS. I think DaveC will be happy as will many others when this goes public! A lot of work has gone into this dynarec from Exophase and myself, so I strongly encourage you to give Exophase some appreciatation by at very least visiting his blog linked in my signature!

I'm going to clock down and find how low I can run Sonic Advance 2 at FS0 with sound and still get a steady 60 FPS, so we can get an idea of how it will run for people with low overclocks. Keep in mind though, I believe Exophase has a lot more optimizations he'd like to do, so performance will likely continue to rise, and there's still some bugs to work out. But overall this is amazing.

Exophase doesn't like to hype, which I completely understand, but I think this deserves some attention. I truly believe this will be an astonishing release.

The deal for the dynarec between Exophase and I was that I'd give him 2 weeks to work on it alone. There's still a week left, so let's see how good this gets. Very impressive stuff!

Once again, please make a friendly comment or thanks on Exophase's blog if you appreciate gpSP2X since the bar has definitely been raised. smile.gif

Thanks everyone!
starpause
if the day comes that i can play Sonic Battle on my gp2x i'm never turning back!
Blah
all I can say is WOW!
daclassicgamingmaster
OH. MY. GOD.

Wowza!
zodttd
Ohh I'm going to have to test Sonic Battle now! I forgot about that one!
Sonic Advance 1 also ran equally well as Sonic Advance 2 at 260MHz. At 240MHz it ranges between 55 and 60 FPS. Even at 55 things were still really smooth.
At 240MHz Metroid Fusion ran at 53 FPS well into the first level until I stopped testing it.

So far it seems like it's between 1.5x and 2x faster than my fastest version of the dynarec. This is quite cool! smile.gif

shinneri
Nice, Zod. smile.gif
hilarycheng
Wow! Great Work! Exophase .
skeezix
Whats neat about Exo is he came out of nowhere with this crazy emu for the PSP, and he's humble about it. Nutjob smile.gif

Again kudos zod and exo

And zod's first dynarec too, nice smile.gif

jeff
Ahua_Keren
Wow! it's amazing.
Well based on build 9008, i've tested zelda minish cap with no frame skipping (0) the sound is just get stuttering as usual, but the FPS is around 60!
so I think there is possible if we can underclock or reach at fullspeed GBA emu for GP2X.
Good Work For Exo & Zod, smile.gif
Auritribe
QUOTE(Ahua_Keren @ Mar 26 2007, 05:41 AM) *

Wow! it's amazing.
Well based on build 9008, i've tested zelda minish cap with no frame skipping (0) the sound is just get stuttering as usual, but the FPS is around 60!
so I think there is possible if we can underclock or reach at fullspeed GBA emu for GP2X.
Good Work For Exo & Zod, smile.gif


Seems exophase wins a long overdue internet.
cowai
This is quite a dilemma...^^
We are right in the middle of kneeling ZOD. Then Exophase comes....
zodttd
Tag team tongue.gif

Skeezix lives! He lives! Thanks for the compliment, and good to see you around here. ;P
tim0391
WOW cant wait for public realease nice work guys!
imhotep
I think we are all in awe... biggrin.gif
Peter R
ohmy.gif Both of you are incredible and deserve great amounts of praise!
slaanesh
====================
Don't forget to test Mario Kart!
====================

:-)
thelamer
Has anyone offered to pitch in and help out with the menu system?

Reesy's would be a nice addition wink.gif
cowai
====================
Don't forget to test Mario Kart!
====================

:-)
Yod4z
Realy impressive tongue.gif , Great work Exophase and ZodTTD
gavie
Nice biggrin.gif This is a great project! GP2X Emulation gets better every day biggrin.gif
cowai
What does this really mean? Has Exophase written a new dynarec? or did he just rewrite it? I have read his blog and very confused...

Anyways, Exophase and zodttd are like godsent... I remember Zodttd coming from the zodiac scene (?). And now Exophase coming from the psp scene!

Awsome work!

ps: This scene needs more team work, I think. For example: Having two different SNES emus are in theory very stupid. Resources could have been spread more and we could all get a better product? But, all in all, its all up to the individual coder...
barnesy
It means he has improved the existing one. At first, it will have been written just to get the job done, but not necessarily with performance in mind. Now that the concept has been proved, the focus has moved on to making it work as efficiently as possible by rewriting chunks of the code.
zodttd
From speaking to Exophase I believe he rewrote the dynarec but used some of my concepts and means of getting things done. I did the grunt work and got it up and running, and made it accessible to Exophase to improve upon my work. Since we work together on this, there's no hard feelings having my dynarec rewritten Especially when it was my intent to have him eventually rewrite it. Sooner was better than later in this case. He was being careful with his wording about this on his blog since I dont.think he knew at the time if it would hurt feelings. wink.gif

Short answer: He used information from my dynarec to get the groundwork up for his rewritten and improved dynarec. And we're both in agreement over it that this was the best route to go with development. smile.gif
xnopasaranx
holy crap zod! that is amazing. Exophase and you are masters of the art. Even when 9005 went public I thought "wow, this can't get better." I was certainly proven wrong over and over again...
moz
QUOTE(zodttd @ Mar 26 2007, 04:47 AM) *

Hi everyone,
I think DaveC will be happy as will many others when this goes public!

Fantastic news Zodd and exo! smile.gif

(watch out though i dont think DaveC's 2x clocks that high)
Hippo
QUOTE(cowai @ Mar 26 2007, 09:41 AM) *

====================
Don't forget to test Mario Kart!
====================

:-)


+1 smile.gif
jimid2
Congrats to zodttd and Exophase on their excellent work - it's just great what can happen when people with talent work cooperatively! smile.gif I've been watching this project progress with some interest, and I look forward to seeing what happens over the next couple of weeks. Very exciting!
Tobriand
Amazing. Just amazing. Any chance I could get you to try Wing Commander Prophecy too, seeing as it's currently among the slowest games I've tried in GPsp (9008 gives 12fps for anything involving a 3D object)?

Off to read Exophase's blog... can't wait til next week!
Moxie
If I had a wish, it would be to test Tactics Ogre - Knights of Lodis, to see if that could speed up a bit. In case you're all out of things to test for smile.gif

Apart from that, I'm just dumbstruck by your collective awesomeness ohmy.gif biggrin.gif
Julius
Now if exophase next project was to optimise the PSX dynarec....

smile.gif

Great work!!!
Peter R
QUOTE(Julius @ Mar 26 2007, 01:48 PM) *

Now if exophase next project was to optimise the PSX dynarec....

smile.gif

Great work!!!

He still wouldn't achieve anything worth playing....it's just not possible. This is ARM --> ARM.
Exophase
Heh, it looks like zodttd blew my cover.. I was wondering why people were suddenly posting in the blog. I think the improvements are probably not as good across the board as he makes them out to be, but I also still have a lot more things to do.. if you look at my checklist from the last blog post I've completed up to step 4.

What I'm really happy about is that doing this has helped me to fix a bug in the other versions that has been plaguing me for months. Since I'm using the GP2X's ARM to natively calculate flags it gives guaranteed accurate results, and since the dynarecs (the PC version and the GP2X version are what I test against each other) are synchronized I can fairly easily/quickly determine where the two differentiate from each other and find out what's wrong. Turned out that I wasn't calculating the C flag for the SBC operation correctly.

This fixes FF6, the single largest compatability concern I had at the moment (and the one game everyone wanted working). I think it saved me several, maybe dozens of hours of debugging work. This is good news for anyone who's bitter about me focusing on the GP2X version instead of the core/PSP version right now wink.gif
Peter R
It's all good, for every platform tongue.gif smile.gif

Nice work, both of you smile.gif
fusion_power
QUOTE(zodttd @ Mar 26 2007, 05:26 AM) *


At 240MHz Metroid Fusion ran at 53 FPS well into the first level until I stopped testing it.

Please test my Metroid Fusion Savegame. I had made it at one of these later, FPS critical Areas and it's not even the slowest area. (Full-Water areas or full heat areas are a FPS Nightmare! ^^ ) Play around and take a look at your FPS and listen to the Sound... wink.gif

My Settings: 266MHz, Fast RAM-Timings, manuel FS 1
FPS: 15-25, crappy sound. ^^

http://rapidshare.com/files/22870439/0690_...n__U_4.rar.html

P.S.: Sorry for Rapidshare ^^""""
DaveC
QUOTE(zodttd @ Mar 26 2007, 03:47 AM) *


I am currently playing Sonic Advance 2 with frameskip turned off and sound turned on at 260MHz and I'm getting a steady 60 FPS. I think DaveC will be happy as will many others when this goes public! A lot of work has gone into this dynarec from Exophase and myself, so I strongly encourage you to give Exophase some appreciatation by at very least visiting his blog linked in my signature!


Well that is pretty good, improvements of any kind are great. As far as me being happy well kind of but I can't go to 260 MHz wink.gif 240 is tops. Others with L337 GP2Xs that go to 260 and don't mind 15 min. battery life will be happier tongue.gif Still good news though, thanks Exophase for the great work smile.gif

Does this release fix the stuttery sound?
Draken
Stuttery sound was already fixed, the cause of stuttery sound in .9008 was the autoframeskip 4, putting it to manual would fix that.

Also, from Exophase's blog tongue.gif
QUOTE
(well, I only have about 9 days as allotted by zodttd, maybe he'll give me an extension if I need it and have shown good progress though).
skeezix
QUOTE(zodttd @ Mar 26 2007, 01:38 AM) *

Tag team tongue.gif

Skeezix lives! He lives! Thanks for the compliment, and good to see you around here. ;P


Oh, I'm always around, but having just spawned a baby, very busy and underslept smile.gif

Too many friends here to ignore the place, and I'm still plodding along doing my works. Just spending my free time (!!) vegging instead of coding right now, as I'm still in the 'surviving the baby' phase tongue.gif

jeff
DaveC
QUOTE(Draken @ Mar 26 2007, 02:22 PM) *

Stuttery sound was already fixed, the cause of stuttery sound in .9008 was the autoframeskip 4, putting it to manual would fix that.

Also, from Exophase's blog tongue.gif
QUOTE
(well, I only have about 9 days as allotted by zodttd, maybe he'll give me an extension if I need it and have shown good progress though).



I have tried everything to eliminate the stuttery sound in .9008. If I put the frameskip that high it would be unplayably choppy at 240 MHz though.

Why would Zod' only give him 9 days? I would think things like this can't be rushed. I would think Exophase should have as much time as he needs to get it the way he wants it and is happy with it. Kind of odd.
Draken
Odd, games like Metroid and Zelda: Minish Cap work fine for me at 200mhz with manual frameskip 2 with perfect normal sound. (unless there's too much action on the screen, obviously)

As far as I know it was really the autoframeskip that caused the stuttery sound.

Also: apparantly ZodTTD and Exophase agreed on a 2 week period in which Exophase would work on improving Zod's original dynarec. I guess it was meant as a joke that he has only 9 days left.
ste_167
QUOTE(DaveC @ Mar 26 2007, 04:36 PM) *

I have tried everything to eliminate the stuttery sound in .9008. If I put the frameskip that high it would be unplayably choppy at 240 MHz though.


Manual FS2 works fine for me at 240Mhz. Have you tried overclocking using the gpmenu2x application setting? I'm almost certain that you're only really running it at 200Mhz, because I had the same problems.

Try knocking it down to '150Mhz' to see if it runs the same?
starpause
QUOTE(zodttd @ Mar 25 2007, 11:26 PM) *

Ohh I'm going to have to test Sonic Battle now! I forgot about that one!


how did it fare? it's one of the few games i've got a cart and sp around for wink.gif
Exophase
Basically I got zodttd to agree not to touch the code for 2 weeks while I worked on it.

Stuttery sound means it isn't running fullspeed (ie, a "logical" 60fps, although frame skipping may be on), it isn't really a separate issue. There isn't anything that can be done to improve this, if the audio thread has nothing to play it'll have to wait for there to be something from the emulator, and if the emulator isn't running fullspeed it'll eventually fall behind.
Changing from auto to manual frameskip would help simply because the auto frameskip doesn't work correctly right now.

Of course different games and different circumstances will perform differently. A lot of blending on screen or affine transformations (especially with backgrounds or several large sprites) will cause a much greater load. Higher frameskip diminishes said load, of course.

Hopefully by the time the dynarec is more optimized and IWRAM code thrashing is handled more efficiently (some games do this) most games will run fullspeed with high enough frameskip. Improving video render speed is another issue entirely. I don't know if much can be done for the C code to make it faster, at least not in interesting cases (fade performance can probably be improved but they're hardly used). Me and zodttd are going to look at the ASM the compiler generates for a few functions and see if there are any obvious improvements that can be made.
cowai
I'm always smiling reading these posts.. smile.gif
A quick question: Will rewriting some code into arm asm be a huge speed boost? Or is this some super optimized C code that wont get better?

Awesome work, really cool to hear that FF6 is now working/better, as I read some whining about it on some forum...
DaveC
QUOTE(Exophase @ Mar 26 2007, 04:26 PM) *

Stuttery sound means it isn't running fullspeed (ie, a "logical" 60fps, although frame skipping may be on), it isn't really a separate issue. There isn't anything that can be done to improve this, if the audio thread has nothing to play it'll have to wait for there to be something from the emulator, and if the emulator isn't running fullspeed it'll eventually fall behind.
Changing from auto to manual frameskip would help simply because the auto frameskip doesn't work correctly right now.


That makes sense. I guess it is just the way the emu handles the sound or maybe the way the GBA does it's sound then is that true?

I notice that in DrPocket SNES (and some other emus as well) even when the framerate drops in some games the sound will not stutter, it remains pretty consistant. Is that maybe because of a difference in the way the SNES and GBA handle sound?

Thanks again for the great work on this. It is pretty impressive.
purple_goat
So glad to see that the emu hasn't been left alone (as I was afraid of)

If this was a move it would be an action movie/porn
Blah
QUOTE(DaveC @ Mar 26 2007, 10:33 AM) *


I notice that in DrPocket SNES (and some other emus as well) even when the framerate drops in some games the sound will not stutter, it remains pretty consistant. Is that maybe because of a difference in the way the SNES and GBA handle sound?



Since the SNES' sound is done by a dedicated chip, the sound thread can run mostly independant of the CPU. So they gave the sound thread higher priority. It will slow down if the CPU gets bogged down but it will not stutter. This is not possible on the GBA becuase, like the GP32, much of the sound processing is handled by the CPU (though the GP32 is a more extreme case).
Exophase
QUOTE(DaveC @ Mar 26 2007, 05:33 PM) *

QUOTE(Exophase @ Mar 26 2007, 04:26 PM) *

Stuttery sound means it isn't running fullspeed (ie, a "logical" 60fps, although frame skipping may be on), it isn't really a separate issue. There isn't anything that can be done to improve this, if the audio thread has nothing to play it'll have to wait for there to be something from the emulator, and if the emulator isn't running fullspeed it'll eventually fall behind.
Changing from auto to manual frameskip would help simply because the auto frameskip doesn't work correctly right now.


That makes sense. I guess it is just the way the emu handles the sound or maybe the way the GBA does it's sound then is that true?

I notice that in DrPocket SNES (and some other emus as well) even when the framerate drops in some games the sound will not stutter, it remains pretty consistant. Is that maybe because of a difference in the way the SNES and GBA handle sound?

Thanks again for the great work on this. It is pretty impressive.


Yeah, GBA is primarily streaming audio while SNES is purely sequenced audio. However, dropped frames doesn't mean that the emulated speed is below full speed, so to speak. Rather, the frames are dropped to prevent this from happening, so one frame from the game's perspective is still taking as long as it should, and hence everything is synchronized to real time although some frames aren't being rendered. On the SNES video rendering is very expensive, whereas CPU emulation is not nearly as much so (but sound is somewhat) so frame skipping can make a tremendous difference. But keep in mind that every additional frame skipped saves you less and less overall time, and it hits diminishing returns pretty quickly. If you don't hit ideal speed within 4 frames skipped you probably won't ever.

For platforms with sequenced audio, if you don't hit full speed/synchronization with the machine then it's possible for the sound to not stutter, but to play more slowly. On emulators for NES, SNES, Genesis, SMS, PS1, etc it may sound like someone slowed the music down, but the notes themselves will still play at the correct pitches because the sound hardware performs that. The commands to play things will just come at incorrect intervals.
cowai
Exophase: Does the gp2x's arm cpu give us an advantage without virtualisation? Or will the psp have greater advantage in having more registers?

Mario Kart!
Peter R
QUOTE(cowai @ Mar 26 2007, 09:11 PM) *

Exophase: Does the gp2x's arm cpu give us an advantage without virtualisation? Or will the psp have greater advantage in having more registers?

Mario Kart!

I too wonder if ARM --> ARM translation provides a better turn around than ARM --> MIPS?
fusion_power
QUOTE(Exophase @ Mar 26 2007, 09:41 PM) *


Yeah, GBA is primarily streaming audio while SNES is purely sequenced audio. However, dropped frames doesn't mean that the emulated speed is below full speed, so to speak. Rather, the frames are dropped to prevent this from happening, so one frame from the game's perspective is still taking as long as it should, and hence everything is synchronized to real time although some frames aren't being rendered. On the SNES video rendering is very expensive, whereas CPU emulation is not nearly as much so (but sound is somewhat) so frame skipping can make a tremendous difference. But keep in mind that every additional frame skipped saves you less and less overall time, and it hits diminishing returns pretty quickly. If you don't hit ideal speed within 4 frames skipped you probably won't ever.

For platforms with sequenced audio, if you don't hit full speed/synchronization with the machine then it's possible for the sound to not stutter, but to play more slowly. On emulators for NES, SNES, Genesis, SMS, PS1, etc it may sound like someone slowed the music down, but the notes themselves will still play at the correct pitches because the sound hardware performs that. The commands to play things will just come at incorrect intervals.

Yes, try my Metroid Fusion Savegame. In slow Areas, the sound is a little bit broken because of this issue. (I think it's called "Raster effect" what kills the most FPS in GBA games like animated Water whobbling or heat flirring over the whole screen)
When not much happen ingame, FPS increase and Sound is ok. I only tested everything with FS 1 manual, because FS 2 manual is to slow and choppy for my taste (yes, and auto is nearly useless )
But why is there no FPS increase, when I turn Sound OFF? I didn't notice a big difference while playing unlike in other Emulators -Strange.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2009 Invision Power Services, Inc.