welcome: please sign in
Differences between revisions 1 and 2
Revision 1 as of 2012-05-24 21:34:26
Size: 3015
Editor: MikeThompson
Comment:
Revision 2 as of 2012-05-29 10:14:03
Size: 1926
Editor: jerry.tk
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
Line 8: Line 7:
 1. Download the Quake 3 source code .tar.gz from here.
 1. As root, '''aptitude install gcc build-essential'''
 1. Also as root, '''aptitude install libsdl1.2debian libsdl-image1.2 libsdl-image1.2-dev libsdl-mixer1.2 libsdl-mixer1.2-dev libsdl-net1.2 libsdl-net1.2-dev''' (this possibly includes unnecessary stuff and the occasional typo, but it worked...)
 1. Decompress your source .tar.gz and replace build.sh with the following: {{{
    #!/bin/bash
    # this script builds q3 with SDL
    # invoke with ./build.sh
    # or ./build.sh clean to clean before build

    # directory containing the ARM shared libraries (rootfs, lib/ of SD card)
    # specifically libEGL.so and libGLESv2.so
    ARM_LIBS=/opt/vc/lib
    SDL_LIB=lib

    # directory containing baseq3/ containing .pk3 files - baseq3 on CD
    BASEQ3_DIR="/home/${USER}/"

    # directory to find khronos linux make files (with include/ containing
    # headers! Make needs them.)
    INCLUDE_DIR="/opt/vc/include"

    # prefix of arm cross compiler installed
    # CROSS_COMPILE=bcm2708-

    CROSS_COMPILE=

    # clean
    if [ $# -ge 1 ] && [ $1 = clean ]; then
       echo "clean build"
       rm -rf build/*
    fi

    # sdl not disabled
    make -j4 -f Makefile COPYDIR="$BASEQ3_DIR" ARCH=arm \
            CC=""$CROSS_COMPILE"gcc" USE_SVN=0 USE_CURL=0 USE_OPENAL=0 \
            CFLAGS="-DVCMODS_MISC -DVCMODS_OPENGLES -DVCMODS_DEPTH -DVCMODS_REPLACETRIG -I$INCLUDE_DIR" \
            LDFLAGS="-L"$ARM_LIBS" -L$SDL_LIB -lSDL -lvchostif -lvmcs_rpc_client -lvcfiled_check -lbcm_host -lkhrn_static -lvchiq_arm -lopenmaxil -lEGL -lGLESv2 -lvcos -lrt -lbcm_host -mfloat-abi=hard -mfpu=vfp"

    # copy the required pak3 files over
    # cp "$BASEQ3_DIR"/baseq3/*.pk3 "build/release-linux-arm/baseq3/"
 1. As root: '''aptitude install gcc build-essential libsdl1.2-dev'''
 1. Download the Quake 3 source code:
 {{{
    git clone https://github.com/raspberrypi/quake3.git
Line 49: Line 12:
 6. Do a '''./build.sh'''
 1. Wait.
 1. Wait a bit more. This is assuming I haven't made any mistakes in the guide.
 1. Find copies of the following somewhere (other guides will show you) and place in '''build/release-linux-arm/baseq3: pak0.pk3 pak1.pk3 pak2.pk3 pak3.pk3 pak4.pk3 pak5.pk3 pak6.pk3 pak7.pk3 pak8.pk3'''
 1. As root, run '''ioquake3.arm'''. Shoot things. (It should work as a non-root user when I figure out the necessary DirectFB incantations.)
 1. Edit build.sh:
 {{{
    change line 8 to this: ARM_LIBS=/opt/vc/lib
    change line 16 to this: INCLUDE_DIR="/opt/vc/include"
    and comment out line 19: #CROSS_COMPILE=bcm2708-
}}}
 1. Do a '''./build.sh'''
 1. Wait for compilation to finish, takes about 1 hour on RasPi.
 1. Find copies of the following somewhere (other guides will show you) and place in '''build/release-linux-arm/baseq3: '''
  . '''pak0.pk3, pak1.pk3, pak2.pk3, pak3.pk3, pak4.pk3, pak5.pk3, pak6.pk3, pak7.pk3, pak8.pk3'''
 1. As root: {{{usermod -a -G video [your_username]}}}, this will allow you to run game as non-root. Works with other directFB/SDL based stuff, too.
 1. If you do not intend to keep Quake 3 source code, you may reorganize files as suggested by [[http://www.raspberrypi.org/phpBB3/viewtopic.php?f=63&t=6511&p=83593#p83593|this thread]] on RasPi Forum.
 1. Depending on version of Raspbian you use, you may need to copy Broadcom libraries from /opt/vc/lib to /lib.
 1. Run '''ioquake3.arm'''. Shoot things.

Building Quake 3 in Raspbian

Documentation below pulled from the Raspbian Forum. Please update this page if errors in the build process are discovered.

I'm about to go to work in a minute, so please enjoy some terribly condensed instructions on how to build a superpowered Quake 3 in Raspbian, using Hexxeh's SD card image as a base. I've probably missed something important, but this should be a helpful start.

  1. Make sure you're up-to-date with everything (aptitude update; aptitude upgrade)
  2. As root: aptitude install gcc build-essential libsdl1.2-dev

  3. Download the Quake 3 source code:
        git clone https://github.com/raspberrypi/quake3.git
  4. Edit build.sh:
        change line 8 to this: ARM_LIBS=/opt/vc/lib
        change line 16 to this: INCLUDE_DIR="/opt/vc/include"
        and comment out line 19: #CROSS_COMPILE=bcm2708-
  5. Do a ./build.sh

  6. Wait for compilation to finish, takes about 1 hour on RasPi.

  7. Find copies of the following somewhere (other guides will show you) and place in build/release-linux-arm/baseq3:

    • pak0.pk3, pak1.pk3, pak2.pk3, pak3.pk3, pak4.pk3, pak5.pk3, pak6.pk3, pak7.pk3, pak8.pk3

  8. As root: usermod -a -G video [your_username], this will allow you to run game as non-root. Works with other directFB/SDL based stuff, too.

  9. If you do not intend to keep Quake 3 source code, you may reorganize files as suggested by this thread on RasPi Forum.

  10. Depending on version of Raspbian you use, you may need to copy Broadcom libraries from /opt/vc/lib to /lib.
  11. Run ioquake3.arm. Shoot things.

Highly non-scientific testing (i.e. having played a normal-Debian build a few days ago) suggests framerate is quite dramatically improved. Go Raspbian!