Page 5 of 8

Posted: Fri Jul 22, 2011 2:39 pm
by Madmab
ok. Here is the video.. It's a little harder to see it over youtube but just pay real close attention to the lap timer.

I did two rounds. One with 1.53 xbox and the weird issue. The 2nd one is 1.51 xbox without the weird issue.

Sorry for the crappy driving. I've gotten used to playing in debug mode and I was/am half asleep when I recorded it.. :P

Posted: Fri Jul 22, 2011 5:26 pm
by Camo_Yoshi
...Where's the video?

Posted: Fri Jul 22, 2011 8:43 pm
by Madmab

Posted: Fri Jul 22, 2011 8:54 pm
by Camo_Yoshi
Ok, I see what you're talking about, it seems the Xbox is sturggling to keep up with the immense amount of sprite/DSP activity. While this does happen on the SNES, it isn't as pronounced as I see here.

Seems it's auto-frame-skipping to prevent 100% load on the CPU.

Posted: Fri Jul 22, 2011 11:29 pm
by Madmab
I was hoping you wouldnt say that.. :lol:

Although that is my initial suspicion.. the thing that is confusing me is the reported framerate of 60fps.

Shouldn't that be dropping? Also if I use the x-port framerate calculator (which calculates how often the screen_display function is called) it shows a consistent 60fps as well.

Best I can tell S9xDeinitUpdate is only called if IPPU.RenderThisFrame is true. So if this is the case I would think the fps display would drop below 60 during the slowdown.

On the other hand if I activate the NTSC filter than the onscreen fps displays match the framerate drop.

This is where I'm totally baffled. I've even tried setting debug points where IPPU.RenderThisFrame would be set to false and they never get hit. :?

On a side note I originally had the same issues with 1.51 (older sound core) but once I commented out all the frametimer stuff the problem went away.

Thanks

Posted: Fri Jul 22, 2011 11:59 pm
by Camo_Yoshi
Well if the frame counters are saying it's running with no drop in FPS, either it's emulating the IRL lag, or auto-frameskip is turned on. (Probably the latter...)

Posted: Sat Jul 23, 2011 12:24 am
by Madmab
I was gonna update my last message but you replied to it alreadyl.. I had as a test set the frameskip to 0 for kicks (maybe 1 too, cant remember) and it was still doing it. I was still getting the issue.

What is IRL lag?

Posted: Sat Jul 23, 2011 2:19 am
by Camo_Yoshi
Basically, you're emulating the SNES's CPU, which mean that any games that naturally caused lag on the system will be present on the emulator.

Posted: Sat Jul 23, 2011 2:44 am
by odditude
Madmab wrote:What is IRL lag?
IRL = in real life

Posted: Sat Jul 23, 2011 6:29 am
by Madmab
Camo_Yoshi wrote:Basically, you're emulating the SNES's CPU, which mean that any games that naturally caused lag on the system will be present on the emulator.
Does that mean I'm screwed when it comes to super mario kart? :lol: :(

Well it seems to run fine in 1.51 on the xbox. So I suppose that serves as an alternative. Hence why I'm trying different versions. So at this point I'd have to chalk it up to possibly the new sound core cause I think I've exhausted about every other possibility I can think of.

Posted: Sat Jul 23, 2011 1:09 pm
by OV2
IPPU.RenderThisFrame is never set automatically. If you do not have your own frameskip code that sets this then snes9x will never do frame skipping.

The internal frame display should display two values: an fps value and a x/60 value. The first is simply the number of frames emulated per second (including skipped), the second is how many of the last 60 frames were displayed.


It's a rather strange issue you're having...
Did you try it without the coreupdate changes that were included in 1.53?

Posted: Sat Jul 23, 2011 10:14 pm
by Madmab
OV2 wrote:IPPU.RenderThisFrame is never set automatically. If you do not have your own frameskip code that sets this then snes9x will never do frame skipping.

The internal frame display should display two values: an fps value and a x/60 value. The first is simply the number of frames emulated per second (including skipped), the second is how many of the last 60 frames were displayed.


It's a rather strange issue you're having...
Did you try it without the coreupdate changes that were included in 1.53?
You lost me on that last question. Coreupdate changes included in 1.53?

Thanks

Posted: Sat Jul 23, 2011 10:38 pm
by OV2
1.53 includes rewritten IRQ handling which was in the coreupdate branch during testing. The merge is in this commit: https://github.com/snes9xgit/snes9x/com ... ddc25cc173

The changes seem to incur a speed penalty on some architectures, which is why the wii and ps3 port did not include them.

Posted: Sun Jul 24, 2011 8:51 am
by Madmab
Yes I have zones IRQ/SA-1 changes removed from the get go. So no affect by them...

Posted: Sun Jul 24, 2011 1:58 pm
by Madmab
Alright I figured it out. One of the many changes I made reverting various sections of code to try and fix some speed issues was the source of the problem. So I'm good now..

Thanks for the help!

Posted: Sun Jul 24, 2011 3:35 pm
by Camo_Yoshi
Glad to hear it works! :)

Posted: Mon Jul 25, 2011 3:19 pm
by Madmab
Hey guys.. Just thought I would mention. I was implementing movie playback for the xbox and I noticed the movie I tried would not playback in 1.53 but it played back just fine in 1.51.

I confirmed this issue also exists on the PC builds.

I was using the Act Raiser movie from [url=http://tasvideos.org/Movies-SNES.htmlhere[/url] as a test.

Posted: Mon Jul 25, 2011 6:44 pm
by OV2
What do you mean with "would not playback"?

I have no problem playing the movie, besides from the obvious desync due to the emulation changes.

Posted: Mon Jul 25, 2011 10:08 pm
by Madmab
Sorry that's what I meant. It did not play back correctly. Due to the sync issues you mentioned. I figured there was a good chance it was due to the emulation changes. Just did not know if you guys were aware.

Posted: Mon Aug 15, 2011 10:42 am
by Madmab
Just another question for ya guys..

Those IRQ/APU changes. Is there anything in particular they improve? Game compatibility, etc?

Thanks