Ioquake3

Porting
Mali-400 port was done by Luc libv Verhaegen. Purpose of this port is only testing the OpenGL ES libraries, no playable experience is available yet.

Building
Remove X11 Mali-400 libraries if you installed them, install framebuffer ones! (make framebuffer in mali-libs) Current ioquake3 uses only framebuffer output, nothing else. git clone https://github.com/libv/ioquake3 cd ioquake3 git checkout remotes/origin/mali_fb nano Makefile.local # change DEFAULT_BASEDIR to directory where you have Quake 3 Arena game files make ARCH=arm cd build/release-linux-arm

Running
Run ./ioquake3.arm in your build/release-linux-arm directory

You should get something like this: root@linaro-alip:~/ioquake3-mali_fb/build/release-linux-arm# ./ioquake3.arm ioq3 1.36 linux-arm Dec 6 2012 - FS_Startup - Current search path: /root/.q3a/baseq3 /home/linaro/ioquake3//baseq3/twpak0.pk3 (116 files) /home/linaro/ioquake3//baseq3/pak8.pk3 (9 files) /home/linaro/ioquake3//baseq3/pak7.pk3 (4 files) /home/linaro/ioquake3//baseq3/pak6.pk3 (64 files) /home/linaro/ioquake3//baseq3/pak5.pk3 (7 files) /home/linaro/ioquake3//baseq3/pak4.pk3 (272 files) /home/linaro/ioquake3//baseq3/pak3.pk3 (4 files) /home/linaro/ioquake3//baseq3/pak2.pk3 (148 files) /home/linaro/ioquake3//baseq3/pak1.pk3 (26 files) /home/linaro/ioquake3//baseq3/pak0.pk3 (3510 files) /home/linaro/ioquake3//baseq3 -- 4160 files in pk3 files execing default.cfg execing q3config.cfg com_zoneMegs will be changed upon restarting. couldn't exec autoexec.cfg Hunk_Clear: reset the hunk ok - Client Initialization - Couldn't read q3history. - Initializing Renderer --- QKEY found. - Client Initialization Complete - - R_Init - Initializing OpenGL subsystem FB dimensions 1920x1080 Initializing OpenGL extensions ...GL_EXT_texture_compression_s3tc not found ...GL_S3_s3tc not found ...using GL_ARB_multitexture ...GL_EXT_compiled_vertex_array not found ...GL_EXT_texture_filter_anisotropic not found -- GL_VENDOR: ARM GL_RENDERER: Mali-400 MP GL_VERSION: OpenGL ES-CM 1.1 GL_EXTENSIONS: GL_OES_byte_coordinates GL_OES_fixed_point GL_OES_single_precision GL_OES_matrix_get GL_OES_read_format GL_OES_compressed_paletted_texture GL_OES_point_size_array GL_OES_point_sprite GL_OES_texture_npot GL_OES_query_matrix GL_OES_matrix_palette GL_OES_extended_matrix_palette GL_OES_compressed_ETC1_RGB8_texture GL_OES_EGL_image GL_OES_draw_texture GL_OES_depth_texture GL_OES_packed_depth_stencil GL_EXT_texture_format_BGRA8888 GL_OES_framebuffer_object GL_OES_stencil8 GL_OES_depth24 GL_ARM_rgba8 GL_OES_EGL_image_external GL_OES_EGL_sync GL_EXT_multisampled_render_to_texture GL_OES_texture_cube_map GL_EXT_discard_framebuffer GL_MAX_TEXTURE_SIZE: 4096 GL_MAX_TEXTURE_UNITS_ARB: 8 PIXELFORMAT: color(0-bits) Z(0-bit) stencil(0-bits) MODE: 8, 1920 x 1080 fullscreen hz:N/A GAMMA: software w/ 0 overbright bits rendering primitives: single glDrawElements texturemode: GL_LINEAR_MIPMAP_LINEAR picmip: 0 texture bits: 32 multitexture: enabled compiled vertex arrays: enabled texenv add: enabled compressed textures: disabled HACK: using vertex lightmap approximation Initializing Shaders - finished R_Init - -- Initializing Sound -- SDL_Init( SDL_INIT_AUDIO )... OK SDL audio driver is "alsa". SDL_AudioSpec: Format:  AUDIO_S16LSB Freq:    22050 Samples: 2048 Channels: 2 Starting SDL audio callback... SDL audio initialized. - Sound Info - 1 stereo 65536 samples 16 samplebits 1 submission_chunk 22050 speed 0x4241a008 dma buffer No background file. -- Sound initialization successful.

Sound memory manager started Loading vm file vm/ui.qvm... Architecture doesn't have a bytecode compiler, using interpreter ui loaded in 2348480 bytes on the hunk 38 arenas parsed 32 bots parsed --- Common Initialization Complete --- IP: 127.0.0.1 IP: 192.168.1.151 IP6: ::1 IP6: fe80::986e:5cff:fef9:cae0%eth0 Opening IP6 socket: [::]:27960 Opening IP socket: 0.0.0.0:27960 Then enter this to run the demo benchmark: timedemo 1 demo four ioquake3 is not wired with any input system (game will not recognize any keyboard or mouse input), this lines will go stright to Quake 3 console that will run under the renderer output.

TODO

 * Add input system (evdev?)
 * Add X11 support

Links

 * linux-sunxi.org: quake 3 arena timedemo - http://www.youtube.com/watch?v=k4LbQGdwslA