Open main menu

Difference between revisions of "Compiling ScummVM/Symbian"

(Filled in SymbianOS Build Instructions from README)
Tags: Mobile edit Mobile web edit
 
(12 intermediate revisions by 2 users not shown)
Line 5: Line 5:
 
to get used to. If you choose to continue you will need the following items:
 
to get used to. If you choose to continue you will need the following items:
  
* UIQ 3.x SDK (To build for UIQ3 devices)(Build scripts in SDK need tweaking in order to build scummvm since Symbian OS GCCE never builds as large projects as ScummVM before)
+
* UIQ 3.x SDK (To build for UIQ3 devices)(Build scripts in SDK need tweaking in order to build scummvm since Symbian OS GCCE never builds as large projects as ScummVM before).
* UIQ 2.1 SDK (To build for UIQ2 devices);
+
* [http://www.symbian.com/developer/sdks_uiq.asp UIQ 2.1 SDK] (To build for UIQ2 devices).
http://www.symbian.com/developer/sdks_uiq.asp
+
** [http://www.yipton.net/content/ecompxl/ ECompXL], an EPOC application compression library(To build for UIQ devices).
* Nokia S60 1st, 2nd edition,3rd edition SDK (To build for S60 devices)
+
* Nokia S60 1st, 2nd edition,3rd edition SDK (To build for S60 devices).
* Nokia S80 SDK (To build for S80 devices)
+
* Nokia S80 SDK (To build for S80 devices).
* Nokia 7710 SDK (To build for the 7710/S90 device)
+
* Nokia 7710 SDK (To build for the 7710/S90 device).
* ECompXL, an EPOC application compression library
+
* [https://www.python.org/ Python] 2.5+.
http://www.yipton.demon.co.uk/ecompxl/latest/readme.html (To build for UIQ devices)
+
To download next prerequsities Symbian-ready follow the [https://sourceforge.net/projects/scummvms60git/files/libs/ link](newer the best).
* libsdl, Simple Directmedia Layer, a cross-platform multimedia library
+
* [http://www.libsdl.org SDL 1.2].
http://www.libsdl.org/ (see note about ESDL below)
+
* [http://www.underbit.com/products/mad/ libmad], a high-quality MPEG audio decoder.
* libmad, a high-quality MPEG audio decoder
+
* [http://www.zlib.net/ zlib], a massively spiffy yet delicately unobtrusive compression library.
http://www.underbit.com/products/mad/
+
* [https://wiki.xiph.org/Tremor libtremor], the free audio decoder for OGG support.
* zlib, a massively spiffy yet delicately unobtrusive compression library
+
* [http://download.savannah.gnu.org/releases/freetype/ freetype], for TTF font support.
http://www.zlib.net/
+
* [http://www.libpng.org/pub/png/libpng.html libpng], for PNG support.
* latest version of active perl (included with Symbian SDK does not work with the build scripts)
+
* [http://libjpeg.sourceforge.net/ libjpeg], for JPEG support.
* libogg, the free media file container format
 
http://www.xiph.org/ogg/
 
* libvorbis, the free audio codec
 
http://www.vorbis.com/
 
  
 
These are probably too heavy-duty for your phone:
 
These are probably too heavy-duty for your phone:
* flac, the Free Lossless Audio Codec
+
* [https://github.com/knik0/faad2 libfaad2]. Free audio decoder for AAC support.
http://flac.sourceforge.net/
+
* [https://xiph.org/flac/ flac], the Free Lossless Audio Codec.
* libmpeg2, a free MPEG-2 video stream decoder
+
* [http://libmpeg2.sourceforge.net libmpeg2], a free MPEG-2 video stream decoder.
http://libmpeg2.sourceforge.net
+
* [https://www.theora.org/ libtheora], the free THEORA video decoder.
 +
* [http://liba52.sourceforge.net/ liba52], the free audio decoder for AC-3 support.
  
 
== Compiling ScummVM ==
 
== Compiling ScummVM ==
Line 44: Line 41:
  
 
SDL:<br>
 
SDL:<br>
The latest version of SDL at this point in time is 1.2.13. This version<br>
+
The latest version of SDL at this point in time is 1.2.15. This version<br>
 
works great for compiling on other platforms.
 
works great for compiling on other platforms.
  
zlib:<br>
+
ScummVM(new, WIP):<br>
The zlib-x.x.x.tar.gz does not come with UIQ .mpp build files, that's why<br>
+
By default build for S60v3<br>
I added them for you in epoc-zlib.zip. Extract in <DevRoot>/zlib/ which will<br>
+
a) run build_me.py to build all the targets/variants that you have configured.
create the epoc dir. In <DevRoot>/zlib/epoc/ go:<br>
+
A detailed log will be placed in the symbian folder with Build.err.log and Build.out.log.
> bldmake bldfiles<br>
 
> abld build<br>
 
  
libmad:<br>
 
The libmad-x.x.x.tar.gz does not come with UIQ .mpp build files, that's<br>
 
why I added them for you in epoc-libmad.zip. Extract in <DevRoot>/libmad/ which<br>
 
will create the epoc dir. In <DevRoot>/libmad/epoc/ go:<br>
 
> bldmake bldfiles<br>
 
> abld build<br>
 
  
ScummVM:<br>
+
ScummVM(old):<br>
In <DevRoot>\scummvm\backends\platform\symbian\ go:
+
In <DevRoot>\scummvm\backends\platform\symbian\ go:<br>
 
a) Edit and update the BuildPackageUpload_LocalSettings.pl for the kind of build (SDK installed etc) and variants
 
a) Edit and update the BuildPackageUpload_LocalSettings.pl for the kind of build (SDK installed etc) and variants
you want to build.
+
you want to build.<br>
b) Run BuildPackageUpload_AllVersions.pl to build all the targets/variants that you have configured.
+
b) Run BuildPackageUpload_AllVersions.pl to build all the targets/variants that you have configured.<br>
 
A detailed log will be placed in the symbian folder with Build.err.log and Build.out.log but it also depends on
 
A detailed log will be placed in the symbian folder with Build.err.log and Build.out.log but it also depends on
the configuration you select.
+
the configuration you select.<br>
  
Now you should have yourself a nice ScummVM_xxx.sis installer package in the packages folder for use
+
Now you should have yourself a nice ScummVM_xxx.sis installer package in the packages folder for use<br>
on your phone. Please note that for development it will be a lot faster if you
+
on your phone. Please note that for development it will be a lot faster if you<br>
transfer the SCUMMVM.APP/Scummvm.EXE file directly to your !:\system\apps\ScummVM\ dir!
+
transfer the SCUMMVM.APP/Scummvm.EXE file directly to your !:\system\apps\ScummVM\ dir!<br>
  
Platforms can be one of: ARMi, ARM4, THUMB, WINS, WINSCW, GCCE. The SE P900 uses the ARMi platform,
+
Platforms can be one of: ARMi, ARM4, THUMB, WINS, WINSCW, GCCE. The SE P900 uses the ARMi platform,<br>
which is a combined ARM4/THUMB programming mode. Configurations can be one of:
+
which is a combined ARM4/THUMB programming mode. Configurations can be one of:<br>
 
UREL or UDEB.
 
UREL or UDEB.

Latest revision as of 21:28, 16 January 2021

Requirements

Building ScummVM yourself using the UIQ 2.1/Nokia S60 SDK/Nokia S80 SDK/Nokia S90 SDK framework is not an easy task! Lets just say the framework needs quite some time to set up and takes a while to get used to. If you choose to continue you will need the following items:

  • UIQ 3.x SDK (To build for UIQ3 devices)(Build scripts in SDK need tweaking in order to build scummvm since Symbian OS GCCE never builds as large projects as ScummVM before).
  • UIQ 2.1 SDK (To build for UIQ2 devices).
    • ECompXL, an EPOC application compression library(To build for UIQ devices).
  • Nokia S60 1st, 2nd edition,3rd edition SDK (To build for S60 devices).
  • Nokia S80 SDK (To build for S80 devices).
  • Nokia 7710 SDK (To build for the 7710/S90 device).
  • Python 2.5+.

To download next prerequsities Symbian-ready follow the link(newer the best).

  • SDL 1.2.
  • libmad, a high-quality MPEG audio decoder.
  • zlib, a massively spiffy yet delicately unobtrusive compression library.
  • libtremor, the free audio decoder for OGG support.
  • freetype, for TTF font support.
  • libpng, for PNG support.
  • libjpeg, for JPEG support.

These are probably too heavy-duty for your phone:

  • libfaad2. Free audio decoder for AAC support.
  • flac, the Free Lossless Audio Codec.
  • libmpeg2, a free MPEG-2 video stream decoder.
  • libtheora, the free THEORA video decoder.
  • liba52, the free audio decoder for AC-3 support.

Compiling ScummVM

ECompXL (Only needed for UIQ2):
This is a tool that will compress your executable with GZIP and glue
it to a predefined loader app. The app will uncompress your application at
runtime and run it without you even knowing it. A really interesting byproduct
of this method is that the general restriction of not having any writeable
static data (WSD) for Symbian APP executables no longer applies. This makes
the life of an EPOC porter a lot easier! To install this tool you need to add
its \bin path to your PATH above the sybmian epocs32\tools path, so that ECompXL's
PETRAN.EXE will be the executable that is started.

SDL:
The latest version of SDL at this point in time is 1.2.15. This version
works great for compiling on other platforms.

ScummVM(new, WIP):
By default build for S60v3
a) run build_me.py to build all the targets/variants that you have configured. A detailed log will be placed in the symbian folder with Build.err.log and Build.out.log.


ScummVM(old):
In <DevRoot>\scummvm\backends\platform\symbian\ go:
a) Edit and update the BuildPackageUpload_LocalSettings.pl for the kind of build (SDK installed etc) and variants you want to build.
b) Run BuildPackageUpload_AllVersions.pl to build all the targets/variants that you have configured.
A detailed log will be placed in the symbian folder with Build.err.log and Build.out.log but it also depends on the configuration you select.

Now you should have yourself a nice ScummVM_xxx.sis installer package in the packages folder for use
on your phone. Please note that for development it will be a lot faster if you
transfer the SCUMMVM.APP/Scummvm.EXE file directly to your !:\system\apps\ScummVM\ dir!

Platforms can be one of: ARMi, ARM4, THUMB, WINS, WINSCW, GCCE. The SE P900 uses the ARMi platform,
which is a combined ARM4/THUMB programming mode. Configurations can be one of:
UREL or UDEB.