Thursday, April 05, 2007

R11 Plans

I had planned on posting this update on Monday, but I've spent the last couple of nights catching up on a few games that I've not had chance to play since they were released (Crackdown on the 360 and Afterburner : Black Falcon on the PSP for the curious :)

For R11 I'm hoping to fix the Expansion Pak support for once and for all. Memory is currently very tight, so I need to look at shaving off a few hundered KB here and there. Almost all the memory Daedalus uses is allocated up front - there are very few dynamic allocations at runtime, with the biggest culprit being the texture cache. So for R11 I want to introduce a pooled allocator for the texture cache, which will mean that when it runs out of memory, you just get white textures appearing rather than a hard crash.

The other feature I want to improve in R11 is the way that global settings and per-rom settings are handled. At the moment Daedalus discards any changes to settings that you make when you restart your PSP, and it can be incredibly tedious setting things up every time you run a game. This is quite a small feature to add, but I think it will make the emulator much nicer to use.

Behind the scenes, I want to spend a short while working on some scripts to handle packaging new releases for distribution. Current I do all of this by hand, and it's one of the things I least enjoy about the project. Hopefully, the more automated I can make this, the more frequently I'm likely to release builds :)

I'd like to get all these changes done and release R11 within a couple of weeks. I have a couple of busy weekends coming up, so I'm not going to specify an exact date. You can expect it before May though (I'll try not to be a couple of days late this time :)

R11 is essentially going to be a compatibility release - hopefully the Expansion Pak support will lead to a few more roms running (Majora's Mask being one I've already verified). Looking further ahead, R12 will be back to concentrating on speed (as it happened, R10 achieved a 10-15% speedup without having implemented the majority of the optimisations I had planned :)

-StrmnNrmn

PS Off to Spain again over the Easter bank holiday weekend. Back on Tuesday :)

29 comments:

Jody said...

Have any idea about making an XBOX360 emulator? lol. Glad you're now trying to get games to work. I really can't wait for R12 because of the speed. I can't get enough of the speed. I hope the expansion pak will get S.S.B. to load past the menu. Well, I'll try it out.

XG917 said...

thanx again for the R10 release :D so those optimizations that you were talking about before like, implementing the ME and memory expansion pack will likely be featured in R11? wow man i just love these fast recent releases. keeping me more attatched to my psp. lol

and i hope you have a good time in spain, i too will be visiting spain to see my family, but that is in the summer when i finish my school year. thanx once again, and take care ST

bmd said...

Just want to add my thanks for such great work, and such a great blog. As a former game developer I'm completely amazed at what you've been able to accomplish with such limited hardware.

I was wondering if you could comment on how Daedalus currently uses the media engine. In a previous post you alluded to not using it at all. Wouldn't offloading some processing to that second core garner huge performance increases, or at least present the best opportunity for optimization?

Anonymous said...

Good plans. Thanks for all the hard work Strm.

rocklobser said...

thanks soo much i really wanted compatibility. i do want zelda 2. paper mario. and mario party one or two to run properly. mario pary (both) have many glitches. but your doing an awsome job i think now with fram skip allmost every game can run near (if not) full speed

Anonymous said...

great plans, but I'd personally prefer speed more then compatibility, but either one is good. btw, I played Zelda OoT on R10 yesterday, im very impressed, its near full speed in some places, and runs great.
thanks very much sir!

KingPepper said...

Congratulations on yet another great Update of this N64 Emulator,
Can Not Wait until the day when me two Personal Favorites Work on your Emulator, Mario Kart 64 & Goldeneye.....Hint Hint ;)

But Seriously, its truely Amazing how you have got this to run at all, on this Hardware the PSP....
You are One of the Top Coders on PSP, so please Continue this Project for us all.....
Thanks again, & enjoy your Holiday, you Have Earned it...:)

David Omari said...

Awesome news! Greater compatiblity finally :D PLEASE get Turok working if you can, I can imagine it working rather well with it being one of those first generation n64 games :)

Cooguy said...

Hey whats up. I cam out with a fix for you guys Zelda OOT enjoy the guide!

Malistix said...

Thanks, i hope one day you get it fully working : D

there has been so little homebrew on psp these days, this N64 really shines!

Mario 64 has been great and i got you to thank for it

*kissy*

Unknown said...

I hope you read this StrmnNrmn becuase I want to say thanks for all your hard and amazing work for everything you have done. I wish I was able to understand 1/3 of your work and it's so great your apart of the scene. I love your work and look foward to more releases. I am very excited. I've been testing out since R1 and love it. What an amazing amazing improvements and strides youve done over each release.

Thanks
WD

Morgan said...

Great to hear I hope you can get Diddy Kong Racing, Goldeneye, and Super Smash Brothers in later releases, that is if Goldeneye gets fixed with R11. Anyway always enjoy reading your posts, nice work.

Anonymous said...

Hey StrmnNrmn! Great work on R10, the emulator is coming along very nicely, can't wait to see the day that Zelda:OOT is playable on the psp!

Now on to my main question, you were talking about "memory is tight", what exactly does that mean? System memory (Flash0)? Video Memory? Memory Stick (lol)?

If it IS Flash0, the system memory, it is possible to clean the flash0 and remove some jap texts giving us over 2.5mb more free memory.

Again only IF it is Flash0, you may not want to develop the emu like this because then everyone would HAVE to clean the Flash0 to run it properly, but perhaps your "white textures" implementation would fix that, not enough memory = free some memory ;). Or perhaps you could have a regular version and then have something like an "expansion pack edition" which would require more free Flash0 for added performance.

Sorry for the novel, post back, thanks.

Unknown said...

We love ya dud3!
:-D

god0fgod said...

I still think compatibility is very important and i'm glad you our working on that now. However I would think it best for you not to work on speed again until some popular N64 games are working that everyone wants. Great work though.

Thunderstrike said...

awesome, i love hearing this updates.

can i ask one more time? if possible, i would love it if you added save states or at least saving to loz:oot! Hope you consider!

also, how fast is majoras mask running?

Unknown said...

your workflow is AMAZING , your doing very well, I have no words to say thank you, saludos desde españa ;-)

Josué said...

Very interesting post.

Thanks !!!!
And... Bienvenido a España ;-)

Exophase said...

I was wondering if you could display vertical blank interrupts per second in addition to display list updates, or just a percentage (scaled from 60/50Hz) so people know what percentage of fullspeed the game is running at. Would be useful since games don't all run at the same framerate, and people don't really know how close to fullspeed a game is running from the numbers reported alone. For reference, Mario 64 is said to be 30fps, Zelda 20fps, F-Zero X 60fps, and Goldeneye variable load (so it'll render the screen as much as it can, and tie timing to another metric)

Doesn't make much real difference to me but it'd put an end to some of the questions people have about framerate.

Rodrigo said...

well.. i found some bugs, and will report here:

- in Paper Mario the game Crashes when I try to create a new game. but in game runs good (looking the in-game graphics demo at title screen)

- F-zero: Lots of textures missing or scrambled... I can only play the DEATH RACE mode(other modes crashes) and the first screen is strangely sloooow.... but in game is really fast (arround 40 ~ 55fps with sound, and almost fullspeed without).

- Mario Kart 64 has some problems with the car sprites...


- when there are lots os billboards or animated sprites being rendered the things slows a lot (in mario 64 out of castle, when birds start to fly, or water splashs in banjo kazooie for example).


bye :)

stinky_1 said...

I am wondering if one of your builds can add support to shut off music in the games, but keep the sounds that we need? I would like to run with sounds, but the slowdowns can still get pretty bad in some games. i would think if the music was off we could get some speed increase, but not have to lose the other sounds.

Just an idea. Otherwise, good job so far!

Unknown said...

Awesome. This is exactly what I suggested for R11 and R12.

If you hadn't noticed, in Super Mario 64, it slows down a lot while in paintings. I hope you can fix this by R12.

Unknown said...

Personally i wont consider going for the extansion pack for majors mask at example. But first let gamers like ocarina of time work propperly because it dont :P But anywayez im verry happy with this release

keep up the good work!

davetehpwner_whoisanoob said...

First off, You Rule!
Secondly, i must request that you fix the situation that occurs when you turn off the psp while playing the game. It just totally gets retarded.

Other than that, this emulator is just damn sexy!

Hiei- said...

I read from a snes coder of an emulator on ds the easiest game to fixed was the one which don't work at all (to make them run), I don't know if it's the same for all coders/emu, but if it can help, I did a few tested and listed some if it can help later :

Games which don't run at all (black screen)

- Excitebike 64 (U) [!]
- GoldenEye 007 (U) [!] : freezing the psp on the settings screen (save type, etc...) once I push start to run the rom o_o
- Mario Kart 64 (U) [!]
- Pokemon Stadium (E) [!]

(of the 31 games I tested)

I tested them twice, without sound then with sound to see if sometimes the miss of sound was causing the problem.

(Some others were not really working but the sound was here so I don't counted them as "not working", as it seems to be a texture or graphic problem, not a loading problem)

By the way, congratulations for the emu. Without sound nor frameskip enabled, Super Mario 64 runs great (a bit of speed is missing sometimes, but with some optimisations you planned to do, it will probably fix it. Sometimes though, it seems Mario runs too fast, wonder if I don't have a good memory of the original game or if the game runs really a bit fast sometimes).

Another thing, when I enable the "display fps" option, Super Mario 64 is completely bugged o_o ? (missing lot of textures in the menu screens, huge clipping).

To finish, so games created a sub-directory with .txt file named missing_mux.txt, what is it? Debugging log?

To jody : Super Smash Bros (if it's what you mean by "S.S.B." don't use the expansion pack, so it'll change nothing. Games I know which are using it are :

- Donkey Kong 64 (required)
- Perfect Dark (Optionnal, for Cooperative Mode by example)
- The Legend of Zelda - Majora's Mask (required)
- Vigilitante 8 : 2nd offense (if I remember right, which would be optionnal if my memory don't fail)

There's probably a few more but I'm sure S.S.B is not one of them (I got the expansion pack with Donkey Kong 64 back in those years, and I was already playing S.S.B since a while, without it).

BrendanL said...

Jody, there's no way there is going to be an Xbox 360 emulator for the PSP. The PSP isn't as strong as the PS2 either. Okay. You can make an Xbox 360 emulator for the PSP, but that'd be stupid. If there is one, you wouldn't even be able to play it at 1 fps. They don't even have Xbox 360 emulators out for the computer yet.

Seelbreaker said...

Well, it would be damn good if super Smash Brothers would be playable on your Emulator, because when you want to start it, it freezes after you press the "start" button on the title.

By the Way, is there a Compatibilty list existing?

The Games which i tested as long and won't play are:

Mario Part 1 - 3
Mario Tennis 64
Mario Golf 64
F-Zero X
Super Smash Brothers
Diddy Kong Racing

I haven't testet Mario Kart yet but i will say it once i've got back home ;)

weemanextreeme said...

Keep up the good work Strmnrmn. For your next release I'd like you to include 5 things:

- the ability to save your settings
- the ability to create custom keymappings within the emulator
- more speed (R10 was a good speedup, but there's still room for improvement :)
- more compatability (It would be awful nice to be playing Super Smash Bros, Wipeout 64, and several other more obscure titles by now)
- FIXES TO THE FREQUENT 2D GRAPHICAL GLITCHES (in such games as Doom 64, Duke Nukem 64, MK Trilogy and the menus + text of several other games)

Thanx for reading, take these points into consideration, and again, keep up teh good work!!!

Swifty 12 said...

I just wanted to say thet if you ever get Super Smash Bros running at full speed (i know that may be impossible) you will be my favorite person ever