Help - Search - Members - Calendar
Full Version: Daedalus R10 Optimisation Progress - N64 Emu for PSP News
Console Spot Forums > News Zone > Latest PSP News
Harry1™
I didn't mean to leave it quite so long since last weekend's update, but I've been working hard on a number of optmisations for R10. Oddly enough these are mostly new issues that I've found - most of them don't exist in the list of tasks I came up with a couple of weeks ago. I think that shows how much scope there is for optimising Daedalus!

Firstly, I finally managed to get Daedalus compiling with GCC's '-O3' setting. This flag turns on all of the optimisations that GCC provides. When I've tried to enable this flag in the past I've had numerous strange crashes and odd behaviour, so all releases of Daedalus to date have been compiled with -O1.

I updated my local installation of the PSPSDK last weekend and decided to try the -O3 setting again. I was pleased to find that Daedalus ran without crashing, but there was still some odd behaviour which I eventually tracked down to my use of the famous InvSqrt function. You can read a bit more about my findings on the pspdev forums.

Enabling -O3 tends to slightly increase the code size (the EBOOT.PBP has increased from around 850KB to 900KB), but the speedup is quite noticable - my estimate is that Daedalus runs around 5% faster with -O3 over -O1.

As a result of the thread I started on the pspdev forums, hlide and Raphael both came up with some great suggestions for how I could optimise my use of the VFPU.

When I originally wrote the VFPU code for TnL and clipping there were still many undocumented/unsupported functions. A few months down the line and hlide and co have discovered a couple of instructions which are perfect for my needs - namely vuc2i and vc2i. These two functions take a 32-bit value comprising of 4 (un)signed 8-bit chars and unpack them into a vector of 4 32-bit fixed point numbers. It turns out that these instructions are perfect for converting the N64's packed colour and normal values into a format I can use in the VFPU code.

The various VFPU tweaks I've made have given Daedalus another 5% or so speedup.

The final set of changes I've been working on this week have been to do with how I handle certain blend modes. Some of the N64 blend modes are too complex for the PSP to deal with precisely, so I have a large table of 'override' blend modes which allow me to make as good an approximation of the N64 mode as possible. It turned out that looking up these blend modes was very expensive, so I've rewritten how this is handled to make it more efficient. The end result is another small speedup.

Overall these three changes give a combined 10-15% speedup on the various games I've tested, although there are roms that lie outside this range (some show an even greater speedup while others are more or less unaffected by the changes).

There's still quite a lot more in the way of optimisations that I want to get in for Daedalus R10 (mostly stuff I mentioned earlier) so hopefully these numbers will improve even further over the next couple of weeks.

-StrmnNrmn

Via StrmnNrmn
adw888
Sounds like StrmnNrmn is making really good progress with Daedalus, I might actually try R10.
And it's good to see that the unofficial release hasn't discouraged him.
patotheduck
i cant wait for it-1nce sorted theres no point in the ds HAHAHA
TORANA
Hopefully not long till it is out!
How is the game compatibility going though?
I want to play Zelda and Perfect Dark!
I can't be bothered getting my N64 out of the shed!
fjboy01
does ne1 kno where i can download Goldeneye 007 and will i be able to play multi player with two psp
NyghtcrawleR
No to the multiplayer. Ad-Hoc isnt enabled yet and probably wont be for awhile if at all. The emulator needs to be faster for that to be enabled I think. Cant wait to see how fast this one runs though.
phoenixlonestar
Looking forward to this big time. Gave R9 a try a few days ago, and found most of the good stuff I wanted to play to be a bit too choppy for my liking. Fingers crossed eh? wink.gif
Twisted3313
so lets get all the games that work the program

Mario 64 = works

smash bros = dont work

southpark = dont work

help me out here
Enkei Xpress
I'm really looking forwad to this next release from this amazing developer. smile.gif
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-2008 Invision Power Services, Inc.