Crimson field port to Sharp Zaurus V0.481 (GPL) 23/06/05 =========================================================== (For general README, playing instructions see separate file in the source package and the doc directory.) This is free software according to the GPL. See separate file for details. This port is written by Uwe Koch . Updates can be found at: www.linuxvision.de/zaurus.html The original source tree can be found at: crimson.seul.org Changelog: ========== 23/06/05: V0.481: port of V0.48 - after a 1.5 year break because of the new dependencies (SDL_ttf ! and freetype) now finally finished the port - it was worth! so many new levels ! - bad news: the campaigns don't survive one level - so they aren't yet playable. As in the versions before there are still problems with the memory management. I have to comment out some delete statements because they crash the game :-( But this is not proper. Hope to cope this with a remote gdb session sometimes. - According to the multi-language support the keys'meaning change from language to language. So I removed the Zaurus key support. You have to press the keys on the keyboard for some actions. Look in the tmpl files in the locale directory to see which key to press in your language (german, english, french, polish and slovak are supported). Here are the keys for the german version during play which aren't mapped to the stylus: - ESC Show menu - i info about underlying unit - n look inside a transport unit - Since there were so many versions since last year look for all the improvements in crimson fields on crimson.seul.org. - 5000/5500/5600: hope it works on these models - couldn't test it! 10/01/04: V0.381: port of V0.38 incl. new level Anthill - 1st version for both SL-5x00 series and the new SL-C700/C750/760/860 - with full support for 640x480 on SL-Cxx0 series 26/10/03: V0.371: Actual port of V0.37 including new levels and bug fixes from original version 11/05/03: V0.321: Port of comet, the editor. Separate scripts and packages. comet controls: - Calendar: show menu - Home: show context menu 08/05/03: V0.321: Port of new CF version V0.3.2 (which brings damage indicator, new level) New function key layout vailable. Now use: - Mail = end turn - Home = show contents of units - Addressbook = cycle through units - Calendar = display unit info 23/03/03: V0.303: included some key mappings (no public release) 08/03/03: V0.302: fixed problem with start resolution 24/02/03: V0.301: port of 0.30 - includes the new features: - battle isle / history map compiler - play your bi / hl maps with crimson fields ! - new map editor comet - not yet ported to Zaurus - coming soon. - new maps BeachRaid / LostFactories - now requires libz - ReAdded campaign facility - get the passwords for the next level by solving "Uprising" - 320x240 now supported by default crimson fields maintainer - progress window when calculating moves - removed start bitmap to reduce size of package - currently deactivated sound support (can be activated by commandline option) 21/12/02: V0.28beta: port of 0.28 - initial port to the Zaurus Requirements : ============= - A Zaurus ;-) - this version is only tested on a C760 - but should work on the 5x00 series, too (mail me if not !). - Sharp ROM or derivate should work - tested on Cacko 1.22. Runtime : - libSDL_1.2.6cvs-1_arm.ipk (with support of function/PDA keys) for Zaurus SL-5x00 - libSDL_1.2.6-zports_c7x0-1.ipk ( no support of function/PDA keys) for Zaurus SL-Cxx0 - optional: libSDL-mixer_1.2.6cvs-1_arm.ipk for sound support: all Zaurus models - libSDL-ttf_2.0.7-0.ipk - libfreetype_6.3.4-1.ipk - libz: all Zaurus models - for comet package: crimson fields package must be installed Development: Compile/Link: - libSDL_devel for Zaurus and Intel machines - libSDL_mixer for Zaurus and Intel machines - libz for Intel and Zaurus (headers can be used from Intel) + headers - libSDL_ttf for Zaurus and Intel machines + headers - libfreetype for Zaurus and Intel machines + headers Features: ========= All the funcionality of the original (only right mouse click missing) The highlights are: - WAV Support - Email Support - send the file in /root/.crimson/games/ to your human opponent - AI - play against a computer player - converter available from battle isle (I + data disks) and history line maps - comet - create your own levels on the Z. Controls: ========= Control the game with your stylus. Most of the other (original) controls are mapped identically to the keyboard. SL-5x00 series: You can play most time with closed keyboard and the pen - press ESC for game menu. HowToCompile on Intel based machines: ===================================== 1. ./configure 2. make HowToCrossCompile on Intel based machines for StrongARM: ======================================================== This is a bad procedure. The problem is that during the original make procedure of cf some tools are built which are called later in the build run (editor, mkdatafile,...). The problem is, that when crosscompiling/crosslinking for StrongARM you build these tools (intermediate targets) for StrongARM, too. But the following make steps fail because they call a StrongARM binary on an Intel machine. So actually there's no way (for me) to have a build run, which switches to different compile environments what means: - Build in the first step the tools for the Intel machine. - Call them to make use of them and get their output files. - Switch to StrongARM environment and build the crimson main program and comet for the Zaurus platform. So the work around is to first compile/link everything for Intel. Switch to crosscompiling environment, recreate the makefiles, delete the crimson / comet main program and recompile these binaries again for StrongARM. From V0.30 on there exists another problem - the zlib support. For compiling / linking of the main progs for StrongARM you need zlib headers and the StrongARM zlib version. So you have to install both zlib lib and headers for Intel and StrongARM. Generally you can use the (hopefully installed) zlib headers on your Intel system. On my SuSE system they are in /usr/include : zlib.h zconf.h zutil.h I made similar symlinks from /opt/Qtopia/sharp/lib to them. But the zlib lib is still remaining. When linking the crimson main program you need to link to the StrongARM zlib version. I renamed libz.ipkg (www.killefiz.de/zaurus) to libz.tgz and unpacked the contents of the included data.tar.gz (the libz and 2 links to the lib) to /opt/Qtopia/sharp/lib (that's the directory where all StrongARM libs are placed and when you place the zlib here, the build process for StrongARM will find them easily.) Now the main binary - the crimson field program - compiles and links for the correct target platform - yeah ! ;-) From V0.481 on this has to be done in a similar way for libSDL_ttf and libfreetype. Compile/link instructions for Zaurus: ================================ 0. Preparations: get zlib.ipk (e.g. zlib_1.1.2_arm.ipk) for Zaurus and unpack it in the way, that libz.so and the links are in the LD_LIBRARY_PATH of your Qtopia SDK environment (before the PATH to the Intel/zlib !) - on my machine: /opt/Qtopia/sharp/lib/libz.so (symlink to ...so.1.1.2) /opt/Qtopia/sharp/lib/libz.so.1 (symlink to ...so.1.1.2) /opt/Qtopia/sharp/lib/libz.so.1.1.2 The according zlib headers can be used from your Intel zlib version - which must be installed, too. Though the versions of zlib on Intel and ARM may differ it should cause no problems. To make sure try to use equal versions of zlib on both Intel machine and Zaurus. So make symlinks from the Qtopia/include dir to the headers. On my machine: - cd /opt/Qtopia/sharp/include - ln -s /usr/include/zconf.h - ln -s /usr/include/zlib.h - ln -s /usr/include/zutil.h Do this in the same wy with libSDL-ttf and libfreetype. 1. compile for Intel (to get additional comet and cfed level editors and the BattleIsle/HistoryLine level converter for Intel) ./configure --enable-comet --enable-cfed --enable-bi2cf make 2. remove crimson + comet Intel binaries and object files cd src && make clean && cd .. 3. set your ARM-development environment - use your own setenv if you have non-standard development environment . ./setenv 5. configure the crosscompiler environment - and detect zlib and libSDL ./configure --host=arm-linux --prefix=/opt/QtPalmtop --enable-comet 6. build the missing binaries for StrongARM / Zaurus make HowToBuild crimson/comet ipkg: ============================== 1. Compile for Zaurus (see above) 2. ./makepkg.sh (comet: ./makecometpkg.sh) 3. install crimson_xxx.ipk (comet_xxx.ipk) on Zaurus and have fun Known bugs/differences to the main version: =========================================== - I found several problems when deleting objects during porting. So sometimes the game crashes due to this bad memory management. If I have time I'll debug it (the SDL - urg !). In the meantime: It seems to cause problems only when playing campaigns - so better do not ! - There's a campaign that wants to to move your tank on a bridge. If you do so - crimson fields crashes. - Sometimes leaving the game results in a white screen. I don't now what's the reason. Press Menu to get the Qtopia desktop back. You should kill then all crimson processes with 'kill' or via Systeminfo GUI in Cacko ROM. - Take back a draw isn't yet supported - that depends on the missing right mouse click - will look for a solution in the next version.