User avatar
Mequa
Posts: 172
Joined: Sun Sep 09, 2012 9:54 pm
Location: England
Contact: Website

RISC OS Pi port of XAMOS?

Sat Nov 24, 2012 10:37 pm

I'm wondering if RISC OS Pi would be well-served by a port of XAMOS?

XAMOS is an early alpha reimplementation of AMOS BASIC from the Amiga, utilising SDL libraries and implemented in C++. It includes support for Amiga-style screens, bobs, sprites and rainbows using SDL, a mostly-complete interpreter for the AMOS Animation Language (an included script in AMOS), and an extended language with the beginnings of support for some simple object-orientation and concurrent routines.

XAMOS currently runs on the following platforms:
Win32 (MinGW)
Linux (multiple architectures)
AROS (x86, others possible)
MorphOS (PPC)
AmigaOS 4.1 (PPC)

In addition, OS X is probably easy to port to, by someone with some experience of using SDL extensions with XCode.

I also have an experimental build for Raspbian ARMHF, but it is dog slow, giving 12 frames per second out of 60 in an X window. (ARMEL was even worse.) I'm wondering if a RISC OS port would perform much better? It could run in fullscreen 800x600 mode. I know RISC OS supports SDL. Ideally I would need hard-float support on RISC OS, as the source is very float-heavy, although the main overhead is the SDL graphics. (The XAMOS and XAMAL interpreters fly along fast enough on the Pi already, when graphics are removed.)

The sources are above, with makefiles provided for the above platforms. Does anyone wish to attempt building this Amiga-flavoured BASIC dialect for RISC OS Pi? It would be a show of full circle, with Acorn and Amiga machines both being revolutionary in their own way. And now we get the possibility of not only RISC OS on the Raspberry Pi natively running BBC BASIC, but AMOS BASIC as well, with extended Amiga-style screen and sprite support.

I have a lot of work on at the moment, so any takers at getting XAMOS working on RISC OS Pi?

User avatar
Mequa
Posts: 172
Joined: Sun Sep 09, 2012 9:54 pm
Location: England
Contact: Website

Re: RISC OS Pi port of XAMOS?

Mon Dec 17, 2012 6:30 pm

Update: Chris Gransden has build a test version of XAMOS for RISC OS, compatible with RISC OS Pi. This includes support for the RISC OS filetype system.

You can download it from here, or the project's SourceForge files page.

User avatar
farfromsleep
Posts: 3
Joined: Thu Dec 20, 2012 10:42 pm

Re: RISC OS Pi port of XAMOS?

Thu Dec 20, 2012 11:20 pm

Just wanted to say thanks for your efforts in developing this, as well as porting to RISC OS Pi. I've been thinking about putting together some simple games for the system, wishing there was something like Blitz or AMOS that could let me prototype ideas quickly. And now here it is :D

I really look forward to seeing how this progresses, I think it's a great idea to develop a hobbyist games-focused language that's portable across so many different OS. I'm currently waiting for my Pi to be delivered, so I'll try a few experiements in jamos/xamos to see if I can make a start on some games in the meantime.

Any word on how the performance is compared to the Raspbian build yet?

User avatar
Mequa
Posts: 172
Joined: Sun Sep 09, 2012 9:54 pm
Location: England
Contact: Website

Re: RISC OS Pi port of XAMOS?

Thu Dec 27, 2012 3:23 pm

farfromsleep wrote:Any word on how the performance is compared to the Raspbian build yet?
Both are going to be slow in a window.

On Raspbian the performance is impacted by the slow X renderer, so it's slow even in fullscreen mode (which the Raspbian build now uses as default). This can be massively improved by using the SDL with dispmanx backend (which currently works from the Linux console only, not from LXDE).

The RISC OS build (based on the last build of XAMOS) had a few features unique to RISC OS added by Chris Gransden, such as adding a XAMOS filetype to RISC OS, and the option to launch XAMOS in fullscreen mode by editing a RISC OS script.

On Raspbian with the dispmanx SDL (fullscreen from console), I got around 30FPS with XAMOS on the "Eater" and "XAMOSOut" demos (with occasional slowdown). This compares with 12FPS using an X renderer. Still not quite the ideal 60FPS though.

Note that the Raspbian build of XAMOS does not use hardware acceleration for the actual drawing, it merely uses dispmanx post-rendering to scale the 720x576 window to native fullscreen resolution. This hardware-accelerated scaling won't be possible on RISC OS Pi (at least not for a while!), however it doesn't provide any performance advantage.

A good performance comparison would be XAMOS on Raspbian with dispmanx, against XAMOS on RISC OS Pi in fullscreen mode. The default "Eater" demo uses a timer which assumes 60FPS, so it's possible to calculate its frame rate (e.g. 60 on-screen seconds in 120 real seconds = 30FPS).

Return to “RISCOS”