Page 1 of 1

GUI interface

Posted: Thu Jul 18, 2013 10:22 pm
by JonAbbott
Here's a rough idea of what I originally envisaged the GUI looking like, basically along the lines of MAMEUI which is where this PC screenshot came from.

In this example its showing one of the snapshots and the description file (description files are in the JFDI spec, but none of the ZIP's currently contain them. Refer to the ZIP file structure here), we should also have tabs to show other things such as the cover art or accompanying instructions/manuals/protection etc.

Initially, we should start with the list on the left and add the right section for snapshots later, once we have a PNG module.
GUI example
gui_example1.png (66.16 KiB) Viewed 4601 times

Re: GUI interface

Posted: Sun Jul 21, 2013 7:55 am
by hoglet

Thanks for posting this, it's a really good initial target to aim for.

Does anyone have a feel for the pros and cons of implementing this in basic or C?

Regarding: PNG Decoding, there are a few possible starting points: (the first program is a PNG to Risc OS Sprite Convertor) (portable PNG library written in C) (a port of libPNG to RISC OS)

Also, might be possible to extract PNG code from one of the RISC OS browsers:

Of course, it could be that some of the above are only compatible with much later versions of RISC OS.

What's the baseline version we are trying to support? 3.11? Or earlier?


Re: GUI interface

Posted: Sun Jul 21, 2013 8:12 am
by hoglet
There also seems to have been a PNG Developers Kit for RISC OS. See: ... sions.html

Does anyone know any more about this, it's version compatibility, and whether it is still available?

Edit: Looks this this might be RISCOS 4.32 and later: ... .swi&rev=3


Re: GUI interface

Posted: Sun Jul 21, 2013 8:19 am
by hoglet
Here's yet another:

Requires RISC OS 3.5 or later for deep sprites.

Source exists here:


Re: GUI interface

Posted: Sun Jul 21, 2013 5:19 pm
by JonAbbott
If PNG code exists for C, that would be an obvious choice to go for although does lead to compatibility issues with CLib and RO version. We are currently dependent on CLib for ZLib, although I do plan to go back and remove that dependency at some point.

BASIC works across all versions of RO and has no dependencies, although we obviously have to write a converter for PNG to Sprites - which can't be that hard...can it? I've yet to look into it, although it sounds like some of the links you've provided may well provide source.

Re: GUI interface

Posted: Fri Sep 13, 2013 6:29 pm
by tlsa
NetSurf uses libpng, and it works perfectly. (I'm a NetSurf developer, btw.)

I made a really trivial program for messing about with alpha channels, which also uses libpng. Feel free to pillage from it:

Re: GUI interface

Posted: Fri Sep 13, 2013 7:55 pm
by JonAbbott
tlsa wrote:Feel free to pillage
Brilliant...and welcome :D