New Daedalus Nintendo 64 Emulator coming soon - and with sound?
Strmnnrmn has resurfaced and has some great news for PSP homebrew lovers! An update to the incredible Daedalus Nintendo 64 emulator is on its way - and WITH SOUND! It is rumored that Mario 64 may even run at
full speed! So... without further delay - here's a copy of the blog post from
his site:
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!)