RISC OS Sprite Handling on the Pi
|Stephen Scott (491) 28 posts||
Some of you may or may not be aware that my brother and I wrote a couple of RISC OS games, which have been updated sporadically over the years. I’ve occasionally asked for help on the csa.games1 and csa.programmer2 3 newsgroups.
Having managed to get RISC OS Pi installed and running successfully, I had a go at running these games. It didn’t take long to discover that they didn’t work. Sprite handling, screen banking and 16 colour (4bpp?) display seems to be an issue.
I’ve prepared a live document of all the bits and pieces of disparate information available concerning the use of SYS “OS_SpriteOp”, SYS “ColourTrans_SelectTable” and SYS “Wimp_ReadPixTrans”, among others, in order to get some sort of definitive article on converting said games to the Pi.
I am aware of efforts such as the JASPP , which are going great guns with commercial software releases, as well as the use of ArcEm on the Pi to run said games. I would prefer however, to get my games to run natively on the Pi. :-)
I’ve had some progress in doing colour mapping of 4bpp sprites (with palettes), but have hit issues with display tearing/flashing concerning the screen swapping, a technique used a lot in RISC OS games. I’ve noted SeñorNueces’s thread concerning this issue.
I would welcome contributions to this document, free for anyone to edit, on how best to address:
There’s arguably some degree of interest in getting legacy games (whether it’s freeware, public domain, subscription discs etc.) to run on the Pi, and all this information needs pulling together somehow.
(11 Dec update) – I’ve reorganised the document in an attempt to get some clarity on the above sections, as well as add some more links concerning mode/resolution independence and screen swapping. I can see the document has been viewed many times, I hope it is proving of some use to people :-)
Please, if there is anything on there that doesn’t make sense, or is just out and out wrong, either let me know, or edit accordingly.
Thanks in advance! :-D