release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Search | Go
Wiki > Main > PluginIndex > PluginQuake

Quake


Introduction

Yes, Rockbox finally has a port of id Software's famous 3-D shooter, Quake! It is based on Andy Hefner's fork of SDLQuake and runs on the SDL plugin runtime.


Getting Started

To play Quake you need the game data files in /.rockbox/quake (either registered or shareware will do). There should be a directory called id1 with at least one pak file.

Automatic Installation

The latest RockboxUtility (1.4.1 and later) will automatically install the shareware distribution if you enable "Game Files".

Configuration

Some sets of data files will have a config.cfg which has a nonzero brightness setting. This will cause color distortions. To fix this, do Options > Reset to Defaults.

Sound Effects

Sound should work out of the box. If not, check that the volume is high enough.

Music

In-game music is not currently supported, but there is an experimental patch in gerrit which enables it (using only uncompressed WAV files).

Performance

This port pushes the limits of the devices we support. Frame rates, even on the most powerful devices, will be very low (in the single digits, usually).

A good way to measure performance is with the timedemo command in the console (Options > Go to Console). For example, running timedemo demo1 will run demo1 and calculate the average frame rate. The results of previous benchmarks are shown in the table below.

Revision Device demo1 Average FPS
3fffabf ipod6g 9.7
ee70dad ipod6g 10.6
4397194 ipod6g 13.0
49dd38c ipod6g 13.8

Optimization

Much of the engine still uses floating-point throughout, which greatly hurts performance on devices without a floating-point unit (FPU). This includes most ARM families (i.e. less than ARMv6). Thus, an obvious way to boost performance is by rewriting floating-point code as fixed-point.

Thankfully, we are not to first to have this problem. The Pocket Quake project (source) has already rewritten substantial portions of the source as fixed-point, and it is a fairly straightforward (but time-consuming) process to merge their changes. Merging just a few of their optimizations to just a few critical sections has yielded a ~42% performance increase on ipod6g. However, there is still a lot of low-hanging fruit I haven't had the time to merge yet. A quick way to help out is to merge some of these fruits into our tree. You could probably double performance with the right set of patches!

Low-Hanging Fruit

The code in d_scan.c accounts for a significant fraction of CPU time. Make it fast!


CategoryPlugin: id software's Quake []
  • quake_sw.zip: Quake shareware. Extract to /.rockbox/quake.

  • Quake on ipod6g:
    out.jpg
I Attachment Action Size Date Who Comment
out.jpgjpg out.jpg manage 181.7 K 10 Aug 2019 - 17:13 FranklinWei Quake on ipod6g
quake_sw.zipzip quake_sw.zip manage 8382.1 K 30 Oct 2019 - 03:37 FranklinWei Quake shareware. Extract to player root
r7 - 12 Nov 2019 - 00:45:20 - FranklinWei


Parents: PluginIndex
Copyright by the contributing authors.