14 captures
16 May 2013 - 25 Aug 2025
Apr MAY Jun
16
2012 2013 2014
success
fail

About this capture

COLLECTED BY

Organization: Internet Archive

The Internet Archive discovers and captures web pages through many different web crawls. At any given time several distinct crawls are running, some for months, and some every day or longer. View the web archive through the Wayback Machine.

Collection: Wide Crawl started April 2013

Web wide crawl with initial seedlist and crawler configuration from April 2013.
TIMESTAMPS

The Wayback Machine - http://web.archive.org/web/20130516083352/https://lwn.net/Articles/540331/
 
LWN.net Logo

Log in now

Create an account

Subscribe to LWN

Return to the Front page

LWN.net Weekly Edition for May 16, 2013

A look at the PyPy 2.0 release

PostgreSQL 9.3 beta: Federated databases and more

LWN.net Weekly Edition for May 9, 2013

(Nearly) full tickless operation in 3.10

SCALE: Marshmallow on Raspberry Pi

ByNathan Willis
February 27, 2013

Developers have used the diminutive Raspberry Pi as a platform for an assortment of computing tasks, but one of the most popular tasks has been entertainment—including video gaming. At SCALE 11x in Los Angeles, developer Guillermo Antonio Amaral Bastidas presented his work on the Marshmallow Entertainment System (MES), a retro-styled video game engine for 8- and 16-bit, 2D games. He compared MES to the competition (both open and closed) and explained what he has learned along the way.

Heroes and villains

Amaral does not simply talk the talk; his presentation was delivered in the form of a 2D side-scrolling MES game in which he navigated a character (which looked like him) through a game world—a world in which his text notes were embedded in a obstacle course (and, in some cases, floating by like clouds). He started off with a rundown of the other "open-ish" game consoles, comparing their openness and their specifications (both hardware and software).

[Amaral speaking]

The first was the Uzebox, a do-it-yourself retro gaming console based on an AVR microcontroller. The Uzebox offers little in the way of power, running at 30MHz, but it is 8-bit native, so game designers can build actual 8-bit, "Nintendo-style" games with the project's software development kit (SDK). The SDK includes a clock-perfect emulator, which is vital for testing games during development, and the project is completely open: open software and firmware, plus full hardware schematics. It may lack power, but Uzebox is also very affordable at US $60.

The GP2X is a slightly more powerful device designed as a handheld akin to the PlayStation Portable. It runs at 200MHz, which Amaral described as "mid-range" for such a system, and it is marketed as a ready-to-use consumer device. The SDK is open source, but Amaral said he was still unsure about the openness of the hardware. The GP2X is sold only in South Korea, so it can be difficult (and expensive) to find in other regions.

There are several Android-powered gaming devices on the market, he said, such as the Ouya and the GameStick. Both are very powerful, particularly for their price points (around US $80 for the GameStick, $100 for the Ouya, which is currently in pre-order). But they are both designed to play only Android games. So far, emulators have been promised but are not yet available. Amaral said he does not trust Android emulators to deliver a clock-perfect emulation environment, which should concern game developers. Both projects describe their SDKs as open source, but he said it was not clear exactly which components are available under an open source license and which are not. The hardware is proprietary for both products.

The challenger

MES has been two years in the making, he said. The early work was done on BeagleBoard and PandaBoard hardware, with the goal of creating a miniature game-focused distribution that anyone could download and run from a memory card on an off-the-shelf product. The BeagleBoard and PandaBoard were eventually discarded as being too slow at graphics, at which point he turned his attention to pre-release Raspberry Pi hardware. The Pi was an excellent fit because it can be safely overclocked to 1GHz, developers can write games for it in pure C++, and because it introduces few dependencies. He spent a considerable amount of time building the MES engine, plus the time required to get the Raspbian distribution into a workable shape (which included getting Qt4 running).

Lest there be any doubt, MES is entirely open source. It includes the stripped-down version of Raspbian which is focused solely on launching the Marshmallow game engine. He had initially intended each MES game to be installed on a separate SD card, so that they would be swapped in and out like the cartridges of 8-bit era game consoles. But the final builds used up just 110MB (for the OS and game engine), so he now recommends people install as many games as they want on a single card. The OS image uses a modified version of Buildroot and launches into a game selector screen. Amaral described the game selector as a work in progress, but the modified version of buildroot and other changes are all available on his GitHub repository.

During the development process, Amaral learned a few things about developing for the Raspberry Pi that he had not anticipated. The graphics capabilities are "awesome," he said, to the point where MES runs better on the Raspberry Pi than it does on his laptop. It even runs fine on the open source video driver, for those who do wish to avoid binary blobs. But audio support was less pleasant. The device supports both pure ALSA and OpenAL, but OpenAL runs too slowly to be useful. On the other hand, ALSA support was unsatisfactory as well; the device supports opening only one audio channel at a time. To get around this limitation (to, for example, provide background music as well as sound effects), Amaral wrote his own software audio mixer for MES.

A development wrinkle of a different sort is the Raspberry Pi's power cycling. The device has no reboot switch; it starts up when power is connected, and shuts off when it is removed. That can be annoying if using the device as a game system; more so while developing for it. To work around this problem, he designed an add-on board that sports a hardware reboot-switch. The board is called the Raspberry Pi Power Button, and the MES project sells it as a fundraiser, though the schematics are free on Amaral's GitHub site and anyone can build their own.

MES is just getting started as a game development platform. He described the engine as being "its own SDK," but so far there is not much in the way of a development guide. The SD card images come with a single demo game—though Amaral said he repeatedly encourages fans to contribute more to the game. The platform is BSD licensed, a decision he hoped would appeal to many independent game developers hoping to make products. Despite the newness of the platform, he said three gaming companies have contacted him to test it out, as well as attention from open source software and open hardware circles.

Raspberry Pi devices are a popular topic on the conference circuit these days, especially for gaming. But the most common gaming experience seems to be resurrecting 80's and 90's–era proprietary games for their nostalgia value. While that is certainly a source of entertainment, writing original games is more interesting, and MES shows that they can still provide that 8-bit retro feel, without the hassle of finding a legally-questionable ROM image from an old, commercial game.


(Log in to post comments)

SCALE: Marshmallow on Raspberry Pi

Posted Feb 28, 2013 11:29 UTC (Thu) by nim-nim (subscriber, #34454) [Link]

> It even runs fine on the open source video driver,

No such thing exists today
http://www.cnx-software.com/tag/fosdem-2013/

Sad to see such a mistake in a lwn article

SCALE: Marshmallow on Raspberry Pi

Posted Feb 28, 2013 17:10 UTC (Thu) by hummassa (subscriber, #307) [Link]

I was under the impression that the Lima drivers kind of worked, presently.

SCALE: Marshmallow on Raspberry Pi

Posted Feb 28, 2013 17:33 UTC (Thu) by mjg59 (subscriber, #23239) [Link]

The Pi doesn't have a Mali.

SCALE: Marshmallow on Raspberry Pi

Posted Feb 28, 2013 18:03 UTC (Thu) by hummassa (subscriber, #307) [Link]

You are absolutely right about that. My bad.

SCALE: Marshmallow on Raspberry Pi

Posted Feb 28, 2013 19:32 UTC (Thu) by dlang (✭ supporter ✭, #313) [Link]

actually, the Pi does have an opensource video driver.

People are just complaining because it turns out that the video driver is little more than a shim to call complex functions in the video firmware, which is not open.

SCALE: Marshmallow on Raspberry Pi

Posted Mar 17, 2013 21:52 UTC (Sun) by gamaral (guest, #89910) [Link]

Hey that's me! :)

I would like to point out that I was referring to my laptop's video drivers (which are pretty slow), not the RPi's.

SCALE: Marshmallow on Raspberry Pi

Posted Feb 28, 2013 19:48 UTC (Thu) by tpetazzoni (subscriber, #53127) [Link]

Sad to see that we haven't seen any patches on the Buildroot mailing list from this developer... It seems like the entire RasberryPi community prefers to fork the world rather than contributing to upstream projects (the Linux kernel, of course, but in this case, Buildroot as well).

SCALE: Marshmallow on Raspberry Pi

Posted Feb 28, 2013 20:05 UTC (Thu) by yann.morin.1998 (subscriber, #54333) [Link]

> The OS image uses a modified version of Buildroot

First, Buildroot is not an "OS image". Buildroot is a build system. So, this is saying that he uses a modified version of Buildroot to build his "OS image".

Second, it is sad that such interesting work was not, even tentatively, upstreamed. Especially since upstream has all the pieces to build for a Raspberry Pi, well integrated within the standard Buildroot infrastructure:
http://git.buildroot.org/buildroot/tree/package/rpi-firmware
http://git.buildroot.org/buildroot/tree/package/rpi-userland

At least, he's (ocasionally) merging from upstream, which would make it easy to upstream.

Disclaimer: I'm a Buildroot contributor.

Regards,
Yann E. MORIN.

SCALE: Marshmallow on Raspberry Pi

Posted Mar 1, 2013 6:17 UTC (Fri) by hrw (subscriber, #44826) [Link]

> for those who do wish to avoid binary blobs.

Can you boot r/pi without binary blobs? Last time I saw it was not possible.

> The BeagleBoard and PandaBoard were eventually discarded as being too slow at graphics

Numbers? Configs?

SCALE: Marshmallow on Raspberry Pi

Posted Mar 1, 2013 7:15 UTC (Fri) by dlang (✭ supporter ✭, #313) [Link]

unless you are using coreboot (and frequently not even then), there is no system that you can boot without some binary blob somewhere

The Pi has a boot-time (BIOS equivalent) binary blob, and the GPU (video card equivalent) runs a binary blob. However, you have source to absolutely everything running in Linux (both the kernel and userspace, with no binary firmware blobs loaded by the kernel)

is this perfect? no. but it's pretty good

SCALE: Marshmallow on Raspberry Pi

Posted Mar 1, 2013 8:18 UTC (Fri) by hrw (subscriber, #44826) [Link]

As long as do not need any binary blobs on booting media I am fine. I can boot TI OMAP, Freescale i.mx3x/5x and few other CPUs without any blobs (in cpu bootloader does not count as I can not replace it).

r/pi still need bootloader blobs to get the GPU up which in turn boots up the CPU. And this is a thing which keeps me away from that old (due to arm11) platform.

SCALE: Marshmallow on Raspberry Pi

Posted Mar 1, 2013 19:26 UTC (Fri) by dlang (✭ supporter ✭, #313) [Link]

that's a fair position. Personally I like the fact that it's so easy to put in a modified 'BIOS' version and while I don't _like_ the fact that the boot partition needs to be FAT, it doesn't really bother me much.

They've already had several updates for the initialization blob, and more are expected (to enable the camera and display ports on the card)

But for people who would rather have such blobs in built-in flash or ROM rather than on the SD card flash that you boot from, I can see how the Pi would not fit your requirements.

SCALE: Marshmallow on Raspberry Pi

Posted Mar 1, 2013 19:27 UTC (Fri) by dlang (✭ supporter ✭, #313) [Link]

by the way, you can also write your own boot blob. There are people running the Pi hardware with their own OS developed from scratch who don't use the Pi boot blob. They aren't running Linux, and are little more than 'hello world' OSs, but it's being done.

SCALE: Marshmallow on Raspberry Pi

Posted Mar 2, 2013 3:22 UTC (Sat) by wookey (subscriber, #5501) [Link]

"unless you are using coreboot (and frequently not even then), there is no system that you can boot without some binary blob somewhere"

Nonsense. There are plenty of arm systems you can boot without any binary blob. I have dealt with several myself. And none are using coreboot.

SCALE: Marshmallow on Raspberry Pi

Posted Mar 2, 2013 9:49 UTC (Sat) by mgedmin (subscriber, #34497) [Link]

Was the talk recorded? I'd love to watch the video.

SCALE: Marshmallow on Raspberry Pi

Posted Mar 2, 2013 10:02 UTC (Sat) by dlang (✭ supporter ✭, #313) [Link]

Recording was attempted (along with live streaming), there were problems with the recordings that ruined some of them and caused periodic small gaps in others. they are working to see what's what and get them all up.

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds