Tuesday, July 11, 2006

Graphical fixes

Here are a few of the significant graphical fixes I've made so far for R6.

Firstly, I managed to fix the horrible flickering that happened when running various roms (Paper Mario was a good example). It turned out that I was making an assumption that roms executed exactly one display list per frame. I assumed that each display list would clear the screen, render everything, and then wait for the screen to flip. As it turns out, some roms execute multiple display lists per frame. In the case of Paper Mario it executes 2 display lists per frame (one which clears the screen, then another which renders everything). By making sure that I only flip after the second display list executes, I avoid the flickering (the actual solution is a little more involved but this is the general idea).

The next significant glitch I've fixed was to do with backface culling of triangles. Basically, when I ported the graphics engine over from the PC version, I forgot to implement the two or three lines of code which handles this. It was a very small fix, but it corrects a number of significant graphical issues (notably all the walls getting in the way in Quest 64).

Finally, I've managed to track down and fix a significant memory leak in the texture handling code. I believe this was causing many of the random crashes that were occuring when leaving the emulator running for several minutes or more (basically through running out of memory). Before applying the fix I found that the Super Mario 64 would crash within 4-5 minutes. After applying the fix I've been able to run Mario with no problems for over 30 minutes.

I'll keep you posted as to when you can expect a new release. I'm quite excited about the memory leak fix, so I'd like to get a new release out as soon as I can implement some of the other things I promised for R6.

-StrmnNrmn

PS I know I've been crap at replying to emails :( I'm hoping to get this release out and then I'll spend a few hours sorting out my mailbox and replying to various comments here.

40 comments:

BigMace said...

Sounds like great news, keep up the great work. Is there going to be any speed increase in the next release?

Morgan said...

StrmnNrmn I don't knwo much about emulation but can you constantly find things in the emulate to improve on? Like do you actually think you can tweak this emulator to full speed one day? Thanks and keep up the great work but please answer my old question are you going to use the Media Engine now most psp's are 1.5. Also the tip pspmonkey gave you when you test it could you tell us the results it makes. Thanks!

Disturbd1 said...

That's GREAT news!! Awesome! So I assume this is going to be more of a graphical update than a speed one, correct? Sounds Great dude, keep up the good work!

Kramer said...

sounds like mario and quest are going to be playable now that the memory problem has been fixed now i really cant wait for this

wally*won_kenobie said...

This sounds really awesome.

Most interesting thing thats happened in ages in the homebrew scene (for the 1.50ers who have just been melting away for months)

My questions:
Any chance of a CVS build now? ;)
Have you fixed the screenshot glitch?

I have found that Rugrats; Scavenger hunt works at full speed but freezes after sometime (camera goes through wall) same as with Rugrats: Search for raptar.

also other games that run at full speed but crash in game.
Bust a Move (all)

Hope that helps you with your testing.

PSDroideka said...

Another graphical glitche (just minorly annoying but not too important) is some various symmetry problems that occur with transitions. ie: When entering the mario head intro there is half a star and half a box, or when entering the castle, half box half circle.

The fixes youve already made sound cool, keep up the good work.

infernomax said...

Strmnnrmn Can we expect a 1.5 only version now that the downgrader is out>?

Knutselmaaster said...

I wouldn't worry too much about paper mario, its a great game but as far as i know there isn't any emu out there that can display it without the flickering (i've tried 1964 and pj64 on pc)

Keep up the good work, thanks for all the effort you put into this!

PSDroideka said...

Knutselmaaster: What version of PJ64 do you have because in the version i have, 1.6, it works fine without flickering, and plus didn't Strmn Nrmn say it had already been fixed?

S.W.4.R.M Turx0r said...

Sounds great man, cant wait. thanks for your contrubutions to the scene.

kersplatty said...

sounds like some very good progress your making now, in the r7 build is it likely you can encorporate kernal mode to boost the speeds

Morgan said...

The ME version of the emulator, yes I have been asking about this for weeks. Get in line guys. Keep it up StrmnNrmn!

tsurumaru said...

morgan, I think Strmnnrmn mentioned sometime ago that he had some ideas for using the ME to handle some functions but I assume mainly it would handle sound emulation like SNES9XTYL does. Since we don't have sound emulation up and running (Strmn may plan to finish the dynarec and optimisation work first) it probably wont be implemented in any of the immediate builds. (Although we'll have to hear from Strmnnrmn himself for the full lowdown).

Kind regards.

Morgan said...

Awesome but yeah I can't wait for R6 I hope StrmnNrmn can give us a release date soon. Or maybe he'll just release it soon, maybe on the 14th to spoil the other emulator day.

Disturbd1 said...

"tsurumaru said...

morgan, I think Strmnnrmn mentioned sometime ago that he had some ideas for using the ME to handle some functions but I assume mainly it would handle sound emulation like SNES9XTYL does. Since we don't have sound emulation up and running (Strmn may plan to finish the dynarec and optimisation work first) it probably wont be implemented in any of the immediate builds. (Although we'll have to hear from Strmnnrmn himself for the full lowdown).

Kind regards."

Unless of course the ME would have such a negative impact on the speed compared to non-use of the ME

PSPUMD said...

I have a Question , But Please please dont reply to me , save your time working on your GREAT emulator, Thank you so much for your efforts ^^

tsurumaru said...

"Unless of course the ME would have such a negative impact on the speed compared to non-use of the ME"

From what I have understood from strmnnrmn and laxer3a's posts as long as the design of the build is good there shouldn't be any disadvantages of using a secondary processor.

_Psycho said...

Just curious, how much of your dynarec is complete ?

tsurumaru said...

_psycho, just prior to R5 it was about 40-50% complete. We haven't had an update since on its state of completion. Hopefully Strmnnrmn will be able to update us soon. :)

Morgan said...

Yeah I can't wait for R6 and when the dynarec is complete! Well it's the 14th and I don't see anything about that Full Speed N64 Emulator yet!?!? Course it's only a select few of games they are talking about but I would love to see that the UltraHLE or whatever is true.

Morgan said...

I'm kinda getting inpatient, where's R6?

Morgan said...

*impatient

StrmnNrmn please give us a release date as soon as you can please for R6. Keeup the great work and I'm not trying to rush you I just would like a maybe estimated release or something.

N64-Lover said...

Morgan for the love of god, leave him alone to get on with the release. If it takes months then it's more than alright, he's got a life besides coding for you lot. Give the guy a break and try to stop acting like an internet stalker with no life.
It will be ready when it's ready!

Morgan said...

Like I said I'm not rushing him I'm just saying when the guy said he'd have a release soon I expect a release soon. I can wait forever for the next build I want the best emulator possible. Sorry I have a life and all I'm asking is if he has a release date in mind, so get off my ass. I know strmnnrmn will have r6 when he's ready so don't asct like I'm stupid you jackass.

Morgan said...

act* (typo)

BigMace said...

morgan, give it a break, half of the comments on this thread are from you, and it is all just spam. It is people like you that make developers loose interest in their projects. R6 will be ready when it is ready, so back off.

Anyways, I hope things are going well StrmnNrmn. Keep up the great work, you truelly do make a psp worth owning!

Morgan said...

"It is people like you that make developers loose interest in their projects."


Just about all my posts have ahd keep up the great work or nice job strmnnrmn at the end of about all of them. So yeah make some more sense you fuckin clown. StrmnNrmn I'm not in a great mood because of some of these losers but please keep up the great work.

PS. R6 will get here when it gets here, I said that and then you tell me it and try to call me stupid, lol!

wally*won_kenobie said...

Everytime i come here recently, i find a moronic whinging comment by morgan ;)

Strmnnrmn has advised me via an conversation in a chat room (Not posting here sorry) that he will not answer questions here until R6 is out.

I have a good idea of what the R6 is going to be like and its going to be a BIG improvement

kekpsp said...

Hi everyone, I have been away on holiday, I got a bit of kitesurfing done, and discovered that there is vast psp scene in Spain, they love it down here, anyway it great to hear about the progress on the R6 release, and I sympathise with morgans impatience, the whole psp scene is waiting for a full speed N64 emulator to be officially released, this anticipation is what keeps this community alive, well done StrmnNrmn and all you devs that provide us with astounding apps that keep entertained :)

skater9269 said...

strmnNrmn you are one of the main reasons I joined the psp homebrew cummunity you are a great inspiration keep it up you are an amazing developer.

StrmnNrmn said...

bigmace: There will be a minor speed increase as a side-effect of fixing the memory leak, but probably nothing noticable. As disturbd1 says, it's mostly been a graphical update.

morgan: I think there will always things to be improved. It's going to be a relatively slow process of incremental updates though!

wally: I think I mentioned this to you on MSN, but I have fixed the screenshot glitch, yes (it was getting in an infinite loop trying to create the directory for the screenshots on the memory stick).
Let's hope the memory leak fix sorts out the issues with Rugrats etc :)

psdoideka: The 'symmetry problems' are a due to the PSP not supporting mirrored textures (which are used in a few places on the N64). There are a couple of ways of getting around this (namely mirroring the texture in software as required), but I've not gotten around to this yet.

infernomax: I think I'll continue to release the two seperate builds for the time being.

StrmnNrmn said...

knutselmaaster/psdoideka: yup, the flickering has been fixed :)

tsurumaru: That's pretty much what I'm thinking. Ideally I'd like the ME to handle all the RSP processing (which is essentially the display audio list HLE processing), with the CPU emulation on the first core. As the N64 is designed around this parallelism I think this would make the best use of the available resources.

_psycho: I've lost track of how much of my original dynarec ideas are implemented - it's probably something like 50-60% though.

wally: I felt bad about leaving all these comments unanswered so I decided to have a quick run through them now :)

cyanide_nfs said...

Hey StrmnNrmn!
Loving your work with Daedalus :)

I wanted to do an interview, if you could spare the time. If you want to do this, can you please contact me at cyanide(dot)nfs(at)gmail(dot)com?

Thanks :)

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

http://img.gamespot.com/
gamespot/images/2003/screen2/
197771_20030620_screen020.jpg

AND

http://pspupdates.qj.net/
uploads/articles_module/57643/
zeldapsp.jpg

now speak no more of htis zombie fellow and his FAKE emu, and concentrate on Daedalus

Zodionic

maverick said...

Nice catch Zodionic, I knew that thing was fake.

And with the Media Engine, the speed will only slightly increase, as in SNES9XTYL 0.3-0.4.2, correct? It will also make it kernel mode only, though that should not be a problem for most with the recent downgrader. I feel bad for 2.7+ =(.

Keep up the good work StrmnNrmn!

vettacossx said...

not to be a smart ass but 2.7+??
dont feel 2 bad untill it really matters bro ;) i mean i am a team player i dont think you should leave anyone in the dust ;) but to be honest if your holding back on THE FIRST EVER KERNALL N64...OMG dont do it in vain boss ;)

ONLY 1.0-2.6 users can RUN HOMEBREW
the eloader only works on 2.0-2.6 so sadly the 2.7+ users wont really effect this emu as NO EMUS WORK FOR 2.7 or 2.71...unless you know somthing we dont about a 2.7 or 2.71 exploit!! :( and those with 2.6 can downgrade!!! so basicly we have really converted....even VETTA!!! ;) lol

best4chance said...

Here are some links that I believe will be interested

steelboy28 said...

Hey what a great site keep up the work its excellent.
»

blogaccount54 said...

Your are Excellent. And so is your site! Keep up the good work. Bookmarked.
»