I've implemented Matt's Tiles demonstration. The goal is to get an infinite horizontal scroll behavior. Unfortunately, running this code in the official emulator results in frame stuttering round about every 2 seconds.
Can it be, that the emulator is responsible for this issue? Maybe the emulator's framerate is not aligned with my monitors 60Hz. Is there a way to config the emulator? Or is the issue somewhere else to fix?
Many thanks
Scrolling in Emulator Stutters every 2 Seconds
- desertfish
- Posts: 1097
- Joined: Tue Aug 25, 2020 8:27 pm
- Location: Netherlands
Re: Scrolling in Emulator Stutters every 2 Seconds
Try running the emulator with -fullscreen .
If your monitor isn't 60hz, tearing will likely occur if the emulator runs in a window because it refreshes at 60hz. But stuttering? Could it be that your computer is too weak and can't keep up with the emulator?
If your monitor isn't 60hz, tearing will likely occur if the emulator runs in a window because it refreshes at 60hz. But stuttering? Could it be that your computer is too weak and can't keep up with the emulator?
Re: Scrolling in Emulator Stutters every 2 Seconds
Well, doesn't make any difference when running in fullscreen. My CPU takes about 7~8% to run the emulator, the machine should handle it just fine.
However, as long as you say that Matt's code is ok running on the current emulator it might be an issue on my side somehow, which I for now can't resolve. At least I know it's not the code. I'll give it a try next time I spin up a virtual machine running Linux, maybe it's just my Windows config.
However, as long as you say that Matt's code is ok running on the current emulator it might be an issue on my side somehow, which I for now can't resolve. At least I know it's not the code. I'll give it a try next time I spin up a virtual machine running Linux, maybe it's just my Windows config.
Re: Scrolling in Emulator Stutters every 2 Seconds
I don't think the emulator supports VSync, so there's no way to synchronize the start of a VERA frame with the start of a host system frame.
Doing so would actually be relatively complicated, since there's some amount of coupling with the X16 system clock, as well. If you delayed a VERA refresh until the host screen refreshed, you'd have to also hold the virtual CPU for the same amount of time, or the emulator would no longer replicate the behavior of hardware.
If it's possible to set a VSync flag in SDL, then it might be worth asking MooingLemur to add that as an option, but I doubt it would happen in R47. That release is already pretty full, with the 65C816 changes.
Doing so would actually be relatively complicated, since there's some amount of coupling with the X16 system clock, as well. If you delayed a VERA refresh until the host screen refreshed, you'd have to also hold the virtual CPU for the same amount of time, or the emulator would no longer replicate the behavior of hardware.
If it's possible to set a VSync flag in SDL, then it might be worth asking MooingLemur to add that as an option, but I doubt it would happen in R47. That release is already pretty full, with the 65C816 changes.
Re: Scrolling in Emulator Stutters every 2 Seconds
Thanks TomXP411,
it's nothing that has to be done at all, it's just something I've encountered and therefore I want to be sure that this is not a problem with the code but with the current emulating software/hardware chain. It looks like a jitter/hickup, similar to a source vs. player framerate missmatch where the source is slightly slower (resulting in frame doubling). But since there are two layers involved it results additionally in some kind of hickup.
Anyhow, as long as everything else is fine just keep the cookies running.
Thanks and Cheers
it's nothing that has to be done at all, it's just something I've encountered and therefore I want to be sure that this is not a problem with the code but with the current emulating software/hardware chain. It looks like a jitter/hickup, similar to a source vs. player framerate missmatch where the source is slightly slower (resulting in frame doubling). But since there are two layers involved it results additionally in some kind of hickup.
Anyhow, as long as everything else is fine just keep the cookies running.
Thanks and Cheers
Re: Scrolling in Emulator Stutters every 2 Seconds
I have a scrolling system with prog8 under windows.
works perfectly.
right/left/up/down with the vera command.
I still have the graphic screen behind it (image layer0) and circles on the graphic screen for testing.
the screen runs wonderfully like oil....
This is due to your system computer or prog-asm, not the x16.
Here I brought in a repeat for testing:
------------------------------
sub sr() {
repeat {
sys.wait(1)
z=z-1
if z==0 {
u=u-1
poke($9F38,u)
z=255
}
poke($9F37,z)
}
}
--------------------------------------
greeting
works perfectly.
right/left/up/down with the vera command.
I still have the graphic screen behind it (image layer0) and circles on the graphic screen for testing.
the screen runs wonderfully like oil....
This is due to your system computer or prog-asm, not the x16.
Here I brought in a repeat for testing:
------------------------------
sub sr() {
repeat {
sys.wait(1)
z=z-1
if z==0 {
u=u-1
poke($9F38,u)
z=255
}
poke($9F37,z)
}
}
--------------------------------------
greeting
- Attachments
-
- scrollscr.jpg (75.09 KiB) Viewed 990 times