Thursday, November 27, 2008

Yes, I am alive

No, I didn't choke on a mince pie :)

I'm sorry for the lack of updates, both to the blog and to Daedalus. I've been working on Daedalus for about 10 years now, and those that have followed the project from the beginning will know that I have fairly regular periods of 'radio silence' followed by bursts of activity. I have lot of inertia, so once my interest shifts elsewhere it can take a long time to get me back on track. That's just the way I am.

This time around it's because I've been really busy with work. I don't want to go into specifics, but for the past couple of years I've been working on a high profile game, and since January most of my energy has gone into helping to get it finished.

I am unbelievably out of touch with the PSP scene. Recently, Kreationz got in touch to tell me about the progress that has been made with DaedalusX64. I was really pleased to hear that the project was being actively updated, particularly because I have a lot of respect for the people involved. The whole reason for making Daedalus open source was to give people the opportunity to learn from the source code and update it as needed, so it's great for this to be happening.

I can't guarantee that I'll have the time to actively help with DaedalusX64, or even that I'll be able to regularly update this blog. I thought it would be a good idea to give my public backing to DaedalusX64 so that the team can get on with rolling out updates. I probably won't be making a PSP release of Daedalus any time soon.

For what it's worth, I'm currently working on a new port of Daedalus. I'm going to keep the target platform secret for now, but I think it's very exciting. At the very least it means that I'm working on Daedalus again - I'm hoping to keep merging changes from DaedalusX64 back into the Daedalus source, and hopefully provide DaedalusX64 with one or two fixes of my own.

That's all for now. Apologies in advance if the next blog post is in December 2009 :)



jas0nuk said...

Amazing! Thanks for the update, StrmnNrmn.

Josep said...

I knew it! I have been watching this blog almost every time I opened my navigator, just to see if you made a comment. I'm very glad to know you're still here, Strmnnrmn. Looking forward to your next update, whenever it comes!

Alex said...

I'm gonna guess.... Cocoa Touch? :)

Jody said...

good to have you back, dude

Mattias said...

nice to have you back. but actually it is much more nice to have DX64 team these days. you did all the fantastic and hard work before. but now we all hope that DX64 team will get N64 fullspeed on the psp :)

thanx for your contribution strmn!

Gurbinder said...

Glad to see the emulator still active for psp

Elias said...

lol ive checkd this blog every day since u last posted... :P
ur finally back.. even if u dont continue the psp version.. youve done enough for it.. although a bit more wouldnt hurt :P

john said...


i just pulled up, and i saw this post! so check it out

i guess we can kiss the memorial idea good-bye.

@ ELIAS Dude nice post, you beat me!

@ Alex: this is what Elias was talking about.

looking forward to hearing from Strmnnrmn again!

@ Jody thanks for your comment about my drawings, you should totally make a profile on Deviantart, and start posting your stuff!!!! If you do send me an e-mail, or add me as a freiend, and i'm working on a painting of Davy Jones (from pirates of the Caribbean) right now, so i'll post that in a couple of days!!

See Yall Later!!!!!!

(what a happy thanksgiving this

P.S. sorry, i was gonna post this on the other comments for Strmnnrmn's last update, but i forgot my password >_< so it took me like a day to remember it, but i did so it's OK.

@ Jody: seriously you should get a profile on deviantart!

Jody said...

@ John: alright, i'll get a profile. glad to hear a response from you. that Davy Jones painting, I imagine it will own!!! i recently drew Captain Morgan of the band "Alestorm". it's only in pencil though.

see ya at Deviantart.

Anonymous said...

Great news I have been watching this blog everyday for a year I am very happy to finally see an update!

Please keep us informed whether its about Daedalus or anything else!

Consequence_9 said...

If said port is for what I think it is then you are truly a god among men. Either way I can't wait to see what's in store. Thank you for all the work you have put into this project throughout the years, it is certainly not going unappreciated.

atomic said...

Let me guess, the new platform is the Pandora? :D

mbeck said...

I'm glad to hear you're still alive :D I honestly started to think that you had... you know. I'm not too worried about the emulator right now. It seems like it's in good hands, especially now that you have given them your approval. Hope to hear from you again (relatively) soon.

Howard said...

glad to hear from you again. Your blog to me is not only a blog about Daedalus, but also a good tech blog to read.

Like to see more tech post about all perspective about emulation.

Rikki-Tikki-Tavi said...

Mythical System, eh?

Oh please let it be Tx89 Calculators. ;)

C'mon, you can do that!

Slashmole said...

Where can I download this awesome thing? I've gotten several versions of Daedalusbut they never work :( I have an M33 psp slim any help?

HyperHacker said...

Hey, I've been hacking some N64 games and just got into PSP dev, and couldn't help but notice how similar the two systems are. It seems like you could almost virtualize the code on the main CPU, and high-level emulate most everything else on the ME and GPU. I haven't looked at the source, so maybe that's pretty much what you're doing, but if not, it's something to be considered. Especially if the PSP is able to trap accesses to certain memory regions, then you'd be able to use that for virtual memory emulation.

There are also a few hacks I noticed that you might be able to implement. From one of your older posts:
"I use s6 and s7 on the PSP to hold two constants throughout execution. s6 is either 0x80400000 or 0x80800000 depending on whether the N64 being emulated has the Expansion Pak installed. s7 is set to be (emulated_ram_base - 0x80000000). Keeping these values in registers prevents me from using them for caching N64 registers, but the cost is far outweighed by the more streamlined code.
It then adds on the offset (emulated_ram_base - 0x80000000) which gives it the translated address on the psp in a1."

I wonder if you could shave off a cycle or two by starting emulated RAM at a 16MB-aligned address, and using an OR instead of an ADD here. Also, something odd I noticed is that N64 games never seem to touch $K1, except presumably during interrupts - it's always set to 0xAAA, and I can do whatever I want with it. It might help to store one of those values in it, as you wouldn't have to handle any cases where the game is trying to use that register. I wouldn't be surprised if the same is true for $K0.
N64 games seem to follow very strict register usage rules, and will move values from other registers into $A0-$A3 before calling a function, only to have that function move them right back, even when it's not used anywhere else. Being able to detect such cases would let you rewrite the function to just use the original registers, and skip all the copying back and forth. Even if it's called from multiple places, you could potentially detect what registers are going to be copied to $A0-$A3, and just patch it on the fly.
Another crazy idea is if it's possible to use the debug registers as GPRs, then you'd free up more actual GPRs for N64 code.

Finally, if you're willing to employ dirty game-specific hacks, check out the debug version of Zelda. There's a function to stop the audio thread entirely, and doing so makes the entire game run a lot faster. The thread is controlled by a flag and can be turned off and on at will. When audio is disabled, you could find this flag (maybe automatically by examining the code), or just identify which thread is audio and skip it.
In Super Mario 64 there's an even more interesting hack, patching the instruction at 80248154. I really have no idea what this instruction does, but by NOPing it, the game runs quite a bit faster, even on real hardware. Changing the upper halfword to 0x4444 makes it even faster still. It doesn't seem to have any side effects, audio still works normally, etc.

Love what you've done, keep up the good work. :-D

Jeff Wilcox said...

@HyperHacker - That's a very interesting set of ideas!
Additionally, due to the PSP's small screen, I have always been wondering if the rendering distance could automatically be detected and adjusted as a speedhack since the 3D gfx calls are done in semi-standardized display lists. (unless this is ridiculously harder than it sounds)
Also, could all graphic textures be reduced by a factor of 2 or 4 in order to save RAM?

Again, with a small screen such as the PSP's the loss of texture quality and rendering distance would certainly be noticable, but not necessarily unacceptible to folks who prefer better speed to perfect graphics.

Glad you didn't choke on your mince pie StrmnNrmn :)

Kreationz said...

Just want to let everyone know we at the DX64 team are looking into HyperHacker's ideas and some have been tried.

Adam H. said...

Hmm. The port is for the Pandora console I bet lol :)

boypieta said...

do you have any psp games around here?

Cerdric said...

Ha ha ha, at this rate, he won't be posting till December 2010! Ah well, it had such good things going for it at the time...

Kreationz said...
This comment has been removed by the author.
spidercrunch said...

Best gamesite around

Anonymous said...

IS VERY GOOD..............................

Kreationz said...

Other than the last two posts being spam. I'd like to let everyone know that the DX64 team is still in contact with Strmnnrmn, but he been busy with life and he has a very busy one.

Kreationz said...

BTW, he's still alive, but he's just been busy again. I talked to him about 2 weeks ago. (I've been away since then myself)