ArcEm on PandaboardES: Accurate screen refresh?
manuel (1438) 23 posts |
Hi all! I’m new to this forum, and RiscOS in general. But I was thinking about trying some games with the OS, too, since they tend to hook me into a particular OS. So, I read about this ArcEM emulator that would allow me to execute those Archimedes games in RiscOS on the Pandaboard ES, and I’d like to know some things before I start the adventure of trying/configuring/fighting this OS & emulator: -Does ArcEM provide “perfect frame” refresh rate on RiscOS? -Are there alternatives for Archie games on RiscOS on the Pandaboard ES? Patched games, etc. -As I don’t know much about the games for this intriguing platform, do the classic Archimedes games (like Zool, Chuck Rock, Dungeon..) relay on some custom chips not present in the current system RiscOS open runs on? (I know about the 26-bits problems but I suspect there’s more to it). Sorry for my strange english: it’s not my native language. |
Chris Gransden (337) 1207 posts |
ArcEm runs at the speed equivalent to a 30MHz Arm3 on a Pandaboard ES @ 1.5 GHz. The games that do work seem to run as accurately as they did on real hardware. Zool, Pacmania, Magic Pockets, Gods, Sensible Soccer, Xenon 2, Elite seem to work flawlessly. If you want to run native games there are some here. There’s also a port of the amiga emulator puae on the way. It runs most games at the speed of an original a500 on the ES. |
Colin Ferris (399) 1818 posts |
There are at least 3 good Archmedes/RISC OS emulators for 486’s. |
manuel (1438) 23 posts |
@Chris: Thanks for your response. Do the smoothscroll games run with a synced display? I mean, no tearing and same refresh rate as in an original Archimedes machine. @Colin: I’m not using a tablet and I doubt a 486 CPU can emulate an ARM CPU at an usable speed. |
Jeffrey Lee (213) 6048 posts |
It isn’t 100% accurate, but it’s good enough for all the games which I’ve tried. This includes things like Lotus II which make heavy use of mid-frame palette swaps. ArcEm’s video emulation works by emulating the Arc video timing signals and using them to decide when to copy pixels out of the emulator and blit them to screen. On RISC OS ArcEm has direct framebuffer access, so the pixels will be going straight to screen memory. The only part that isn’t synchronised properly at the moment is that it doesn’t try to make sure your monitor is running at the correct refresh rate – so in some games there might be some flickering or tearing caused by that. If you want to give arcem a try then there’s a (slightly old) build of the RISC OS version here. Or you can grab the latest code from CVS and build it yourself (remember to use the arcem-fast branch – the trunk hasn’t been touched in years). Sometime in the next couple of weeks I’ll try and get the website updated with an up to date RISC OS build (and maybe new Windows/Linux builds). |
manuel (1438) 23 posts |
@Jeffrey; Thanks for the details! Shouldn’t it be possible to run it at an scandoubled Archimedes resolution? (After defining it on the system, of course: for example, I use a custom 720×540@50HZ video mode to run Amiga emulation smoothly on an VGA monitor. The results are as smooth as my real HW on a TV). video emulation works by emulating the Arc video timing signals and using them to decide when to copy pixels out of the emulator and blit them to screen. [/quote]So another possibility would be tweaking the ArcEM sources so it runs at a given screen refresh (matching the hots’s screen refresh them). |
Jeffrey Lee (213) 6048 posts |
Yes. You specify them in monitor definition files, like this
ArcEm does try and pick a screen mode that’s a good fit for the emulator, and it will perform upscaling where necessary. The only bit which it won’t try and match is the refresh rate, but that shouldn’t be too hard to support.
Interesting idea. I can see it working for some games, but it might not work very well for anything that uses mid-frame palette swaps (there’s no hsync interrupt on the Arc, so the palette swaps are usually triggered by one of the system timers).
Yes. I’ve done a lot of work on it in the past couple of years – first optimising it to run at a decent speed on ARM hosts, and then rewriting the sound, video, and timer emulation to make sure all my favourite games run properly. At some point I’m hoping to write a proper frontend for the RISC OS version, and to improve the hardware emulation some more (e.g. add support for 1.6MB floppies), but that will have to wait a few months until I have enough free time. |
manuel (1438) 23 posts |
Ok, thanks for all the info, Jeffrey. |