MathewWi / fbzx-wii

Automatically exported from code.google.com/p/fbzx-wii
GNU General Public License v3.0
0 stars 0 forks source link

Video desynchronization causes jerky scrolling #15

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Games that featured ultra-smooth scrolling in backgrounds or sprites move 
irregularly instead, since the picture is not in sync with the console's 
refresh rate.

Examples: Bottom scrolling layer in Cobra, main character in Parapshock.

--ICEknight

Original issue reported on code.google.com by superballena on 3 Sep 2012 at 12:10

GoogleCodeExporter commented 9 years ago
I'd recommend asking eke-eke (of Genesis Plus GX) for advice on this, since 
he's currently the only emu author that has managed to make an emulator with 
perfect video and audio synchronization on the Wii.

Original comment by iceknigh...@gmail.com on 30 Sep 2012 at 8:37

GoogleCodeExporter commented 9 years ago
I can not reproduce the issue. The image movements seem correct, or rather they 
are similar to the other emulator.

FBZX wii uses a double framebuffer image redering so there should not be any 
synchronization issue: while the screen is reading from one buffer, the 
emulator is writing on the other buffer.

Original comment by olimpier...@gmail.com on 4 Nov 2012 at 1:46

GoogleCodeExporter commented 9 years ago
Unlike in the emu, the bottom scrolling layer in Cobra shows a perfectly smooth 
lateral movement on real hardware, so there must be something odd going on 
here...

Original comment by icedoma...@gmail.com on 27 Nov 2012 at 1:20

GoogleCodeExporter commented 9 years ago
Which video mode are you using? (480p, 576i ?)

Original comment by olimpier...@gmail.com on 27 Nov 2012 at 12:12

GoogleCodeExporter commented 9 years ago
Well... both 480i and 576i modes are showing this problem to me, in variable 
degrees. I can't try 480p due to the lack of needed cables.

This jerky scrolling is specially odd because another emulator like Genesis 
Plus GX doesn't seem to stutter using the same TV. Cobra should be showing a 
specially smooth scrolling, seen in very few Spectrum games.

Also, I've tried changing the "Buffer resolution" to 320x240 just in case, but 
it causes even more overall jerkiness, as does turning "Precision" off.

Original comment by iceknigh...@gmail.com on 4 Jan 2013 at 11:54

GoogleCodeExporter commented 9 years ago
I'm now testing it in a CRT TV and the results are basically the same:

50Hz Spectrum in 576i mode shows a smooth scrolling for like 5 seconds, then 
there's some jerky scrolling for a few seconds, then there's 5 smooth seconds 
again, etc.

60Hz Spectrum in 480i has an occasional smooth second from time to time.

Emulating 50Hz Spectrums in 60Hz mode (and vice versa) always shows jerky 
scrolling, but for obvious reasons so it doesn't matter.

Original comment by iceknigh...@gmail.com on 19 Jan 2013 at 12:19

GoogleCodeExporter commented 9 years ago
The jerky scrolling in Cobra does not depend on the Wii video synchronization.

It is an emulation issue.

I had completely forgot that Cobra is amongst the few games that uses the 
hardware floating bus to synchronize the screen.

Indeed if you reduce the framerate (and consequently the floting bus rate) also 
the game slows since it synchronizes to the floating bus.  

See http://scratchpad.wikia.com/wiki/Floating_bus

It is the same issue of Arkanoid which I fixed with the normal emulation.

I you use precise emulation the jerky effect seems reduced but not completely 
removed.

Original comment by olimpier...@gmail.com on 19 Jan 2013 at 11:59

GoogleCodeExporter commented 9 years ago
I've found out that this is not a Cobra-specific thing.

Commando shows the exact same problem in the main menu. 5 seconds or so 
perfectly smooth, 5 seconds or so with jerky scrolling.

Original comment by iceknigh...@gmail.com on 28 Jan 2013 at 3:16

GoogleCodeExporter commented 9 years ago
Have you tried with precise emulation on?

I have already noticed that there is a difference between precise and normal 
emulation with Commando.

I tested Cobra with Real Spectrum and Fuse and the results seem similar to FBZX 
wii with precise emulation.

Anyhow, take into consideration that FBZX Wii is not 100% precise in the 
emulation as other emulators since it is based on a Z80 core which does not 
emulate the single T state.

I changed the original FBZX by Sergio Costa to improve the emulation (the 
precise emulation option) where possible with some work arrounds. Changing the 
Z80 core would require a big effort (maybe in the future).  

Original comment by olimpier...@gmail.com on 28 Jan 2013 at 9:43