Difference between revisions of "Raspberry Pi"

From DoomWiki.org

[checked revision][checked revision]
(Models: Adding the Pi 3.)
(Caveats)
Line 39: Line 39:
  
 
The Raspberry Pi's GPU supports a video overlay and {{wp|OpenGL ES}} 2, and requires special builds of SDL and SDL 2 from the RetroPie project as of this writing. As these changes have not been accepted into the upstream project, use of the vanilla versions of SDL can cause problems such as blank screens, loss of keyboard control, system lockups, and poor frame rates.
 
The Raspberry Pi's GPU supports a video overlay and {{wp|OpenGL ES}} 2, and requires special builds of SDL and SDL 2 from the RetroPie project as of this writing. As these changes have not been accepted into the upstream project, use of the vanilla versions of SDL can cause problems such as blank screens, loss of keyboard control, system lockups, and poor frame rates.
 +
 +
With the introduction of the Raspberry Pi 3, All known CPU bugs have been eliminated. Source ports can be compiled using {{c|-j4}} with no risk of corruption or segfaults. However, the SDL2 libraries released with the latest Raspbian distribution for the Pi 3 do not have proper GPU support, and ports using SDL2 will be unbearably slow. Compiling SDL 2.0.4 from scratch or using the above libraries are the only solutions available at this time.
  
 
==Ports==
 
==Ports==

Revision as of 15:15, 7 March 2016

The Raspberry Pi is an inexpensive system-on-chip (SOC) single-board general purpose computer. While originally intended to teach programming in public schools, the Raspberry Pi is popular in hobbyist circles for its capacity to serve as a controller for customizable embedded devices. Due to its generous processing power, memory, 1080p HDMI output, and USB interfaces, it was only a matter of time before Doom was ported to this platform.

The shareware version of Doom was used during development of the Raspberry Pi in its benchmarking tests, and was useful in debugging compilation issues when porting software to the Raspberry Pi's ARM1176JZF-S, a relatively rare ARMv6 variant. Chocolate Doom is available in the official Raspberry Pi Store, and can be considered the "official" source port for the platform.

If a player does not want to buy Chocolate Doom from the store, he or she may compile it, as well as many other ports, from scratch. This article is not intended to be a specific how-to, as many ports may differ, but will discuss the basics of the models, the problems faced when using these devices for Doom, and a list of source ports which have been tested and confirmed to work.

Models

There are three product runs and six models of the Raspberry Pi, with model names mimicking the BBC Micro. All feature HDMI output, can communicate with other computers over an Ethernet network, and can utilize SD cards for storage (with the exception of the Compute Module, which has no ports at all and only fixed flash storage). The following list below will give simple specs and advice for those who wish to use Raspberry Pi for playing.

First Run

These models are the initial run, and have known hardware issues under stress. Thankfully, updated firmware releases have worked around most of these issues, but kernel panics may still occur under heavy load for an extended period of time. They are all clocked at 700 MHz by default. If one desires to overclock the system, he or she can choose the "High" option from the raspi-config program. See the official Raspberry Pi website for details.

  • Model A: 256MB RAM, one USB port. USB to Ethernet port adapter is required for netplay with a powered USB hub.
  • Model B: 512MB RAM, two USB ports and Ethernet port. Multiple Model Bs can be easily connected for LAN.

Second Run

These models fix hardware issues, consume less power, and can be overclocked safely. These are still clocked at 700MHz, but can be overclocked to "Turbo" without issue. More complex maps will benefit from overclocking these models.

  • Model A+: 256MB RAM, one USB port.
  • Model B+: 512MB RAM, two USB ports and Ethernet port.
  • Compute Module: Same as the Model B+ but requires an expansion board to use. Not recommended.

Third Run (Pi 2)

The third run brings an update to the Raspberry Pi Model B+, called the Pi 2, with an ARMv7 instruction set, a 900MHz quad core processor, and 1GB RAM. There is no "A" model for this run. Due to its quad core processor, this eliminates many of the problems with the previous models, and thanks to recent firmware updates, is virtually error-free. Source ports that use multiple threads for execution will benefit the most. These can also be overclocked, but may not be needed.

Soon after the Pi 2, an updated version of the Model A was released, called the Pi Zero, with a 1GHz single core CPU and 512MB RAM. Other than hardware stability improvements, RAM size increase, and reduction of USB ports to Micro USB, this is similar to an overclocked Model A.

Fourth Run (Pi 3)

The fourth run, the Pi 3, was an unexpected upgrade to the Raspberry Pi line. With a Cortex-A53, a 64-bit ARMv8 1.2GHz quad core processor, it rivals recent smartphones in power and CPU features. However, there is still 1GB RAM due to backwards compatibility limitations. In better news, the stability of the machine far exceeds the previous models, and the GPU clock has been doubled to 400 MHz.

Caveats

Compilation can be very slow and tedious. It is not recommended to perform other tasks as source ports compile, and an underpowered unit may segfault, or worse, kernel panic in an endless loop. With a Pi 2, compilation can be accelerated via use of multiple cores through the -j3 switch. Use of -j4 however should be avoided, as it may cause GCC to issue bogus errors or crash. Ensure that the system boot SD card is fully functional.

The Raspberry Pi's GPU supports a video overlay and OpenGL ES 2, and requires special builds of SDL and SDL 2 from the RetroPie project as of this writing. As these changes have not been accepted into the upstream project, use of the vanilla versions of SDL can cause problems such as blank screens, loss of keyboard control, system lockups, and poor frame rates.

With the introduction of the Raspberry Pi 3, All known CPU bugs have been eliminated. Source ports can be compiled using -j4 with no risk of corruption or segfaults. However, the SDL2 libraries released with the latest Raspbian distribution for the Pi 3 do not have proper GPU support, and ports using SDL2 will be unbearably slow. Compiling SDL 2.0.4 from scratch or using the above libraries are the only solutions available at this time.

Ports

This list is by no means complete. Unless indicated otherwise, all ports noted in this list are best played in framebuffer mode, not X11, due to hardware acceleration. Most of the display problems described are remedied by installing the custom RetroPie SDL libraries.

Port X11 Support Notes
Chocolate Doom Yes Also works in framebuffer mode.
Doom Retro Yes Requires a custom compile of SDL2_mixer.
Eternity Engine Yes Thoroughly tested, and should work properly.
Odamex Yes Client and server compile and run properly.
PrBoom  ? Officially supported in the RetroPie Project, and should be played in that environment. PrBoom+ does not work, due to build system issues.
ZDoom (SDL2) No As of late April 2015, ZDoom is mostly supported, using OpenAL instead of FMOD. ZDBSP may cause rendering issues.

Sources

  • This article incorporates text from the open-content Wikipedia online encyclopedia article Raspberry Pi.
  • Post mentioning James Hughes using Doom as benchmark.

External links