<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.uqm.stack.nl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ptx</id>
	<title>Ultronomicon - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.uqm.stack.nl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ptx"/>
	<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/Special:Contributions/Ptx"/>
	<updated>2026-04-09T06:17:27Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=22931</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=22931"/>
		<updated>2009-02-27T00:40:49Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Build The Ur-Quan Masters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:uqm_ce.jpg|thumb|320px|The Ur-Quan Masters running on Dell Axim x51v]]&lt;br /&gt;
&lt;br /&gt;
== VMWare image ==&lt;br /&gt;
Ready-to-compile VMWare image of Ubuntu 7.10 server is [http://uqm.stack.nl/files/other/ptx/wince/ubuntu_uqm_wince_20080405.zip available here].&lt;br /&gt;
 User name: uqm&lt;br /&gt;
 Password: uqm&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;uqm&#039;&#039;&#039; user has sudo privileges. You should probably change the password.&lt;br /&gt;
&lt;br /&gt;
See ~/readme.txt for additional details.&lt;br /&gt;
&lt;br /&gt;
== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
==== Patch headers ====&lt;br /&gt;
SDL-1.2.12 headers need to be patched for successful compilation of SDL_image and The Ur-Quan Masters. Note that when building SDL using win32 Visual Studio, the headers must also be patched there (for the APP1-6 keys to be available).&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_config_minimal.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_config_minimal.h       2007-12-24 11:50:58.000000000 -0500&lt;br /&gt;
 @@ -36,7 +36,9 @@&lt;br /&gt;
  typedef signed int int32_t;&lt;br /&gt;
  typedef unsigned int uint32_t;&lt;br /&gt;
  typedef unsigned int size_t;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
  typedef unsigned long uintptr_t;&lt;br /&gt;
 +#endif&lt;br /&gt;
  &lt;br /&gt;
  /* Enable the dummy audio driver (src/audio/dummy/\*.c) */&lt;br /&gt;
  #define SDL_AUDIO_DRIVER_DUMMY 1&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/./include/SDL_keysym.h      2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./include/SDL_keysym.h     2007-12-23 20:16:11.000000000 -0500&lt;br /&gt;
 @@ -282,6 +282,12 @@&lt;br /&gt;
         SDLK_UNDO               = 322,          /* Atari keyboard has Undo */&lt;br /&gt;
  &lt;br /&gt;
         /* Add any other keys here */&lt;br /&gt;
 +       SDLK_APP1               = 323,&lt;br /&gt;
 +       SDLK_APP2               = 324,&lt;br /&gt;
 +       SDLK_APP3               = 325,&lt;br /&gt;
 +       SDLK_APP4               = 326,&lt;br /&gt;
 +       SDLK_APP5               = 327,&lt;br /&gt;
 +       SDLK_APP6               = 328,&lt;br /&gt;
  &lt;br /&gt;
         SDLK_LAST&lt;br /&gt;
  } SDLKey;&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_stdinc.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_stdinc.h       2007-12-24 11:53:11.000000000 -0500&lt;br /&gt;
 @@ -57,13 +57,15 @@&lt;br /&gt;
  # endif&lt;br /&gt;
  # include &amp;lt;string.h&amp;gt;&lt;br /&gt;
  #endif&lt;br /&gt;
 -#ifdef HAVE_STRINGS_H&lt;br /&gt;
 -# include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 -#endif&lt;br /&gt;
 -#if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 -# include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 -#elif defined(HAVE_STDINT_H)&lt;br /&gt;
 -# include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
 +# ifdef HAVE_STRINGS_H&lt;br /&gt;
 +#  include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
 +# if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 +#  include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 +# elif defined(HAVE_STDINT_H)&lt;br /&gt;
 +#  include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
  #endif&lt;br /&gt;
  #ifdef HAVE_CTYPE_H&lt;br /&gt;
  # include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- sdlorig/SDL-1.2.12/./src/video/windib/SDL_dibevents.c       2007-07-20 01:52:19.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./src/video/windib/SDL_dibevents.c 2007-12-23 20:14:55.000000000 -0500&lt;br /&gt;
 @@ -430,6 +430,13 @@&lt;br /&gt;
         VK_keymap[VK_SNAPSHOT] = SDLK_PRINT;&lt;br /&gt;
         VK_keymap[VK_CANCEL] = SDLK_BREAK;&lt;br /&gt;
         VK_keymap[VK_APPS] = SDLK_MENU;&lt;br /&gt;
 +&lt;br /&gt;
 +       VK_keymap[VK_APP1] = SDLK_APP1;&lt;br /&gt;
 +       VK_keymap[VK_APP2] = SDLK_APP2;&lt;br /&gt;
 +       VK_keymap[VK_APP3] = SDLK_APP3;&lt;br /&gt;
 +       VK_keymap[VK_APP4] = SDLK_APP4;&lt;br /&gt;
 +       VK_keymap[VK_APP5] = SDLK_APP5;&lt;br /&gt;
 +       VK_keymap[VK_APP6] = SDLK_APP6;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
 cp libpng.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe&lt;br /&gt;
 make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out The Ur-Quan Masters sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure The Ur-Quan Masters build scripts ==&lt;br /&gt;
To configure The Ur-Quan Masters the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build The Ur-Quan Masters ==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
./build.sh uqm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compress binaries ==&lt;br /&gt;
Use [http://upx.sourceforge.net UPX] to make the binaries WM6.1-compatible.&lt;br /&gt;
&lt;br /&gt;
 upx *.exe *.dll&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install The Ur-Quan Masters (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
# Place shared libraries into $UQM_DIR:&lt;br /&gt;
#* $PRJ/lib/libpng.dll&lt;br /&gt;
#* $PRJ/lib/libvorbisidec.dll&lt;br /&gt;
#* $PRJ/lib/SDL.dll&lt;br /&gt;
#* $PRJ/lib/SDL_image.dll&lt;br /&gt;
#* $PRJ/lib/z.dll&lt;br /&gt;
#* /opt/cegcc/arm-wince-cegcc/lib/device/cegcc.dll&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages. Note that this &amp;quot;addon&amp;quot; file should contain any custom Wince settings, like key mappings.&lt;br /&gt;
&lt;br /&gt;
== Adding The Ur-Quan Masters command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold somewhere (not on a file name) in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut.lnk&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Netplay is not yet supported&lt;br /&gt;
* OpenGL is not yet supported&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not signed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;br /&gt;
&lt;br /&gt;
[[Category:About the Star Control series]]&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=22930</id>
		<title>Windows CE port</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=22930"/>
		<updated>2009-02-27T00:38:14Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Compatibility */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Build from sources ==&lt;br /&gt;
[[Windows CE build instructions|Build instructions]]&lt;br /&gt;
== Pre-compiled binaries ==&lt;br /&gt;
=== Download ===&lt;br /&gt;
[http://wiki.uqm.stack.nl/script/images/6/6e/Uqm-0.6.2-wince-20090226.zip Latest Pocket PC binaries (with WM6.1 support)]&lt;br /&gt;
&lt;br /&gt;
[http://uqm.stack.nl/files/other/ptx/wince/uqm-0.6.2-wince-20080326.zip Pocket PC binaries as of 2008/03/26]&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
# Uncompress uqm_wince_*.zip into a location of choice, for example &amp;quot;\SD Card\games&amp;quot;&lt;br /&gt;
# Download uqm-0.6.0-content.uqm from http://sc2.sourceforge.net/downloads.php and place it into &amp;quot;\SD Card\games\UQM\content\packages&amp;quot;&lt;br /&gt;
# Go to &amp;quot;\SD Card\games\UQM&amp;quot; and [[Windows_CE_build_instructions#Adding_The_Ur-Quan_Masters_command-line_arguments|create a shortcut]] for uqm.exe. Specify log file, and add parameter for 320x240 resolution, in case your PDA doesn&#039;t support VGA (parameter is &amp;quot;-r 320x240&amp;quot;).&lt;br /&gt;
# Run the shortcut created in the previous step&lt;br /&gt;
&lt;br /&gt;
=== Compatibility ===&lt;br /&gt;
Verified to work on the following PDAs / smartphones (with key config tweaks):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#bbbbbb&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Device&lt;br /&gt;
| OS&lt;br /&gt;
| Memory&lt;br /&gt;
| Key File&lt;br /&gt;
|-&lt;br /&gt;
| Dell Axim x51v&lt;br /&gt;
| WM5&lt;br /&gt;
| 64MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Sprint HTC Touch&lt;br /&gt;
| WM6&lt;br /&gt;
| 128MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HTC Touch Cruise / O2 XDA ORBIT II (UK)&lt;br /&gt;
| WM6&lt;br /&gt;
| 128MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Sprint PPC 6700&lt;br /&gt;
| WM5&lt;br /&gt;
| 64MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cingular 3125&lt;br /&gt;
| WM6&lt;br /&gt;
| 64MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HP iPaq 210&lt;br /&gt;
| WM6 Classic&lt;br /&gt;
| 128MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HTC Juno (AKA T-Mobile US Shadow)&lt;br /&gt;
| WM6 Standard&lt;br /&gt;
| 64MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HTC Herald/T-Mobile Wing&lt;br /&gt;
| WM6.1 Professional&lt;br /&gt;
| 128MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HTC Touch Diamond (Sprint)&lt;br /&gt;
| WM6.1&lt;br /&gt;
| 192MB&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
* Default resolution is 640x480. For 320x240 screens, add &amp;quot;-r 320x240&amp;quot; to command line. See the [[Windows CE build instructions|build instructions page]] on how to do that by creating a shortcut.&lt;br /&gt;
* This binary is compiled from the 0.6.2 sources of The Ur-Quan Masters, therefore 0.6.2 content must be used&lt;br /&gt;
* For PDAs other than Dell Axim x51v, might have to play around with starcon.key in &amp;quot;\SD Card\games\UQM\content\uqm-0.6.0-~wince-*.zip&amp;quot; (for the key settings)&lt;br /&gt;
* Screen orientation is hard-coded to landscape&lt;br /&gt;
* Patches to corresponding third party libraries can be found on the [[Windows CE build instructions|build instructions page]].&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=22929</id>
		<title>Windows CE port</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=22929"/>
		<updated>2009-02-27T00:37:10Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Build from sources ==&lt;br /&gt;
[[Windows CE build instructions|Build instructions]]&lt;br /&gt;
== Pre-compiled binaries ==&lt;br /&gt;
=== Download ===&lt;br /&gt;
[http://wiki.uqm.stack.nl/script/images/6/6e/Uqm-0.6.2-wince-20090226.zip Latest Pocket PC binaries (with WM6.1 support)]&lt;br /&gt;
&lt;br /&gt;
[http://uqm.stack.nl/files/other/ptx/wince/uqm-0.6.2-wince-20080326.zip Pocket PC binaries as of 2008/03/26]&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
# Uncompress uqm_wince_*.zip into a location of choice, for example &amp;quot;\SD Card\games&amp;quot;&lt;br /&gt;
# Download uqm-0.6.0-content.uqm from http://sc2.sourceforge.net/downloads.php and place it into &amp;quot;\SD Card\games\UQM\content\packages&amp;quot;&lt;br /&gt;
# Go to &amp;quot;\SD Card\games\UQM&amp;quot; and [[Windows_CE_build_instructions#Adding_The_Ur-Quan_Masters_command-line_arguments|create a shortcut]] for uqm.exe. Specify log file, and add parameter for 320x240 resolution, in case your PDA doesn&#039;t support VGA (parameter is &amp;quot;-r 320x240&amp;quot;).&lt;br /&gt;
# Run the shortcut created in the previous step&lt;br /&gt;
&lt;br /&gt;
=== Compatibility ===&lt;br /&gt;
Verified to work on the following PDAs / smartphones (with key config tweaks):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#bbbbbb&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Device&lt;br /&gt;
| OS&lt;br /&gt;
| Memory&lt;br /&gt;
| Key File&lt;br /&gt;
|-&lt;br /&gt;
| Dell Axim x51v&lt;br /&gt;
| WM5&lt;br /&gt;
| 64MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Sprint HTC Touch&lt;br /&gt;
| WM6&lt;br /&gt;
| 128MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HTC Touch Cruise / O2 XDA ORBIT II (UK)&lt;br /&gt;
| WM6&lt;br /&gt;
| 128MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Sprint PPC 6700&lt;br /&gt;
| WM5&lt;br /&gt;
| 64MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cingular 3125&lt;br /&gt;
| WM6&lt;br /&gt;
| 64MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HP iPaq 210&lt;br /&gt;
| WM6 Classic&lt;br /&gt;
| 128MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HTC Juno (AKA T-Mobile US Shadow)&lt;br /&gt;
| WM6 Standard&lt;br /&gt;
| 64MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HTC Herald/T-Mobile Wing&lt;br /&gt;
| WM6.1 Professional&lt;br /&gt;
| 128MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
* Default resolution is 640x480. For 320x240 screens, add &amp;quot;-r 320x240&amp;quot; to command line. See the [[Windows CE build instructions|build instructions page]] on how to do that by creating a shortcut.&lt;br /&gt;
* This binary is compiled from the 0.6.2 sources of The Ur-Quan Masters, therefore 0.6.2 content must be used&lt;br /&gt;
* For PDAs other than Dell Axim x51v, might have to play around with starcon.key in &amp;quot;\SD Card\games\UQM\content\uqm-0.6.0-~wince-*.zip&amp;quot; (for the key settings)&lt;br /&gt;
* Screen orientation is hard-coded to landscape&lt;br /&gt;
* Patches to corresponding third party libraries can be found on the [[Windows CE build instructions|build instructions page]].&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=22928</id>
		<title>Windows CE port</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=22928"/>
		<updated>2009-02-27T00:36:49Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Build from sources ==&lt;br /&gt;
[[Windows CE build instructions|Build instructions]]&lt;br /&gt;
== Pre-compiled binaries ==&lt;br /&gt;
=== Download ===&lt;br /&gt;
[http://wiki.uqm.stack.nl/script/images/6/6e/Uqm-0.6.2-wince-20090226.zip Latest Pocket PC binaries (with WM6.1 support)]&lt;br /&gt;
[http://uqm.stack.nl/files/other/ptx/wince/uqm-0.6.2-wince-20080326.zip Pocket PC binaries as of 2008/03/26]&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
# Uncompress uqm_wince_*.zip into a location of choice, for example &amp;quot;\SD Card\games&amp;quot;&lt;br /&gt;
# Download uqm-0.6.0-content.uqm from http://sc2.sourceforge.net/downloads.php and place it into &amp;quot;\SD Card\games\UQM\content\packages&amp;quot;&lt;br /&gt;
# Go to &amp;quot;\SD Card\games\UQM&amp;quot; and [[Windows_CE_build_instructions#Adding_The_Ur-Quan_Masters_command-line_arguments|create a shortcut]] for uqm.exe. Specify log file, and add parameter for 320x240 resolution, in case your PDA doesn&#039;t support VGA (parameter is &amp;quot;-r 320x240&amp;quot;).&lt;br /&gt;
# Run the shortcut created in the previous step&lt;br /&gt;
&lt;br /&gt;
=== Compatibility ===&lt;br /&gt;
Verified to work on the following PDAs / smartphones (with key config tweaks):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#bbbbbb&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Device&lt;br /&gt;
| OS&lt;br /&gt;
| Memory&lt;br /&gt;
| Key File&lt;br /&gt;
|-&lt;br /&gt;
| Dell Axim x51v&lt;br /&gt;
| WM5&lt;br /&gt;
| 64MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Sprint HTC Touch&lt;br /&gt;
| WM6&lt;br /&gt;
| 128MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HTC Touch Cruise / O2 XDA ORBIT II (UK)&lt;br /&gt;
| WM6&lt;br /&gt;
| 128MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Sprint PPC 6700&lt;br /&gt;
| WM5&lt;br /&gt;
| 64MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cingular 3125&lt;br /&gt;
| WM6&lt;br /&gt;
| 64MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HP iPaq 210&lt;br /&gt;
| WM6 Classic&lt;br /&gt;
| 128MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HTC Juno (AKA T-Mobile US Shadow)&lt;br /&gt;
| WM6 Standard&lt;br /&gt;
| 64MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HTC Herald/T-Mobile Wing&lt;br /&gt;
| WM6.1 Professional&lt;br /&gt;
| 128MB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
* Default resolution is 640x480. For 320x240 screens, add &amp;quot;-r 320x240&amp;quot; to command line. See the [[Windows CE build instructions|build instructions page]] on how to do that by creating a shortcut.&lt;br /&gt;
* This binary is compiled from the 0.6.2 sources of The Ur-Quan Masters, therefore 0.6.2 content must be used&lt;br /&gt;
* For PDAs other than Dell Axim x51v, might have to play around with starcon.key in &amp;quot;\SD Card\games\UQM\content\uqm-0.6.0-~wince-*.zip&amp;quot; (for the key settings)&lt;br /&gt;
* Screen orientation is hard-coded to landscape&lt;br /&gt;
* Patches to corresponding third party libraries can be found on the [[Windows CE build instructions|build instructions page]].&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=File:Uqm-0.6.2-wince-20090226.zip&amp;diff=22927</id>
		<title>File:Uqm-0.6.2-wince-20090226.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=File:Uqm-0.6.2-wince-20090226.zip&amp;diff=22927"/>
		<updated>2009-02-27T00:35:04Z</updated>

		<summary type="html">&lt;p&gt;Ptx: Updated to support WM6.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Updated to support WM6.1&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=21949</id>
		<title>Windows CE port</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=21949"/>
		<updated>2008-04-23T14:25:45Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Compatibility */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Build from sources ==&lt;br /&gt;
[[Windows CE build instructions|Build instructions]]&lt;br /&gt;
== Pre-compiled binaries ==&lt;br /&gt;
=== Download ===&lt;br /&gt;
[http://uqm.stack.nl/files/other/ptx/wince/uqm-0.6.2-wince-20080326.zip Latest Pocket PC binaries]&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
# Uncompress uqm_wince_*.zip into a location of choice, for example &amp;quot;\SD Card\games&amp;quot;&lt;br /&gt;
# Download uqm-0.6.0-content.uqm from http://sc2.sourceforge.net/downloads.php and place it into &amp;quot;\SD Card\games\UQM\content\packages&amp;quot;&lt;br /&gt;
# Go to &amp;quot;\SD Card\games\UQM&amp;quot; and [[Windows_CE_build_instructions#Adding_The_Ur-Quan_Masters_command-line_arguments|create a shortcut]] for uqm.exe. Specify log file, and add parameter for 320x240 resolution, in case your PDA doesn&#039;t support VGA (parameter is &amp;quot;-r 320x240&amp;quot;).&lt;br /&gt;
# Run the shortcut created in the previous step&lt;br /&gt;
&lt;br /&gt;
=== Compatibility ===&lt;br /&gt;
Verified to work on the following PDAs / smartphones (with key config tweaks):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#bbbbbb&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Device&lt;br /&gt;
| OS&lt;br /&gt;
| Memory&lt;br /&gt;
|-&lt;br /&gt;
| Dell Axim x51v&lt;br /&gt;
| WM5&lt;br /&gt;
| 64MB&lt;br /&gt;
|-&lt;br /&gt;
| Sprint HTC Touch&lt;br /&gt;
| WM6&lt;br /&gt;
| 128MB&lt;br /&gt;
|-&lt;br /&gt;
| Sprint PPC 6700&lt;br /&gt;
| WM5&lt;br /&gt;
| 64MB&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
* Default resolution is 640x480. For 320x240 screens, add &amp;quot;-r 320x240&amp;quot; to command line. See the [[Windows CE build instructions|build instructions page]] on how to do that by creating a shortcut.&lt;br /&gt;
* This binary is compiled from the 0.6.2 sources of The Ur-Quan Masters, therefore 0.6.2 content must be used&lt;br /&gt;
* For PDAs other than Dell Axim x51v, might have to play around with starcon.key in &amp;quot;\SD Card\games\UQM\content\uqm-0.6.0-~wince-*.zip&amp;quot; (for the key settings)&lt;br /&gt;
* Screen orientation is hard-coded to landscape&lt;br /&gt;
* Patches to corresponding third party libraries can be found on the [[Windows CE build instructions|build instructions page]].&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=21904</id>
		<title>Windows CE port</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=21904"/>
		<updated>2008-04-19T01:21:17Z</updated>

		<summary type="html">&lt;p&gt;Ptx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Build from sources ==&lt;br /&gt;
[[Windows CE build instructions|Build instructions]]&lt;br /&gt;
== Pre-compiled binaries ==&lt;br /&gt;
=== Download ===&lt;br /&gt;
[http://uqm.stack.nl/files/other/ptx/wince/uqm-0.6.2-wince-20080326.zip Latest Pocket PC binaries]&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
# Uncompress uqm_wince_*.zip into a location of choice, for example &amp;quot;\SD Card\games&amp;quot;&lt;br /&gt;
# Download uqm-0.6.0-content.uqm from http://sc2.sourceforge.net/downloads.php and place it into &amp;quot;\SD Card\games\UQM\content\packages&amp;quot;&lt;br /&gt;
# Go to &amp;quot;\SD Card\games\UQM&amp;quot; and [[Windows_CE_build_instructions#Adding_The_Ur-Quan_Masters_command-line_arguments|create a shortcut]] for uqm.exe. Specify log file, and add parameter for 320x240 resolution, in case your PDA doesn&#039;t support VGA (parameter is &amp;quot;-r 320x240&amp;quot;).&lt;br /&gt;
# Run the shortcut created in the previous step&lt;br /&gt;
&lt;br /&gt;
=== Compatibility ===&lt;br /&gt;
Verified to work on the following PDAs / smartphones (with key config tweaks):&lt;br /&gt;
* Dell Axim x51v / WM5&lt;br /&gt;
* Sprint HTC Touch / WM6&lt;br /&gt;
* Sprint PPC 6700 / WM5&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
* Default resolution is 640x480. For 320x240 screens, add &amp;quot;-r 320x240&amp;quot; to command line. See the [[Windows CE build instructions|build instructions page]] on how to do that by creating a shortcut.&lt;br /&gt;
* This binary is compiled from the 0.6.2 sources of The Ur-Quan Masters, therefore 0.6.2 content must be used&lt;br /&gt;
* For PDAs other than Dell Axim x51v, might have to play around with starcon.key in &amp;quot;\SD Card\games\UQM\content\uqm-0.6.0-~wince-*.zip&amp;quot; (for the key settings)&lt;br /&gt;
* Screen orientation is hard-coded to landscape&lt;br /&gt;
* Patches to corresponding third party libraries can be found on the [[Windows CE build instructions|build instructions page]].&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=21898</id>
		<title>Windows CE port</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=21898"/>
		<updated>2008-04-14T20:21:48Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Build from sources ==&lt;br /&gt;
[[Windows CE build instructions|Build instructions]]&lt;br /&gt;
== Pre-compiled binaries ==&lt;br /&gt;
=== Download ===&lt;br /&gt;
[http://uqm.stack.nl/files/other/ptx/wince/uqm-0.6.2-wince-20080326.zip Latest Pocket PC binaries]&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
# Uncompress uqm_wince_*.zip into a location of choice, for example &amp;quot;\SD Card\games&amp;quot;&lt;br /&gt;
# Download uqm-0.6.0-content.uqm from http://sc2.sourceforge.net/downloads.php and place it into &amp;quot;\SD Card\games\UQM\content\packages&amp;quot;&lt;br /&gt;
# Go to &amp;quot;\SD Card\games\UQM&amp;quot; and [[Windows_CE_build_instructions#Adding_The_Ur-Quan_Masters_command-line_arguments|create a shortcut]] for uqm.exe. Specify log file, and add parameter for 320x240 resolution, in case your PDA doesn&#039;t support VGA (parameter is &amp;quot;-r 320x240&amp;quot;).&lt;br /&gt;
# Run the shortcut created in the previous step&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
* Default resolution is 640x480. For 320x240 screens, add &amp;quot;-r 320x240&amp;quot; to command line. See the [[Windows CE build instructions|build instructions page]] on how to do that by creating a shortcut.&lt;br /&gt;
* This binary is compiled from the 0.6.2 sources of The Ur-Quan Masters, therefore 0.6.2 content must be used&lt;br /&gt;
* For PDAs other than Dell Axim x51v, might have to play around with starcon.key in &amp;quot;\SD Card\games\UQM\content\uqm-0.6.0-~wince-*.zip&amp;quot; (for the key settings)&lt;br /&gt;
* Screen orientation is hard-coded to landscape&lt;br /&gt;
* Patches to corresponding third party libraries can be found on the [[Windows CE build instructions|build instructions page]].&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=21880</id>
		<title>Windows CE port</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=21880"/>
		<updated>2008-04-10T00:57:40Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Build from sources ==&lt;br /&gt;
[[Windows CE build instructions|Build instructions]]&lt;br /&gt;
== Pre-compiled binaries ==&lt;br /&gt;
=== Download ===&lt;br /&gt;
[http://uqm.stack.nl/files/other/ptx/wince/uqm-0.6.2-wince-20080326.zip Latest Pocket PC binaries]&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
# Uncompress uqm_wince_*.zip into a location of choice, for example &amp;quot;\SD Card\games&amp;quot;&lt;br /&gt;
# Download uqm-0.6.0-content.uqm from http://sc2.sourceforge.net/downloads.php and place it into &amp;quot;\SD Card\games\UQM\content\packages&amp;quot;&lt;br /&gt;
# Go to &amp;quot;\SD Card\games\UQM&amp;quot; and [[Windows_CE_build_instructions#Adding_The_Ur-Quan_Masters_command-line_arguments|create a shortcut]] for uqm.exe. Specify log file, and add parameter for 320x240 resolution, in case your PDA doesn&#039;t support VGA (parameter is &amp;quot;-r 320x240&amp;quot;).&lt;br /&gt;
# Go to &amp;quot;\SD Card\games\UQM&amp;quot; and run the shortcut created in the previous step&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
* Default resolution is 640x480. For 320x240 screens, add &amp;quot;-r 320x240&amp;quot; to command line. See the [[Windows CE build instructions|build instructions page]] on how to do that by creating a shortcut.&lt;br /&gt;
* This binary is compiled from the 0.6.2 sources of The Ur-Quan Masters, therefore 0.6.2 content must be used&lt;br /&gt;
* For PDAs other than Dell Axim x51v, might have to play around with starcon.key in &amp;quot;\SD Card\games\UQM\content\uqm-0.6.0-~wince-*.zip&amp;quot; (for the key settings)&lt;br /&gt;
* Screen orientation is hard-coded to landscape&lt;br /&gt;
* Patches to corresponding third party libraries can be found on the [[Windows CE build instructions|build instructions page]].&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=21879</id>
		<title>Windows CE port</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=21879"/>
		<updated>2008-04-10T00:57:14Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Build from sources ==&lt;br /&gt;
[[Windows CE build instructions|Build instructions]]&lt;br /&gt;
== Pre-compiled binaries ==&lt;br /&gt;
=== Download ===&lt;br /&gt;
[http://uqm.stack.nl/files/other/ptx/wince/uqm-0.6.2-wince-20080326.zip Latest Pocket PC binaries]&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
# Uncompress uqm_wince_*.zip into a location of choice, for example &amp;quot;\SD Card\games&amp;quot;&lt;br /&gt;
# Download uqm-0.6.0-content.uqm from http://sc2.sourceforge.net/downloads.php and place it into &amp;quot;\SD Card\games\UQM\content\packages&amp;quot;&lt;br /&gt;
# Go to &amp;quot;\SD Card\games\UQM&amp;quot; and [[Windows_CE_build_instructions#Adding_The_Ur-Quan_Masters_command-line_arguments|create a shortcut]] for uqm.exe. Specify log file, and add parameter for 320x240 resolution, in case your PDA doesn&#039;t support VGA (parameter is &amp;quot;-r 320x240&amp;quot;).&lt;br /&gt;
# Go to &amp;quot;\SD Card\games\UQM&amp;quot; and run uqm.exe&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
* Default resolution is 640x480. For 320x240 screens, add &amp;quot;-r 320x240&amp;quot; to command line. See the [[Windows CE build instructions|build instructions page]] on how to do that by creating a shortcut.&lt;br /&gt;
* This binary is compiled from the 0.6.2 sources of The Ur-Quan Masters, therefore 0.6.2 content must be used&lt;br /&gt;
* For PDAs other than Dell Axim x51v, might have to play around with starcon.key in &amp;quot;\SD Card\games\UQM\content\uqm-0.6.0-~wince-*.zip&amp;quot; (for the key settings)&lt;br /&gt;
* Screen orientation is hard-coded to landscape&lt;br /&gt;
* Patches to corresponding third party libraries can be found on the [[Windows CE build instructions|build instructions page]].&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=21866</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=21866"/>
		<updated>2008-04-03T19:59:05Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Missing DLLs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:uqm_ce.jpg|thumb|320px|The Ur-Quan Masters running on Dell Axim x51v]]&lt;br /&gt;
== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
==== Patch headers ====&lt;br /&gt;
SDL-1.2.12 headers need to be patched for successful compilation of SDL_image and The Ur-Quan Masters. Note that when building SDL using win32 Visual Studio, the headers must also be patched there (for the APP1-6 keys to be available).&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_config_minimal.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_config_minimal.h       2007-12-24 11:50:58.000000000 -0500&lt;br /&gt;
 @@ -36,7 +36,9 @@&lt;br /&gt;
  typedef signed int int32_t;&lt;br /&gt;
  typedef unsigned int uint32_t;&lt;br /&gt;
  typedef unsigned int size_t;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
  typedef unsigned long uintptr_t;&lt;br /&gt;
 +#endif&lt;br /&gt;
  &lt;br /&gt;
  /* Enable the dummy audio driver (src/audio/dummy/\*.c) */&lt;br /&gt;
  #define SDL_AUDIO_DRIVER_DUMMY 1&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/./include/SDL_keysym.h      2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./include/SDL_keysym.h     2007-12-23 20:16:11.000000000 -0500&lt;br /&gt;
 @@ -282,6 +282,12 @@&lt;br /&gt;
         SDLK_UNDO               = 322,          /* Atari keyboard has Undo */&lt;br /&gt;
  &lt;br /&gt;
         /* Add any other keys here */&lt;br /&gt;
 +       SDLK_APP1               = 323,&lt;br /&gt;
 +       SDLK_APP2               = 324,&lt;br /&gt;
 +       SDLK_APP3               = 325,&lt;br /&gt;
 +       SDLK_APP4               = 326,&lt;br /&gt;
 +       SDLK_APP5               = 327,&lt;br /&gt;
 +       SDLK_APP6               = 328,&lt;br /&gt;
  &lt;br /&gt;
         SDLK_LAST&lt;br /&gt;
  } SDLKey;&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_stdinc.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_stdinc.h       2007-12-24 11:53:11.000000000 -0500&lt;br /&gt;
 @@ -57,13 +57,15 @@&lt;br /&gt;
  # endif&lt;br /&gt;
  # include &amp;lt;string.h&amp;gt;&lt;br /&gt;
  #endif&lt;br /&gt;
 -#ifdef HAVE_STRINGS_H&lt;br /&gt;
 -# include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 -#endif&lt;br /&gt;
 -#if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 -# include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 -#elif defined(HAVE_STDINT_H)&lt;br /&gt;
 -# include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
 +# ifdef HAVE_STRINGS_H&lt;br /&gt;
 +#  include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
 +# if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 +#  include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 +# elif defined(HAVE_STDINT_H)&lt;br /&gt;
 +#  include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
  #endif&lt;br /&gt;
  #ifdef HAVE_CTYPE_H&lt;br /&gt;
  # include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- sdlorig/SDL-1.2.12/./src/video/windib/SDL_dibevents.c       2007-07-20 01:52:19.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./src/video/windib/SDL_dibevents.c 2007-12-23 20:14:55.000000000 -0500&lt;br /&gt;
 @@ -430,6 +430,13 @@&lt;br /&gt;
         VK_keymap[VK_SNAPSHOT] = SDLK_PRINT;&lt;br /&gt;
         VK_keymap[VK_CANCEL] = SDLK_BREAK;&lt;br /&gt;
         VK_keymap[VK_APPS] = SDLK_MENU;&lt;br /&gt;
 +&lt;br /&gt;
 +       VK_keymap[VK_APP1] = SDLK_APP1;&lt;br /&gt;
 +       VK_keymap[VK_APP2] = SDLK_APP2;&lt;br /&gt;
 +       VK_keymap[VK_APP3] = SDLK_APP3;&lt;br /&gt;
 +       VK_keymap[VK_APP4] = SDLK_APP4;&lt;br /&gt;
 +       VK_keymap[VK_APP5] = SDLK_APP5;&lt;br /&gt;
 +       VK_keymap[VK_APP6] = SDLK_APP6;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
 cp libpng.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe&lt;br /&gt;
 make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out The Ur-Quan Masters sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure The Ur-Quan Masters build scripts ==&lt;br /&gt;
To configure The Ur-Quan Masters the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build The Ur-Quan Masters ==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
./build.sh uqm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install The Ur-Quan Masters (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
# Place shared libraries into $UQM_DIR:&lt;br /&gt;
#* $PRJ/lib/libpng.dll&lt;br /&gt;
#* $PRJ/lib/libvorbisidec.dll&lt;br /&gt;
#* $PRJ/lib/SDL.dll&lt;br /&gt;
#* $PRJ/lib/SDL_image.dll&lt;br /&gt;
#* $PRJ/lib/z.dll&lt;br /&gt;
#* /opt/cegcc/arm-wince-cegcc/lib/device/cegcc.dll&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages. Note that this &amp;quot;addon&amp;quot; file should contain any custom Wince settings, like key mappings.&lt;br /&gt;
&lt;br /&gt;
== Adding The Ur-Quan Masters command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold somewhere (not on a file name) in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut.lnk&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Netplay is not yet supported&lt;br /&gt;
* OpenGL is not yet supported&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not signed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;br /&gt;
&lt;br /&gt;
[[Category:About the Star Control series]]&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=21829</id>
		<title>Windows CE port</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=21829"/>
		<updated>2008-03-28T00:10:21Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Build from sources ==&lt;br /&gt;
[[Windows CE build instructions|Build instructions]]&lt;br /&gt;
== Pre-compiled binaries ==&lt;br /&gt;
=== Download ===&lt;br /&gt;
[http://uqm.stack.nl/files/other/ptx/wince/uqm-0.6.2-wince-20080326.zip Latest Pocket PC binaries]&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
# Uncompress uqm_wince_*.zip into a location of choice, for example &amp;quot;\SD Card\games&amp;quot;&lt;br /&gt;
# Download uqm-0.6.0-content.uqm from http://sc2.sourceforge.net/downloads.php and place it into &amp;quot;\SD Card\games\UQM\content\packages&amp;quot;&lt;br /&gt;
# Go to &amp;quot;\SD Card\games\UQM&amp;quot; and run uqm.exe&lt;br /&gt;
=== Notes ===&lt;br /&gt;
* Default resolution is 640x480. For 320x240 screens, add &amp;quot;-r 320x240&amp;quot; to command line. See the [[Windows CE build instructions|build instructions page]] on how to do that by creating a shortcut.&lt;br /&gt;
* This binary is compiled from the 0.6.2 sources of The Ur-Quan Masters, therefore 0.6.2 content must be used&lt;br /&gt;
* For PDAs other than Dell Axim x51v, might have to play around with starcon.key in &amp;quot;\SD Card\games\UQM\content\uqm-0.6.0-~wince-*.zip&amp;quot; (for the key settings)&lt;br /&gt;
* Screen orientation is hard-coded to landscape&lt;br /&gt;
* Patches to corresponding third party libraries can be found on the [[Windows CE build instructions|build instructions page]].&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=21828</id>
		<title>Windows CE port</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=21828"/>
		<updated>2008-03-28T00:09:53Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Build from sources ==&lt;br /&gt;
[[Windows CE build instructions|Build instructions]]&lt;br /&gt;
== Pre-compiled binaries ==&lt;br /&gt;
=== Download ===&lt;br /&gt;
[http://uqm.stack.nl/files/other/ptx/wince/uqm-0.6.2-wince-20080326.zip Latest Pocket PC binaries]&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
# Uncompress uqm_wince_*.zip into a location of choice, for example &amp;quot;\SD Card\games&amp;quot;&lt;br /&gt;
# Download uqm-0.6.0-content.uqm from http://sc2.sourceforge.net/downloads.php and place it into &amp;quot;\SD Card\games\UQM\content\packages&amp;quot;&lt;br /&gt;
# Go to &amp;quot;\SD Card\games\UQM&amp;quot; and run uqm.exe&lt;br /&gt;
=== Notes ===&lt;br /&gt;
* Default resolution is 640x480. For 320x240 screens, add &amp;quot;-r 320x240&amp;quot; command line. See the [[Windows CE build instructions|build instructions page]] on how to do that by creating a shortcut.&lt;br /&gt;
* This binary is compiled from the 0.6.2 sources of The Ur-Quan Masters, therefore 0.6.2 content must be used&lt;br /&gt;
* For PDAs other than Dell Axim x51v, might have to play around with starcon.key in &amp;quot;\SD Card\games\UQM\content\uqm-0.6.0-~wince-*.zip&amp;quot; (for the key settings)&lt;br /&gt;
* Screen orientation is hard-coded to landscape&lt;br /&gt;
* Patches to corresponding third party libraries can be found on the [[Windows CE build instructions|build instructions page]].&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=21827</id>
		<title>Windows CE port</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_port&amp;diff=21827"/>
		<updated>2008-03-28T00:08:24Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Build from sources ==&lt;br /&gt;
[[Windows CE build instructions|Build instructions]]&lt;br /&gt;
== Pre-compiled binaries ==&lt;br /&gt;
=== Download ===&lt;br /&gt;
[http://uqm.stack.nl/files/other/ptx/wince/uqm-0.6.2-wince-20080326.zip Latest Pocket PC binaries]&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
# Uncompress uqm_wince_*.zip into a location of choice, for example &amp;quot;\SD Card\games&amp;quot;&lt;br /&gt;
# Download uqm-0.6.0-content.uqm from http://sc2.sourceforge.net/downloads.php and place it into &amp;quot;\SD Card\games\UQM\content\packages&amp;quot;&lt;br /&gt;
# Go to &amp;quot;\SD Card\games\UQM&amp;quot; and run uqm.exe&lt;br /&gt;
=== Notes ===&lt;br /&gt;
* This binary is compiled from the 0.6.2 sources of The Ur-Quan Masters, therefore 0.6.2 content must be used&lt;br /&gt;
* For PDAs other than Dell Axim x51v, might have to play around with starcon.key in &amp;quot;\SD Card\games\UQM\content\uqm-0.6.0-~wince-*.zip&amp;quot; (for the key settings)&lt;br /&gt;
* Screen orientation is hard-coded to landscape&lt;br /&gt;
* Patches to corresponding third party libraries can be found on the [[Windows CE build instructions|build instructions page]].&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=The_Ur-Quan_Masters&amp;diff=21826</id>
		<title>The Ur-Quan Masters</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=The_Ur-Quan_Masters&amp;diff=21826"/>
		<updated>2008-03-27T18:01:36Z</updated>

		<summary type="html">&lt;p&gt;Ptx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;[http://sc2.sourceforge.net/ The Ur-Quan Masters]&#039;&#039;&#039;, sometimes referred to as UQM, is a port of [[Star Control II]] for modern personal computers and operating systems from the original [[3DO]] source code released to the fan community by [[Toys For Bob]] in August 2002.&lt;br /&gt;
&lt;br /&gt;
More information can be found in [[The Ur-Quan Masters Project FAQ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Third party ports==&lt;br /&gt;
These ports are derived from the main UQM branch, but are not developed and supported by the same team.&lt;br /&gt;
&lt;br /&gt;
===GP2X===&lt;br /&gt;
Platforms: GP2X&lt;br /&gt;
&lt;br /&gt;
Project site: http://wiki.gp2x.org/wiki/The_Ur-Quan_Masters&lt;br /&gt;
&lt;br /&gt;
Project status: playable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PSP===&lt;br /&gt;
&lt;br /&gt;
Platforms: PlayStation Portable&lt;br /&gt;
&lt;br /&gt;
Project site: http://www.dcemu.co.uk/vbulletin/showthread.php?t=20763&lt;br /&gt;
&lt;br /&gt;
Project status: playable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TAU-QIMP===&lt;br /&gt;
Platforms: Nintendo DS&lt;br /&gt;
&lt;br /&gt;
Project site: http://sourceforge.net/projects/tau-qimp/&lt;br /&gt;
&lt;br /&gt;
Project status: Indefinite hold&lt;br /&gt;
&lt;br /&gt;
===UQM Maemo Edition===&lt;br /&gt;
Platforms: Nokia 770 Internet Tablet&lt;br /&gt;
&lt;br /&gt;
Old Project site: http://koti.welho.com/jkukkone/uqm&lt;br /&gt;
&lt;br /&gt;
New Project site: http://garage.maemo.org/projects/uqm &lt;br /&gt;
&lt;br /&gt;
Project Status: Active&lt;br /&gt;
&lt;br /&gt;
[[Category:About the Star Control series]]&lt;br /&gt;
&lt;br /&gt;
===Windows CE / Pocket PC===&lt;br /&gt;
ARM Windows CE / Pocket PC handhelds&lt;br /&gt;
&lt;br /&gt;
Ultronomicon page: [[Windows CE port]]&lt;br /&gt;
&lt;br /&gt;
Project Status: playable, no netplay support&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20628</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20628"/>
		<updated>2007-12-24T18:04:59Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Build The Ur-Quan Masters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:uqm_ce.jpg|thumb|320px|The Ur-Quan Masters running on Dell Axim x51v]]&lt;br /&gt;
== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
==== Patch headers ====&lt;br /&gt;
SDL-1.2.12 headers need to be patched for successful compilation of SDL_image and The Ur-Quan Masters. Note that when building SDL using win32 Visual Studio, the headers must also be patched there (for the APP1-6 keys to be available).&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_config_minimal.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_config_minimal.h       2007-12-24 11:50:58.000000000 -0500&lt;br /&gt;
 @@ -36,7 +36,9 @@&lt;br /&gt;
  typedef signed int int32_t;&lt;br /&gt;
  typedef unsigned int uint32_t;&lt;br /&gt;
  typedef unsigned int size_t;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
  typedef unsigned long uintptr_t;&lt;br /&gt;
 +#endif&lt;br /&gt;
  &lt;br /&gt;
  /* Enable the dummy audio driver (src/audio/dummy/\*.c) */&lt;br /&gt;
  #define SDL_AUDIO_DRIVER_DUMMY 1&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/./include/SDL_keysym.h      2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./include/SDL_keysym.h     2007-12-23 20:16:11.000000000 -0500&lt;br /&gt;
 @@ -282,6 +282,12 @@&lt;br /&gt;
         SDLK_UNDO               = 322,          /* Atari keyboard has Undo */&lt;br /&gt;
  &lt;br /&gt;
         /* Add any other keys here */&lt;br /&gt;
 +       SDLK_APP1               = 323,&lt;br /&gt;
 +       SDLK_APP2               = 324,&lt;br /&gt;
 +       SDLK_APP3               = 325,&lt;br /&gt;
 +       SDLK_APP4               = 326,&lt;br /&gt;
 +       SDLK_APP5               = 327,&lt;br /&gt;
 +       SDLK_APP6               = 328,&lt;br /&gt;
  &lt;br /&gt;
         SDLK_LAST&lt;br /&gt;
  } SDLKey;&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_stdinc.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_stdinc.h       2007-12-24 11:53:11.000000000 -0500&lt;br /&gt;
 @@ -57,13 +57,15 @@&lt;br /&gt;
  # endif&lt;br /&gt;
  # include &amp;lt;string.h&amp;gt;&lt;br /&gt;
  #endif&lt;br /&gt;
 -#ifdef HAVE_STRINGS_H&lt;br /&gt;
 -# include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 -#endif&lt;br /&gt;
 -#if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 -# include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 -#elif defined(HAVE_STDINT_H)&lt;br /&gt;
 -# include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
 +# ifdef HAVE_STRINGS_H&lt;br /&gt;
 +#  include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
 +# if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 +#  include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 +# elif defined(HAVE_STDINT_H)&lt;br /&gt;
 +#  include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
  #endif&lt;br /&gt;
  #ifdef HAVE_CTYPE_H&lt;br /&gt;
  # include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- sdlorig/SDL-1.2.12/./src/video/windib/SDL_dibevents.c       2007-07-20 01:52:19.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./src/video/windib/SDL_dibevents.c 2007-12-23 20:14:55.000000000 -0500&lt;br /&gt;
 @@ -430,6 +430,13 @@&lt;br /&gt;
         VK_keymap[VK_SNAPSHOT] = SDLK_PRINT;&lt;br /&gt;
         VK_keymap[VK_CANCEL] = SDLK_BREAK;&lt;br /&gt;
         VK_keymap[VK_APPS] = SDLK_MENU;&lt;br /&gt;
 +&lt;br /&gt;
 +       VK_keymap[VK_APP1] = SDLK_APP1;&lt;br /&gt;
 +       VK_keymap[VK_APP2] = SDLK_APP2;&lt;br /&gt;
 +       VK_keymap[VK_APP3] = SDLK_APP3;&lt;br /&gt;
 +       VK_keymap[VK_APP4] = SDLK_APP4;&lt;br /&gt;
 +       VK_keymap[VK_APP5] = SDLK_APP5;&lt;br /&gt;
 +       VK_keymap[VK_APP6] = SDLK_APP6;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
 cp libpng.dll $PRJ/pkg&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out The Ur-Quan Masters sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure The Ur-Quan Masters build scripts ==&lt;br /&gt;
To configure The Ur-Quan Masters the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build The Ur-Quan Masters ==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
./build.sh uqm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install UQM (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
# Place shared libraries into $UQM_DIR:&lt;br /&gt;
#* $PRJ/lib/libpng.dll&lt;br /&gt;
#* $PRJ/lib/libvorbisidec.dll&lt;br /&gt;
#* $PRJ/lib/SDL.dll&lt;br /&gt;
#* $PRJ/lib/SDL_image.dll&lt;br /&gt;
#* $PRJ/lib/z.dll&lt;br /&gt;
#* /opt/cegcc/arm-wince-cegcc/lib/device/cegcc.dll&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages&lt;br /&gt;
&lt;br /&gt;
== Adding The Ur-Quan Masters command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut.lnk&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Netplay is not yet supported&lt;br /&gt;
* OpenGL is not yet supported&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not sighed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;br /&gt;
&lt;br /&gt;
[[Category:About the Star Control series]]&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20627</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20627"/>
		<updated>2007-12-24T18:02:01Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Build required libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:uqm_ce.jpg|thumb|320px|The Ur-Quan Masters running on Dell Axim x51v]]&lt;br /&gt;
== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
==== Patch headers ====&lt;br /&gt;
SDL-1.2.12 headers need to be patched for successful compilation of SDL_image and The Ur-Quan Masters. Note that when building SDL using win32 Visual Studio, the headers must also be patched there (for the APP1-6 keys to be available).&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_config_minimal.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_config_minimal.h       2007-12-24 11:50:58.000000000 -0500&lt;br /&gt;
 @@ -36,7 +36,9 @@&lt;br /&gt;
  typedef signed int int32_t;&lt;br /&gt;
  typedef unsigned int uint32_t;&lt;br /&gt;
  typedef unsigned int size_t;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
  typedef unsigned long uintptr_t;&lt;br /&gt;
 +#endif&lt;br /&gt;
  &lt;br /&gt;
  /* Enable the dummy audio driver (src/audio/dummy/\*.c) */&lt;br /&gt;
  #define SDL_AUDIO_DRIVER_DUMMY 1&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/./include/SDL_keysym.h      2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./include/SDL_keysym.h     2007-12-23 20:16:11.000000000 -0500&lt;br /&gt;
 @@ -282,6 +282,12 @@&lt;br /&gt;
         SDLK_UNDO               = 322,          /* Atari keyboard has Undo */&lt;br /&gt;
  &lt;br /&gt;
         /* Add any other keys here */&lt;br /&gt;
 +       SDLK_APP1               = 323,&lt;br /&gt;
 +       SDLK_APP2               = 324,&lt;br /&gt;
 +       SDLK_APP3               = 325,&lt;br /&gt;
 +       SDLK_APP4               = 326,&lt;br /&gt;
 +       SDLK_APP5               = 327,&lt;br /&gt;
 +       SDLK_APP6               = 328,&lt;br /&gt;
  &lt;br /&gt;
         SDLK_LAST&lt;br /&gt;
  } SDLKey;&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_stdinc.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_stdinc.h       2007-12-24 11:53:11.000000000 -0500&lt;br /&gt;
 @@ -57,13 +57,15 @@&lt;br /&gt;
  # endif&lt;br /&gt;
  # include &amp;lt;string.h&amp;gt;&lt;br /&gt;
  #endif&lt;br /&gt;
 -#ifdef HAVE_STRINGS_H&lt;br /&gt;
 -# include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 -#endif&lt;br /&gt;
 -#if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 -# include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 -#elif defined(HAVE_STDINT_H)&lt;br /&gt;
 -# include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
 +# ifdef HAVE_STRINGS_H&lt;br /&gt;
 +#  include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
 +# if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 +#  include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 +# elif defined(HAVE_STDINT_H)&lt;br /&gt;
 +#  include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
  #endif&lt;br /&gt;
  #ifdef HAVE_CTYPE_H&lt;br /&gt;
  # include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- sdlorig/SDL-1.2.12/./src/video/windib/SDL_dibevents.c       2007-07-20 01:52:19.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./src/video/windib/SDL_dibevents.c 2007-12-23 20:14:55.000000000 -0500&lt;br /&gt;
 @@ -430,6 +430,13 @@&lt;br /&gt;
         VK_keymap[VK_SNAPSHOT] = SDLK_PRINT;&lt;br /&gt;
         VK_keymap[VK_CANCEL] = SDLK_BREAK;&lt;br /&gt;
         VK_keymap[VK_APPS] = SDLK_MENU;&lt;br /&gt;
 +&lt;br /&gt;
 +       VK_keymap[VK_APP1] = SDLK_APP1;&lt;br /&gt;
 +       VK_keymap[VK_APP2] = SDLK_APP2;&lt;br /&gt;
 +       VK_keymap[VK_APP3] = SDLK_APP3;&lt;br /&gt;
 +       VK_keymap[VK_APP4] = SDLK_APP4;&lt;br /&gt;
 +       VK_keymap[VK_APP5] = SDLK_APP5;&lt;br /&gt;
 +       VK_keymap[VK_APP6] = SDLK_APP6;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
 cp libpng.dll $PRJ/pkg&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out The Ur-Quan Masters sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure The Ur-Quan Masters build scripts ==&lt;br /&gt;
To configure The Ur-Quan Masters the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build The Ur-Quan Masters ==&lt;br /&gt;
Run ./build.sh uqm&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install UQM (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
# Place shared libraries into $UQM_DIR:&lt;br /&gt;
#* $PRJ/lib/libpng.dll&lt;br /&gt;
#* $PRJ/lib/libvorbisidec.dll&lt;br /&gt;
#* $PRJ/lib/SDL.dll&lt;br /&gt;
#* $PRJ/lib/SDL_image.dll&lt;br /&gt;
#* $PRJ/lib/z.dll&lt;br /&gt;
#* /opt/cegcc/arm-wince-cegcc/lib/device/cegcc.dll&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages&lt;br /&gt;
&lt;br /&gt;
== Adding The Ur-Quan Masters command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut.lnk&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Netplay is not yet supported&lt;br /&gt;
* OpenGL is not yet supported&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not sighed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;br /&gt;
&lt;br /&gt;
[[Category:About the Star Control series]]&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20626</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20626"/>
		<updated>2007-12-24T17:55:52Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Installing to WM device */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:uqm_ce.jpg|thumb|320px|The Ur-Quan Masters running on Dell Axim x51v]]&lt;br /&gt;
== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
==== Patch headers ====&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_config_minimal.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_config_minimal.h       2007-12-24 11:50:58.000000000 -0500&lt;br /&gt;
 @@ -36,7 +36,9 @@&lt;br /&gt;
  typedef signed int int32_t;&lt;br /&gt;
  typedef unsigned int uint32_t;&lt;br /&gt;
  typedef unsigned int size_t;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
  typedef unsigned long uintptr_t;&lt;br /&gt;
 +#endif&lt;br /&gt;
  &lt;br /&gt;
  /* Enable the dummy audio driver (src/audio/dummy/\*.c) */&lt;br /&gt;
  #define SDL_AUDIO_DRIVER_DUMMY 1&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/./include/SDL_keysym.h      2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./include/SDL_keysym.h     2007-12-23 20:16:11.000000000 -0500&lt;br /&gt;
 @@ -282,6 +282,12 @@&lt;br /&gt;
         SDLK_UNDO               = 322,          /* Atari keyboard has Undo */&lt;br /&gt;
  &lt;br /&gt;
         /* Add any other keys here */&lt;br /&gt;
 +       SDLK_APP1               = 323,&lt;br /&gt;
 +       SDLK_APP2               = 324,&lt;br /&gt;
 +       SDLK_APP3               = 325,&lt;br /&gt;
 +       SDLK_APP4               = 326,&lt;br /&gt;
 +       SDLK_APP5               = 327,&lt;br /&gt;
 +       SDLK_APP6               = 328,&lt;br /&gt;
  &lt;br /&gt;
         SDLK_LAST&lt;br /&gt;
  } SDLKey;&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_stdinc.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_stdinc.h       2007-12-24 11:53:11.000000000 -0500&lt;br /&gt;
 @@ -57,13 +57,15 @@&lt;br /&gt;
  # endif&lt;br /&gt;
  # include &amp;lt;string.h&amp;gt;&lt;br /&gt;
  #endif&lt;br /&gt;
 -#ifdef HAVE_STRINGS_H&lt;br /&gt;
 -# include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 -#endif&lt;br /&gt;
 -#if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 -# include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 -#elif defined(HAVE_STDINT_H)&lt;br /&gt;
 -# include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
 +# ifdef HAVE_STRINGS_H&lt;br /&gt;
 +#  include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
 +# if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 +#  include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 +# elif defined(HAVE_STDINT_H)&lt;br /&gt;
 +#  include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
  #endif&lt;br /&gt;
  #ifdef HAVE_CTYPE_H&lt;br /&gt;
  # include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- sdlorig/SDL-1.2.12/./src/video/windib/SDL_dibevents.c       2007-07-20 01:52:19.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./src/video/windib/SDL_dibevents.c 2007-12-23 20:14:55.000000000 -0500&lt;br /&gt;
 @@ -430,6 +430,13 @@&lt;br /&gt;
         VK_keymap[VK_SNAPSHOT] = SDLK_PRINT;&lt;br /&gt;
         VK_keymap[VK_CANCEL] = SDLK_BREAK;&lt;br /&gt;
         VK_keymap[VK_APPS] = SDLK_MENU;&lt;br /&gt;
 +&lt;br /&gt;
 +       VK_keymap[VK_APP1] = SDLK_APP1;&lt;br /&gt;
 +       VK_keymap[VK_APP2] = SDLK_APP2;&lt;br /&gt;
 +       VK_keymap[VK_APP3] = SDLK_APP3;&lt;br /&gt;
 +       VK_keymap[VK_APP4] = SDLK_APP4;&lt;br /&gt;
 +       VK_keymap[VK_APP5] = SDLK_APP5;&lt;br /&gt;
 +       VK_keymap[VK_APP6] = SDLK_APP6;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
 cp libpng.dll $PRJ/pkg&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out The Ur-Quan Masters sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure The Ur-Quan Masters build scripts ==&lt;br /&gt;
To configure The Ur-Quan Masters the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build The Ur-Quan Masters ==&lt;br /&gt;
Run ./build.sh uqm&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install UQM (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
# Place shared libraries into $UQM_DIR:&lt;br /&gt;
#* $PRJ/lib/libpng.dll&lt;br /&gt;
#* $PRJ/lib/libvorbisidec.dll&lt;br /&gt;
#* $PRJ/lib/SDL.dll&lt;br /&gt;
#* $PRJ/lib/SDL_image.dll&lt;br /&gt;
#* $PRJ/lib/z.dll&lt;br /&gt;
#* /opt/cegcc/arm-wince-cegcc/lib/device/cegcc.dll&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages&lt;br /&gt;
&lt;br /&gt;
== Adding The Ur-Quan Masters command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut.lnk&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Netplay is not yet supported&lt;br /&gt;
* OpenGL is not yet supported&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not sighed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;br /&gt;
&lt;br /&gt;
[[Category:About the Star Control series]]&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20625</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20625"/>
		<updated>2007-12-24T17:48:12Z</updated>

		<summary type="html">&lt;p&gt;Ptx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:uqm_ce.jpg|thumb|320px|The Ur-Quan Masters running on Dell Axim x51v]]&lt;br /&gt;
== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
==== Patch headers ====&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_config_minimal.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_config_minimal.h       2007-12-24 11:50:58.000000000 -0500&lt;br /&gt;
 @@ -36,7 +36,9 @@&lt;br /&gt;
  typedef signed int int32_t;&lt;br /&gt;
  typedef unsigned int uint32_t;&lt;br /&gt;
  typedef unsigned int size_t;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
  typedef unsigned long uintptr_t;&lt;br /&gt;
 +#endif&lt;br /&gt;
  &lt;br /&gt;
  /* Enable the dummy audio driver (src/audio/dummy/\*.c) */&lt;br /&gt;
  #define SDL_AUDIO_DRIVER_DUMMY 1&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/./include/SDL_keysym.h      2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./include/SDL_keysym.h     2007-12-23 20:16:11.000000000 -0500&lt;br /&gt;
 @@ -282,6 +282,12 @@&lt;br /&gt;
         SDLK_UNDO               = 322,          /* Atari keyboard has Undo */&lt;br /&gt;
  &lt;br /&gt;
         /* Add any other keys here */&lt;br /&gt;
 +       SDLK_APP1               = 323,&lt;br /&gt;
 +       SDLK_APP2               = 324,&lt;br /&gt;
 +       SDLK_APP3               = 325,&lt;br /&gt;
 +       SDLK_APP4               = 326,&lt;br /&gt;
 +       SDLK_APP5               = 327,&lt;br /&gt;
 +       SDLK_APP6               = 328,&lt;br /&gt;
  &lt;br /&gt;
         SDLK_LAST&lt;br /&gt;
  } SDLKey;&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_stdinc.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_stdinc.h       2007-12-24 11:53:11.000000000 -0500&lt;br /&gt;
 @@ -57,13 +57,15 @@&lt;br /&gt;
  # endif&lt;br /&gt;
  # include &amp;lt;string.h&amp;gt;&lt;br /&gt;
  #endif&lt;br /&gt;
 -#ifdef HAVE_STRINGS_H&lt;br /&gt;
 -# include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 -#endif&lt;br /&gt;
 -#if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 -# include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 -#elif defined(HAVE_STDINT_H)&lt;br /&gt;
 -# include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
 +# ifdef HAVE_STRINGS_H&lt;br /&gt;
 +#  include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
 +# if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 +#  include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 +# elif defined(HAVE_STDINT_H)&lt;br /&gt;
 +#  include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
  #endif&lt;br /&gt;
  #ifdef HAVE_CTYPE_H&lt;br /&gt;
  # include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- sdlorig/SDL-1.2.12/./src/video/windib/SDL_dibevents.c       2007-07-20 01:52:19.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./src/video/windib/SDL_dibevents.c 2007-12-23 20:14:55.000000000 -0500&lt;br /&gt;
 @@ -430,6 +430,13 @@&lt;br /&gt;
         VK_keymap[VK_SNAPSHOT] = SDLK_PRINT;&lt;br /&gt;
         VK_keymap[VK_CANCEL] = SDLK_BREAK;&lt;br /&gt;
         VK_keymap[VK_APPS] = SDLK_MENU;&lt;br /&gt;
 +&lt;br /&gt;
 +       VK_keymap[VK_APP1] = SDLK_APP1;&lt;br /&gt;
 +       VK_keymap[VK_APP2] = SDLK_APP2;&lt;br /&gt;
 +       VK_keymap[VK_APP3] = SDLK_APP3;&lt;br /&gt;
 +       VK_keymap[VK_APP4] = SDLK_APP4;&lt;br /&gt;
 +       VK_keymap[VK_APP5] = SDLK_APP5;&lt;br /&gt;
 +       VK_keymap[VK_APP6] = SDLK_APP6;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
 cp libpng.dll $PRJ/pkg&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out The Ur-Quan Masters sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure The Ur-Quan Masters build scripts ==&lt;br /&gt;
To configure The Ur-Quan Masters the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build The Ur-Quan Masters ==&lt;br /&gt;
Run ./build.sh uqm&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install UQM (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
# Place shared libraries into $UQM_DIR:&lt;br /&gt;
#* $PRJ/libpng.dll&lt;br /&gt;
#* $PRJ/libvorbisidec.dll&lt;br /&gt;
#* $PRJ/SDL.dll&lt;br /&gt;
#* $PRJ/SDL_image.dll&lt;br /&gt;
#* $PRJ/z.dll&lt;br /&gt;
#* /opt/cegcc/arm-wince-cegcc/lib/device/cegcc.dll&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages&lt;br /&gt;
&lt;br /&gt;
== Adding The Ur-Quan Masters command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut.lnk&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Netplay is not yet supported&lt;br /&gt;
* OpenGL is not yet supported&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not sighed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;br /&gt;
&lt;br /&gt;
[[Category:About the Star Control series]]&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20624</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20624"/>
		<updated>2007-12-24T17:45:08Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* SDL_image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:uqm_ce.jpg|thumb|320px|The Ur-Quan Masters running on Dell Axim x51v]]&lt;br /&gt;
== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
==== Patch headers ====&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_config_minimal.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_config_minimal.h       2007-12-24 11:50:58.000000000 -0500&lt;br /&gt;
 @@ -36,7 +36,9 @@&lt;br /&gt;
  typedef signed int int32_t;&lt;br /&gt;
  typedef unsigned int uint32_t;&lt;br /&gt;
  typedef unsigned int size_t;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
  typedef unsigned long uintptr_t;&lt;br /&gt;
 +#endif&lt;br /&gt;
  &lt;br /&gt;
  /* Enable the dummy audio driver (src/audio/dummy/\*.c) */&lt;br /&gt;
  #define SDL_AUDIO_DRIVER_DUMMY 1&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/./include/SDL_keysym.h      2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./include/SDL_keysym.h     2007-12-23 20:16:11.000000000 -0500&lt;br /&gt;
 @@ -282,6 +282,12 @@&lt;br /&gt;
         SDLK_UNDO               = 322,          /* Atari keyboard has Undo */&lt;br /&gt;
  &lt;br /&gt;
         /* Add any other keys here */&lt;br /&gt;
 +       SDLK_APP1               = 323,&lt;br /&gt;
 +       SDLK_APP2               = 324,&lt;br /&gt;
 +       SDLK_APP3               = 325,&lt;br /&gt;
 +       SDLK_APP4               = 326,&lt;br /&gt;
 +       SDLK_APP5               = 327,&lt;br /&gt;
 +       SDLK_APP6               = 328,&lt;br /&gt;
  &lt;br /&gt;
         SDLK_LAST&lt;br /&gt;
  } SDLKey;&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_stdinc.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_stdinc.h       2007-12-24 11:53:11.000000000 -0500&lt;br /&gt;
 @@ -57,13 +57,15 @@&lt;br /&gt;
  # endif&lt;br /&gt;
  # include &amp;lt;string.h&amp;gt;&lt;br /&gt;
  #endif&lt;br /&gt;
 -#ifdef HAVE_STRINGS_H&lt;br /&gt;
 -# include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 -#endif&lt;br /&gt;
 -#if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 -# include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 -#elif defined(HAVE_STDINT_H)&lt;br /&gt;
 -# include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
 +# ifdef HAVE_STRINGS_H&lt;br /&gt;
 +#  include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
 +# if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 +#  include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 +# elif defined(HAVE_STDINT_H)&lt;br /&gt;
 +#  include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
  #endif&lt;br /&gt;
  #ifdef HAVE_CTYPE_H&lt;br /&gt;
  # include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- sdlorig/SDL-1.2.12/./src/video/windib/SDL_dibevents.c       2007-07-20 01:52:19.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./src/video/windib/SDL_dibevents.c 2007-12-23 20:14:55.000000000 -0500&lt;br /&gt;
 @@ -430,6 +430,13 @@&lt;br /&gt;
         VK_keymap[VK_SNAPSHOT] = SDLK_PRINT;&lt;br /&gt;
         VK_keymap[VK_CANCEL] = SDLK_BREAK;&lt;br /&gt;
         VK_keymap[VK_APPS] = SDLK_MENU;&lt;br /&gt;
 +&lt;br /&gt;
 +       VK_keymap[VK_APP1] = SDLK_APP1;&lt;br /&gt;
 +       VK_keymap[VK_APP2] = SDLK_APP2;&lt;br /&gt;
 +       VK_keymap[VK_APP3] = SDLK_APP3;&lt;br /&gt;
 +       VK_keymap[VK_APP4] = SDLK_APP4;&lt;br /&gt;
 +       VK_keymap[VK_APP5] = SDLK_APP5;&lt;br /&gt;
 +       VK_keymap[VK_APP6] = SDLK_APP6;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
 cp libpng.dll $PRJ/pkg&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out The Ur-Quan Masters sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure The Ur-Quan Masters build scripts ==&lt;br /&gt;
To configure The Ur-Quan Masters the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build The Ur-Quan Masters ==&lt;br /&gt;
Run ./build.sh uqm&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install UQM (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
# Place shared libraries into $UQM_DIR:&lt;br /&gt;
#* $PRJ/libpng.dll&lt;br /&gt;
#* $PRJ/libvorbisidec.dll&lt;br /&gt;
#* $PRJ/SDL.dll&lt;br /&gt;
#* $PRJ/SDL_image.dll&lt;br /&gt;
#* $PRJ/z.dll&lt;br /&gt;
#* /opt/cegcc/arm-wince-cegcc/lib/device/cegcc.dll&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages&lt;br /&gt;
&lt;br /&gt;
== Adding The Ur-Quan Masters command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut.lnk&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not sighed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;br /&gt;
&lt;br /&gt;
[[Category:About the Star Control series]]&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20623</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20623"/>
		<updated>2007-12-24T17:41:17Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* libpng */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:uqm_ce.jpg|thumb|320px|The Ur-Quan Masters running on Dell Axim x51v]]&lt;br /&gt;
== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
==== Patch headers ====&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_config_minimal.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_config_minimal.h       2007-12-24 11:50:58.000000000 -0500&lt;br /&gt;
 @@ -36,7 +36,9 @@&lt;br /&gt;
  typedef signed int int32_t;&lt;br /&gt;
  typedef unsigned int uint32_t;&lt;br /&gt;
  typedef unsigned int size_t;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
  typedef unsigned long uintptr_t;&lt;br /&gt;
 +#endif&lt;br /&gt;
  &lt;br /&gt;
  /* Enable the dummy audio driver (src/audio/dummy/\*.c) */&lt;br /&gt;
  #define SDL_AUDIO_DRIVER_DUMMY 1&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/./include/SDL_keysym.h      2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./include/SDL_keysym.h     2007-12-23 20:16:11.000000000 -0500&lt;br /&gt;
 @@ -282,6 +282,12 @@&lt;br /&gt;
         SDLK_UNDO               = 322,          /* Atari keyboard has Undo */&lt;br /&gt;
  &lt;br /&gt;
         /* Add any other keys here */&lt;br /&gt;
 +       SDLK_APP1               = 323,&lt;br /&gt;
 +       SDLK_APP2               = 324,&lt;br /&gt;
 +       SDLK_APP3               = 325,&lt;br /&gt;
 +       SDLK_APP4               = 326,&lt;br /&gt;
 +       SDLK_APP5               = 327,&lt;br /&gt;
 +       SDLK_APP6               = 328,&lt;br /&gt;
  &lt;br /&gt;
         SDLK_LAST&lt;br /&gt;
  } SDLKey;&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_stdinc.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_stdinc.h       2007-12-24 11:53:11.000000000 -0500&lt;br /&gt;
 @@ -57,13 +57,15 @@&lt;br /&gt;
  # endif&lt;br /&gt;
  # include &amp;lt;string.h&amp;gt;&lt;br /&gt;
  #endif&lt;br /&gt;
 -#ifdef HAVE_STRINGS_H&lt;br /&gt;
 -# include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 -#endif&lt;br /&gt;
 -#if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 -# include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 -#elif defined(HAVE_STDINT_H)&lt;br /&gt;
 -# include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
 +# ifdef HAVE_STRINGS_H&lt;br /&gt;
 +#  include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
 +# if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 +#  include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 +# elif defined(HAVE_STDINT_H)&lt;br /&gt;
 +#  include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
  #endif&lt;br /&gt;
  #ifdef HAVE_CTYPE_H&lt;br /&gt;
  # include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- sdlorig/SDL-1.2.12/./src/video/windib/SDL_dibevents.c       2007-07-20 01:52:19.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./src/video/windib/SDL_dibevents.c 2007-12-23 20:14:55.000000000 -0500&lt;br /&gt;
 @@ -430,6 +430,13 @@&lt;br /&gt;
         VK_keymap[VK_SNAPSHOT] = SDLK_PRINT;&lt;br /&gt;
         VK_keymap[VK_CANCEL] = SDLK_BREAK;&lt;br /&gt;
         VK_keymap[VK_APPS] = SDLK_MENU;&lt;br /&gt;
 +&lt;br /&gt;
 +       VK_keymap[VK_APP1] = SDLK_APP1;&lt;br /&gt;
 +       VK_keymap[VK_APP2] = SDLK_APP2;&lt;br /&gt;
 +       VK_keymap[VK_APP3] = SDLK_APP3;&lt;br /&gt;
 +       VK_keymap[VK_APP4] = SDLK_APP4;&lt;br /&gt;
 +       VK_keymap[VK_APP5] = SDLK_APP5;&lt;br /&gt;
 +       VK_keymap[VK_APP6] = SDLK_APP6;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
 cp libpng.dll $PRJ/pkg&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out The Ur-Quan Masters sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure The Ur-Quan Masters build scripts ==&lt;br /&gt;
To configure The Ur-Quan Masters the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build The Ur-Quan Masters ==&lt;br /&gt;
Run ./build.sh uqm&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install UQM (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
# Place shared libraries into $UQM_DIR:&lt;br /&gt;
#* $PRJ/libpng.dll&lt;br /&gt;
#* $PRJ/libvorbisidec.dll&lt;br /&gt;
#* $PRJ/SDL.dll&lt;br /&gt;
#* $PRJ/SDL_image.dll&lt;br /&gt;
#* $PRJ/z.dll&lt;br /&gt;
#* /opt/cegcc/arm-wince-cegcc/lib/device/cegcc.dll&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages&lt;br /&gt;
&lt;br /&gt;
== Adding The Ur-Quan Masters command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut.lnk&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not sighed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;br /&gt;
&lt;br /&gt;
[[Category:About the Star Control series]]&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20622</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20622"/>
		<updated>2007-12-24T17:28:15Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Adding The Ur-Quan Masters command-line arguments */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:uqm_ce.jpg|thumb|320px|The Ur-Quan Masters running on Dell Axim x51v]]&lt;br /&gt;
== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
==== Patch headers ====&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_config_minimal.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_config_minimal.h       2007-12-24 11:50:58.000000000 -0500&lt;br /&gt;
 @@ -36,7 +36,9 @@&lt;br /&gt;
  typedef signed int int32_t;&lt;br /&gt;
  typedef unsigned int uint32_t;&lt;br /&gt;
  typedef unsigned int size_t;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
  typedef unsigned long uintptr_t;&lt;br /&gt;
 +#endif&lt;br /&gt;
  &lt;br /&gt;
  /* Enable the dummy audio driver (src/audio/dummy/\*.c) */&lt;br /&gt;
  #define SDL_AUDIO_DRIVER_DUMMY 1&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/./include/SDL_keysym.h      2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./include/SDL_keysym.h     2007-12-23 20:16:11.000000000 -0500&lt;br /&gt;
 @@ -282,6 +282,12 @@&lt;br /&gt;
         SDLK_UNDO               = 322,          /* Atari keyboard has Undo */&lt;br /&gt;
  &lt;br /&gt;
         /* Add any other keys here */&lt;br /&gt;
 +       SDLK_APP1               = 323,&lt;br /&gt;
 +       SDLK_APP2               = 324,&lt;br /&gt;
 +       SDLK_APP3               = 325,&lt;br /&gt;
 +       SDLK_APP4               = 326,&lt;br /&gt;
 +       SDLK_APP5               = 327,&lt;br /&gt;
 +       SDLK_APP6               = 328,&lt;br /&gt;
  &lt;br /&gt;
         SDLK_LAST&lt;br /&gt;
  } SDLKey;&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_stdinc.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_stdinc.h       2007-12-24 11:53:11.000000000 -0500&lt;br /&gt;
 @@ -57,13 +57,15 @@&lt;br /&gt;
  # endif&lt;br /&gt;
  # include &amp;lt;string.h&amp;gt;&lt;br /&gt;
  #endif&lt;br /&gt;
 -#ifdef HAVE_STRINGS_H&lt;br /&gt;
 -# include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 -#endif&lt;br /&gt;
 -#if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 -# include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 -#elif defined(HAVE_STDINT_H)&lt;br /&gt;
 -# include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
 +# ifdef HAVE_STRINGS_H&lt;br /&gt;
 +#  include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
 +# if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 +#  include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 +# elif defined(HAVE_STDINT_H)&lt;br /&gt;
 +#  include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
  #endif&lt;br /&gt;
  #ifdef HAVE_CTYPE_H&lt;br /&gt;
  # include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- sdlorig/SDL-1.2.12/./src/video/windib/SDL_dibevents.c       2007-07-20 01:52:19.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./src/video/windib/SDL_dibevents.c 2007-12-23 20:14:55.000000000 -0500&lt;br /&gt;
 @@ -430,6 +430,13 @@&lt;br /&gt;
         VK_keymap[VK_SNAPSHOT] = SDLK_PRINT;&lt;br /&gt;
         VK_keymap[VK_CANCEL] = SDLK_BREAK;&lt;br /&gt;
         VK_keymap[VK_APPS] = SDLK_MENU;&lt;br /&gt;
 +&lt;br /&gt;
 +       VK_keymap[VK_APP1] = SDLK_APP1;&lt;br /&gt;
 +       VK_keymap[VK_APP2] = SDLK_APP2;&lt;br /&gt;
 +       VK_keymap[VK_APP3] = SDLK_APP3;&lt;br /&gt;
 +       VK_keymap[VK_APP4] = SDLK_APP4;&lt;br /&gt;
 +       VK_keymap[VK_APP5] = SDLK_APP5;&lt;br /&gt;
 +       VK_keymap[VK_APP6] = SDLK_APP6;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
 cp libpng.dll $PRJ/pkg&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out The Ur-Quan Masters sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure The Ur-Quan Masters build scripts ==&lt;br /&gt;
To configure The Ur-Quan Masters the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build The Ur-Quan Masters ==&lt;br /&gt;
Run ./build.sh uqm&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install UQM (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
# Place shared libraries into $UQM_DIR:&lt;br /&gt;
#* $PRJ/libpng.dll&lt;br /&gt;
#* $PRJ/libvorbisidec.dll&lt;br /&gt;
#* $PRJ/SDL.dll&lt;br /&gt;
#* $PRJ/SDL_image.dll&lt;br /&gt;
#* $PRJ/z.dll&lt;br /&gt;
#* /opt/cegcc/arm-wince-cegcc/lib/device/cegcc.dll&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages&lt;br /&gt;
&lt;br /&gt;
== Adding The Ur-Quan Masters command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut.lnk&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not sighed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;br /&gt;
&lt;br /&gt;
[[Category:About the Star Control series]]&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20621</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20621"/>
		<updated>2007-12-24T17:26:30Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* SDL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:uqm_ce.jpg|thumb|320px|The Ur-Quan Masters running on Dell Axim x51v]]&lt;br /&gt;
== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
==== Patch headers ====&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_config_minimal.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_config_minimal.h       2007-12-24 11:50:58.000000000 -0500&lt;br /&gt;
 @@ -36,7 +36,9 @@&lt;br /&gt;
  typedef signed int int32_t;&lt;br /&gt;
  typedef unsigned int uint32_t;&lt;br /&gt;
  typedef unsigned int size_t;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
  typedef unsigned long uintptr_t;&lt;br /&gt;
 +#endif&lt;br /&gt;
  &lt;br /&gt;
  /* Enable the dummy audio driver (src/audio/dummy/\*.c) */&lt;br /&gt;
  #define SDL_AUDIO_DRIVER_DUMMY 1&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/./include/SDL_keysym.h      2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./include/SDL_keysym.h     2007-12-23 20:16:11.000000000 -0500&lt;br /&gt;
 @@ -282,6 +282,12 @@&lt;br /&gt;
         SDLK_UNDO               = 322,          /* Atari keyboard has Undo */&lt;br /&gt;
  &lt;br /&gt;
         /* Add any other keys here */&lt;br /&gt;
 +       SDLK_APP1               = 323,&lt;br /&gt;
 +       SDLK_APP2               = 324,&lt;br /&gt;
 +       SDLK_APP3               = 325,&lt;br /&gt;
 +       SDLK_APP4               = 326,&lt;br /&gt;
 +       SDLK_APP5               = 327,&lt;br /&gt;
 +       SDLK_APP6               = 328,&lt;br /&gt;
  &lt;br /&gt;
         SDLK_LAST&lt;br /&gt;
  } SDLKey;&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_stdinc.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_stdinc.h       2007-12-24 11:53:11.000000000 -0500&lt;br /&gt;
 @@ -57,13 +57,15 @@&lt;br /&gt;
  # endif&lt;br /&gt;
  # include &amp;lt;string.h&amp;gt;&lt;br /&gt;
  #endif&lt;br /&gt;
 -#ifdef HAVE_STRINGS_H&lt;br /&gt;
 -# include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 -#endif&lt;br /&gt;
 -#if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 -# include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 -#elif defined(HAVE_STDINT_H)&lt;br /&gt;
 -# include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +#ifndef __CEGCC__&lt;br /&gt;
 +# ifdef HAVE_STRINGS_H&lt;br /&gt;
 +#  include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
 +# if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 +#  include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 +# elif defined(HAVE_STDINT_H)&lt;br /&gt;
 +#  include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
  #endif&lt;br /&gt;
  #ifdef HAVE_CTYPE_H&lt;br /&gt;
  # include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- sdlorig/SDL-1.2.12/./src/video/windib/SDL_dibevents.c       2007-07-20 01:52:19.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./src/video/windib/SDL_dibevents.c 2007-12-23 20:14:55.000000000 -0500&lt;br /&gt;
 @@ -430,6 +430,13 @@&lt;br /&gt;
         VK_keymap[VK_SNAPSHOT] = SDLK_PRINT;&lt;br /&gt;
         VK_keymap[VK_CANCEL] = SDLK_BREAK;&lt;br /&gt;
         VK_keymap[VK_APPS] = SDLK_MENU;&lt;br /&gt;
 +&lt;br /&gt;
 +       VK_keymap[VK_APP1] = SDLK_APP1;&lt;br /&gt;
 +       VK_keymap[VK_APP2] = SDLK_APP2;&lt;br /&gt;
 +       VK_keymap[VK_APP3] = SDLK_APP3;&lt;br /&gt;
 +       VK_keymap[VK_APP4] = SDLK_APP4;&lt;br /&gt;
 +       VK_keymap[VK_APP5] = SDLK_APP5;&lt;br /&gt;
 +       VK_keymap[VK_APP6] = SDLK_APP6;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
 cp libpng.dll $PRJ/pkg&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out The Ur-Quan Masters sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure The Ur-Quan Masters build scripts ==&lt;br /&gt;
To configure The Ur-Quan Masters the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build The Ur-Quan Masters ==&lt;br /&gt;
Run ./build.sh uqm&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install UQM (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
# Place shared libraries into $UQM_DIR:&lt;br /&gt;
#* $PRJ/libpng.dll&lt;br /&gt;
#* $PRJ/libvorbisidec.dll&lt;br /&gt;
#* $PRJ/SDL.dll&lt;br /&gt;
#* $PRJ/SDL_image.dll&lt;br /&gt;
#* $PRJ/z.dll&lt;br /&gt;
#* /opt/cegcc/arm-wince-cegcc/lib/device/cegcc.dll&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages&lt;br /&gt;
&lt;br /&gt;
== Adding The Ur-Quan Masters command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not sighed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;br /&gt;
&lt;br /&gt;
[[Category:About the Star Control series]]&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20620</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20620"/>
		<updated>2007-12-24T17:08:39Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Installing to WM device */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:uqm_ce.jpg|thumb|320px|The Ur-Quan Masters running on Dell Axim x51v]]&lt;br /&gt;
== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
==== Patch headers ====&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_config_minimal.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_config_minimal.h       2007-12-24 11:50:58.000000000 -0500&lt;br /&gt;
 @@ -36,7 +36,9 @@&lt;br /&gt;
  typedef signed int int32_t;&lt;br /&gt;
  typedef unsigned int uint32_t;&lt;br /&gt;
  typedef unsigned int size_t;&lt;br /&gt;
 +#ifndef _WIN32_WCE&lt;br /&gt;
  typedef unsigned long uintptr_t;&lt;br /&gt;
 +#endif&lt;br /&gt;
  &lt;br /&gt;
  /* Enable the dummy audio driver (src/audio/dummy/\*.c) */&lt;br /&gt;
  #define SDL_AUDIO_DRIVER_DUMMY 1&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/./include/SDL_keysym.h      2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./include/SDL_keysym.h     2007-12-23 20:16:11.000000000 -0500&lt;br /&gt;
 @@ -282,6 +282,12 @@&lt;br /&gt;
         SDLK_UNDO               = 322,          /* Atari keyboard has Undo */&lt;br /&gt;
  &lt;br /&gt;
         /* Add any other keys here */&lt;br /&gt;
 +       SDLK_APP1               = 323,&lt;br /&gt;
 +       SDLK_APP2               = 324,&lt;br /&gt;
 +       SDLK_APP3               = 325,&lt;br /&gt;
 +       SDLK_APP4               = 326,&lt;br /&gt;
 +       SDLK_APP5               = 327,&lt;br /&gt;
 +       SDLK_APP6               = 328,&lt;br /&gt;
  &lt;br /&gt;
         SDLK_LAST&lt;br /&gt;
  } SDLKey;&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_stdinc.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_stdinc.h       2007-12-24 11:53:11.000000000 -0500&lt;br /&gt;
 @@ -57,13 +57,15 @@&lt;br /&gt;
  # endif&lt;br /&gt;
  # include &amp;lt;string.h&amp;gt;&lt;br /&gt;
  #endif&lt;br /&gt;
 -#ifdef HAVE_STRINGS_H&lt;br /&gt;
 -# include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 -#endif&lt;br /&gt;
 -#if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 -# include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 -#elif defined(HAVE_STDINT_H)&lt;br /&gt;
 -# include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +#ifndef _WIN32_WCE&lt;br /&gt;
 +# ifdef HAVE_STRINGS_H&lt;br /&gt;
 +#  include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
 +# if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 +#  include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 +# elif defined(HAVE_STDINT_H)&lt;br /&gt;
 +#  include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
  #endif&lt;br /&gt;
  #ifdef HAVE_CTYPE_H&lt;br /&gt;
  # include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- sdlorig/SDL-1.2.12/./src/video/windib/SDL_dibevents.c       2007-07-20 01:52:19.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./src/video/windib/SDL_dibevents.c 2007-12-23 20:14:55.000000000 -0500&lt;br /&gt;
 @@ -430,6 +430,13 @@&lt;br /&gt;
         VK_keymap[VK_SNAPSHOT] = SDLK_PRINT;&lt;br /&gt;
         VK_keymap[VK_CANCEL] = SDLK_BREAK;&lt;br /&gt;
         VK_keymap[VK_APPS] = SDLK_MENU;&lt;br /&gt;
 +&lt;br /&gt;
 +       VK_keymap[VK_APP1] = SDLK_APP1;&lt;br /&gt;
 +       VK_keymap[VK_APP2] = SDLK_APP2;&lt;br /&gt;
 +       VK_keymap[VK_APP3] = SDLK_APP3;&lt;br /&gt;
 +       VK_keymap[VK_APP4] = SDLK_APP4;&lt;br /&gt;
 +       VK_keymap[VK_APP5] = SDLK_APP5;&lt;br /&gt;
 +       VK_keymap[VK_APP6] = SDLK_APP6;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
 cp libpng.dll $PRJ/pkg&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out The Ur-Quan Masters sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure The Ur-Quan Masters build scripts ==&lt;br /&gt;
To configure The Ur-Quan Masters the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build The Ur-Quan Masters ==&lt;br /&gt;
Run ./build.sh uqm&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install UQM (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
# Place shared libraries into $UQM_DIR:&lt;br /&gt;
#* $PRJ/libpng.dll&lt;br /&gt;
#* $PRJ/libvorbisidec.dll&lt;br /&gt;
#* $PRJ/SDL.dll&lt;br /&gt;
#* $PRJ/SDL_image.dll&lt;br /&gt;
#* $PRJ/z.dll&lt;br /&gt;
#* /opt/cegcc/arm-wince-cegcc/lib/device/cegcc.dll&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages&lt;br /&gt;
&lt;br /&gt;
== Adding The Ur-Quan Masters command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not sighed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;br /&gt;
&lt;br /&gt;
[[Category:About the Star Control series]]&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20619</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20619"/>
		<updated>2007-12-24T17:05:13Z</updated>

		<summary type="html">&lt;p&gt;Ptx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:uqm_ce.jpg|thumb|320px|The Ur-Quan Masters running on Dell Axim x51v]]&lt;br /&gt;
== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
==== Patch headers ====&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_config_minimal.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_config_minimal.h       2007-12-24 11:50:58.000000000 -0500&lt;br /&gt;
 @@ -36,7 +36,9 @@&lt;br /&gt;
  typedef signed int int32_t;&lt;br /&gt;
  typedef unsigned int uint32_t;&lt;br /&gt;
  typedef unsigned int size_t;&lt;br /&gt;
 +#ifndef _WIN32_WCE&lt;br /&gt;
  typedef unsigned long uintptr_t;&lt;br /&gt;
 +#endif&lt;br /&gt;
  &lt;br /&gt;
  /* Enable the dummy audio driver (src/audio/dummy/\*.c) */&lt;br /&gt;
  #define SDL_AUDIO_DRIVER_DUMMY 1&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/./include/SDL_keysym.h      2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./include/SDL_keysym.h     2007-12-23 20:16:11.000000000 -0500&lt;br /&gt;
 @@ -282,6 +282,12 @@&lt;br /&gt;
         SDLK_UNDO               = 322,          /* Atari keyboard has Undo */&lt;br /&gt;
  &lt;br /&gt;
         /* Add any other keys here */&lt;br /&gt;
 +       SDLK_APP1               = 323,&lt;br /&gt;
 +       SDLK_APP2               = 324,&lt;br /&gt;
 +       SDLK_APP3               = 325,&lt;br /&gt;
 +       SDLK_APP4               = 326,&lt;br /&gt;
 +       SDLK_APP5               = 327,&lt;br /&gt;
 +       SDLK_APP6               = 328,&lt;br /&gt;
  &lt;br /&gt;
         SDLK_LAST&lt;br /&gt;
  } SDLKey;&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_stdinc.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_stdinc.h       2007-12-24 11:53:11.000000000 -0500&lt;br /&gt;
 @@ -57,13 +57,15 @@&lt;br /&gt;
  # endif&lt;br /&gt;
  # include &amp;lt;string.h&amp;gt;&lt;br /&gt;
  #endif&lt;br /&gt;
 -#ifdef HAVE_STRINGS_H&lt;br /&gt;
 -# include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 -#endif&lt;br /&gt;
 -#if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 -# include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 -#elif defined(HAVE_STDINT_H)&lt;br /&gt;
 -# include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +#ifndef _WIN32_WCE&lt;br /&gt;
 +# ifdef HAVE_STRINGS_H&lt;br /&gt;
 +#  include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
 +# if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 +#  include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 +# elif defined(HAVE_STDINT_H)&lt;br /&gt;
 +#  include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
  #endif&lt;br /&gt;
  #ifdef HAVE_CTYPE_H&lt;br /&gt;
  # include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- sdlorig/SDL-1.2.12/./src/video/windib/SDL_dibevents.c       2007-07-20 01:52:19.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./src/video/windib/SDL_dibevents.c 2007-12-23 20:14:55.000000000 -0500&lt;br /&gt;
 @@ -430,6 +430,13 @@&lt;br /&gt;
         VK_keymap[VK_SNAPSHOT] = SDLK_PRINT;&lt;br /&gt;
         VK_keymap[VK_CANCEL] = SDLK_BREAK;&lt;br /&gt;
         VK_keymap[VK_APPS] = SDLK_MENU;&lt;br /&gt;
 +&lt;br /&gt;
 +       VK_keymap[VK_APP1] = SDLK_APP1;&lt;br /&gt;
 +       VK_keymap[VK_APP2] = SDLK_APP2;&lt;br /&gt;
 +       VK_keymap[VK_APP3] = SDLK_APP3;&lt;br /&gt;
 +       VK_keymap[VK_APP4] = SDLK_APP4;&lt;br /&gt;
 +       VK_keymap[VK_APP5] = SDLK_APP5;&lt;br /&gt;
 +       VK_keymap[VK_APP6] = SDLK_APP6;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
 cp libpng.dll $PRJ/pkg&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out The Ur-Quan Masters sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure The Ur-Quan Masters build scripts ==&lt;br /&gt;
To configure The Ur-Quan Masters the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build The Ur-Quan Masters ==&lt;br /&gt;
Run ./build.sh uqm&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install UQM (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages&lt;br /&gt;
&lt;br /&gt;
== Adding The Ur-Quan Masters command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not sighed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;br /&gt;
&lt;br /&gt;
[[Category:About the Star Control series]]&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20618</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20618"/>
		<updated>2007-12-24T17:04:44Z</updated>

		<summary type="html">&lt;p&gt;Ptx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:uqm_ce.jpg|thumb|320px|The Ur-Quan Masters running on Dell Axim x51v]]&lt;br /&gt;
== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
=== Patch headers ===&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_config_minimal.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_config_minimal.h       2007-12-24 11:50:58.000000000 -0500&lt;br /&gt;
 @@ -36,7 +36,9 @@&lt;br /&gt;
  typedef signed int int32_t;&lt;br /&gt;
  typedef unsigned int uint32_t;&lt;br /&gt;
  typedef unsigned int size_t;&lt;br /&gt;
 +#ifndef _WIN32_WCE&lt;br /&gt;
  typedef unsigned long uintptr_t;&lt;br /&gt;
 +#endif&lt;br /&gt;
  &lt;br /&gt;
  /* Enable the dummy audio driver (src/audio/dummy/\*.c) */&lt;br /&gt;
  #define SDL_AUDIO_DRIVER_DUMMY 1&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/./include/SDL_keysym.h      2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./include/SDL_keysym.h     2007-12-23 20:16:11.000000000 -0500&lt;br /&gt;
 @@ -282,6 +282,12 @@&lt;br /&gt;
         SDLK_UNDO               = 322,          /* Atari keyboard has Undo */&lt;br /&gt;
  &lt;br /&gt;
         /* Add any other keys here */&lt;br /&gt;
 +       SDLK_APP1               = 323,&lt;br /&gt;
 +       SDLK_APP2               = 324,&lt;br /&gt;
 +       SDLK_APP3               = 325,&lt;br /&gt;
 +       SDLK_APP4               = 326,&lt;br /&gt;
 +       SDLK_APP5               = 327,&lt;br /&gt;
 +       SDLK_APP6               = 328,&lt;br /&gt;
  &lt;br /&gt;
         SDLK_LAST&lt;br /&gt;
  } SDLKey;&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_stdinc.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_stdinc.h       2007-12-24 11:53:11.000000000 -0500&lt;br /&gt;
 @@ -57,13 +57,15 @@&lt;br /&gt;
  # endif&lt;br /&gt;
  # include &amp;lt;string.h&amp;gt;&lt;br /&gt;
  #endif&lt;br /&gt;
 -#ifdef HAVE_STRINGS_H&lt;br /&gt;
 -# include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 -#endif&lt;br /&gt;
 -#if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 -# include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 -#elif defined(HAVE_STDINT_H)&lt;br /&gt;
 -# include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +#ifndef _WIN32_WCE&lt;br /&gt;
 +# ifdef HAVE_STRINGS_H&lt;br /&gt;
 +#  include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
 +# if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 +#  include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 +# elif defined(HAVE_STDINT_H)&lt;br /&gt;
 +#  include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
  #endif&lt;br /&gt;
  #ifdef HAVE_CTYPE_H&lt;br /&gt;
  # include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- sdlorig/SDL-1.2.12/./src/video/windib/SDL_dibevents.c       2007-07-20 01:52:19.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./src/video/windib/SDL_dibevents.c 2007-12-23 20:14:55.000000000 -0500&lt;br /&gt;
 @@ -430,6 +430,13 @@&lt;br /&gt;
         VK_keymap[VK_SNAPSHOT] = SDLK_PRINT;&lt;br /&gt;
         VK_keymap[VK_CANCEL] = SDLK_BREAK;&lt;br /&gt;
         VK_keymap[VK_APPS] = SDLK_MENU;&lt;br /&gt;
 +&lt;br /&gt;
 +       VK_keymap[VK_APP1] = SDLK_APP1;&lt;br /&gt;
 +       VK_keymap[VK_APP2] = SDLK_APP2;&lt;br /&gt;
 +       VK_keymap[VK_APP3] = SDLK_APP3;&lt;br /&gt;
 +       VK_keymap[VK_APP4] = SDLK_APP4;&lt;br /&gt;
 +       VK_keymap[VK_APP5] = SDLK_APP5;&lt;br /&gt;
 +       VK_keymap[VK_APP6] = SDLK_APP6;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
 cp libpng.dll $PRJ/pkg&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out The Ur-Quan Masters sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure The Ur-Quan Masters build scripts ==&lt;br /&gt;
To configure The Ur-Quan Masters the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build The Ur-Quan Masters ==&lt;br /&gt;
Run ./build.sh uqm&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install UQM (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages&lt;br /&gt;
&lt;br /&gt;
== Adding The Ur-Quan Masters command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not sighed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;br /&gt;
&lt;br /&gt;
[[Category:About the Star Control series]]&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20617</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20617"/>
		<updated>2007-12-24T17:04:06Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* SDL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:uqm_ce.jpg|thumb|320px|The Ur-Quan Masters running on Dell Axim x51v]]&lt;br /&gt;
== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
 === Patch SDL headers ===&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_config_minimal.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_config_minimal.h       2007-12-24 11:50:58.000000000 -0500&lt;br /&gt;
 @@ -36,7 +36,9 @@&lt;br /&gt;
  typedef signed int int32_t;&lt;br /&gt;
  typedef unsigned int uint32_t;&lt;br /&gt;
  typedef unsigned int size_t;&lt;br /&gt;
 +#ifndef _WIN32_WCE&lt;br /&gt;
  typedef unsigned long uintptr_t;&lt;br /&gt;
 +#endif&lt;br /&gt;
  &lt;br /&gt;
  /* Enable the dummy audio driver (src/audio/dummy/\*.c) */&lt;br /&gt;
  #define SDL_AUDIO_DRIVER_DUMMY 1&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/./include/SDL_keysym.h      2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./include/SDL_keysym.h     2007-12-23 20:16:11.000000000 -0500&lt;br /&gt;
 @@ -282,6 +282,12 @@&lt;br /&gt;
         SDLK_UNDO               = 322,          /* Atari keyboard has Undo */&lt;br /&gt;
  &lt;br /&gt;
         /* Add any other keys here */&lt;br /&gt;
 +       SDLK_APP1               = 323,&lt;br /&gt;
 +       SDLK_APP2               = 324,&lt;br /&gt;
 +       SDLK_APP3               = 325,&lt;br /&gt;
 +       SDLK_APP4               = 326,&lt;br /&gt;
 +       SDLK_APP5               = 327,&lt;br /&gt;
 +       SDLK_APP6               = 328,&lt;br /&gt;
  &lt;br /&gt;
         SDLK_LAST&lt;br /&gt;
  } SDLKey;&lt;br /&gt;
&lt;br /&gt;
 --- orig/SDL-1.2.12/include/SDL_stdinc.h        2007-07-20 01:52:44.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/include/SDL_stdinc.h       2007-12-24 11:53:11.000000000 -0500&lt;br /&gt;
 @@ -57,13 +57,15 @@&lt;br /&gt;
  # endif&lt;br /&gt;
  # include &amp;lt;string.h&amp;gt;&lt;br /&gt;
  #endif&lt;br /&gt;
 -#ifdef HAVE_STRINGS_H&lt;br /&gt;
 -# include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 -#endif&lt;br /&gt;
 -#if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 -# include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 -#elif defined(HAVE_STDINT_H)&lt;br /&gt;
 -# include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +#ifndef _WIN32_WCE&lt;br /&gt;
 +# ifdef HAVE_STRINGS_H&lt;br /&gt;
 +#  include &amp;lt;strings.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
 +# if defined(HAVE_INTTYPES_H)&lt;br /&gt;
 +#  include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
 +# elif defined(HAVE_STDINT_H)&lt;br /&gt;
 +#  include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 +# endif&lt;br /&gt;
  #endif&lt;br /&gt;
  #ifdef HAVE_CTYPE_H&lt;br /&gt;
  # include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- sdlorig/SDL-1.2.12/./src/video/windib/SDL_dibevents.c       2007-07-20 01:52:19.000000000 -0400&lt;br /&gt;
 +++ wince/SDL-1.2.12/./src/video/windib/SDL_dibevents.c 2007-12-23 20:14:55.000000000 -0500&lt;br /&gt;
 @@ -430,6 +430,13 @@&lt;br /&gt;
         VK_keymap[VK_SNAPSHOT] = SDLK_PRINT;&lt;br /&gt;
         VK_keymap[VK_CANCEL] = SDLK_BREAK;&lt;br /&gt;
         VK_keymap[VK_APPS] = SDLK_MENU;&lt;br /&gt;
 +&lt;br /&gt;
 +       VK_keymap[VK_APP1] = SDLK_APP1;&lt;br /&gt;
 +       VK_keymap[VK_APP2] = SDLK_APP2;&lt;br /&gt;
 +       VK_keymap[VK_APP3] = SDLK_APP3;&lt;br /&gt;
 +       VK_keymap[VK_APP4] = SDLK_APP4;&lt;br /&gt;
 +       VK_keymap[VK_APP5] = SDLK_APP5;&lt;br /&gt;
 +       VK_keymap[VK_APP6] = SDLK_APP6;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
 cp libpng.dll $PRJ/pkg&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out The Ur-Quan Masters sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure The Ur-Quan Masters build scripts ==&lt;br /&gt;
To configure The Ur-Quan Masters the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build The Ur-Quan Masters ==&lt;br /&gt;
Run ./build.sh uqm&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install UQM (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages&lt;br /&gt;
&lt;br /&gt;
== Adding The Ur-Quan Masters command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not sighed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;br /&gt;
&lt;br /&gt;
[[Category:About the Star Control series]]&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20616</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20616"/>
		<updated>2007-12-24T16:21:05Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Tremor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:uqm_ce.jpg|thumb|320px|The Ur-Quan Masters running on Dell Axim x51v]]&lt;br /&gt;
== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
 cp libpng.dll $PRJ/pkg&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out The Ur-Quan Masters sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure The Ur-Quan Masters build scripts ==&lt;br /&gt;
To configure The Ur-Quan Masters the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build The Ur-Quan Masters ==&lt;br /&gt;
Run ./build.sh uqm&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install UQM (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages&lt;br /&gt;
&lt;br /&gt;
== Adding The Ur-Quan Masters command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not sighed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;br /&gt;
&lt;br /&gt;
[[Category:About the Star Control series]]&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20611</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20611"/>
		<updated>2007-12-24T05:30:00Z</updated>

		<summary type="html">&lt;p&gt;Ptx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:uqm_ce.jpg|thumb|320px|The Ur-Quan Masters running on Dell Axim x51v]]&lt;br /&gt;
== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
 cp libpng.dll $PRJ/pkg&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out The Ur-Quan Masters sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure The Ur-Quan Masters build scripts ==&lt;br /&gt;
To configure The Ur-Quan Masters the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build The Ur-Quan Masters ==&lt;br /&gt;
Run ./build.sh uqm&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install UQM (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages&lt;br /&gt;
&lt;br /&gt;
== Adding The Ur-Quan Masters command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not sighed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20609</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20609"/>
		<updated>2007-12-24T04:57:45Z</updated>

		<summary type="html">&lt;p&gt;Ptx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:uqm_ce.jpg|thumb|480px|The Ur-Quan Masters running on Dell Axim x51v]]&lt;br /&gt;
== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
 cp libpng.dll $PRJ/pkg&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out The Ur-Quan Masters sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure The Ur-Quan Masters build scripts ==&lt;br /&gt;
To configure The Ur-Quan Masters the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build The Ur-Quan Masters ==&lt;br /&gt;
Run ./build.sh uqm&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install UQM (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages&lt;br /&gt;
&lt;br /&gt;
== Adding The Ur-Quan Masters command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not sighed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20608</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20608"/>
		<updated>2007-12-24T04:35:35Z</updated>

		<summary type="html">&lt;p&gt;Ptx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Media:uqm_ce.jpg]]&lt;br /&gt;
== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
 cp libpng.dll $PRJ/pkg&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out uqm sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure UQM ==&lt;br /&gt;
To configure UQM the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build UQM ==&lt;br /&gt;
Run ./build.sh uqm&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install UQM (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages&lt;br /&gt;
&lt;br /&gt;
== Adding UQM command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not sighed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=File:Uqm_ce.jpg&amp;diff=20607</id>
		<title>File:Uqm ce.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=File:Uqm_ce.jpg&amp;diff=20607"/>
		<updated>2007-12-24T04:10:59Z</updated>

		<summary type="html">&lt;p&gt;Ptx: UQM running on Dell Axim x51v.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UQM running on Dell Axim x51v.&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20606</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20606"/>
		<updated>2007-12-24T03:50:01Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* libpng */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
 cp libpng.dll $PRJ/pkg&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out uqm sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure UQM ==&lt;br /&gt;
To configure UQM the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build UQM ==&lt;br /&gt;
Run ./build.sh uqm&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install UQM (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages&lt;br /&gt;
&lt;br /&gt;
== Adding UQM command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not sighed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20605</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20605"/>
		<updated>2007-12-24T03:48:49Z</updated>

		<summary type="html">&lt;p&gt;Ptx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 ./autogen.sh --host arm-wince-pe&lt;br /&gt;
 ./configure --host arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 ./configure&lt;br /&gt;
 ./make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 ./configure --enable-shared=yes --host arm-wince-pe arm-wince-pe&lt;br /&gt;
 ./make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out uqm sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure UQM ==&lt;br /&gt;
To configure UQM the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 ./build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run ./build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build UQM ==&lt;br /&gt;
Run ./build.sh uqm&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install UQM (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages&lt;br /&gt;
&lt;br /&gt;
== Adding UQM command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Always use same header files to build everything, doing otherwise brings chaos and is extremely difficult to debug&lt;br /&gt;
=== Missing DLLs ===&lt;br /&gt;
The following message usually means that your executable is unable to find a .dll:&lt;br /&gt;
 The file &#039;uqm&#039; cannot be opened. Either it is not sighed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file.&lt;br /&gt;
To find out what dlls you are missing, run &amp;quot;arm-wince-gcc-objdump -p uqm&amp;quot; (or any of it&#039;s libraries)&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20604</id>
		<title>Windows CE build instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Windows_CE_build_instructions&amp;diff=20604"/>
		<updated>2007-12-24T03:35:36Z</updated>

		<summary type="html">&lt;p&gt;Ptx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Set up environment variables ==&lt;br /&gt;
 export CROSS_ROOT=/opt/cegcc&lt;br /&gt;
 export PRJ=$HOME/wince&lt;br /&gt;
 export PATH=.:$CROSS_ROOT/bin:$PRJ/bin:/bin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
== Create workspace directories ==&lt;br /&gt;
 mkdir $PRJ&lt;br /&gt;
 mkdir $PRJ/lib&lt;br /&gt;
 mkdir $PRJ/pkg&lt;br /&gt;
 mkdir $PRJ/bin&lt;br /&gt;
&lt;br /&gt;
== Install cegcc ==&lt;br /&gt;
* Version 0.50 of cegcc was used. Several patches were submitted to cegcc team and the patches were committed to svn. If using version other than 0.50, ensure that the patches are there.&lt;br /&gt;
* Download mandriva-cegcc-cegcc-0.50.tar.gz from http://cegcc.sourceforge.net/&lt;br /&gt;
* Uncompress mandriva-cegcc-cegcc-0.50.tar.gz to /&lt;br /&gt;
&lt;br /&gt;
=== Apply cegcc patches ===&lt;br /&gt;
* Apply the followign to /opt/cegcc/arm-wince-cegcc/include/w32api/winuser.h:&lt;br /&gt;
 Index: winuser.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- winuser.h   (revision 1066)&lt;br /&gt;
 +++ winuser.h   (revision 1094)&lt;br /&gt;
 @@ -1962,6 +1962,12 @@&lt;br /&gt;
  #endif&lt;br /&gt;
  #define VK_OEM_2       0xBF&lt;br /&gt;
  #define VK_OEM_3       0xC0&lt;br /&gt;
 +#define VK_APP1        0xC1&lt;br /&gt;
 +#define VK_APP2        0xC2&lt;br /&gt;
 +#define VK_APP3        0xC3&lt;br /&gt;
 +#define VK_APP4        0xC4&lt;br /&gt;
 +#define VK_APP5        0xC5&lt;br /&gt;
 +#define VK_APP6        0xC6&lt;br /&gt;
  #define VK_OEM_4       0xDB&lt;br /&gt;
  #define VK_OEM_5       0xDC&lt;br /&gt;
  #define VK_OEM_6       0xDD&lt;br /&gt;
&lt;br /&gt;
* Apply the following to /opt/cegcc/arm-wince-cegcc/include/sys/dirent.h&lt;br /&gt;
 Index: sys/dirent.h&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- sys/dirent.h        (revision 80)&lt;br /&gt;
 +++ sys/dirent.h        (revision 1100)&lt;br /&gt;
 @@ -36,6 +36,8 @@&lt;br /&gt;
  extern void rewinddir(DIR *dir);&lt;br /&gt;
  extern int  closedir(DIR *dir);&lt;br /&gt;
 &lt;br /&gt;
 +extern int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);&lt;br /&gt;
 +&lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  };&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
=== Create cegcc symlinks ===&lt;br /&gt;
Create symbolic links to cegcc binaries. There are ways to avoid this step, and given more time it should be retired, but for now:&lt;br /&gt;
 cd /opt/cegcc/bin&lt;br /&gt;
 ls arm-wince-cegcc-* | while read line; do&lt;br /&gt;
     new_name=`echo $line | sed &amp;quot;s/arm-wince-cegcc-//g&amp;quot;`&lt;br /&gt;
     ln -s $line $new_name&lt;br /&gt;
     ln -s $line arm-wince-pe-$new_name&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
== Build required libraries ==&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
* Site: http://www.libsdl.org/&lt;br /&gt;
* Src:  http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/release/SDL-1.2.12.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL-1.2.12.tar.gz&lt;br /&gt;
* Build SDL.dll using Visual Studio on win32 (having trouble cross-compiling in linux, hopefully will resolve shortly)...&lt;br /&gt;
* Place SDL.dll that was built using Visual Studio to $PRJ/lib&lt;br /&gt;
* Create $PRJ/bin/sdl-config:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;1.2.12&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--cflags&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-I${PRJ}/SDL-1.2.12/include&amp;quot;&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; = &amp;quot;--libs&amp;quot; ]; then&lt;br /&gt;
 	echo &amp;quot;-L${PRJ}/lib -lSDL&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 	exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
=== Tremor ===&lt;br /&gt;
* Site: http://xiph.org/vorbis/&lt;br /&gt;
* svn:  http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -r14321 http://svn.xiph.org/branches/lowmem-branch/Tremor&lt;br /&gt;
 ln -s Tremor tremor&lt;br /&gt;
 cd Tremor&lt;br /&gt;
 autogen.sh --host arm-wince-pe&lt;br /&gt;
 configure --host arm-wince-pe&lt;br /&gt;
 make&lt;br /&gt;
 gcc -shared *.o -o libvorbisidec.dll&lt;br /&gt;
 cp libvorbisidec.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
=== zlib ===&lt;br /&gt;
* Site: http://www.zlib.net/&lt;br /&gt;
* Src:  http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.zlib.net/zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf zlib-1.2.3.tar.gz&lt;br /&gt;
 cd $PRJ/zlib-1.2.3&lt;br /&gt;
 export CC=arm-wince-cegcc-gcc&lt;br /&gt;
 configure&lt;br /&gt;
 make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared adler32.o compress.o crc32.o deflate.o gzio.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o -o z.dll&lt;br /&gt;
 cp z.dll $PRJ/lib&lt;br /&gt;
 cd $PRJ/lib&lt;br /&gt;
 ln -s z.dll zdll.dll&lt;br /&gt;
&lt;br /&gt;
=== libpng ===&lt;br /&gt;
* Site: http://www.libpng.org/pub/png/libpng.html&lt;br /&gt;
* src:  ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf libpng-1.2.24.tar.bz2&lt;br /&gt;
 cd $PRJ/libpng-1.2.24&lt;br /&gt;
 export CFLAGS=-I$PRJ/zlib-1.2.3&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib&amp;quot;&lt;br /&gt;
 configure&lt;br /&gt;
 make&lt;br /&gt;
 arm-wince-cegcc-gcc -shared libpng12*.o -L$PRJ/lib -lz -o libpng.dll&lt;br /&gt;
&lt;br /&gt;
=== SDL_image ===&lt;br /&gt;
* Site: http://www.libsdl.org/projects/SDL_image&lt;br /&gt;
* Src:  http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/pkg&lt;br /&gt;
 wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 tar xvf pkg/SDL_image-1.2.6.tar.gz&lt;br /&gt;
 cd $PRJ/SDL_image-1.2.6&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/SDL-1.2.12/include -I$PRJ/libpng-1.2.24 -I$PRJ/zlib-1.2.3&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/lib -lpng&amp;quot;&lt;br /&gt;
 configure --enable-shared=yes --host arm-wince-pe --target arm-wince-pe&lt;br /&gt;
 make&lt;br /&gt;
 gcc -shared IMG*.o -L$PRJ/lib -lSDL -lpng -o SDL_image.dll&lt;br /&gt;
 cp SDL_image.dll $PRJ/lib&lt;br /&gt;
&lt;br /&gt;
== Check out uqm sources ==&lt;br /&gt;
 cd $PRJ&lt;br /&gt;
 svn co -N https://sc2.svn.sourceforge.net/svnroot/sc2/trunk/sc2&lt;br /&gt;
 cd sc2&lt;br /&gt;
 svn up build doc src&lt;br /&gt;
Note: trunk is used in this example. Use whatever tag is appropriate.&lt;br /&gt;
&lt;br /&gt;
== Configure UQM ==&lt;br /&gt;
To configure UQM the following needs to be performed:&lt;br /&gt;
 export BUILD_HOST=CEGCC&lt;br /&gt;
 unset ENV BASH_ENV&lt;br /&gt;
 export CFLAGS=&amp;quot;-I$PRJ/libvorbis-1.2.0/include -I$PRJ/libogg-1.1.3/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL-1.2.12/include -I$PRJ/zlib-1.2.3 -I$PRJ/SDL_image-1.2.6 -UUNICODE -I$PRJ -D_SYS_TYPES_FD_SET -DHAVE_STRING_H -D_WIN32_WCE&amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-L$PRJ/zlib-1.2.3 -L$PRJ/lib -L$PRJ/libogg-1.1.3/src/.libs -L$PRJ/libvorbis-1.2.0/lib/.libs -laygshell&amp;quot;&lt;br /&gt;
 export MAKE_VERBOSE=1&lt;br /&gt;
 build.sh uqm config&lt;br /&gt;
&lt;br /&gt;
Run build.sh uqm config and set options to the following:&lt;br /&gt;
  1. Type of build                        Optimised release build&lt;br /&gt;
  2. OpenGL graphics support              Don&#039;t include OpenGL graphics support&lt;br /&gt;
  3. Sound backend                        Use MixSDL for sound (internal)&lt;br /&gt;
  4. Tracker music support                Included libmikmod&lt;br /&gt;
  5. Ogg Vorbis codec                     Tremor (avoids floating point math)&lt;br /&gt;
  6. Network Supermelee support           disabled&lt;br /&gt;
  7. Joystick support                     disabled&lt;br /&gt;
  8. Supported file i/o methods           Direct &amp;amp; .zip file i/o&lt;br /&gt;
  9. Graphics/Sound optimizations         Platform acceleration (asm, etc.)&lt;br /&gt;
&lt;br /&gt;
== Build UQM ==&lt;br /&gt;
Run build.sh uqm&lt;br /&gt;
&lt;br /&gt;
== Installing to WM device ==&lt;br /&gt;
For the purposes of this guide, $UQM_DIR denotes the directory where you want to install UQM (for example &amp;quot;/SD Card/uqm&amp;quot;)&lt;br /&gt;
# Create the following directories:&lt;br /&gt;
#* $UQM_DIR/&lt;br /&gt;
#* $UQM_DIR/content/&lt;br /&gt;
#* $UQM_DIR/content/packages&lt;br /&gt;
# Place &amp;quot;uqm&amp;quot; executable into $UQM_DIR&lt;br /&gt;
# Place &amp;quot;version&amp;quot; file into $UQM_DIR/content&lt;br /&gt;
# Place main content file (for example uqm-0.6.0-content.uqm) into $UQM_DIR/content/packages&lt;br /&gt;
# Place any content patches / addon files into $UQM_DIR/content/packages&lt;br /&gt;
# Place wince addon file (for example uqm-0.6.0-~~wince_20071223.2200.zip) into $UQM_dir/content/packages&lt;br /&gt;
&lt;br /&gt;
== Adding UQM command-line arguments ==&lt;br /&gt;
# In WM5 file explorer, press on &amp;quot;uqm&amp;quot; and hold until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Copy&amp;quot; menu item&lt;br /&gt;
# Press and hold in the file explorer window until pop-up menu appears.&lt;br /&gt;
# Select &amp;quot;Paste Shortcut&amp;quot; menu item&lt;br /&gt;
# Rename the newly created shortcut to &amp;quot;uqm_shortcut&amp;quot;&lt;br /&gt;
# Open &amp;quot;uqm_shortcut&amp;quot; in a text editor of choice and add command line arguments&lt;br /&gt;
Example shortcut file:&lt;br /&gt;
 21#&amp;quot;\SD Card\uqm\uqm&amp;quot; -l uqm_log.txt&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=User_talk:Fyzixfighter&amp;diff=20549</id>
		<title>User talk:Fyzixfighter</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=User_talk:Fyzixfighter&amp;diff=20549"/>
		<updated>2007-12-13T15:55:05Z</updated>

		<summary type="html">&lt;p&gt;Ptx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You added the list of stars and constellations that do not have basic in reality.  I have some memory loss, so I dont want to change the page without someone double checking, but I seem to remember Wolf 359 is a real star with a companion black hole, so Wolf could be removed from the list&lt;br /&gt;
&lt;br /&gt;
:True, but in the SC2 universe, Wolf is a constellation, whereas the in real life Wolf 359 is a single star. Are there other Wolf stars, like a Wolf catalog of stars? There&#039;s also a type of stars called Wolf-Rayet. Imho, since its not a star-star or constellation-constellation correlation, I think that it would belong on the list. We can always include a mention of Wolf 359 in the entry, also. --[[User:Fyzixfighter|Fyzixfighter]] 06:09, 17 Nov 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
::I seem to recall it being documented somewhere that the HyperSpace starmap shows stars that are actually different from the way that we (in reality) see and name stars in &amp;quot;TrueSpace&amp;quot;. Stars in HyperSpace are different from those stars in TrueSpace, even if they have the same name. What we see as Betelgeuse in the HyperSpace map is actually not the same Betelgeuse star that we see right now in the 21st century. I think it&#039;s explained as humans, when they see the stars as they appear from HyperSpace, assign their own familiar names to these stars. --[[User:Phoenix|Phoenix]] [[User_talk:Phoenix|(t)]] 07:16, 17 Nov 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
:::On the hyperspace star map that came with the game: &amp;quot;The positions are based on HyperSpace coordinates, which may be unsettling to some students of TrueSpace astronomy. Defined long ago by Chenjesu stargazers, the constellations are now accepted by all Alliance races as &#039;&#039;the&#039;&#039; standard. Due to the great diffuculty in pronouncing the Chenjesu language, each race has translated the names into their own tongue. When it came time for Earth to adopt this system, the United Nations decided to use traditional astrological designations at random.&amp;quot; I think I might need to be more explicit on that list, to say that these are the names that are neither real constellation names or individual star names. --[[User:Fyzixfighter|Fyzixfighter]] 08:01, 17 Nov 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
Hi there.  In the Probe article, I think you left a sentence dangling: &amp;quot;Unlike catalog item 2419, this&amp;quot;.  I&#039;d finish it myself if I knew the rest. :-) --[[User:Doubleyou|Doubleyou]] 00:11, 2 Dec 2005 (CET)&lt;br /&gt;
:Blast, guess I forgot something when I was moving everything around. IIRC that sentence fragment was part of an intermediate draft of that paragraph and is now redundant. Fixing... --[[User:Fyzixfighter|Fyzixfighter]] 00:37, 2 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
== Cargo images ==&lt;br /&gt;
&lt;br /&gt;
FYI, people complained that my old cargo images taken from the UQM content were too tiny. We should probably use the wiki software to scale those up 2x (and the new ones you uploaded) for wherever they are used in articles, unless somebody wants to scale them manually and upload new versions.&lt;br /&gt;
-[[User:Fadookie|Fadookie]] 01:37, 16 January 2006 (CET)&lt;br /&gt;
:Thanks for the reminder. Yeah, I remember seeing the comments about that and agree the raw images are much too small. I believe &amp;lt;crossing-fingers&amp;gt; that I uploaded copies of all the raw images, except those that had already been uploaded. Not being a really aesthetic person, I avoided figuring out the right scale but, like you&#039;ve already noted, the wiki software can easily resize them to whatever we decide on. I hope I didn&#039;t offend anyone or step on anyone&#039;s toes when I made those uploads, but I kind of agree with Svdb that it&#039;s more honest to present the raw material instead of enhanced images, unless we all agree on how to enhance those images - just my R$ 0.0456600. --[[User:Fyzixfighter|Fyzixfighter]] 04:20, 16 January 2006 (CET)&lt;br /&gt;
::I agree with you and SvdB about using the straight game content, and not only out of laziness. :)&lt;br /&gt;
::There are other places for enhanced images... i.e. PONAF. Back when the Ultronomicon was a bit younger, there was discussion about using PONAF&#039;s animated gifs of each race&#039;s comm screen, but I was against this (as was SvdB if I recall). There is a place for everything, and I don&#039;t think that the Ultronomicon is the place for &#039;enhanced&#039; content, especially if it is scaled to an arbitrary size with an arbitrary resizing algorithm that tries to make the graphics appear smoother than they actually are.&lt;br /&gt;
::The only kind of pre-upload scaling I would support for the Ultronomicon is nearest neighbor 2x (basic, pixelated scaling), although screenshots of UQM using its internal scalers for purposes of comparison may be appropriate.&lt;br /&gt;
::-[[User:Fadookie|Fadookie]] 07:08, 16 January 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
== Footer nav plate. ==&lt;br /&gt;
&lt;br /&gt;
What are you planning to do with those footer nav plates? I think they&#039;re nice, but main Ultronomicon pages shouldn&#039;t refer to pages in the User namespace. &amp;amp;mdash; [[User:Svdb|SvdB]] 05:58, 6 October 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
:Sorry about that - yeah, I was planning on moving them out of my personal namespace. They still might need a little work, but you&#039;re right that they should be in the main space. I&#039;ll move them over today. --[[User:Fyzixfighter|Fyzixfighter]] 19:45, 6 October 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== SC2/UQM star database? ==&lt;br /&gt;
&lt;br /&gt;
Is there a small database defining all the stars? Or is there any XML files around defining all starnames, their positions in space, their color and their size (how big it should be on a map)? It would be neat to create a vector-based starmap of the 2D-universe... maybe by using SVG. It would not be hard to do it, given the right data :)&lt;br /&gt;
&lt;br /&gt;
-- MrMist&lt;br /&gt;
&lt;br /&gt;
:Well, I might not be the best one to answer your question as the limits of my involvement with UQM is basically this wiki. But I can tell you that you&#039;re not the first, nor will you be the last to want to do something like this. In fact, several fans have created a number of maps [http://starcontrol.classicgaming.gamespy.com/sc2/maps.shtml]. The topic has also come up on the UQM discussion boards more than once, so I would recommend scanning the threads there. One in particular [http://uqm.stack.nl/forum/index.php?topic=3133.msg39391#msg39391] has a link to the data you&#039;re looking for, and tells you where you can find it in the actual game code. Likewise, someone awhile back created a page of [[Star Coordinates]] (though it lacks the color and size).--[[User:Fyzixfighter|Fyzixfighter]] 02:14, 17 December 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
:There is functionality in uqm that can print a list of all the info you&#039;d need. It&#039;s not in XML format, but it would be trivial to change the code to dump it anyway you like. You&#039;d need to compile the game from source in debug mode though.&lt;br /&gt;
:An interactive SVG based starmap exists. See [http://seijin.ath.cx/cgi-bin/uqm/ this page].&lt;br /&gt;
: &amp;amp;mdash; [[User:Svdb|SvdB]] 07:19, 17 December 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
::[[Image:screen.png|thumb|right|Screenshot of current starmap]]I&#039;m more interested in creating a completely vectorized map, rather than using loads of bitmaps to draw the elements of the maps. Luckily I found some files in the CVS, that reflects all the constellation positions in simple, readable format. I&#039;ve made some scripts transforming the data to XML, and I&#039;ve made a XSLT stylesheet, transforming the document to SVG. I&#039;m attaching a screenshot of the SVG at the current state of development. --[[User:MrMist|MrMist]] 11:50, 19 December 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
:::Oh, you&#039;re only interested in the stars, not the planets. Right, plandata.c should be enough then.&lt;br /&gt;
:::Note however, that the Ultronomicon is not an image dump for SC2-related pictures. If an image does not go with an article, it doesn&#039;t have a place here. I&#039;ll leave it for the moment, but don&#039;t expect it to last. Actually, even this discussion shouldn&#039;t be here. We have the [http://uqm.stack.nl/forum/ UQM forum] for things like this. &amp;amp;mdash; [[User:Svdb|SvdB]] 12:41, 19 December 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
:::: Ah. I see. Well... I though this wiki was supposed to contain all things surrounding Ur-Quan Masters. As for the picture: I just wanted to provide an example to describe the things I&#039;ve been requesting, and also to document the current progress of development. It was kind of natural to provide a visual example. I did however not expect it to be such a big problem to post a screenshot. Don&#039;t worry... I&#039;ll quit writing here right away.--[[User:MrMist|MrMist]] 14:22, 19 December 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Oh, you wanted to make a starmap for in the Ultronomicon. I misunderstood. In that case a request for information is appropriate here. I apologise for jumping to conclusions. &amp;amp;mdash; [[User:Svdb|SvdB]] 17:47, 20 December 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
==SC1 and SC3==&lt;br /&gt;
Assertion 1: Ur-quan masters equivalent of Star Control II. Assertion 2: Star Control I and Star Control III are in existence. Assertion 3: Full knowledge of Star Control requires full knowledge of series. Assertion 4: Database identified as Ultronomicon deals exclusively with Ur-quan Masters. Conclusion A: Star Control databases must include information on Star Control I and Star Control III. Conclusion B: Database identified as Ultronomicon is incomplete. Query: Unit identified as Fyyzixfighter is directed to either affirm or negate this argument. -A petetionning [[User:Daktaklakpak|Daktaklakpak]] 22:17, 14 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
==FYI==&lt;br /&gt;
The name of the Avatar laser is actually a &amp;quot;Terawatt Laser&amp;quot;. http://starcontrol.classicgaming.gamespy.com/sc2/shipspecs/rw-chmmr-spec.jpg [[User:68.88.74.19|68.88.74.19]] 02:46, 10 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:Sorry, that image is not part of the accepted Star Control [[canon]]. It is a fan-made image - I&#039;ll try and hunt down who created it. In actuality, I believe it is a touched up version of the 3DO spinning image of the ship. The names on it, and the other fan-made images for SC2 unique ships, are for the most part fan-made also, and do not appear anywhere in the canon. The Star Control Writers FAQ is also not necessarily canon. I don&#039;t know where the person got the name terawatt from in that FAQ, but it&#039;s not from the manuals, the RPRG, or the game itself - therefore, it&#039;s fanfic plain and simple. Of course I&#039;m open the idea that I may have missed something (as I discovered as I listened to the 3DO ship descriptions), but please remember how we define canon for the Ultronomicon. Cheers. --[[User:Fyzixfighter|Fyzixfighter]] 04:51, 10 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
Perhaps they used their brains and engaged in critical thinking rather than just replaying SC2 dialogue over and over again to arrive at that conclusion?  The VUX laser is, after all, named a Megawatt laser. [[User:68.88.74.19|68.88.74.19]] 21:18, 10 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:Honestly I&#039;m fine with people extrapolating when they&#039;re creating fan-fiction. However, we strive on the Ultronomicon to stick to canon. Any reading between the lines and critical thinking should be guided by the canon. Also, please don&#039;t insinuate that I didn&#039;t use my brains nor think critically about this topic. Let me show you how I consider this critically: if someone used their critical thinking to get &amp;quot;Terawatt&amp;quot; then I have to question their reasoning abilities because the jump from Tera- to Giga- (the VUX laser is a Gigawatt not a Megawatt) seems simply based on the general fact that the Avatar laser is more powerful. The SC2 manual states that the Avatar laser has &amp;quot;twice the destructive force of the feared VUX laser&amp;quot; (a point which is confirmed in-game, see also [[List of weapons]] for damage]]). A terawatt (10^12) is not twice a &amp;lt;s&amp;gt;megawatt&amp;lt;/s&amp;gt; gigawatt (10^9) (or 30 dB greater if you like a log scale - a factor of 2 would be 3dB by the way). It looks like tera- was chosen simply because it&#039;s just the next metric prefix above giga-, but why not call it an Petawatt or an Exawatt or a Zetawatt (I think the argument for Zeta- is a little bit easier since a Zetawatt is 240 dBm and a Gigawatt is 120 dBm). We really should then call it a &amp;quot;2 Gigawatt Laser&amp;quot;, assuming of course that laser power scales as destructive force, which it may not in such a non-linear regime (I&#039;ve played with Terawatt/Gigawatt pulsed lasers (~25fs pulses) to drive non-linear processes). I certainly would be interested in knowing the reasoning behind &amp;quot;Terawatt&amp;quot; to see if the reasoning was more subtle and insightful than &amp;quot;Terawatt is the next metric unit above Gigawatt, therefore let&#039;s call it a Terawatt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:If you want to call it a terawatt in your gameplay and when talking with others, go ahead, I really couldn&#039;t care less; but please avoid non-canon terminology to the Ultronomicon. We certainly would appreciate your help on making the Ultronomicon better, and it would be sad if you don&#039;t based solely on this one disagreement of acceptable canon. However, if the adherence to this defined canon is too much of a sticking point, then we are at an impasse and any material you add based on non-canon sources will be removed. --[[User:Fyzixfighter|Fyzixfighter]] 00:41, 11 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
::Quick defense in the case of the Terawatt, however, can you say where you found the name x-ray laser?  I never heard it.--[[User:Gaeamil|Gaeamil]] 06:21, 13 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:It is named so in the 3DO ship spin video. I don&#039;t know where it can be found on the Internet, if it can - I don&#039;t know if Fyzixfighter had the 3DO SC2. [[User:Valaggar|Valaggar]] 07:52, 13 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
::Are those the videos where the ship rotates while a female voice describes them?  If so, they&#039;re all on the Pages of Now and Forever.--[[User:Gaeamil|Gaeamil]] 07:54, 13 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:::Yep, that&#039;s where I found them (I don&#039;t have the 3DO version personally). Go here [http://starcontrol.classicgaming.gamespy.com/3do/] and click on any of the ships on the left to play the videos. --[[User:Fyzixfighter|Fyzixfighter]] 08:07, 13 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
== 3DO Ship Spin Models ==&lt;br /&gt;
&lt;br /&gt;
We can use the 3DO Ship Spin images together with in-game/Databank pictures on ship pages. I just wanted you to know that, I don&#039;t think anyone has any objections. [[User:Valaggar|Valaggar]] 11:48, 13 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:There was some similar discussion in regards to including animated gifs for the spec images over on [[Talk:Blade]]. I&#039;m inclined to agree that moving images/video on the page would be distracting, and a steady state image is preferable. I&#039;m also not sure if the hi-res movie files are still up on fileplanet, leaving us with only the lowres vids on PONAF. I think including a link to the specific page on PONAF with the 3DO video would work, without being too distracting and still providing access to the info, but I&#039;m still mulling over the manner of including the link (in a template, external link section, see also section, in-line link,...). --[[User:Fyzixfighter|Fyzixfighter]] 23:04, 13 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
So we should indeed use the &#039;&#039;images&#039;&#039;, and make them link to the 3DO videos? Sounds good. [[User:Valaggar|Valaggar]] 13:02, 14 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:Depends on which &#039;&#039;images&#039;&#039; you&#039;re talking about - I&#039;m not exactly certain I understand which images you mean. --[[User:Fyzixfighter|Fyzixfighter]] 17:18, 14 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
I mean screenshots from the 3DO videos. However, I don&#039;t see a method to take them - my screen capture software (both 2 programs) don&#039;t capture that well, and RealPlayer doesn&#039;t seem to have a &amp;quot;save&amp;quot; option. There must be a way anyway. [[User:Valaggar|Valaggar]] 17:31, 14 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
==Pointless articles==&lt;br /&gt;
The following articles are just cluttering the wiki and are included in your &amp;quot;Pointless articles&amp;quot; section. I support their deletion.&lt;br /&gt;
*[[Alpha Lyrae]]&lt;br /&gt;
*[[Beta Andromedae]]&lt;br /&gt;
*[[Beta Centauri]]&lt;br /&gt;
*[[Beta Lyrae]]&lt;br /&gt;
*[[Delta Centauri]]&lt;br /&gt;
*[[Epsilon Centauri]]&lt;br /&gt;
*[[Gamma Centauri]]&lt;br /&gt;
*[[Zeta Centauri]]&lt;br /&gt;
*[[Achernar]]&lt;br /&gt;
*[[Canopus]]&lt;br /&gt;
*[[Capella]]&lt;br /&gt;
&lt;br /&gt;
You know, non-admins cannot delete articles. [[User:Valaggar|Valaggar]] 16:42, 1 June 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:Yeah, I&#039;ve been meaning to get to that list but school/work has been quite busy as of late (I&#039;m only posting now because I&#039;m waiting on a measurement). I&#039;d definitely be in favor of getting rid of the Lyrae star pages and Beta Andromedae - those are completely non-notable. The Centauri stars I hesitate on since they&#039;re close to Sol (and Delta C. is actually somewhat notable - most # of BioUnits on a single planet) but the same could be said for Lyrae and Canopus - but I think Centauri has a slightly more prominent position in pop sci-fi simply because of Alpha Centauri so some people might find those of interest. I&#039;m torn on Achernar, Canopus, and Capella since those are single star &amp;quot;constellations&amp;quot; and we have pages on other non-notable constellations. But since this a wiki and not paper (it&#039;s all just electrons), eventually it might be nice to have pages for every star. My preference though would be to start on the notable stars before doing the non-notable ones. Let me think on a bit more before I do something (I should have time this weekend). --[[User:Fyzixfighter|Fyzixfighter]] 00:16, 2 June 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
::Cluttering the wiki means cluttering the &amp;quot;Random page&amp;quot; feature, and this I don&#039;t like. Plus, we have Sage&#039;s planetary database.&lt;br /&gt;
&lt;br /&gt;
==Image Upload Test==&lt;br /&gt;
G&#039;day Fyzix, regarding the recent image upload and your subsequent deletion, please see [http://uqm.stack.nl/forum/index.php?board=2;topic=3916.4#msg51155 this UQMF thread].&lt;br /&gt;
&lt;br /&gt;
Cheers --[[User:Zeracles|Zeracles]] 19:57, 7 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
:Thanks Zeracles. Sometimes it&#039;s hard getting out of defensive mode given the number of vandals we&#039;ve had. Anyways, again thanks for the heads up. --[[User:Fyzixfighter|Fyzixfighter]] 23:37, 7 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
I should&#039;ve put in a good description, sorry.&lt;br /&gt;
-ptx&lt;br /&gt;
&lt;br /&gt;
== Vandalism ==&lt;br /&gt;
I see you fight with vandalism on almost daily basis. Why not require wiki user login? That would solve the anonymous vandalism at least... ?&lt;br /&gt;
&lt;br /&gt;
[[User:Ptx|Ptx]] 16:55, 13 December 2007 (CET)&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=File:Model-ship-kohrah_marauder-ptx-1.0.zip&amp;diff=20542</id>
		<title>File:Model-ship-kohrah marauder-ptx-1.0.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=File:Model-ship-kohrah_marauder-ptx-1.0.zip&amp;diff=20542"/>
		<updated>2007-12-13T04:09:19Z</updated>

		<summary type="html">&lt;p&gt;Ptx: Kohr-Ah Marauder model.

{{cc-by-sa-nc-2.5}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Kohr-Ah Marauder model.&lt;br /&gt;
&lt;br /&gt;
{{cc-by-sa-nc-2.5}}&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=File:Model-ship-kohrah_marauder-ptx-1.0.png&amp;diff=20541</id>
		<title>File:Model-ship-kohrah marauder-ptx-1.0.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=File:Model-ship-kohrah_marauder-ptx-1.0.png&amp;diff=20541"/>
		<updated>2007-12-13T04:08:20Z</updated>

		<summary type="html">&lt;p&gt;Ptx: Image of marauder model.

{{cc-by-sa-nc-2.5}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Image of marauder model.&lt;br /&gt;
&lt;br /&gt;
{{cc-by-sa-nc-2.5}}&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=3D_Models&amp;diff=20540</id>
		<title>3D Models</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=3D_Models&amp;diff=20540"/>
		<updated>2007-12-13T04:06:58Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Ur-Quan Kohr-Ah Marauder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ship Models ==&lt;br /&gt;
&lt;br /&gt;
=== Androsynth Guardian ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arilou Lalee&#039;lay Skiff ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chenjesu Broodhome ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chmmr Avatar ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Druuge Mauler ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Earthling Cruiser ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || 1048 || ptx || 1.0&lt;br /&gt;
    | [[Media:model-ship-earthling_cruiser-ptx-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-ship-earthling_cruiser-ptx-1.0.png|50px]]&lt;br /&gt;
    | Earthling Cruiser&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ilwrath Avenger ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Melnorme Trader ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mmrnmhrm X-Form ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mycon Podship ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Orz Nemesis ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pkunk Fury ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || 1278 || ptx || 1.0&lt;br /&gt;
    | [[Media:model-ship-pkunk_fury-ptx-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-ship-pkunk_fury-ptx-1.0.png|50px]]&lt;br /&gt;
    | First attempt at Pkunk Fury&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shofixti Scout ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Slylandro Probe ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spathi Eluder ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Supox Blade ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Syreen Penetrator ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Thraddash Torch ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Umgah Drone ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ur-Quan Kohr-Ah Marauder ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || 724 || ptx || 1.0&lt;br /&gt;
    | [[Media:model-ship-kohrah_marauder-ptx-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-ship-kohrah_marauder-ptx-1.0.png|50px]]&lt;br /&gt;
    | First attempt at Marauder&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ur-Quan Kzer-Za Dreadnought ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Utwig Jugger ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VUX Intruder ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Yehat Terminator ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Zoq-Fot-Pik Stinger ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Precursor Flagship ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sa-Matra battle platform ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=3D_Models&amp;diff=20534</id>
		<title>3D Models</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=3D_Models&amp;diff=20534"/>
		<updated>2007-12-12T01:58:06Z</updated>

		<summary type="html">&lt;p&gt;Ptx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ship Models ==&lt;br /&gt;
&lt;br /&gt;
=== Androsynth Guardian ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arilou Lalee&#039;lay Skiff ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chenjesu Broodhome ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chmmr Avatar ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Druuge Mauler ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Earthling Cruiser ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || 1048 || ptx || 1.0&lt;br /&gt;
    | [[Media:model-ship-earthling_cruiser-ptx-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-ship-earthling_cruiser-ptx-1.0.png|50px]]&lt;br /&gt;
    | Earthling Cruiser&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ilwrath Avenger ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Melnorme Trader ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mmrnmhrm X-Form ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mycon Podship ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Orz Nemesis ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pkunk Fury ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || 1278 || ptx || 1.0&lt;br /&gt;
    | [[Media:model-ship-pkunk_fury-ptx-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-ship-pkunk_fury-ptx-1.0.png|50px]]&lt;br /&gt;
    | First attempt at Pkunk Fury&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shofixti Scout ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Slylandro Probe ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spathi Eluder ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Supox Blade ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Syreen Penetrator ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Thraddash Torch ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Umgah Drone ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ur-Quan Kohr-Ah Marauder ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ur-Quan Kzer-Za Dreadnought ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Utwig Jugger ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VUX Intruder ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Yehat Terminator ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Zoq-Fot-Pik Stinger ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Precursor Flagship ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sa-Matra battle platform ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=3D_Models&amp;diff=20533</id>
		<title>3D Models</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=3D_Models&amp;diff=20533"/>
		<updated>2007-12-12T01:56:15Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Earthling Cruiser */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Model archive contents ==&lt;br /&gt;
Model archive should contain the following items:&lt;br /&gt;
* Model geometry file&lt;br /&gt;
* Model material(s)&lt;br /&gt;
* COPYING (or COPYING.txt) file containing the license&lt;br /&gt;
* (optional) README file containing any additional model information&lt;br /&gt;
&lt;br /&gt;
== Ship Models ==&lt;br /&gt;
&lt;br /&gt;
=== Androsynth Guardian ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arilou Lalee&#039;lay Skiff ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chenjesu Broodhome ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chmmr Avatar ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Druuge Mauler ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Earthling Cruiser ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || 1048 || ptx || 1.0&lt;br /&gt;
    | [[Media:model-ship-earthling_cruiser-ptx-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-ship-earthling_cruiser-ptx-1.0.png|50px]]&lt;br /&gt;
    | Earthling Cruiser&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ilwrath Avenger ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Melnorme Trader ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mmrnmhrm X-Form ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mycon Podship ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Orz Nemesis ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pkunk Fury ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || 1278 || ptx || 1.0&lt;br /&gt;
    | [[Media:model-ship-pkunk_fury-ptx-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-ship-pkunk_fury-ptx-1.0.png|50px]]&lt;br /&gt;
    | First attempt at Pkunk Fury&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shofixti Scout ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Slylandro Probe ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spathi Eluder ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Supox Blade ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Syreen Penetrator ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Thraddash Torch ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Umgah Drone ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ur-Quan Kohr-Ah Marauder ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ur-Quan Kzer-Za Dreadnought ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Utwig Jugger ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VUX Intruder ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Yehat Terminator ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Zoq-Fot-Pik Stinger ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Precursor Flagship ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sa-Matra battle platform ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=File:Model-ship-earthling_cruiser-ptx-1.0.png&amp;diff=20532</id>
		<title>File:Model-ship-earthling cruiser-ptx-1.0.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=File:Model-ship-earthling_cruiser-ptx-1.0.png&amp;diff=20532"/>
		<updated>2007-12-12T01:56:01Z</updated>

		<summary type="html">&lt;p&gt;Ptx: Earthling Cruiser ship model image.

{{cc-by-sa-nc-2.5}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Earthling Cruiser ship model image.&lt;br /&gt;
&lt;br /&gt;
{{cc-by-sa-nc-2.5}}&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=File:Model-ship-earthling_cruiser-ptx-1.0.zip&amp;diff=20531</id>
		<title>File:Model-ship-earthling cruiser-ptx-1.0.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=File:Model-ship-earthling_cruiser-ptx-1.0.zip&amp;diff=20531"/>
		<updated>2007-12-12T01:55:31Z</updated>

		<summary type="html">&lt;p&gt;Ptx: Earthling Cruiser Ship model

{{cc-by-sa-nc-2.5}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Earthling Cruiser Ship model&lt;br /&gt;
&lt;br /&gt;
{{cc-by-sa-nc-2.5}}&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Contests/July_SuperMelee_Tournament&amp;diff=20527</id>
		<title>Contests/July SuperMelee Tournament</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Contests/July_SuperMelee_Tournament&amp;diff=20527"/>
		<updated>2007-12-11T15:19:50Z</updated>

		<summary type="html">&lt;p&gt;Ptx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a test page for how #uqm-arena tournament results might look if they were put up here.&lt;br /&gt;
&lt;br /&gt;
== Rules ==&lt;br /&gt;
&lt;br /&gt;
blah blah blah authority complex blah blah&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
EST&lt;br /&gt;
PTC&lt;br /&gt;
NZT&lt;br /&gt;
QST (QuasiSpace Standard Time)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Results ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ Tournament Results&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Round 1 || Cedric6014 vs. Valaggar || Cedric6014 || 42 pts&lt;br /&gt;
|-&lt;br /&gt;
|                          Elerium vs. meep-eep    || Elerium    || 7 pts&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Round 2 ||                         ||            || &lt;br /&gt;
|-&lt;br /&gt;
|                                                  ||            ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[3D Models|Test]]&lt;br /&gt;
{{cc-by-sa-2.5}}&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=Talk:3D_Models&amp;diff=20526</id>
		<title>Talk:3D Models</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=Talk:3D_Models&amp;diff=20526"/>
		<updated>2007-12-11T14:44:31Z</updated>

		<summary type="html">&lt;p&gt;Ptx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ptx: In response to your request for comments on your layout.&lt;br /&gt;
&lt;br /&gt;
It&#039;s a good start, but I do have some comments. Also note that in wiki style, these things tend to evolve. It doesn&#039;t have to be perfect from the start.&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure whether it is necessary to include the license on this page, as it should be visible when they click on link to the media file itself anyhow. Also, with &amp;quot;BY-NC-SA 2.5&amp;quot; &amp;quot;Creative Commons&amp;quot; should be mentioned.&lt;br /&gt;
Wikipedia has a whole list of [http://commons.wikimedia.org/wiki/Commons:Copyright_tags copyright templates] for marking media. We could really use a few of those ourselves here.&lt;br /&gt;
&lt;br /&gt;
Also, for an overview page like this, including the exact time for the media is not very useful. We really need the space too, if we want to include a decent-sized picture and a description of more than a few words.&lt;br /&gt;
&lt;br /&gt;
You added requirements for the filenames to the top of the article. I can imagine that these would be useful, but I&#039;m wondering whether we should really try to regulate this this much. As long as it is a descriptive and identifying name, I would be happy. If the filename is &amp;quot;Broodhome-1.0-Ptx.zip&amp;quot;, that&#039;s all we need to know, really. The time of upload is irrelevant, and whether it&#039;s a ship, actor, space debris, limpet, bullet, marine, planet, or whatever, should be pretty clear from the description anyhow. We can group them by kind on the page.&lt;br /&gt;
&lt;br /&gt;
And we may want to link to external sources as well, for instance when we don&#039;t have the rights to redistribute the files here. You can&#039;t control the filename or the way it is packaged at all in that case.&lt;br /&gt;
&lt;br /&gt;
And FYI, *nix has always handled spaces in filenames just fine (unlike Windows).&lt;br /&gt;
&lt;br /&gt;
You are refering to &amp;quot;templates&amp;quot; in your descriptions; it would make sense to use actual [http://www.mediawiki.org/wiki/Help:Templates MediaWiki Templates] for this.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;mdash; [[User:Svdb|SvdB]] 01:59, 8 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
SvdB:&lt;br /&gt;
&lt;br /&gt;
* Totally agree regarding the license - no need to show the type in the table&lt;br /&gt;
&lt;br /&gt;
* Including timestamp in the table - yeah i see your point, a unique identifier of the model (like a version number or timestamp) is available from the archive name.&lt;br /&gt;
&lt;br /&gt;
* Regarding the file names: I&#039;m not so sure about that. Mediawiki is not really designed for this kind of task, and organizing files would be messy w/o clear identification of the contents. In model-ship-pkunk_fury-dookie-20071207_0945.zip, we clearly state that it&#039;s a &#039;&#039;&#039;model&#039;&#039;&#039; of a &#039;&#039;&#039;pkunk fury&#039;&#039;&#039; &#039;&#039;&#039;ship&#039;&#039;&#039; that was created by &#039;&#039;&#039;dookie&#039;&#039;&#039;. The reason for the timestamp is to allow for multiple versions as well as multiple models (i.e. what if dookie creates 2 different earthling ship models?) .. Although it could be replaced by vN.N.&lt;br /&gt;
&lt;br /&gt;
* Regarding &amp;quot;when we don&#039;t have the rights to redistribute the files here&amp;quot; - can you please elaborate? I&#039;m not all that much familiar with licensing. In what cases wouldn&#039;t a model under UQM-content-similar license be prevented from being redistributed? I.e. what kind of license are we talking about?&lt;br /&gt;
&lt;br /&gt;
* I know all too well about *nix and spaces in filenames =) But, having spaces in filenames can be an inconvenience.&lt;br /&gt;
&lt;br /&gt;
* Also thanks for the pointer to the wiki templates!&lt;br /&gt;
&lt;br /&gt;
&amp;amp;mdash; [[User:ptx|ptx]] 21:35, 7 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*(re file names) All that is required is that the file names are unique and descriptive. Time stamps, version numbers, &amp;quot;-new&amp;quot;, would all work. There really is no &amp;quot;organising&amp;quot; of files based on filenames in Mediawiki. Media get organised just like any page: by using categories. The [[Special:Imagelist|master list]] is untransparant, whatever file name format you use. Less requirements means a lower threshold for people to contribute.&lt;br /&gt;
*As for rights, you must have permission from the right holders to distribute a file. If someone makes a model based on the SC2 images, both TFB and the creator of that model hold rights there. The model creator will need to have permission from TFB to distribute the files, but that does not have to come from the CC license that the UQM content is licensed is under. And a lot of old models predate UQM and its current content license. And even if someone violates a CC share-alike license by not distributing his/her files under the same CC license, that does not give us the right to pretend like it &#039;&#039;is&#039;&#039; licensed that way. And afaik, the copyright holder is the only one who can make a case against the violator. But ofcourse, IANAL.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;mdash; [[User:Svdb|SvdB]] 18:05, 9 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
SvdB: Can you please elaborate on &amp;quot;The model creator will need to have permission from TFB to distribute the files, but that does not have to come from the CC license that the UQM content is licensed is under.&amp;quot;&lt;br /&gt;
I.e. if I make a model of a ship based on the SC2 images, what are the next steps? From what you are saying, it seems that I would have to contact TFB asking for permission to distribute the model files? I was under impression that anything goes as long as you don&#039;t attempt to make money from the SC2 content or derivative of it?&lt;br /&gt;
&lt;br /&gt;
[[User:Ptx|Ptx]] 16:56, 10 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
I was talking in general. To distribute something, you need permission from the copyright holders. If TFB have licensed some file under a Creative Commons license, that CC license is your permission, and you do not need to ask them specifically anymore. But there are fan-made 3D models out there which existed before the UQM project started, or before the content came under that CC license. If they had permission from TFB, that doesn&#039;t automatically mean that &#039;&#039;&#039;we&#039;&#039;&#039; have permission to use their derivative work. &amp;amp;mdash; [[User:Svdb|SvdB]] 08:21, 11 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
Thanks for the info. What template should I use? I don&#039;t see CC-BY-NC-SA-2.5, only CC-BY-SA-2.5. [[User:Ptx|Ptx]] 15:44, 11 December 2007 (CET)&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=3D_Models&amp;diff=20524</id>
		<title>3D Models</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=3D_Models&amp;diff=20524"/>
		<updated>2007-12-11T03:43:46Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Pkunk Fury */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Model archive contents ==&lt;br /&gt;
Model archive should contain the following items:&lt;br /&gt;
* Model geometry file&lt;br /&gt;
* Model material(s)&lt;br /&gt;
* COPYING (or COPYING.txt) file containing the license&lt;br /&gt;
* (optional) README file containing any additional model information&lt;br /&gt;
&lt;br /&gt;
== Ship Models ==&lt;br /&gt;
&lt;br /&gt;
=== Androsynth Guardian ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arilou Lalee&#039;lay Skiff ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chenjesu Broodhome ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chmmr Avatar ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Druuge Mauler ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Earthling Cruiser ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ilwrath Avenger ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Melnorme Trader ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mmrnmhrm X-Form ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mycon Podship ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Orz Nemesis ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pkunk Fury ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || 1278 || ptx || 1.0&lt;br /&gt;
    | [[Media:model-ship-pkunk_fury-ptx-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-ship-pkunk_fury-ptx-1.0.png|50px]]&lt;br /&gt;
    | First attempt at Pkunk Fury&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shofixti Scout ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Slylandro Probe ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spathi Eluder ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Supox Blade ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Syreen Penetrator ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Thraddash Torch ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Umgah Drone ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ur-Quan Kohr-Ah Marauder ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ur-Quan Kzer-Za Dreadnought ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Utwig Jugger ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VUX Intruder ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Yehat Terminator ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Zoq-Fot-Pik Stinger ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Precursor Flagship ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sa-Matra battle platform ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=File:Model-ship-pkunk_fury-ptx-1.0.zip&amp;diff=20523</id>
		<title>File:Model-ship-pkunk fury-ptx-1.0.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=File:Model-ship-pkunk_fury-ptx-1.0.zip&amp;diff=20523"/>
		<updated>2007-12-11T03:35:42Z</updated>

		<summary type="html">&lt;p&gt;Ptx: Pkunk Fury ship model.

{{cc-by-sa-nc-2.5}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pkunk Fury ship model.&lt;br /&gt;
&lt;br /&gt;
{{cc-by-sa-nc-2.5}}&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=File:Model-ship-pkunk_fury-ptx-1.0.png&amp;diff=20522</id>
		<title>File:Model-ship-pkunk fury-ptx-1.0.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=File:Model-ship-pkunk_fury-ptx-1.0.png&amp;diff=20522"/>
		<updated>2007-12-11T03:34:38Z</updated>

		<summary type="html">&lt;p&gt;Ptx: Image of Pkunk Fury ship model.

{{cc-by-sa-nc-2.5}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Image of Pkunk Fury ship model.&lt;br /&gt;
&lt;br /&gt;
{{cc-by-sa-nc-2.5}}&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=3D_Models&amp;diff=20521</id>
		<title>3D Models</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=3D_Models&amp;diff=20521"/>
		<updated>2007-12-11T03:13:03Z</updated>

		<summary type="html">&lt;p&gt;Ptx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Model archive contents ==&lt;br /&gt;
Model archive should contain the following items:&lt;br /&gt;
* Model geometry file&lt;br /&gt;
* Model material(s)&lt;br /&gt;
* COPYING (or COPYING.txt) file containing the license&lt;br /&gt;
* (optional) README file containing any additional model information&lt;br /&gt;
&lt;br /&gt;
== Ship Models ==&lt;br /&gt;
&lt;br /&gt;
=== Androsynth Guardian ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arilou Lalee&#039;lay Skiff ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chenjesu Broodhome ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chmmr Avatar ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Druuge Mauler ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Earthling Cruiser ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ilwrath Avenger ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Melnorme Trader ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mmrnmhrm X-Form ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mycon Podship ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Orz Nemesis ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pkunk Fury ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shofixti Scout ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Slylandro Probe ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spathi Eluder ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Supox Blade ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Syreen Penetrator ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Thraddash Torch ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Umgah Drone ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ur-Quan Kohr-Ah Marauder ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ur-Quan Kzer-Za Dreadnought ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Utwig Jugger ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VUX Intruder ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Yehat Terminator ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Zoq-Fot-Pik Stinger ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Precursor Flagship ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sa-Matra battle platform ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
	<entry>
		<id>https://wiki.uqm.stack.nl/index.php?title=3D_Models&amp;diff=20520</id>
		<title>3D Models</title>
		<link rel="alternate" type="text/html" href="https://wiki.uqm.stack.nl/index.php?title=3D_Models&amp;diff=20520"/>
		<updated>2007-12-11T03:12:07Z</updated>

		<summary type="html">&lt;p&gt;Ptx: /* Model archive contents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Model file name format ==&lt;br /&gt;
 model-$Type-$Descr-$Author-$Ver.zip&lt;br /&gt;
 model-$Type-$Descr-$Author-$Ver.png&lt;br /&gt;
* Type is either &amp;quot;ship&amp;quot; or &amp;quot;actor&amp;quot; for now&lt;br /&gt;
* Descr is model description consisting of [A-Za-z0-9_]. For example &amp;quot;pkunk_fury&amp;quot; for a ship, or &amp;quot;pkunk&amp;quot; for an actor.&lt;br /&gt;
* Author is model authors name/id consisting of [A-Za-z0-9_].&lt;br /&gt;
* Ver is the model version number (N.N format)&lt;br /&gt;
* No spaces anywhere in the file name&lt;br /&gt;
* Words within $Descr and $Author are underscore-separated&lt;br /&gt;
* Name items ($Type, $Descr, $Author, $ver) are dash-separated&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* Pkunk Fury ship model by unknown, version 1.0:&lt;br /&gt;
 model-ship-pkunk_fury-unknown-1.0&lt;br /&gt;
* Pkunk captain model by unknown, version 1.3:&lt;br /&gt;
 model-actor-pkunk-unknown-1.3.zip&lt;br /&gt;
&lt;br /&gt;
== Model archive contents ==&lt;br /&gt;
Model archive should contain the following items:&lt;br /&gt;
* Model geometry file&lt;br /&gt;
* Model material(s)&lt;br /&gt;
* COPYING (or COPYING.txt) file containing the license&lt;br /&gt;
* (optional) README file containing any additional model information&lt;br /&gt;
&lt;br /&gt;
== Ship Models ==&lt;br /&gt;
&lt;br /&gt;
=== Androsynth Guardian ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arilou Lalee&#039;lay Skiff ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chenjesu Broodhome ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chmmr Avatar ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Druuge Mauler ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Earthling Cruiser ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ilwrath Avenger ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Melnorme Trader ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mmrnmhrm X-Form ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mycon Podship ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Orz Nemesis ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pkunk Fury ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shofixti Scout ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Slylandro Probe ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spathi Eluder ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Supox Blade ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Syreen Penetrator ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Thraddash Torch ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Umgah Drone ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ur-Quan Kohr-Ah Marauder ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ur-Quan Kzer-Za Dreadnought ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Utwig Jugger ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VUX Intruder ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Yehat Terminator ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Zoq-Fot-Pik Stinger ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Precursor Flagship ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sa-Matra battle platform ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Polygon Count !! Author !! Ver !! Download !! Image !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 3ds || unknown || unknown || 1.0&lt;br /&gt;
    | [[Media:model-unknown-unknown-unknown-1.0.zip|Link]]&lt;br /&gt;
    | [[Image:model-unknown-unknown-unknown-20250101_0000.png|50px]]&lt;br /&gt;
    | Use this template to add new models&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ptx</name></author>
	</entry>
</feed>