Thursday, February 08, 2007

Behold! An update!

Wow, it's been a long time since the last update. A really long time. How did that happen?

I've always found it quite hard to find the time to update the blog. Usually when I have some free time in the evenings (that's free time spent doing things other than eating, socialising, and getting stuff ready for work), the choices I have are:
  • Do some new development on Daedalus
  • Play games/watch TV/relax
  • Reply to a few emails/comments, post a new entry here
Unfortunately over the past half year or so the first two bullet points have won out. So, apologies for neglecting the 'outside world' for so long. On the plus side, the existance of the first bullet points means that I have lots of exciting new developments to talk about over the next few days :)

I'm going to finish off this reintroduction with a broad overview of some of the stuff I've been working on. This is all stuff that will be present in R9, which I'd like to release this month.

  • Added support for RGBA 4444 and 5551 textures, saving a bunch of memory in the front end.
  • Tidied up all the texture conversion code, fixing a few bugs in the process
  • Fixed the width/height of FillRect calls in 1 and 2 cycle mode (fixed a few small graphical issues)
  • Fixed a blending bug (fixed a few small graphical issues)
  • Use 16-bit textures on the PSP to represent 16-bit N64 textures. Saves time converting, saves memory, and faster rendering
  • Added mirrored texture support (this fixes lots of small graphical glitches)
  • Fixed a LoadTile bug, allowing a couple of hacks to be removed (this also fixes various small graphical glitches)
  • Added some new blend modes for various roms
  • Fixed the Tri2 command for F3DLX microcodes
  • Fixed a bug in busy-wait detection (this wasn't working correctly with dynarec code, net result is a small speedup)
  • Fixed a few dynarec stability issues (relating to exceptions occuring mid-trace)
  • Added audio support :)
  • Added the ability to dump textures (developer builds only at the moment)
  • Fixed screenshots. Again.
  • Implemented cmp.s, cvt.s, cvt.w, mtc1, mfc1, bc1f, bc1t, j, cfc1, ctc1, daddu, trunc.w.s, bc1t, bc1f, bc1tl, bcifl, bnel, beql, blezl, bgtzl, bltzl, blezl in dynarec (this gives a decent speedup)
  • Avoid setting the branch delay flag and current PC in generated dynarec code unless absolutely necessary (this gives another small speedup)
  • Much better memory access handling in dynamically recompiled code (this gives a BIG speedup :)
  • Use a second code buffer for generated dynarec code, to avoid polluting the instruction cache (this gives another small speedup)
  • Further improve the memory access handling in generated dynarec code (another small speedup)
  • Fix register usage analysis for lwc1/swc1/mfc1/mtc1 which was preventing base registers used in these instructions from being cached (another small speedup)
  • Have compensation blocks restore nobbled registers, so on-trace code does't need to reload (another small speedup)

There's quite a lot in that list, so I highlighted the two most significant points. In summary R9 will be much faster, with audio support. I'll write a bit more about these changes in particular over the next few days (promise!)



tsurumaru said...

People nowadays need to get some patience. LOL

Good to hear from you.

Samuel said...

I can't wait!

You rock, StrmnNrmn

BHSPitMonkey said...

First post, woot.

Zomg you're back. Congratulations on the newer accomplishments, glad to see you didn't fade away from us. I'm highly anticipating R9 :)

Anonymous said...

First of all Congratulations

Secondly well :)

I will continue contributing to the spiff up blend modes :)

gunntims0103 said...

DCEmu loves and has been awaiting a update from you for a while. As a moderator i would like to fully give thanks to all you have done. I hope your running on CF 3.30'OE-A on your psp :).

Thanks again

-- gunntims0103

RyanMWolfe said...

Srry strnrm (and everyone else), but you have to admit it did seem like it was over.

MonkeyMan said...

Yay strmnrmn its so good to see you back

i swear i even hold you in more esteem than dark alex (i love n64) it make me jump with joy to see you back at it again

and dont let anyone bother you or therye gonna have to answer to me :D

i wish i could be able to code things like this, go strmnrmn youre the best!

(im 12 sorry if i sound to immature or something)

gunntims0103 said...

ey strnrm, if you've been kept out of the psp homebrew loop let me tell you that a coder by the name of dark_Alex has created a program called popstation to convert ps1 games to play on the psp "FULL SPEED". If you need any help setting it up, il be glad to help :)

Anyways yea so now that ps1 is done, im hoping that n64 will be realized full speed as well. :)

Thanks for all the hard work strnrm


Andysan said...

Yeah! Thanks StrmnNrmn, good to hear that you are well and that we have an exciting new release to look forward too.

Thanks for your continued efforts!

Andy said...

Glad to see you're back! Thanks a lot for doing this for us!

Mason said...

Great to hear from you man! Can't wait for the next release. Keep up the great work.

Dan said...

WOW!!! I thought this project was dead after new years past without any news... NICE

Somebody find this guy and give him the "Best Coder in the World Medal"... NICCCCE

PS1 emulation is getting a little old by now, so this should be great!

Poohter said...

you rox my sox strmnnrmn! im glad you updated!

Reuben said...

I wonder if the sound support will be handled by the PSP's Media Engine... If it does, then it won't cause slowdown!
Keep up the great work StrmnNrmn! I await your deeper explanation of the changes.

Sroon said...

YESSS Wally just updated me:)
cant wait to work on the compat list:)

thank you StrmnNrmn for your HARD HARD work!:)

Kramer said...

Welcome Back StrmnNrmn:)

Keep up the great work, you have no idea how much the PSP scene is going crazy right now:)

Shadowblind said...

Strmnrm...thanks. I hope you've heard, but DCEmu has gotten a little restless over the PSX emu, really wanting an N64 emu update. To that end, I think I speak for most PSP gamers out there when I say:

Thanks :)

Gilead said...

Say, I don't suppose you have time to talk ever? I want to pick your brain at a few dynarec things (and your code is a labyrinth, no offense)

Imtiaz said...

Great job! Wow, never thought this would happen. Keep improving, we are behind you!

skater9269 said...

yes dude you are my freaking hero I was pretty depressed for a while kept coming here every day hoping you came back your the reason I have picked up programming and now I have chosen it as most likely my career!! plus this is gonna be freaking sweet. I am so excited.

Zach said...

AtariFreek here, great work do far! Good luck with R9 and i hope that it comes out the way you want it.

Morgan said...

I never gave up, I was very close though but in the back of my head I always knew. Thanks for returning man it's awesome to hear you comeback. I thought the best comeback person of the year for me was my favorite player Brett Favre of my favorite team the Packers (NFL), but you are ranking right next to him! Thanks alot for posting you really made me happy, please release that thing this month, this is awesome!!!!

ps. For questions does SSB, Goldeneye, and Diddy Kong Racing work in R9?

narles said...

Welcome back Strmnnrmn! I never lost out hope in you. Can't wait to see what amazing new achievements you have up your sleeve.

Andrew said...


The only reason I still have a PSP is to see what people like you can pull off, and from a sort of outsider-in perspective, believe me:

You're setting the standard.

joshisposer said...

Thank you so much. My patience finally paid off and when i almost was gonna say you left without saying good bye.

Thank you strmnnrmn and i hope this comes out in less than 2-3 weeks (though i am not rushing success).

I can't wait for almost full speed and sound support on my psp with N64!

Malk said...

@ RyanMWolfe, I never thought it was over, I thought he deserved a break, 8 releases of a N64 Emulator for PSP :P

infernomax said...

Great to have you back man, i was worried about you, thankyou so much for the update, Keep well and good luck

Nick said...

Congrats! cant wait for the realease. keep up the great work!

PsypheR said...

I am very glad to see you back, and seemingly healthy at that. We're all looking forward to your wonderful R9 release, and I thank you for updating us - it's all a priviledge for us to feast upon your creation. Your MIA status had me asking "Where's StrmnNrmn?" over and over. Well I now know you're alive and well.

Thanks again!

Scott said...

patience is a virtue. i think it keeps all the steam in your announcement when you wait a while to let everyone know.

just like the nintendo you are trying to emulate - underpromise/overdeliver.

i hope you understand just how important your project is to a lot of people. there are certain games i thought i would never be able to play again, since my n64 passed on.

I'm just glad all the people shouting "zomg the project is dead" and "come on release R9, hurry!" didnt deter you from your vision.

these people have not yet experienced software development from the "fun" side, and their comments should be taken with a grain of salt the size of Montana.

again, your work is simply PHENOMENAL - and you should be more than proud of that.

Jacob said...

I'm so excited to see an update. Thanks for all your work on this :D

Roy Chang said...

great ! can't wait ! :)

Anonymous said...

This is GREAT to hear. Thanks very much strmnnrnmn

Nico said...

OMG! He's back!

Great to hear from you StrmnNrmn, you have me once again illusionated with your nexxt release.


Thanks man!

frangin2003 said...

After reading the changelog, it seems like you'll better never again update this blog, giving you time to improve daedalus. :)

Just kidding, good to hear you again, congrats for all your efforts and greetings from Paris.

stee said...

Welcome back this sounds like a big update :D

Anonymous said...

I can't wait for the next (technical, I hope) post !

StrmnNrmn said...

Hi Reuben. Media Engine support is something I really want to investigate, but I have't started looking into it yet. I think it's a perfect candidate for the audio processing though. I'll talk a bit more about the current audio support over the weekend.

StrmnNrmn said...

gilead: I think by its very nature dynarec code is very complex and hard to understand :) The current system is a lot easier to follow than the original version!

Daedalus' dynarec is based on the Dynamo system (referenced in a paper on this post), so you might want to read up on that to help understand what's going on at a high level. Feel free to drop me an email if there's anything specific you want to talk about.

Zodionic said...

This is great! the homebrew scene just got a brilliant boost, how advanced will the sound support be? what avarage fps can we expect for mario 64? are any other games such as goldeneye compatable?
im sorry if i sound rude but i'm sure alot of us woulkd like a little less technical information. THANKS STRMNNRMN!!!

StrmnNrmn said...

zodionic: I'll post a bit about the audio support and what to expect (and not expect) over the weekend.

I'm going to put together a detailed post showing a comparision of the framerate between R8 and R9, so I'm afraid you'll have to wait for that too :)

As for compatibility I have made a couple of bug fixes that will help in some cases, but in general I've been focusing on speed over the past few months so don't expect too much here this release.

As for technical discussion, I realise that this blog appears to two different groups of people - those who are just interested in news on the emulator, and those who are interested in all the techical details. To that end I'm going to try to keep a decent balance between posts which appeal to both audiences. We'll see how it goes.

N64-Lover said...

Oops! Posted to the wrong section.Lol
With or without the update, glad to see you're well.
You have been missed!

Anonymous said...

Hey StrmnNrmn, i can finish expansion pack for you if you like, ill do it once R9 is released, really great to here from you bro!

Antonio said...

Wonderfull!!!! One of the huge things I liked on the psp was the homebrew, and the existence of a N64 emulator for it is soooooooo BIG. Congratulations for your hard work and be aware many many people are like me, looking forward to hear from you and your improvements in this emulator.

Thanks a lot!!!

Travis said...

Hey, now that you're back, I can say that I finally beat Super Mario64 on R8! I beat it a few months ago, but I wanted the blog to be reopenned and upspammed so I could dub your emulator PLAYABLE as of R8!

Nick said...

Hey Norman, you probably don't remember me because it's been a while.

Anyways, it's really good to see you back up in the emulation scene again. The GBA and N64 seem to be the best emulators out there, and since you are the biggest N64 Emulator creator, that means it's a good this. ;D

Any who, I'm just really glad to see you back and updating again. Keep up the great work SN!


FLX said...

Great to see you're back!
Big fan of your work! you make the impossible, possible.

Artemis said...

Good to see you back. I believed you were still here. And Audio support, WHOO!

Morgan said...

StrmnNrmn I remember you talking about an in-game menu like other emulators for R9, is this still goign to be a new feature in R9? And if so what would it look like, I'm happy with the one you have now because I use the green Pochi Style icons and backgrounds for your emulator.

Mario Kart God said...

I'm so glad your back and we all are having a reunion! Can't wait to play Mario Kart!!!!

PS: This will work on all of Dark-Alex's custom firmwares, right.

SANiK said...

Hopefully the Animal Crossing N64 game works now with all the fixes =O

Chaz said...

YESSSSS OMFG I had almost lost faith.
All i cant say is thank you.

Childress said...


I can't wait to see the release. Any possibility of a quick video of your awesome improvements?

RyanMWolfe said...

CONGRATS STRNRM you are going to do the impossible by creating N64 EMU on PSP everyone i talk to say's it is technologically impossible, but with a great coder like you and the media engine anything is possible

Lodis said...

This is excellent news and it is another reason why I am proud and privileged to be a part of this scene. Homebrew has made the Psp more than I ever imagined any handheld could be and I simply cannot wait for R9. If I am honest, I thought the project had been abandoned but I am glad to see I was completely wrong!!

Anonymous said...

i love you strmnnrmn

Mario Kart God said...

A video would be sweet!

Anonymous said...

Hey StrmnNrmn,

Few questions:

Will blendmodes still need to be added? I dont mind doing this and passing them on to you when the GFX are right.

Would be nice to see you on MSN again for a bit of a chat (or at least writing an email i guess).

Finally is there expansion pack support yet?

I will be on later on its 4:45pm now I will be on in 2 hours for MSN if you wish.

Sean said...

All 1.5 Homebrew work on custom f/w so yes this will work. You just have to put all 1.5 homebrew into the GAME150 folder if you haven't touched anything in the Recovery Menu and you are using any sort of CF

Achillies_Last_Stand said...

man i cant wait to play star wars episode one racer... just hope to god that it works when the time comes

thank you strmnnrmn!

skater9269 said...

I believe that your fixing of the Tri2 in the F3DLX is what fixed the mario kart 64 glitchiness