ArcEm and tearing
manuel (1438) 23 posts |
Hi again, I’ve recently began using ArcEm on my Pandaboard and I have noticed that, even if I’m using the “Pandaboard VESA” monitor profile, wich includes 50Hz modes, all games exhibit bad tearing artifacts not present in the original Archimedes versions. So, is this because, as I recall having read around here recently, ArcEm uses the X11 protocol for graphics drawing? (and this protocol doesn’t support certain features because of it’s nature). I’m asking here because I know Jeffrey Lee is around.. :D Thanks |
Jeffrey Lee (213) 6048 posts |
Hello!
Correct on both counts.
The old version of ArcEm that ran in a window used X11. The new version only runs fullscreen, but is much faster and has much better emulation. A native RISC OS frontend (i.e. running in a window, and a proper configuration GUI) are on my todo list, but I wouldn’t advise holding your breath while waiting for it to appear.
At the moment, no version of ArcEm (that I know of) attempts to match screen refresh rates. You might find that you can eliminate or reduce the tearing if you use ArcEm’s palettised/8bpp display driver instead of the 16bpp one (press both windows keys to open the tweak menu, then toggle the first entry). The palettised driver redraws the entire screen all at once, while the 16bpp one redraws it one scanline at a time (designed for games which use mid-frame palette swaps). |
SeñorNueces (1438) 162 posts |
If hey don’t even try to use screen modes matching their refresh rate, much less waiting for vsync signal, how’s “drawing the screen at once” going to help? I’m sure you know it: drawing the screen takes a certain time: if a game starts drawing a complete frame when the preceeding frame hasn’t completed drawing (ie, it doesn’t respect the vsync signal), there’s going to be tearing for sure. I’m sure you can get this (very important) detail sorted: I’ve been fiddling with some other games and it seems to be possible for RiscOS to provide “wait for vsync” mechanisms in the Pandaboard, as there are smooth-looking examples. |
Jeffrey Lee (213) 6048 posts |
I’m not sure. But it’s worth a shot! I don’t remember seeing much (if any) tearing when using the palettised display on my BB-xM. Of course it might just be that the problem is more pronounced on the Pandaboard, due to the extra speed allowing the games to run at higher framerates.
Oh yes, it’s certainly possible to wait for VSync on the Pandaboard. The problem is working out how best to synchronise it with the emulator, which is something that will take time, and free time is something that I’m currently very short on! |
SeñorNueces (1438) 162 posts |
I started using palettised mode yesterday, as the emuator runs in this mode by default, and tearing is really noticeable and annoying. Framerate is not an issue here: it’s not about “how many frames per second you run at”, but “wait for the previous frame to be drawn before drawing the next”. |
Martin Bazley (331) 379 posts |
While we’re on the subject, I have a somewhat more serious and easier to fix problem: My trendy modern keyboard only has one Windows key, so it’s impossible for me to get the tweaks menu! Any way of changing this shortcut, or is it hardcoded? |
Jeffrey Lee (213) 6048 posts |
It’s hardcoded, so you’ll either have to tweak the source yourself or wait for me to implement the aforementioned configuration GUI. |