Tuesday, May 15, 2007

Dynarec Fixes

In the previous update I mentioned that the dynarec wasn't working with Goldeneye:

...I can still only get the rom running with dynarec disabled on the PSP, so the framerate is currently just 6-7 fps. Interestingly it runs fine with dynarec on the PC with the same set of changes, so this indicates a bug somewhere in the PSP dynarec implementation.


I've spent a couple of evenings investigating this problem, and I've finally had a bit of luck in determining the root cause. As I suspected it was due to a bug in the PSP dynarec implementation - it turns out that I was fiddling addresses to compensate for the different endianness of the PSP twice (essentially having the same effect as not compensating in the first place).

The fix was very easy to implement (just a single line of code). It's quite a significant bug, so I'm hoping that it will fix dynarec issues with a few other roms too. Unfortunately it looks like the bug which is preventing dynarec working with Super Smash Bros. is a different issue, so I'll have to spend some more time investigating that.

I'm pleased to say that Goldeneye is now running fine with dynarec, so it now boots and runs the intro sequence very quickly. Although the intro and menu run at around 30-60fps, in-game is still very slow (around 5-8fps) so I need to profile this and see what's going on.

As I've hinted above, the next job is to have a look why dynarec is causing Super Smash Bros to hang. A cursory look revealed that it's still broken even when I disable most of the native code generation and directly call the interpretive instruction handlers from the compiled fragment. Because of this I think the problem has something to do with how traces are selected and the resulting fragments are linked together. I'll know more later in the week.

-StrmnNrmn

21 comments:

Morgan said...

Great, glad to see you now have Goldeneye ready to just be updated on speed, now that the dynarec is working. I'm sure that the SSB issue is probably something small and stupid since it doesn't matter when you disable most of the settings. Good luck and I hope you look into the Diddy Kong Racing issues please, thanks R12 will be amazing as usual!

Jody said...

Man! All these crappy bugs. I hope you bought a lot of emulator pesticides.

Unknown said...

I love to hear your update news i have your rss feed on my psp and computer just to see what you've made progress in. Keep it coming everyone is looking forward to the next update more and more every day

TrotterZ said...

Wow, great job so far. One of the best apps for the psp!

Unknown said...

I love these constant updates. Thanks for all the informative info u keep posting about your progress.

roelandb said...

how about making indiana jones, turok or revolt work? does this bug fix any of them ?

Steve P said...

I'm just kinda curious: How does dynarec work, basically?

It might help understand some of your dev blogs.

googhis said...

Hey StrmnNrmn.
Keep up the good work and all that.
Anyways, although I appreciate all that you do, I was wondering why there haven't been any new developments in The Legend of Zelda : Ocarina of Time in a while? Besides for Mario and Goldeneye, this is arguably the most influential on the n64, or any system for that matter. I know that you are very busy, but I think that legions of gamers stand behind me in saying that this is we want for r13.
Thank you.

Unknown said...

Good job.
When are you going to release R12 by?

Unknown said...

Hello again... In the past days I asked you about if you can focus on Zelda (Ocarina and M. Mask), well I'll ask you again, why don't you focus on these two games?? I already tested on the last version of daedalus the ocarina of time and the game runs at a good speed, but there's a problem in the menu (it's too slow to open) and when you enter in the shops, the screen is green and I can't see nothing. Do you think that in a future version of Daedalus this problem can be solved??

That's all, and congratulations by your excellent work...

Anonymous said...

"I was wondering why there haven't been any new developments in The Legend of Zelda : Ocarina of Time in a while? Besides for Mario and Goldeneye, this is arguably the most influential on the n64, or any system for that matter."

Don't forget Paper Mario!!!

Anonymous said...

StrmnNrmn can focus on what he wants :P

Its his emulator after all (Even though he's not fixing what he had planned on his list) ;) Doesnt mean he isnt going to fix those games immediately.

If you want to play these games now, go play them on your N64 while you wait.

Wally

P.S I'd like to see revolt work too :/

Grant Johnson said...

Dude, I love your work, the more I see your progress the more it makes me think you'll be up there with the greats in emulation.

I do have to agree some of these other guys, and no rush what-so-ever, but if I could put in a request for any game out there to work better it would be the zelda games. I seen in the past that you took your audience's suggestions on what to focus on. After you've made your progress on SSB and Goldeneye, I hope your next focus will be on zelda. And great job so far by the way.

peterkmet said...

Hello there,

i have been following daedalus updates since long time ago on PC version, it is very interesting to me to read about all technical issues that you have to handling to squeeze N64 emu on PSP.

thanks for updates

PXNoname said...

I'm excited with how good OOT looked in r11, I may never own another portable, or even buy another umd when it plays 100% :) and SSB and Goldeneye running better in r12 is great news!
Thanks for daedalus and the constant updates on here, I check whenever I think about it hoping for the new release :D

Unknown said...

Is there a Daedalus for PC available too ?

Unknown said...

I really hope goldeneye will work well! It is my favorite game ever!

afx237v7 said...

Hey StrmnNrmn,

thanks again for keeping us up to date on your work, even though i dont entiely understand whats involved, i like to read about it non the less. your doing a really great job on this project and i cant thank you enough for all the time and effot your putting in. very much looking foreward to your next release! cant wait to give golden eye a go, at whatever frame rate . afx

Unknown said...

I know you may be busy with SSB and golden eye, but could you fix paper mario, it crashes whenever you choose the file you want to play. thx, and keep up the good work with R12!

Miguel said...

Keep up the good work man, I'm really liking R11. I only have 1 request which would just explode the emulator.... a USF player =D!

GmDude66 said...

Please update with some more technical info :D