Friday, August 25, 2006

Something for the weekend - R8

I got back from my trip yesterday and I've spent a few hours today putting together the final changes for Daedalus PSP R8.

You can grab the latest files from SourceForge.

Here's the changelist:



[^] Replaced all uses of sceCtrlReadBufferPositive with sceCtrlPeekBufferPositive.
[^] Various known value optimisations for the dynamic recompilation engine.
[^] Various texture cache optimisations and rendering optimisations.
[+] Implemented a new clipping method which is more efficient and gives better results.
[-] Removed 'tesselate large triangles' setting.
[+] Added option to reset emulator to the main menu.
[^] No longer use index buffers for rendering.
[^] Implement matrix multiplication using VFPU.
[^] Implement vertex transform and lighting code using VFPU.
[^] Implement clipping code using VFPU.
[^] Minor AddTri optimisations.
[^] Free background and font textures while emulator is running to free VRAM.
[!] Fixed bug in default controller config (c-down and dpad-down were broken)



It should be pretty obvious that most of the changes in R8 are optimisations. This build is significantly faster than R7, which is a significant achievement considering how much R7 had achieved in this area. Here's an updated view of the framerate table I introduced a couple of months ago and updated recently:














SceneR4 fpsR5 fpsR7-beta fpsR8 fps
Mario Head3688
Mario Main Menu14253038
Mario Peach Letter6-7111318
Mario Flyby (under bridge)6101217
Mario In Game5-691115
Mario Kart Nintendo logo10232435
Mario Kart Flag6111316
Mario Kart Menu7111314
Zelda Nintendo Logo2023?70
Zelda Start Menu2-34?8
Zelda Main Menu1013?40


I think the numbers speak for themselves. What's particularly impressive is that the R8 results are so high, despite having the new clipping code enabled by default. By implementing the triangle clipping code and the transform and lighting code using the PSP's VFPU I've managed to keep the additional cost to a minimum.

With the previous release, I also mentioned a list of things I had planned for R8. I decided to put them on hold while I pursued the various optimisations in R8, so I'll be looking at working on them for the next release.

Have fun - I'm going to wade through the past couple of weeks worth of emails that have built up while I've been putting this build together :)



-StrmnNrmn

95 comments:

Urkel said...

w00t 1st comment.

anyways, this is great strmnnrmn, I cant wait for R9, I want to see how fast it will go, You have definitly defeated the impossible by making this emulator actually speed friendly and playable. I hope to see an amazing speedup this release.

PS. When will Goldeneye be playable or be able to boot?

StrmnNrmn said...

Thanks urkel. I'll take a look at goldeneye for R9, along with some of the various framerate glitches I've been seeing (MarioKart, Tetrisphere, Banjo Kazooie to name a few).

Paulnpoosy said...

Thank you wreggy!( O ) ( O )
StrmnNmn this is really faaaast!
lot of games are nice and playable now!

Paulnpoosy said...

oh and Norm, could u plz get the expansion pack working? thanks for your time!

Paulnpoosy said...

I see in games that for textures theres only half of it!?!?
like in mario the star that opens the head part of the game is half a star and sum textures are only half too i u understan what im saying!
and since Zelda iz playable could you get the save for Zelda working plz?!?
thanks( O ) ( O )

Corbin said...

This is just an assumtion but:

It's obvious that the ROMs larger in filesize are slower than the ROMs smaller in filesize.

Now, I don't know the actual workings of R8 which is why I say this is an assumtion but is it possible that you're loading as much of the ROM as possible into memory rather than loading it off the memory stick?

It's like if your PC at home can handle a decent game and you open up 4 of them. Even if you're not actualy playing the others, your PC is too slow to play the one that you actualy are trying to play. So after clearing the unneeded ones out of memory and simply having them on the harddrive, it paves way for a faster game.

Of course, this is a complete assumtion and you probably already did this and I'm really stupid =]

Nice work anyways. I actualy noticed R8 running faster on mario kart and I noticed a bug fix. When the match first started on R7, it looked like everyone was driving in backwards but when R8 was released, it isn't present at all.

Corbin said...

Also, sroon, there's no need to overload him with "thanks but can you do this for me? and this? and i'd appreciate it if you did this...and this..."

skater9269 said...

rom parts of it are full speed and when it hits 20fps in mario on daedalus in game that is full speed because of the way daedalus checks for fps If i am correct so I would reccomend it to anyone with a psp because it is a truley great emulator that is getting better and better. btw strmn when I get one of your realeases I usually add my missing mux files to the psprender code but i cant find the place to do so in this one did you change where to put them at ? Ill try again.

skater9269 said...

I see you made a new file called blend modes cool thanks strmn.

Corbin said...

Everyone, shut up and stop begging for goldeneye. Goldeneye isn't the fastest game on PC emulators, you know.

skater9269 said...

hey strmn i just noticed you said that you hoped that setting the alpha refrence to 1 so that it doesnt render transparent pixels doesnt fu*k anything up well does this not effect translucent as well thanks.

Disturbd1 said...

question: When will the missing textures be added into the emulator?... Just wondering cuz games like Forsaken 64 go near full speed (~27-29 fps) but the intro and main menus get the purple and black textures.... Other than that, the ingame has no missing mux...THX

skater9269 said...
This comment has been removed by a blog administrator.
Michael Millet said...
This comment has been removed by a blog administrator.
Michael Millet said...

Hey Strmnrmn.
In R9, i suggest that you put a speed limit on 25 fps,
Because i got 29.91 fps in one of the castle corridors,
in Super Mario64.

And thank´s by the way!

skater9269 said...

ryan wolfe if it was getting 23-30 fps all the time and you wanted 20 then a fps limiter would fix that i believe

Morgan said...

People StrmnNrmn already plans to use the media engine for sound support. So please sto suggesting it, please. StrmnNrmn perfect graphics and great speed, R8 has really impressed me, great work!

Soop said...

I'm getting really excited about this. I've never played Mario although I've always wanted to, but I do have OOT.
Thanks Strmnnrmn.
BTW, the FPS limiter is a good idea. (isn't 20fps full speed on N64?)

Mario Kart God said...

Guys, I might get hit by hurricane ernesto in the next couple of days. So if I am not on, I probably lost power.

Kasumi said...
This comment has been removed by a blog administrator.
Kasumi said...

Hope it doesn't hit there and that you end up fine, Mario Kart God.

My only complaints are basically about the joystick... Personally I think it's a little sensitive. I'm sure others won't agree with me, but I'd like to see a dead zone setting.

On that note I don't much like the rom selection screen using the joystick. While the d-pad can be used, my joystick tends to center slightly down. So when I press up on the d-pad the selection goes back down. I can only really select the rom on the bottom unless I mess with the joystick so it doesn't move it when I'm using the d-pad. And when I DO use just the joystick it goes through the list fairly (TOO) quickly.

Also I'd like to be able to map the joystick to a button (and vice versa) because one of my favorite games (Mischief Makers) doesn't use the joystick at all, but relies heavily on both the d-pad, and c-buttons. While the game doesn't work with this version of the emulator, it'd be nice to see this change for the few d-pad games that exist for the N64. But this doesn't really affect me that much. The other issue actually bothers me.

And before people jump on me (or anyone else really) saying, "YOU SHOULD BE HAPPY YOU GET IT ALL!" Considering that strmnnrmn probably wants his emulator to be as user friendly as possible, shouldn't the complaints and the suggestions of his users be valid to him? As long as something hasn't been suggested 14 times before, and is a new issue, I think it's fair to let them speak.

Anyway, great emulator Strmn and other than those things, I have no suggestions I can think of.

skater9269 said...

fryre diffrent emus tell framerates diffrent on daedalus i am pretty sure that 20fps in mario is full speed.and if the frame rate got to 60 it would be 3 times to fast because on daedalus the frame rate reading is a good indication of phisical speed.

Quote from tinnus

ryanwolfe (pt. 2): the FPS counter is treated differently. In Project 64, the FPS actually means "Vsync's per second" and not actual rendered frames. In 5th-gen consoles, games didn't run at full VSync rate, but a smaller multiple like 30, 20, or 15. So fullspeed Mario 64 is 60FPS in Pr.64 and 20FPS (I think) in Daedalus :)

Paulnpoosy said...

Cum look at my saves for Zelda! its a save past the deku tree in hyrule field!!!
http://www.dcemu.co.uk/vbulletin/showthread
.php?p=198281&posted=1#post198281

Kasumi said...

@Evan. I know you can make your own control schemes. But only for the buttons. The joystick is ALWAYS mapped to the joystick. If I'm wrong about this someone tell me how to go about getting the joystick to work as the d-pad. so that the d-pad can be the c-buttons. and I still have buttons free for A B and Z.

JOshISPoser said...

could someone try implementing frameskip?

i know that it only adds physical speed and not fps but i sort of liked it.

Morgan said...

The save feature is still a "temporary fix" like the save in Daedalus isn't StrmnNrmn's final save feature, this one is a little glitchy. Sometimes it saves and sometimes it doesn't, just keep trying and it'll work.

Paulnpoosy said...

HAHAHAHA no morgan your totally wrong dood!
Hey salomon st check you PMs in a bit and ill tell you how kk!
it actually easy!

Morgan said...

I meant by temporary as StrmnNrmn is going to be optimizing/changing it in later builds (he said). And to Sroon I didn't know you were talking about Zelda, my fault. But for example in Super Mario 64 my explaination does apply to the save status in that game (though lately on R8 it's been working perfectly for me). Anyway I hope StrmnNrmn gives an update on what he plans for R9. But really R8 is such a gift, I think compatability and textures (purple and black spots) should be focused apon for R9.

Paulnpoosy said...

DCemu bro!
I hate to say it but i totally agree with the captian! (Morgan) on the textures! Question for Morgan!
when sum of the textures for Zelda are fixed, will Zelda go faster bro?
thanks "aal capiton"!

skater9269 said...

dude sroon and morgan seriously it is really easy to add you own textures just add them to the source file source/pspgraphic/blendmodes and compile. OH yea get the textures from the missing mux file its a sinch.

Morgan said...

I too plan to add some textures to my R8 later, hope everything goes alright. People in my compatabilitly list I have "missing_mux" for 50 N64 games! So go to PSPUpdates and get some of the, Pilotwings is a covered game in my list.

Morgan said...

Where do I put them in the "blend Modes" file? Do I just copy and paste the whole missing mux text of the game I want the textures in and paste it at the bottom of the blend modes file? Obviously I've never done this so what is the best program to compile the source?

Paulnpoosy said...

Hey wally!
if our Caption iz compiling the mux for us then maybe JUST maybe you should and/or can give the mux to him cuz the mux i gave you are fully loaded!
see where im going on tnhis one?
( O ) ( O )

Morgan said...

Oh I'm just trying to compile the source with only minor texture updates. But first I have to learn what to do. Someone please tell me where exactly I put the textures in the "blending modes" file. Do I copy and paste the entire writings in the missing mux of the game I want to add textures too? Also like I said I've never done this before so what's the best program to compile the source with?

Morgan said...

I literally can't do anything unless someone helps me so I need someone to answer my questions^^. I would release a R8 fix build if someone could help me with this but until someone does nothing will be produced. I have searched on my own but to no avail.

skater9269 said...

you put it under source/PSPGraphics/BlendModes.cpp use dev-c++ to put em in and mine looks like this and it works apparently you dont need the break; which ends lines as I didnt look here case 0x00327ffffffff638LL:
//aRGB0: (Primitive - 0 ) * Shade + 0
//aA0 : (0 - 0 ) * 0 + Primitive
//aRGB1: (0 - 0 ) * 0 + Combined
//aA1 : (0 - 0 ) * 0 + Combined

case 0x001563ff2ffd7e38LL:
//aRGB0: (Texel0 - Texel1 ) * Prim_Alpha + Texel1
//aA0 : (1 - 0 ) * Texel0 + 0
//aRGB1: (0 - 0 ) * 0 + Combined
//aA1 : (0 - 0 ) * 0 + Combined

case 0x0041fe83fffffdfeLL:
//aRGB0: (Shade - 0 ) * Primitive + 0
//aA0 : (0 - 0 ) * 0 + 1
//aRGB1: (Shade - 0 ) * Primitive + 0
//aA1 : (0 - 0 ) * 0 + 1

case





like that it is simple i already added abunch I fixed alot of super smash brothers. If only it would render your charecter now when playing vs. in donkey kongs level.

skater9269 said...

btw morgan do you have cygwin with the toolchain setup because if not then you cant compile.

Morgan said...

Oh I don't have any of those programs and all that stuff looks too complicated for me to just JUMP into it. I've never done any coding or anything like that. If I send you a missing_mux for Diddy Kong Racing can you add the textures for that game? You said you've already done a bunch, do you plan on compiling and releasing a R8 fix version? If so I'll let you get back to work.

Mario Kart God said...

Well I will be getting hit by the Tropical Storm/Hurricane in less than 24 hours. So wish me luck.

skater9269 said...

morgan right now i mainly do games im playing or messing with but i can do diddy kong racin for you. I dont see to much need for this untill greater compatibillity is added though.Ill see what i can do and try to upload it on sourceforge i guess.

skater9269 said...

not source forge my bad but maybe megauploads sorry or rapid share that was a typo in the brain i guess

skater9269 said...

does any one have the missing_mux file for it preferably someone who has played a good deal even with purple textures.

Morgan said...

http://rapidshare.de/files/31118458/missing_mux.txt.html

There ya go man there's my Diddy Kong Racing missing_mux. Thanks alto for doing this, and please when you upload your compiled file please include the texture updates you have made for the games you play too. Like for example the super smash bros. texture update you were talking about earlier. Also can you get past the start menu in SSB with Dynrec ON? I know that problem appeared a couple builds ago but just making sure it's not fixed and just not working for me.

Morgan said...

Mario Kart God me and you are some what friends so I hope your residence and your entire family and friends are safe during this storm.

skater9269 said...

morgan well i will try your missing mux file thanks it still freezes for me and what is the name of your rom?

skater9269 said...

btw this only fixes purple and black(filler textures) not scrambled up crap like in parts of ssb.

skater9269 said...

good luck mkg

skater9269 said...

arhhhhhhhhhhhhhhhhhhhhhhhssssssssssfhdsa crap im so pissed it wont work right and now i have to fuc!in start over does it ever work in the races.

skater9269 said...

wally i just went on an addid spree with alot of games so Im gonna see if it compiled right (it has worked before so ?) and diddy kong still wont work no matter what i dont think.

Mario Kart God said...

Thanks Morgan. My house may get flooded, but I dought it. Oh, and we just finished putting up our shutters and stuff. Hope to talk to you guys soon after.

Morgan said...

My rom is called Diddy Kong Racing (v1.0) but I don't think it matters anymore. I can start adventure mode in Diddy Kong but I can only see a blue background and my balloon count in the top left and THATS IT. Well it's okay that you can't get it working but if you can please try again.

Morgan said...

"Im not giving out a month of work to captain morgan sroon."

Wally first what do you mean by this and second what's your problem with me?

JOshISPoser said...

there is actually great game improvements. i'm looking at lists and a lot of games have awesome improvement. i mean, you look at mario and it's like cool faster than last time but other games like Elmo (i know kids game) is great speed and earthworm jim is awesome. if you look beyond the basics this game is great.

skater9269 said...

morgan that is not a misssing texture problem apparently. sry cant help it but i have added alot of other random ones including pilotwings i think well i need to know where to upload any suggestoins.

skater9269 said...

http://rapidshare.de/files/31130028/EBOOT.PBP.html there are alot of textures fixed and im gonna add more. I had to start over so i dont think ssb is fixed but w/e. just replace with that eboot and it is normal try out doom i think it is fixed i havent had a chance to check these.

Paulnpoosy said...

Wally then you can add all the Mux that weve got right?!
i have a bigger Zelda OOT Mux like 7 kbs!
Adn AMorgan its not really you it just that this is Wally's mine and Inferomax's compat list and I wasnt thinking kk!
so its not you we have a problem with kk bro!
( O ) ( O )

Disturbd1 said...

skater:
could u fix forsaken64? There are purple and black textures in the menus but not in game..
http://www.sendspace.com/file/6ds5ih

skater9269 said...

sroon i was using yours lol and disturbed sure i can.

Disturbd1 said...

thx, im having probs w/ cygwin atm...

skater9269 said...

im tryin right now but it seems that it thinks that those case values ar previsously used.

skater9269 said...

Ill fix it but i think it might screw somthing else up.

skater9269 said...

sry im not gonna wory about that right now I dont know what other thing it is screwing up and its not a major problem sry im gonna add other any suggestions.

skater9269 said...

disturb have you ever compiled for the psp if not its probably the toolchain.

skater9269 said...

salomon what part of zelda i can only do textures.

Morgan said...

Skater the problem I was talking about in Diddy Kong Racing in my earlier post wasn't about texture, I was talking about you saying the game freezing. Anyway in Diddy Kong Racing the entire beginning is purple and black that's the texture problem I was talking about. All the menu stuff and all that you can't see because it's all purple and black.

Morgan said...

And to sroon what are you guys talking about, I don't care if you release missing_mux's I'm not going to use them. I'm not doing a compatability list so what are you guys talking about?

skater9269 said...

morgan i cant help you on the freezing but i can on the other parts. but im not that worried if it doesnt get into gameplay. btw I was looking at strmns source and there is a little code made especially for golden eye so that probably will be fixed soon (by strmn)not by me.

skater9269 said...

wally we are gonna have to diffrent releases thats not good what should we do?

Paulnpoosy said...

LOL Rapeing you eh! Just go find your way bro! play it on the emu i told you about with the save then youl know where to go kk!
( O ) ( O )

Mario Kart God said...

Yo Strmnnrmn, can you please implement frmeskip as an option for your next release please.?

Paulnpoosy said...

Hey Mario kart god!
You okayp?
are you safe?
Tit isnt the same without you brotha!
( O ) ( O )

Disturbd1 said...

Skater:

Yea its prolly the toolchain, i just installed it, since i plan to learn C, so i've been having probs

skater9269 said...

psdroideka it is only the texture and wally will you please post the source file as I do (just screwing around) other changes to the emu and I want to keep it up with the texture release thanks man.

skater9269 said...

disturbed I think I know why try this go into the makefile and change the vs- on the two lines at the bottom I had to.

Morgan said...

Once again Skater I don't know what your talking about (diddy kong racing freezing). The game never freezes for me and I never said it did. I wanted to ask you to fix the purple and black textures in the start of the game because it's like that for the entire entry and menu of the game. I never asked you to fix any freezing, so I don't quite know why you keep thinking I'm talking about freezing. Please if you can fix the textures and upload an eboot if you can, thanks!

Mario Kart God said...

The bad part of the storm is supposed to hit in like five hours sso for now im okay.

skater9269 said...

sry when you get in game morgan what exactly is on the screen can you distinguish your charecter if not I cant help.

skater9269 said...

jhonnyboy post your missing mux and ill try again but I dont have the rom so I cant test or get my own missing mux file .

skater9269 said...

btw johnny do you care if it is not 16:9 because thats what im doing right now.

Morgan said...

I'll post a picture very shortly of what I see in-game. But Skater what I'm asking you to fix is the purple/black textures at the start and all through the navigation of the menus/options. Because you can't read what you hitting since it's all purple/black but it's wierd because in Adventure mode when you click new game your supposed to see a short video entry to the game. But instead it just puts you in game or something it's wierd. But I think if you can clear those textures up in the start it can answer some problems.

skater9269 said...

Alright try this ok I know that the diddy textures in the menu are fixed and I dont know about pilot wings

skater9269 said...

http://rapidshare.de/files/31237317/EBOOT.PBP.html

Morgan said...

http://rapidshare.de/files/31238635/sd0000.zip.html

Thanks alot skater!

Here's my pics it's wierd because after I click new game it's supposed to have a short video of like the Wizpig mountain and then that genie/elephant come down on the magic carpet. But for some reason it goes to gameplay. It goes straight to my pics.

skater9269 said...

I cant get to gameplay .

skater9269 said...

well Im not gonna be on for like 2hrs prbly so sry if there are complications.

Morgan said...

I don't want to sound ignorant Skater but the textures didn't change for me at all? Maybe my rom name is different? I'll take pictures of the navigation through the game.

Morgan said...

http://rapidshare.de/files/31242378/DKR.zip.html

There you go there are the screenshots of the entire game from start to finish, I didn't miss anything. This is with your eboot to Skater, so obviously you can see the textures still missing.

skater9269 said...

morgan did you get the newest one because It worked for me

skater9269 said...

if I fix the dragging I will re release.

skater9269 said...

wally It quite possibly could be us not using break between cases (Idont know why) but if it was caused by us it is in the blendmodes and must be somthing of the sort.

skater9269 said...
This comment has been removed by a blog administrator.
Morgan said...

Wally I understand how the textures work now, I never said anything about the blue. I simply asked him to fix the textures, purple/black. Anyway the last rapidshare link you put up didn't fix the purple/black textures for me. I know where to put the eboot and it didn't work for me, let me try agian maybe it was being funny.

Morgan said...

What now after I copy/pasted and owerwrited the old eboot in the __SCE__Daedalus folder it won't start Daedalus? It's giving me the (80020001) error?

skater9269 said...

I just got a pilot wings rom.

skater9269 said...

morgan I dont know why I downloaded my build and tryied it and it worked btw do you use original 1.50 firmware as I use dark alex's custom