GL Quake II on Wayland

Your rating: None Average: 5 (4 votes)

GL Quake II + touch on wayland for Nemo.

Version: 0.3.3harmattan2-3.21+r0.16

Changes: * Building sdlquake2 for sound.
    * Add cvar named "harm_swipesens" for setting swipe sensitivity, float number.


Testing: on Intex AquaFish(has changed brand to Jolla C, SFOS

Build: on mobile.(without SDK and ScratchBox)

Arch: armv7hl 32bits

Only support OpenGL hardware renderer.  And using terminal to run.

Base on Harmattan version.

A first-person shooter computer game developed by id Software and distributed by Activision.

To run the game copy pak0.pak from original game to /home/nemo/.quake2/baseq2 folder.

User executale script is '/home/nemo/.quake2/', if the script file is exists, it will execute user script, else execute global default command. See also in shell script: '/usr/share/quake2/GLquake2'.



Application versions: 
File glquake2-0.3.3harmattan2-3.21r0.16.armv7hl.rpm1.26 MB20/11/2018 - 10:04

* rpm: fix packaging non-armv7hl builds by beidl * Building sdlquake2 for sound. * Add cvar named "harm_swipesens" for setting swipe sensitivity, float number. * Some fix.


edp17's picture

Can somebody rebuild this for libhybris-libGLESv2, please? Thank you!

sashikknox's picture

I public more fast version of this game, based on Thenesis Quake

Ezreal's picture


Mister_Magister's picture

It only segfaults

hcd530's picture


MartiMasa's picture

How about would it work on the original Jolla1 with the keyboard otherhalf "TOHKBD"???

sashikknox's picture

OK, now it work, but with user script... in your script your use - but it link from libGLESv1-devel, in real system its ... 
if you use pure Wayland, you need use qt-surface-extension for setting Landscape mode for your app. qt-surface-extension situated at

#include <QtWaylandClient/5.4.0/QtWaylandClient/private/wayland-surface-extension-client-protocol.h>

you can get it in global_registry_handler function,

if (strcmp(interface, "qt_surface_extension") == 0)    {


         = (struct qt_surface_extension*)wl_registry_bind(registry, id,

         &qt_surface_extension_interface, 1);


then you should get qt_extended_surface 

qt_extended_surface = qt_surface_extension_get_extended_surface(qt_surface_extension, wl_surface);

then just use qt_extended_surface_set_content_orientation function, its say sailfish os orientation of your application. 

And thanks for you port! Its really cool. and it not work from launch icon, only from terminal. .. .hard to play, but very cool )) 

sashikknox's picture

yes, it does not work: log from terminal:


[nemo@Sailfish bin]$ /usr/share/quake2/GLquake2
Run GL Quake II......
Using global default shell script.
/usr/bin/quake2 +set basedir /home/nemo/.quake2 +set vid_ref glx +set gl_driver +set vid_fullscreen 1 +set gl_ext_multitexture 0 +set gl_ext_pointparameters 1 +set gl_shadows 1 +set gl_stencilshadow 1
Quake 2 -- Version 3.21+r0.16
sh: /usr/bin/gconftool-2: No such file or directory
sh: /usr/bin/gconftool-2: No such file or directory
using /home/nemo/.quake2/baseq2/ for writing
couldn't exec default.cfg
execing config.cfg
basedir is write protected.
Console initialized.

------- sound initialization -------
sound sampling rate: 44100
------- Loading -------
No joysticks found
[karin]: Connect Q2 event binding......Done
ref_gl version: GL 0.01
[karin]: Disconnect Q2 event binding......Done
recursive shutdown
sh: /usr/bin/gconftool-2: No such file or directory
Error: Couldn't load pics/colormap.pcx


karin_zhao's picture

Error in last line, it means that missing game data file "pak0.pak" in "/home/nemo/.quake2/baseq2".

explit's picture

Don't work for me on Xperia XA2 on SailfishOS3

sashikknox's picture

about sound: if you dont saw it before, look here
before you use your audio driver in game (ALSA , or directly PulseAudio), you need initialize audioresource in sailfish - that work, already test it ;-)

karin_zhao's picture

Thanks. It works on DOOM 3 with sound by ALSA. But in Quake2, it makes noise, and ALSA is underrun.

sashikknox's picture

when we can play doom ? ;-)

karin_zhao's picture, it is a tar package with gzip, it has a README.txt in package.

And about qt_wayland_surface_extension, I try it, but the desktop is rotated, but the game don't change. It seems necessary to using FBO for screen size setting of game.

sashikknox's picture

yes, you right, for rotating your render you need render target. qt_wayland_surface_extension just tell SFOS your app current orientation, it not rotate app drawing, becuse you already draw directly to EGL context. 
i try your doom 3 build later, thanks!