This is the submission of the Epoc/Symbian build files for

UIQ 2.1 UI
Series 60
Series 80
Series 90/Nokia 7710

There is a dependency on ESdl for these devices.

svn-id: r18427
This commit is contained in:
Lars Persson 2005-06-21 20:19:39 +00:00
parent fd8c94a2f3
commit 7bded41f19
50 changed files with 3193 additions and 0 deletions

124
backends/epoc/README Normal file
View File

@ -0,0 +1,124 @@
EScummVM - ScummVM ported to EPOC/SymbianOS
Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson
Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson
Copyright (C) 2005 Jurgen 'SumthinWicked' Braam
Copyright (C) 2005 ScummVM Team
$Id$
About EScummVM
--------------
The original ports (uptil 0.7.1) were made by Andreas Karlsson and Lars Persson.
The main transition to 0.8.0CVS and all relevant changes were done by Jurgen Braam.
Jurgen and Lars are currently working together to finalize the transfer to CVS.
Nescessary components
---------------------
Building EScummVM yourself using the UIQ 2.1 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:
- Symbian UIQ 2.1 Framework
http://www.symbian.com/developer/sdks_uiq.asp
- ECompXL, an EPOC application compression library
http://www.yipton.demon.co.uk/ecompxl/latest/readme.html
- libsdl, Simple Directmedia Layer, a cross-platform multimedia library
http://www.libsdl.org/ (see note about ESDL below)
- libmad, a high-quality MPEG audio decoder
http://www.underbit.com/products/mad/
- zlib, a massively spiffy yet delicately unobtrusive compression library
http://www.zlib.net/
These are probably too heavy-duty for your phone:
- libogg, the free media file container format
http://www.xiph.org/ogg/
- libvorbis, the free audio codec
http://www.vorbis.com/
- flac, the Free Lossless Audio Codec
http://flac.sourceforge.net/
- libmpeg2, a free MPEG-2 video stream decoder
http://libmpeg2.sourceforge.net/
Building EScummVM
-----------------
ECompXL: 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 varsion of SDL at this point in time is 1.2.8. This version
works great for compiling on other platforms, but for EPOC it lacks some
features. There are two distributions that have the nescessary goods: The one
made for SuperWaba (http://www.newlc.com/article.php3?id_article=574 and
http://www.superwaba.com/) and ESDL, the one that Sprawl made for the P800/P900. I've
used Sprawl's version uptil now. If Sprawl feels ESDL is in such a state that
it can be released, he will post a source download on his site and I will
make it know through the scummvm.org site. In <DevRoot>/sdl/epoc/ go:
> bldmake bldfiles
> abld build
zlib: the zlib-x.x.x.tar.gz does not come with UIQ .mpp build files, that's why
I added them for you in epoc-zlib.zip. Extract in <DevRoot>/zlib/ which will
create the epoc dir. In <DevRoot>/zlib/epoc/ go:
> bldmake bldfiles
> abld build
libmad: the libmad-x.x.x.tar.gz does not come with UIQ .mpp build files, that's
why I added them for you in epoc-libmad.zip. Extract in <DevRoot>/libmad/ which
will create the epoc dir. In <DevRoot>/libmad/epoc/ go:
> bldmake bldfiles
> abld build
EScummVM: make sure the SYSTEMINCLUDE dirs in EScumVM.mmp are correct. For the
'wins' platform also check the LIBRARY entries for the correct path to your MSVC
installation. Please note that you can only specify relative paths here, so every-
thing needs to be on the same physical drive! Another weird demand of the UIQ
platform... In <DevRoot>/scummvm/backends/epoc/build/ go:
> bldmake bldfiles
> abld build
> makesis EScummVM_xxx.pkg
Now you should have yourself a nice EScummVM_xxx.sis installer package for use
on your phone. Please note that for development it will be a lot faster if you
transfer the ESCUMMVM.APP file directly to your !:\system\apps\EScummVM\ dir!
Platforms can be one of: ARMi, ARM4, THUMB, WINS. The SE P900 uses the ARMi platform,
which is a combined ARM4/THUMB programming mode. Configurations can be one of:
UREL or UDEB.
Greetz & such
-------------
Kudos fly out to:
- Sprawl for having the nerve to start & carry this puppy for so long
- AnotherGuest for having the nerve to start & carry this puppy for so long
- Fingolfin for taking the time to go through 1000 patch versions with me
- Myself (SumthinWicked), for writing this entire README :)
- the entire ScummVM Dev team for making a kicka$$ program
- the folks in #scummvm @ irc.freenode.net for their help, confort and support
- everybody else who wants to give me 'the look' for not including them here :P
it's been swell,
gotta go now,
greetz,
SumthinWicked & Anotherguest

View File

@ -0,0 +1,60 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header$
*/
#include "ScummApp.h"
#include "ScummVM.hrh"
#ifdef __WINS__
extern "C" int _chkstk(int /*a*/) {
return 1;
}
#endif
#if !defined (__AVKON_ELAF__) && !defined (S60)
// this function is called by Symbian to deliver the new CApaApplication object
EXPORT_C CApaApplication* NewApplication() {
// Return pointer to newly created CQMApp
return (new CScummApp);
}
#endif
GLDEF_C TInt E32Dll(TDllReason) {
return KErrNone;
}
CScummApp::CScummApp() {
}
CScummApp::~CScummApp() {
}
/**
* Responsible for returning the unique UID of this application
* @return unique UID for this application in a TUid
**/
TUid CScummApp::AppDllUid() const {
return TUid::Uid(ScummUid);
}
/////////////////////////////////////////////////////////////////////////////////////////////////

44
backends/epoc/ScummApp.h Normal file
View File

@ -0,0 +1,44 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header$
*/
#ifndef ScummAPPH
#define ScummAPPH
#include <eikapp.h>
#include <e32base.h>
#include <sdlapp.h>
#if!defined (__AVKON_ELAF__) && !defined(S60)
#include "ECompXL.h"
#endif
class CScummApp:public CSDLApp {
public:
CScummApp();
~CScummApp();
TUid AppDllUid() const;
#if!defined (__AVKON_ELAF__) && !defined(S60)
TECompXL iECompXL;
#endif
};
#endif

29
backends/epoc/ScummVm.hrh Normal file
View File

@ -0,0 +1,29 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header$
*/
#ifndef ScummHRH
#define ScummHRH
#define ScummUid 0x101f9b57
#endif

199
backends/epoc/SymbianOS.cpp Normal file
View File

@ -0,0 +1,199 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header$
*/
#include "SymbianOS.h"
static const OSystem::GraphicsMode s_supportedGraphicsModes[] = {
{"1x", "Fullscreen", GFX_NORMAL},
{0, 0, 0}
};
OSystem *OSystem_SymbianOS_create() {
return new OSystem_SDL_Symbian();
}
#include "config-manager.h"
extern Common::ConfigManager *g_config;
OSystem_SDL_Symbian::OSystem_SDL_Symbian() :_channels(0),_stereo_mix_buffer(0){
ConfMan.set("FM_high_quality", false);
ConfMan.set("FM_medium_quality", true);
// ConfMan.set("joystick_num",0); // S60 should have joystick_num set to 0 in the ini file
ConfMan.flushToDisk();
}
OSystem_SDL_Symbian::~OSystem_SDL_Symbian() {
delete []_stereo_mix_buffer;
}
int OSystem_SDL_Symbian::getDefaultGraphicsMode() const {
return GFX_NORMAL;
}
const OSystem::GraphicsMode *OSystem_SDL_Symbian::getSupportedGraphicsModes() const {
return s_supportedGraphicsModes;
}
// make sure we always go to normal, even if the string might be set wrong!
bool OSystem_SDL_Symbian::setGraphicsMode(const char *name) {
// let parent OSystem_SDL handle it
return OSystem_SDL::setGraphicsMode(getDefaultGraphicsMode());
}
/*
* SumthinWicked says: the stuff below is copied from common/scaler.cpp,
* so we can skip compiling the scalers. ESDL still needs 1x and the scaler
* architecture because we inherit from OSystem_SDL.
*/
int gBitFormat = 565;
void InitScalers(uint32 BitFormat) {} // called by OSystem_SDL functions, not relevant for ESDL
/**
* Trivial 'scaler' - in fact it doesn't do any scaling but just copies the
* source to the destination.
*/
void Normal1x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch,
int width, int height) {
while (height--) {
memcpy(dstPtr, srcPtr, 2 * width);
srcPtr += srcPitch;
dstPtr += dstPitch;
}
}
bool OSystem_SDL_Symbian::setSoundCallback(SoundProc proc, void *param) {
// First save the proc and param
_sound_proc_param = param;
_sound_proc = proc;
SDL_AudioSpec desired;
SDL_AudioSpec obtained;
memset(&desired, 0, sizeof(desired));
_samplesPerSec = 0;
if (ConfMan.hasKey("output_rate"))
_samplesPerSec = ConfMan.getInt("output_rate");
if (_samplesPerSec <= 0)
_samplesPerSec = SAMPLES_PER_SEC;
// Originally, we always used 2048 samples. This loop will produce the
// same result at 22050 Hz, and should hopefully produce something
// sensible for other frequencies. Note that it must be a power of two.
uint32 samples = 0x8000;
for (;;) {
if ((1000 * samples) / _samplesPerSec < 100)
break;
samples >>= 1;
}
desired.freq = _samplesPerSec;
desired.format = AUDIO_S16SYS;
desired.channels = 2;
desired.samples = (uint16)samples;
#ifdef S60
desired.callback = symbianMixCallback;
desired.userdata = this;
#else
desired.callback = proc;
desired.userdata = param;
#endif
if (SDL_OpenAudio(&desired, &obtained) != 0) {
warning("Could not open audio device: %s", SDL_GetError());
return false;
}
// Note: This should be the obtained output rate, but it seems that at
// least on some platforms SDL will lie and claim it did get the rate
// even if it didn't. Probably only happens for "weird" rates, though.
_samplesPerSec = obtained.freq;
_channels = obtained.channels;
// Need to create mixbuffer for stereo mix to downmix
if(_channels != 2)
{
_stereo_mix_buffer = new byte [obtained.size*2];//*2 for stereo values
}
SDL_PauseAudio(0);
return true;
}
/**
* The mixer callback function, passed on to OSystem::setSoundCallback().
* This simply calls the mix() method.
*/
void OSystem_SDL_Symbian::symbianMixCallback(void *s, byte *samples, int len){
static_cast <OSystem_SDL_Symbian*>(s)->symbianMix(samples,len);
}
/**
* Actual mixing implementation
*/
void OSystem_SDL_Symbian::symbianMix(byte *samples, int len){
// If not stereo then we need to downmix
if(_channels != 2){
_sound_proc(_sound_proc_param,_stereo_mix_buffer,len*2);
int16* bitmixDst=(int16*)samples;
int16* bitmixSrc=(int16*)_stereo_mix_buffer;
for(int loop=len/2;loop>=0;loop--)
{
*bitmixDst=(*bitmixSrc+*(bitmixSrc+1))>>1;
bitmixDst++;
bitmixSrc+=2;
}
}
else
_sound_proc(_sound_proc_param,samples,len);
}
/*
// probably don't need this anymore: will remove later
#define EMPTY_SCALER_IMPLEMENTATION(x) \
void x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, \
uint32 dstPitch, int width, int height) {}
//EMPTY_SCALER_IMPLEMENTATION(_2xSaI);
//EMPTY_SCALER_IMPLEMENTATION(Super2xSaI);
//EMPTY_SCALER_IMPLEMENTATION(SuperEagle);
EMPTY_SCALER_IMPLEMENTATION(AdvMame2x);
EMPTY_SCALER_IMPLEMENTATION(AdvMame3x);
//EMPTY_SCALER_IMPLEMENTATION(Normal1x);
//EMPTY_SCALER_IMPLEMENTATION(Normal2x);
//EMPTY_SCALER_IMPLEMENTATION(Normal3x);
EMPTY_SCALER_IMPLEMENTATION(Normal1o5x);
//EMPTY_SCALER_IMPLEMENTATION(TV2x);
//EMPTY_SCALER_IMPLEMENTATION(DotMatrix);
//EMPTY_SCALER_IMPLEMENTATION(HQ2x);
//EMPTY_SCALER_IMPLEMENTATION(HQ3x);
*/

65
backends/epoc/SymbianOS.h Normal file
View File

@ -0,0 +1,65 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header$
*/
#ifndef SDLSYMBIANH
#define SDLSYMBIANH
#include "sdl-common.h"
class OSystem_SDL_Symbian : public OSystem_SDL {
public:
OSystem_SDL_Symbian();
~OSystem_SDL_Symbian();
int getDefaultGraphicsMode() const;
const OSystem::GraphicsMode *getSupportedGraphicsModes() const;
bool setGraphicsMode(const char *name);
// Set function that generates samples
/**
* This function is overridden by the symbian port in order to provide MONO audio
* downmix is done by supplying our own audiocallback
*/
virtual bool setSoundCallback(SoundProc proc, void *param); // overloaded by CE backend
protected:
/**
* The mixer callback function, passed on to OSystem::setSoundCallback().
* This simply calls the mix() method.
* and then does downmixing for symbian if needed
*/
static void symbianMixCallback(void *s, byte *samples, int len);
/**
* Actual mixing implementation
*/
void symbianMix(byte *samples, int len);
// Audio
int _channels;
SoundProc _sound_proc;
void *_sound_proc_param;
byte* _stereo_mix_buffer;
};
#endif

View File

@ -0,0 +1 @@
>> SumthinWicked *grins* <<

View File

@ -0,0 +1,12 @@
PRJ_PLATFORMS
WINS ARMI // ARM4 THUMB
PRJ_MMPFILES
..\scummvm_base.mmp
..\scummvm_scumm.mmp
..\scummvm_simon.mmp
..\scummvm_sky.mmp
..\scummvm_queen.mmp
..\scummvm_gob.mmp
.\EScummVM_S60.mmp
.\EScummVM_S60_App.mmp

View File

@ -0,0 +1,62 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header:
*/
// ScummVM.RSS
NAME SCUM
// Include definitions of resource STRUCTS used by this
// resource script
#include <eikon.rh>
#include "..\..\Scummvm.hrh"
// Include the standard Eikon resource ids
#include <eikon.rsg>
RESOURCE RSS_SIGNATURE
{
}
RESOURCE TBUF16 { buf=""; }
RESOURCE EIK_APP_INFO
{
menubar = r_scum_menubar;
}
RESOURCE MENU_BAR r_scum_menubar // *** Menu bar
{
titles =
{
MENU_TITLE { menu_pane = r_scum_menu; txt = "ScummVM"; }
};
}
RESOURCE MENU_PANE r_scum_menu // *** Submenu
{
items =
{
MENU_ITEM{command = EEikCmdExit;txt = "Exit";}
};
}

View File

@ -0,0 +1,36 @@
;;;
;;; EScummVM .PKG file for .SIS gegeration
;;;
; Languages
;&EN
; UID is the app's UID
#{"EScummVM S60"},(0x101f9b57),0,80,3
; Platform type
(0x101F6F88), 0, 0, 0, {"Series60ProductID"}
; Signature
*"EScummVM.key","EScummVM.cer"
; Application file Launcher and actual exe
"..\..\\epoc32\release\armi\urel\EScummVMS60.app"-"!:\system\apps\EScummVMS60\EScummVMS60.app"
"\epoc32\release\armi\urel\EScummVM.exe"-":\system\apps\EScummVMS60\EScummVM.exe"
; AIF application information file
"\epoc32\data\z\system\apps\EScummVMS60\EScummVMS60.aif"-"!:\system\apps\EScummVMS60\EScummVMS60.aif"
; Resource file
"\epoc32\data\z\system\apps\EScummVMS60\EScummVMS60.rsc"-"!:\system\apps\EScummVMS60\EScummVMS60.rsc"
; Empty .placeholder file, ensures creation of c:\documents\EScummVM\ for future file saves
".placeholder"-"c:\documents\EScummVM\.placeholder"
; Config/log files: 'empty' will automagically be removed on uninstall
""-"c:\documents\EScummVM\scummvm.ini",FN
""-"c:\documents\EScummVM\scummvm.stdout.txt",FN
""-"c:\documents\EScummVM\scummvm.stderr.txt",FN
; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini.
; It will remove the config file, std***.txt files & dirs on uninstall.

View File

@ -0,0 +1,113 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header:
*/
//
// EPOC S60 MMP makefile project for ScummVM
//
// *** Definitions
#if defined(WINS)
TARGET EScummVM.dll
#else
TARGET EScummVM.exe
#endif
TARGETPATH system\apps\EScummVMs60
TARGETTYPE EXEDLL
// /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp
OPTION MSVC /QIfist /Ob1 /Oy /GF
//OPTION GCC -O3 -funroll-loops -finline-functions -ffast-math -frerun-loop-opt -fconserve-space -fexpensive-optimizations -Wno-multichar -Wno-reorder
sourcepath ..\
EPOCSTACKSIZE 0x00008000
EPOCHEAPSIZE 1024 5242880
MACRO S60
MACRO NONSTANDARD_PORT
// these need too high a resolution
MACRO DISABLE_SWORD1
MACRO DISABLE_SWORD2
// these are not ready to be released
MACRO DISABLE_SAGA
MACRO DISABLE_KYRA
// these work, so don't disable them :)
//MACRO DISABLE_SIMON
//MACRO DISABLE_SKY
//MACRO DISABLE_QUEEN
//MACRO DISABLE_GOB
// *** Static Libraries
STATICLIBRARY scummvm_scumm.lib
STATICLIBRARY scummvm_simon.lib
STATICLIBRARY scummvm_sky.lib
STATICLIBRARY scummvm_queen.lib
STATICLIBRARY scummvm_gob.lib
STATICLIBRARY scummvm_base.lib
STATICLIBRARY libmad.lib
STATICLIBRARY zlib.lib
STATICLIBRARY esdl.lib
#if !defined(WINS)
STATICLIBRARY egcc.lib // for __fixunsdfsi
#endif
// *** Include paths
USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui
USERINCLUDE ..\..\..\..\backends\fs ..\..\..\..\backends\epoc ..\..\..\..\backends\sdl ..\..\..\..\sound
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\..\..\..\backends\epoc // for portdefs.h
// *** SOURCE files
SOURCEPATH ..\..\..\..
//START_AUTO_OBJECTS_BASE_// Updated @ Tue May 31 18:35:38 2005
SOURCE base\engine.cpp
SOURCE base\gameDetector.cpp
SOURCE base\main.cpp
SOURCE base\plugins.cpp
//STOP_AUTO_OBJECTS_BASE_//
// backend EPOC/SDL/ESDL specific includes
SOURCE backends\sdl\events.cpp
SOURCE backends\sdl\graphics.cpp
SOURCE backends\sdl\sdl.cpp
SOURCE backends\fs\symbian\symbian-fs.cpp
SOURCE backends\epoc\SymbianOS.cpp
SOURCE backends\epoc\ScummApp.cpp
// *** Dynamic Libraries
LIBRARY cone.lib eikcore.lib
LIBRARY euser.lib apparc.lib fbscli.lib
LIBRARY estlib.lib apgrfx.lib
LIBRARY gdi.lib hal.lib bitgdi.lib
LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib
LIBRARY AVKON.LIB

View File

@ -0,0 +1,47 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header:
*/
//
// MAKEFILE.MMP S60 ScummVM Launcher
//
TARGET EScummVMS60.app
TARGETPATH system\apps\EScummVMS60
TARGETTYPE app
UID 0x100039ce 0x101f9b57
RESOURCE ESCUMMVMS60.rss
SOURCEPATH .
USERINCLUDE .
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc
// app source
SOURCE ScummVMApp.cpp
sourcepath ..
AIF EScummVmS60.Aif ..\ ScummVmAif.rss c16 ScummL.bmp ScummLM.bmp ScummS.bmp ScummSM.bmp // still fails?
// libraries
LIBRARY cone.lib EIKCORE.lib
LIBRARY euser.lib apparc.lib
LIBRARY efsrv.lib apgrfx.lib
LIBRARY avkon.lib

View File

@ -0,0 +1,163 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header$
*/
#include "ScummVMapp.h"
#include <escummvms60.rsg>
#include <apgcli.h>
#include <eikdll.h>
EXPORT_C CApaApplication* NewApplication() {
return (new CScummVM);
}
CScummVM::CScummVM() {
}
CScummVM::~CScummVM() {
}
CApaDocument* CScummVM::CreateDocumentL()
{
return new (ELeave) CScummVMDoc(*this);
}
TUid CScummVM::AppDllUid() const
{
return TUid::Uid(0x101f9b57);
}
CScummVMDoc::CScummVMDoc(CEikApplication& aApp):CAknDocument(aApp) {
}
CScummVMDoc::~CScummVMDoc() {
}
CEikAppUi* CScummVMDoc::CreateAppUiL() {
return new (ELeave) CScummVMUi;
}
void CScummVMUi::HandleForegroundEventL(TBool aForeground) {
if(aForeground) {
BringUpEmulatorL();
}
}
CScummVMUi::CScummVMUi() {
}
CScummVMUi::~CScummVMUi() {
if(iWatcher) {
iThreadWatch.LogonCancel(iWatcher->iStatus);
iWatcher->Cancel();
}
delete iWatcher;
iThreadWatch.Close();
}
void CScummVMUi::ConstructL() {
BaseConstructL();
TBuf<128> startFile;
startFile = iEikonEnv->EikAppUi()->Application()->AppFullName();
TParse parser;
parser.Set(startFile,NULL,NULL);
startFile = parser.DriveAndPath();
#ifndef __WINS__
startFile.Append( _L("EScummVM.exe"));
#else
startFile.Append( _L("EScummVM.dll"));
#endif
CApaCommandLine* cmdLine=CApaCommandLine::NewLC(startFile);
RApaLsSession lsSession;
lsSession.Connect();
CleanupClosePushL(lsSession);
lsSession.StartApp(*cmdLine,iThreadId);
CleanupStack::PopAndDestroy();//close lsSession
CleanupStack::PopAndDestroy(cmdLine);
TApaTaskList taskList(iEikonEnv->WsSession());
TApaTask myTask=taskList.FindApp(TUid::Uid(0x101f9b57));
myTask.SendToBackground();
TApaTask exeTask=taskList.FindByPos(0);
iExeWgId=exeTask.WgId();
if(iExeWgId == myTask.WgId()) { // Should n't be the same
Exit();
}
if(iThreadWatch.Open(iThreadId)==KErrNone) {
iWatcher = new (ELeave)CScummWatcher;
iWatcher->iAppUi=this;
iThreadWatch.Logon(iWatcher->iStatus);
}
}
CScummWatcher::CScummWatcher():CActive(EPriorityStandard) {
CActiveScheduler::Add(this);
iStatus=KRequestPending;
SetActive();
}
CScummWatcher::~CScummWatcher() {
}
void CScummWatcher::DoCancel() {
}
void CScummWatcher::RunL() {
iAppUi->HandleCommandL(EEikCmdExit);
}
void CScummVMUi::BringUpEmulatorL() {
RThread thread;
if(thread.Open(iThreadId)==KErrNone) {
thread.Close();
TApaTask apaTask(iEikonEnv->WsSession());
apaTask.SetWgId(iExeWgId);
apaTask.BringToForeground();
}
else
{
iExeWgId=-1;
}
}
void CScummVMUi::HandleCommandL(TInt aCommand) {
switch(aCommand) {
case EEikCmdExit:
{
RThread thread;
if(thread.Open(iThreadId)==KErrNone)
{
thread.Terminate(0);
thread.Close();
}
Exit();
}
break;
}
}
GLDEF_C TInt E32Dll(TDllReason) {
return KErrNone;
}

View File

@ -0,0 +1,79 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header$
*/
#ifndef ScummVMapps60h
#define ScummVMapps60h
#include <aknapp.h>
#include <eikapp.h>
#include <e32base.h>
#include <coecntrl.h>
#include <eikenv.h>
#include <coeview.h>
#include <eikappui.h>
class CScummVM:public CEikApplication {
public:
CScummVM();
~CScummVM();
CApaDocument* CreateDocumentL();
TUid AppDllUid() const;
};
#include <AKNdoc.h>
class CScummVMDoc:public CAknDocument {
public:
~CScummVMDoc();
CEikAppUi* CreateAppUiL();
void ConstructL();
CScummVMDoc(CEikApplication& aApplicaiton);
};
#include <aknappui.h>
class CScummVMUi;
class CScummWatcher:public CActive {
public:
CScummWatcher();
~CScummWatcher();
void DoCancel();
void RunL();
CScummVMUi* iAppUi;
};
class CScummVMUi:public CAknAppUi {
public:
CScummVMUi();
~CScummVMUi();
void ConstructL();
void HandleCommandL(TInt aCommand);
void HandleForegroundEventL(TBool aForeground);
void BringUpEmulatorL();
private:
TThreadId iThreadId;
TInt iExeWgId;
RThread iThreadWatch;
CScummWatcher* iWatcher;
};
#endif

View File

@ -0,0 +1,12 @@
PRJ_PLATFORMS
WINS ARMI // ARM4 THUMB
PRJ_MMPFILES
..\scummvm_base.mmp
..\scummvm_scumm.mmp
..\scummvm_simon.mmp
..\scummvm_sky.mmp
..\scummvm_queen.mmp
..\scummvm_gob.mmp
.\EScummVM_S80.mmp
.\EScummVM_S80_App.mmp

View File

@ -0,0 +1,36 @@
;;;
;;; EScummVM .PKG file for .SIS gegeration
;;;
; Languages
;&EN
; UID is the app's UID
#{"EScummVM S60"},(0x101f9b57),0,80,3
; Platform type
(0x101F6F88), 0, 0, 0, {"Series60ProductID"}
; Signature
*"EScummVM.key","EScummVM.cer"
; Application file Launcher and actual exe
"..\..\\epoc32\release\armi\urel\EScummVMS60.app"-"!:\system\apps\EScummVMS60\EScummVMS60.app"
"\epoc32\release\armi\urel\EScummVM.exe"-":\system\apps\EScummVMS60\EScummVM.exe"
; AIF application information file
"\epoc32\data\z\system\apps\EScummVMS60\EScummVMS60.aif"-"!:\system\apps\EScummVMS60\EScummVMS60.aif"
; Resource file
"\epoc32\data\z\system\apps\EScummVMS60\EScummVMS60.rsc"-"!:\system\apps\EScummVMS60\EScummVMS60.rsc"
; Empty .placeholder file, ensures creation of c:\documents\EScummVM\ for future file saves
".placeholder"-"c:\documents\EScummVM\.placeholder"
; Config/log files: 'empty' will automagically be removed on uninstall
""-"c:\documents\EScummVM\scummvm.ini",FN
""-"c:\documents\EScummVM\scummvm.stdout.txt",FN
""-"c:\documents\EScummVM\scummvm.stderr.txt",FN
; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini.
; It will remove the config file, std***.txt files & dirs on uninstall.

View File

@ -0,0 +1,112 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header:
*/
//
// EPOC S80 MMP makefile project for ScummVM
//
// *** Definitions
#if defined(WINS)
TARGET EScummVM.dll
#else
TARGET EScummVM.exe
#endif
TARGETPATH system\apps\EScummVMs80
TARGETTYPE EXEDLL
// /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp
OPTION MSVC /QIfist /Ob1 /Oy /GF
//OPTION GCC -O3 -funroll-loops -finline-functions -ffast-math -frerun-loop-opt -fconserve-space -fexpensive-optimizations -Wno-multichar -Wno-reorder
sourcepath ..\
EPOCSTACKSIZE 0x00008000
EPOCHEAPSIZE 1024 5242880
MACRO S80
MACRO NONSTANDARD_PORT
// these need too high a resolution
MACRO DISABLE_SWORD1
MACRO DISABLE_SWORD2
// these are not ready to be released
MACRO DISABLE_SAGA
MACRO DISABLE_KYRA
// these work, so don't disable them :)
//MACRO DISABLE_SIMON
//MACRO DISABLE_SKY
//MACRO DISABLE_QUEEN
//MACRO DISABLE_GOB
// *** Static Libraries
STATICLIBRARY scummvm_scumm.lib
STATICLIBRARY scummvm_simon.lib
STATICLIBRARY scummvm_sky.lib
STATICLIBRARY scummvm_queen.lib
STATICLIBRARY scummvm_gob.lib
STATICLIBRARY scummvm_base.lib
STATICLIBRARY libmad.lib
STATICLIBRARY zlib.lib
STATICLIBRARY esdl.lib
#if !defined(WINS)
STATICLIBRARY egcc.lib // for __fixunsdfsi
#endif
// *** Include paths
USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui
USERINCLUDE ..\..\..\..\backends\fs ..\..\..\..\backends\epoc ..\..\..\..\backends\sdl ..\..\..\..\sound
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\..\..\..\backends\epoc // for portdefs.h
// *** SOURCE files
SOURCEPATH ..\..\..\..
//START_AUTO_OBJECTS_BASE_// Updated @ Tue May 31 18:35:38 2005
SOURCE base\engine.cpp
SOURCE base\gameDetector.cpp
SOURCE base\main.cpp
SOURCE base\plugins.cpp
//STOP_AUTO_OBJECTS_BASE_//
// backend EPOC/SDL/ESDL specific includes
SOURCE backends\sdl\events.cpp
SOURCE backends\sdl\graphics.cpp
SOURCE backends\sdl\sdl.cpp
SOURCE backends\fs\symbian\symbian-fs.cpp
SOURCE backends\epoc\SymbianOS.cpp
SOURCE backends\epoc\ScummApp.cpp
// *** Dynamic Libraries
LIBRARY cone.lib eikcore.lib
LIBRARY euser.lib apparc.lib fbscli.lib
LIBRARY estlib.lib apgrfx.lib
LIBRARY gdi.lib hal.lib bitgdi.lib
LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib

View File

@ -0,0 +1,46 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header:
*/
//
// MAKEFILE.MMP S80 ScummVM Launcher
//
TARGET EScummVMS80.app
TARGETPATH system\apps\EScummVMS80
TARGETTYPE app
UID 0x100039ce 0x101f9b57
RESOURCE ESCUMMVMS80.rss
SOURCEPATH .
USERINCLUDE .
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc
// app source
SOURCE ScummVMApp.cpp
sourcepath ..
AIF EScummVmS80.Aif ..\ ScummVmAif.rss c16 ScummL.bmp ScummLM.bmp ScummS.bmp ScummSM.bmp // still fails?
// libraries
LIBRARY cone.lib EIKCORE.lib
LIBRARY euser.lib apparc.lib
LIBRARY efsrv.lib apgrfx.lib

View File

@ -0,0 +1,62 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header:
*/
// ScummVM.RSS
NAME SCUM
// Include definitions of resource STRUCTS used by this
// resource script
#include <eikon.rh>
#include "..\..\Scummvm.hrh"
// Include the standard Eikon resource ids
#include <eikon.rsg>
RESOURCE RSS_SIGNATURE
{
}
RESOURCE TBUF16 { buf=""; }
RESOURCE EIK_APP_INFO
{
menubar = r_scum_menubar;
}
RESOURCE MENU_BAR r_scum_menubar // *** Menu bar
{
titles =
{
MENU_TITLE { menu_pane = r_scum_menu; txt = "ScummVM"; }
};
}
RESOURCE MENU_PANE r_scum_menu // *** Submenu
{
items =
{
MENU_ITEM{command = EEikCmdExit;txt = "Exit";}
};
}

View File

@ -0,0 +1,163 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header$
*/
#include "ScummVMapp.h"
#include <escummvms80.rsg>
#include <apgcli.h>
#include <eikdll.h>
#include <apgtask.h>
EXPORT_C CApaApplication* NewApplication() {
return (new CScummVM);
}
CScummVM::CScummVM() {
}
CScummVM::~CScummVM() {
}
CApaDocument* CScummVM::CreateDocumentL()
{
return new (ELeave) CScummVMDoc(*this);
}
TUid CScummVM::AppDllUid() const
{
return TUid::Uid(0x101f9b57);
}
CScummVMDoc::CScummVMDoc(CEikApplication& aApp):CEikDocument(aApp) {
}
CScummVMDoc::~CScummVMDoc() {
}
CEikAppUi* CScummVMDoc::CreateAppUiL() {
return new (ELeave) CScummVMUi;
}
void CScummVMUi::HandleForegroundEventL(TBool aForeground) {
if(aForeground) {
BringUpEmulatorL();
}
}
CScummVMUi::CScummVMUi() {
}
CScummVMUi::~CScummVMUi() {
if(iWatcher) {
iThreadWatch.LogonCancel(iWatcher->iStatus);
iWatcher->Cancel();
}
delete iWatcher;
iThreadWatch.Close();
}
void CScummVMUi::ConstructL() {
BaseConstructL();
TBuf<128> startFile;
startFile = iEikonEnv->EikAppUi()->Application()->AppFullName();
TParse parser;
parser.Set(startFile,NULL,NULL);
startFile = parser.DriveAndPath();
#ifndef __WINS__
startFile.Append( _L("EScummVM.exe"));
#else
startFile.Append( _L("EScummVM.dll"));
#endif
CApaCommandLine* cmdLine=CApaCommandLine::NewLC(startFile);
RApaLsSession lsSession;
lsSession.Connect();
CleanupClosePushL(lsSession);
lsSession.StartApp(*cmdLine,iThreadId);
CleanupStack::PopAndDestroy();//close lsSession
CleanupStack::PopAndDestroy(cmdLine);
User::After(500000);// Let the application start
TApaTaskList taskList(iEikonEnv->WsSession());
TApaTask myTask=taskList.FindApp(TUid::Uid(0x101f9b57));
myTask.SendToBackground();
TApaTask exeTask=taskList.FindByPos(0);
iExeWgId=exeTask.WgId();
exeTask.BringToForeground();
if(iExeWgId == myTask.WgId()) { // Should n't be the same
Exit();
}
if(iThreadWatch.Open(iThreadId)==KErrNone) {
iWatcher = new (ELeave)CScummWatcher;
iWatcher->iAppUi=this;
iThreadWatch.Logon(iWatcher->iStatus);
}
}
CScummWatcher::CScummWatcher():CActive(EPriorityStandard) {
CActiveScheduler::Add(this);
iStatus=KRequestPending;
SetActive();
}
CScummWatcher::~CScummWatcher() {
}
void CScummWatcher::DoCancel() {
}
void CScummWatcher::RunL() {
iAppUi->HandleCommandL(EEikCmdExit);
}
void CScummVMUi::BringUpEmulatorL() {
RThread thread;
if(thread.Open(iThreadId)==KErrNone) {
thread.Close();
TApaTask apaTask(iEikonEnv->WsSession());
apaTask.SetWgId(iExeWgId);
apaTask.BringToForeground();
}
else
{
iExeWgId=-1;
}
}
void CScummVMUi::HandleCommandL(TInt aCommand) {
switch(aCommand) {
case EEikCmdExit:
{
RThread thread;
if(thread.Open(iThreadId)==KErrNone)
{
thread.Terminate(0);
thread.Close();
}
Exit();
}
break;
}
}
GLDEF_C TInt E32Dll(TDllReason) {
return KErrNone;
}

View File

@ -0,0 +1,78 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header$
*/
#ifndef ScummVMapps60h
#define ScummVMapps60h
#include <eikapp.h>
#include <e32base.h>
#include <coecntrl.h>
#include <eikenv.h>
#include <coeview.h>
#include <eikappui.h>
class CScummVM:public CEikApplication {
public:
CScummVM();
~CScummVM();
CApaDocument* CreateDocumentL();
TUid AppDllUid() const;
};
#include <eikdoc.h>
class CScummVMDoc:public CEikDocument {
public:
~CScummVMDoc();
CEikAppUi* CreateAppUiL();
void ConstructL();
CScummVMDoc(CEikApplication& aApplicaiton);
};
#include <eikappui.h>
class CScummVMUi;
class CScummWatcher:public CActive {
public:
CScummWatcher();
~CScummWatcher();
void DoCancel();
void RunL();
CScummVMUi* iAppUi;
};
class CScummVMUi:public CEikAppUi {
public:
CScummVMUi();
~CScummVMUi();
void ConstructL();
void HandleCommandL(TInt aCommand);
void HandleForegroundEventL(TBool aForeground);
void BringUpEmulatorL();
private:
TThreadId iThreadId;
TInt iExeWgId;
RThread iThreadWatch;
CScummWatcher* iWatcher;
};
#endif

View File

@ -0,0 +1,12 @@
PRJ_PLATFORMS
WINS ARMI // ARM4 THUMB
PRJ_MMPFILES
..\scummvm_base.mmp
..\scummvm_scumm.mmp
..\scummvm_simon.mmp
..\scummvm_sky.mmp
..\scummvm_queen.mmp
..\scummvm_gob.mmp
.\EScummVM_S90.mmp
.\EScummVM_S90_App.mmp

View File

@ -0,0 +1,36 @@
;;;
;;; EScummVM .PKG file for .SIS gegeration
;;;
; Languages
;&EN
; UID is the app's UID
#{"EScummVM S60"},(0x101f9b57),0,80,3
; Platform type
(0x101F6F88), 0, 0, 0, {"Series60ProductID"}
; Signature
*"EScummVM.key","EScummVM.cer"
; Application file Launcher and actual exe
"..\..\\epoc32\release\armi\urel\EScummVMS60.app"-"!:\system\apps\EScummVMS60\EScummVMS60.app"
"\epoc32\release\armi\urel\EScummVM.exe"-":\system\apps\EScummVMS60\EScummVM.exe"
; AIF application information file
"\epoc32\data\z\system\apps\EScummVMS60\EScummVMS60.aif"-"!:\system\apps\EScummVMS60\EScummVMS60.aif"
; Resource file
"\epoc32\data\z\system\apps\EScummVMS60\EScummVMS60.rsc"-"!:\system\apps\EScummVMS60\EScummVMS60.rsc"
; Empty .placeholder file, ensures creation of c:\documents\EScummVM\ for future file saves
".placeholder"-"c:\documents\EScummVM\.placeholder"
; Config/log files: 'empty' will automagically be removed on uninstall
""-"c:\documents\EScummVM\scummvm.ini",FN
""-"c:\documents\EScummVM\scummvm.stdout.txt",FN
""-"c:\documents\EScummVM\scummvm.stderr.txt",FN
; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini.
; It will remove the config file, std***.txt files & dirs on uninstall.

View File

@ -0,0 +1,62 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header:
*/
// ScummVM.RSS
NAME SCUM
// Include definitions of resource STRUCTS used by this
// resource script
#include <eikon.rh>
#include "..\..\Scummvm.hrh"
// Include the standard Eikon resource ids
#include <eikon.rsg>
RESOURCE RSS_SIGNATURE
{
}
RESOURCE TBUF16 { buf=""; }
RESOURCE EIK_APP_INFO
{
menubar = r_scum_menubar;
}
RESOURCE MENU_BAR r_scum_menubar // *** Menu bar
{
titles =
{
MENU_TITLE { menu_pane = r_scum_menu; txt = "ScummVM"; }
};
}
RESOURCE MENU_PANE r_scum_menu // *** Submenu
{
items =
{
MENU_ITEM{command = EEikCmdExit;txt = "Exit";}
};
}

View File

@ -0,0 +1,112 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header:
*/
//
// EPOC S90 MMP makefile project for ScummVM
//
// *** Definitions
#if defined(WINS)
TARGET EScummVM.dll
#else
TARGET EScummVM.exe
#endif
TARGETPATH system\apps\EScummVMs90
TARGETTYPE EXEDLL
// /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp
OPTION MSVC /QIfist /Ob1 /Oy /GF
//OPTION GCC -O3 -funroll-loops -finline-functions -ffast-math -frerun-loop-opt -fconserve-space -fexpensive-optimizations -Wno-multichar -Wno-reorder
sourcepath ..\
EPOCSTACKSIZE 0x00008000
EPOCHEAPSIZE 1024 5242880
MACRO S90
MACRO NONSTANDARD_PORT
// these need too high a resolution
MACRO DISABLE_SWORD1
MACRO DISABLE_SWORD2
// these are not ready to be released
MACRO DISABLE_SAGA
MACRO DISABLE_KYRA
// these work, so don't disable them :)
//MACRO DISABLE_SIMON
//MACRO DISABLE_SKY
//MACRO DISABLE_QUEEN
//MACRO DISABLE_GOB
// *** Static Libraries
STATICLIBRARY scummvm_scumm.lib
STATICLIBRARY scummvm_simon.lib
STATICLIBRARY scummvm_sky.lib
STATICLIBRARY scummvm_queen.lib
STATICLIBRARY scummvm_gob.lib
STATICLIBRARY scummvm_base.lib
STATICLIBRARY libmad.lib
STATICLIBRARY zlib.lib
STATICLIBRARY esdl.lib
#if !defined(WINS)
STATICLIBRARY egcc.lib // for __fixunsdfsi
#endif
// *** Include paths
USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui
USERINCLUDE ..\..\..\..\backends\fs ..\..\..\..\backends\epoc ..\..\..\..\backends\sdl ..\..\..\..\sound
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\..\..\..\backends\epoc // for portdefs.h
// *** SOURCE files
SOURCEPATH ..\..\..\..
//START_AUTO_OBJECTS_BASE_// Updated @ Tue May 31 18:35:38 2005
SOURCE base\engine.cpp
SOURCE base\gameDetector.cpp
SOURCE base\main.cpp
SOURCE base\plugins.cpp
//STOP_AUTO_OBJECTS_BASE_//
// backend EPOC/SDL/ESDL specific includes
SOURCE backends\sdl\events.cpp
SOURCE backends\sdl\graphics.cpp
SOURCE backends\sdl\sdl.cpp
SOURCE backends\fs\symbian\symbian-fs.cpp
SOURCE backends\epoc\SymbianOS.cpp
SOURCE backends\epoc\ScummApp.cpp
// *** Dynamic Libraries
LIBRARY cone.lib eikcore.lib
LIBRARY euser.lib apparc.lib fbscli.lib
LIBRARY estlib.lib apgrfx.lib
LIBRARY gdi.lib hal.lib bitgdi.lib
LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib

View File

@ -0,0 +1,46 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header:
*/
//
// MAKEFILE.MMP S90 ScummVM Launcher
//
TARGET EScummVMS90.app
TARGETPATH system\apps\EScummVMS90
TARGETTYPE app
UID 0x100039ce 0x101f9b57
RESOURCE ESCUMMVMS90.rss
SOURCEPATH .
USERINCLUDE .
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc
// app source
SOURCE ScummVMApp.cpp
sourcepath ..
AIF EScummVmS90.Aif ..\ ScummVmAif.rss c16 ScummL.bmp ScummLM.bmp ScummS.bmp ScummSM.bmp // still fails?
// libraries
LIBRARY cone.lib EIKCORE.lib
LIBRARY euser.lib apparc.lib
LIBRARY efsrv.lib apgrfx.lib

View File

@ -0,0 +1,163 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header$
*/
#include "ScummVMapp.h"
#include <escummvms90.rsg>
#include <apgcli.h>
#include <eikdll.h>
#include <apgtask.h>
EXPORT_C CApaApplication* NewApplication() {
return (new CScummVM);
}
CScummVM::CScummVM() {
}
CScummVM::~CScummVM() {
}
CApaDocument* CScummVM::CreateDocumentL()
{
return new (ELeave) CScummVMDoc(*this);
}
TUid CScummVM::AppDllUid() const
{
return TUid::Uid(0x101f9b57);
}
CScummVMDoc::CScummVMDoc(CEikApplication& aApp):CEikDocument(aApp) {
}
CScummVMDoc::~CScummVMDoc() {
}
CEikAppUi* CScummVMDoc::CreateAppUiL() {
return new (ELeave) CScummVMUi;
}
void CScummVMUi::HandleForegroundEventL(TBool aForeground) {
if(aForeground) {
BringUpEmulatorL();
}
}
CScummVMUi::CScummVMUi() {
}
CScummVMUi::~CScummVMUi() {
if(iWatcher) {
iThreadWatch.LogonCancel(iWatcher->iStatus);
iWatcher->Cancel();
}
delete iWatcher;
iThreadWatch.Close();
}
void CScummVMUi::ConstructL() {
BaseConstructL();
TBuf<128> startFile;
startFile = iEikonEnv->EikAppUi()->Application()->AppFullName();
TParse parser;
parser.Set(startFile,NULL,NULL);
startFile = parser.DriveAndPath();
#ifndef __WINS__
startFile.Append( _L("EScummVM.exe"));
#else
startFile.Append( _L("EScummVM.dll"));
#endif
CApaCommandLine* cmdLine=CApaCommandLine::NewLC(startFile);
RApaLsSession lsSession;
lsSession.Connect();
CleanupClosePushL(lsSession);
lsSession.StartApp(*cmdLine,iThreadId);
CleanupStack::PopAndDestroy();//close lsSession
CleanupStack::PopAndDestroy(cmdLine);
User::After(500000);// Let the application start
TApaTaskList taskList(iEikonEnv->WsSession());
TApaTask myTask=taskList.FindApp(TUid::Uid(0x101f9b57));
myTask.SendToBackground();
TApaTask exeTask=taskList.FindByPos(0);
iExeWgId=exeTask.WgId();
exeTask.BringToForeground();
if(iExeWgId == myTask.WgId()) { // Should n't be the same
Exit();
}
if(iThreadWatch.Open(iThreadId)==KErrNone) {
iWatcher = new (ELeave)CScummWatcher;
iWatcher->iAppUi=this;
iThreadWatch.Logon(iWatcher->iStatus);
}
}
CScummWatcher::CScummWatcher():CActive(EPriorityStandard) {
CActiveScheduler::Add(this);
iStatus=KRequestPending;
SetActive();
}
CScummWatcher::~CScummWatcher() {
}
void CScummWatcher::DoCancel() {
}
void CScummWatcher::RunL() {
iAppUi->HandleCommandL(EEikCmdExit);
}
void CScummVMUi::BringUpEmulatorL() {
RThread thread;
if(thread.Open(iThreadId)==KErrNone) {
thread.Close();
TApaTask apaTask(iEikonEnv->WsSession());
apaTask.SetWgId(iExeWgId);
apaTask.BringToForeground();
}
else
{
iExeWgId=-1;
}
}
void CScummVMUi::HandleCommandL(TInt aCommand) {
switch(aCommand) {
case EEikCmdExit:
{
RThread thread;
if(thread.Open(iThreadId)==KErrNone)
{
thread.Terminate(0);
thread.Close();
}
Exit();
}
break;
}
}
GLDEF_C TInt E32Dll(TDllReason) {
return KErrNone;
}

View File

@ -0,0 +1,78 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header$
*/
#ifndef ScummVMapps60h
#define ScummVMapps60h
#include <eikapp.h>
#include <e32base.h>
#include <coecntrl.h>
#include <eikenv.h>
#include <coeview.h>
#include <eikappui.h>
class CScummVM:public CEikApplication {
public:
CScummVM();
~CScummVM();
CApaDocument* CreateDocumentL();
TUid AppDllUid() const;
};
#include <eikdoc.h>
class CScummVMDoc:public CEikDocument {
public:
~CScummVMDoc();
CEikAppUi* CreateAppUiL();
void ConstructL();
CScummVMDoc(CEikApplication& aApplicaiton);
};
#include <eikappui.h>
class CScummVMUi;
class CScummWatcher:public CActive {
public:
CScummWatcher();
~CScummWatcher();
void DoCancel();
void RunL();
CScummVMUi* iAppUi;
};
class CScummVMUi:public CEikAppUi {
public:
CScummVMUi();
~CScummVMUi();
void ConstructL();
void HandleCommandL(TInt aCommand);
void HandleForegroundEventL(TBool aForeground);
void BringUpEmulatorL();
private:
TThreadId iThreadId;
TInt iExeWgId;
RThread iThreadWatch;
CScummWatcher* iWatcher;
};
#endif

View File

@ -0,0 +1,44 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header:
*/
#include <aiftool.rh>
RESOURCE AIF_DATA
{
app_uid= 0x101f9b57;
//
hidden=KAppNotHidden;
embeddability=KAppNotEmbeddable;
caption_list=
{
CAPTION { code=ELangEnglish; caption="EScummVM"; },
CAPTION { code=ELangAmerican; caption="EScummVM"; },
CAPTION { code=ELangOther; caption="EScummVM"; }
};
//
num_icons=2;
}

View File

@ -0,0 +1,13 @@
PRJ_PLATFORMS
WINS ARMI // ARM4 THUMB
PRJ_MMPFILES
..\scummvm_scumm.mmp
..\scummvm_simon.mmp
..\scummvm_sky.mmp
..\scummvm_queen.mmp
..\scummvm_gob.mmp
..\scummvm_base.mmp
.\EScummVM_UIQ.mmp
prj_testmmpfiles

View File

@ -0,0 +1,26 @@
-----BEGIN CERTIFICATE-----
MIIEfDCCBDqgAwIBAgIBADALBgcqhkjOOAQDBQAwYTEQMA4GA1UEChMHU2N1bW1W
TTEQMA4GA1UECxMHRGV2VGVhbTEQMA4GA1UEAxMHU2N1bW1WTTEpMCcGCSqGSIb3
DQEJARYac3VtdGhpbndpY2tlZEB1c2Vycy5zZi5uZXQwHhcNMDUwNDI1MDIxNTA1
WhcNMDYwNDI1MDIxNTA1WjBhMRAwDgYDVQQKEwdTY3VtbVZNMRAwDgYDVQQLEwdE
ZXZUZWFtMRAwDgYDVQQDEwdTY3VtbVZNMSkwJwYJKoZIhvcNAQkBFhpzdW10aGlu
d2lja2VkQHVzZXJzLnNmLm5ldDCCAzswggIuBgcqhkjOOAQBMIICIQKCAQEA84zz
w3SAZSHUvmpEKn/o+RBhgs+Spxr1vIX4K7nc27dTl8Q8OWw+2kWUsySkzbhcwzV4
r2exWSUjKeAMhVnnV5bhlTlHQITTEhIm5XkbWWgBnqjxa990YAfU2vSFV//Yq9IP
eBtsx0Rc3M1QYAuBSZUA9n0J6omc2XrYqHNiqjlkgr0oVX1Y9acFNg2A4hoI0ltK
0ARqlv+s/yAntg+p2c3abiIFceFpnF0pI/veoyXFASqebUNvquYryiUdSxYxamMF
PB7i35VRY0WuOcDQsg6gMdAePC+oENBeEGAOaBrJ+M5KFRohcU8H4RF+FqaegtsA
dHECDoQMfQNynaAMrwIVAL8RRcz9e50iVWpUWeLf19EdQ2crAoIBAQDZZ6z5JfNz
f/ItU8/0Lo6lmFlC0axYhM5+MKBLGBE/Xo+tqUiwIhVBWGEZN0B8DGD7OnljPqWd
2LzapsfGfoMh22oQTXljwS13So1akeJK0OaKZS699Nl5YrM0oFa6pLj9wbwPgd0I
HwaVS4YZhrJyPAKiHZlz7YGIqEvCFjDWBsPMZ1gbTIGrvkhFNvClP7U5gBVj6ASQ
gLwnuD7oApXfEbyEzPg0EmxD1zHsnvmwtQT66tmnVsgIe9gsF3XL2rlJIxogbM4/
zKPzWiQaypdqzgdGT/F8fonumN8QA1GR+SHLh6LnxWVGQwXOueXdlZPH8ELg4mYv
SgRTU+UYDc6YA4IBBQACggEAQ69uT4wfbkrXWu1uozU8yWNTpO1pq/eQdnz70dBr
iO5wWD0ojEj6IOp968p5DbWCRn/xAl+aNAFlxaMvJrhjcKCPjYENQkPdRhrgB/tO
B/LzK64RjPswAkOkwLX7GK6N3m0Yt2BW02t8j13f1Ckg1dvX7JKAD2xqAKIap94P
CbF/URAYGKFNechB3MlJK9/zW9huk9PQ/ulsDrZ0itZuTR+24P7co8hAhGnVL6TC
zQzL6WHF3MPirr5T0tvquryZKiX3shOJtsRRCjkJS4oEuFAwQx+q7HtCA/6+MmQF
0odo9lzNa44SVBGkD9M8tRYrO4OaLuU24f4AeUx7VSflnDALBgcqhkjOOAQDBQAD
LwAwLAIUUS6s1EFzzhP0ZyJ1GE0asFJtkVoCFBbw9qDXTT3mTyCVvmSwCB9YtCuz
-----END CERTIFICATE-----

View File

@ -0,0 +1,20 @@
-----BEGIN DSA PRIVATE KEY-----
MIIDPgIBAAKCAQEA84zzw3SAZSHUvmpEKn/o+RBhgs+Spxr1vIX4K7nc27dTl8Q8
OWw+2kWUsySkzbhcwzV4r2exWSUjKeAMhVnnV5bhlTlHQITTEhIm5XkbWWgBnqjx
a990YAfU2vSFV//Yq9IPeBtsx0Rc3M1QYAuBSZUA9n0J6omc2XrYqHNiqjlkgr0o
VX1Y9acFNg2A4hoI0ltK0ARqlv+s/yAntg+p2c3abiIFceFpnF0pI/veoyXFASqe
bUNvquYryiUdSxYxamMFPB7i35VRY0WuOcDQsg6gMdAePC+oENBeEGAOaBrJ+M5K
FRohcU8H4RF+FqaegtsAdHECDoQMfQNynaAMrwIVAL8RRcz9e50iVWpUWeLf19Ed
Q2crAoIBAQDZZ6z5JfNzf/ItU8/0Lo6lmFlC0axYhM5+MKBLGBE/Xo+tqUiwIhVB
WGEZN0B8DGD7OnljPqWd2LzapsfGfoMh22oQTXljwS13So1akeJK0OaKZS699Nl5
YrM0oFa6pLj9wbwPgd0IHwaVS4YZhrJyPAKiHZlz7YGIqEvCFjDWBsPMZ1gbTIGr
vkhFNvClP7U5gBVj6ASQgLwnuD7oApXfEbyEzPg0EmxD1zHsnvmwtQT66tmnVsgI
e9gsF3XL2rlJIxogbM4/zKPzWiQaypdqzgdGT/F8fonumN8QA1GR+SHLh6LnxWVG
QwXOueXdlZPH8ELg4mYvSgRTU+UYDc6YAoIBAEOvbk+MH25K11rtbqM1PMljU6Tt
aav3kHZ8+9HQa4jucFg9KIxI+iDqfevKeQ21gkZ/8QJfmjQBZcWjLya4Y3Cgj42B
DUJD3UYa4Af7Tgfy8yuuEYz7MAJDpMC1+xiujd5tGLdgVtNrfI9d39QpINXb1+yS
gA9sagCiGqfeDwmxf1EQGBihTXnIQdzJSSvf81vYbpPT0P7pbA62dIrWbk0ftuD+
3KPIQIRp1S+kws0My+lhxdzD4q6+U9Lb6rq8mSol97ITibbEUQo5CUuKBLhQMEMf
qux7QgP+vjJkBdKHaPZczWuOElQRpA/TPLUWKzuDmi7lNuH+AHlMe1Un5ZwCFBoc
P3MxHDcW4ZTIXdJxxCylT+ix
-----END DSA PRIVATE KEY-----

View File

@ -0,0 +1,62 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header$
*/
// ScummVM.RSS
NAME SCUM
// Include definitions of resource STRUCTS used by this
// resource script
#include <eikon.rh>
#include "..\backends\epoc\Scummvm.hrh"
// Include the standard Eikon resource ids
#include <eikon.rsg>
RESOURCE RSS_SIGNATURE
{
}
RESOURCE TBUF16 { buf=""; }
RESOURCE EIK_APP_INFO
{
menubar = r_scum_menubar;
}
RESOURCE MENU_BAR r_scum_menubar // *** Menu bar
{
titles =
{
MENU_TITLE { menu_pane = r_scum_menu; txt = "ScummVM"; }
};
}
RESOURCE MENU_PANE r_scum_menu // *** Submenu
{
items =
{
MENU_ITEM{command = EEikCmdExit;txt = "Exit";}
};
}

View File

@ -0,0 +1,35 @@
;;;
;;; EScummVM .PKG file for .SIS gegeration
;;;
; Languages
;&EN
; UID is the app's UID
#{"EScummVM"},(0x101f9b57),0,80,3
; Platform type
(0x101F617B), 2, 0, 0, {"UIQ20ProductID"}
; Signature
*"EScummVM.key","EScummVM.cer"
; Application file
"..\..\..\..\UIQ_21\epoc32\release\armi\urel\EScummVM.app"-"!:\system\apps\EScummVM\EScummVM.app"
; AIF application information file
"..\..\..\..\UIQ_21\epoc32\data\z\system\apps\EScummVM\EScummVM.aif"-"!:\system\apps\EScummVM\EScummVM.aif"
; Resource file
"..\..\..\..\UIQ_21\epoc32\data\z\system\apps\EScummVM\EScummVM.rsc"-"!:\system\apps\EScummVM\EScummVM.rsc"
; Empty .placeholder file, ensures creation of c:\documents\EScummVM\ for future file saves
".placeholder"-"c:\documents\EScummVM\.placeholder"
; Config/log files: 'empty' will automagically be removed on uninstall
""-"c:\documents\EScummVM\scummvm.ini",FN
""-"c:\documents\EScummVM\scummvm.stdout.txt",FN
""-"c:\documents\EScummVM\scummvm.stderr.txt",FN
; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini.
; It will remove the config file, std***.txt files & dirs on uninstall.

View File

@ -0,0 +1,110 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header:
*/
//
// EPOC UIQ MMP makefile project for ScummVM
//
// *** Definitions
TARGET ESCUMMVM.APP
TARGETPATH system\apps\EScummVM
TARGETTYPE app
OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp
OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings
RESOURCE EScummVM.rss
EPOCSTACKSIZE 0x80008000 // this enables ECompXL app compression
AIF EScummVm.Aif ..\ ScummVmAif.rss c16 ScummL.bmp ScummLM.bmp ScummS.bmp ScummSM.bmp // still fails?
UID 0x100039ce 0x101f9b57
MACRO UIQ
MACRO NONSTANDARD_PORT
// these need too high a resolution
MACRO DISABLE_SWORD1
MACRO DISABLE_SWORD2
// these are not ready to be released
MACRO DISABLE_SAGA
MACRO DISABLE_KYRA
// these work, so don't disable them, left here because during dev you might wanna turn them off once in a while :)
//MACRO DISABLE_SIMON
//MACRO DISABLE_SKY
//MACRO DISABLE_QUEEN
//MACRO DISABLE_GOB
// *** Static Libraries
STATICLIBRARY scummvm_scumm.lib
STATICLIBRARY scummvm_simon.lib
STATICLIBRARY scummvm_sky.lib
STATICLIBRARY scummvm_queen.lib
STATICLIBRARY scummvm_gob.lib
STATICLIBRARY scummvm_base.lib
STATICLIBRARY libmad.lib
STATICLIBRARY zlib.lib
STATICLIBRARY esdl.lib
#if !defined(WINS)
STATICLIBRARY egcc.lib // for __fixunsdfsi
#endif
// *** Include paths
USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui
USERINCLUDE ..\..\..\..\backends\fs ..\..\..\..\backends\epoc ..\..\..\..\backends\sdl ..\..\..\..\sound
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\..\..\..\backends\epoc // for portdefs.h
// *** SOURCE files
SOURCEPATH ..\..\..\..\
//START_AUTO_OBJECTS_BASE_// Updated @ Tue May 31 18:35:38 2005
SOURCE base\engine.cpp
SOURCE base\gameDetector.cpp
SOURCE base\main.cpp
SOURCE base\plugins.cpp
//STOP_AUTO_OBJECTS_BASE_//
// backend EPOC/SDL/ESDL specific includes
SOURCE backends\sdl\events.cpp
SOURCE backends\sdl\graphics.cpp
SOURCE backends\sdl\sdl.cpp
SOURCE backends\fs\symbian\symbian-fs.cpp
SOURCE backends\epoc\SymbianOS.cpp
SOURCE backends\epoc\ScummApp.cpp
// *** Dynamic Libraries
LIBRARY cone.lib eikcore.lib
LIBRARY euser.lib apparc.lib fbscli.lib
LIBRARY estlib.lib apgrfx.lib
LIBRARY gdi.lib hal.lib
LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib
LIBRARY qikctl.lib

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,46 @@
@ECHO OFF
SET target=%2
if "%1"=="clean" goto clean
if "%1"=="test" goto test
if "%1"=="fast" goto fast
if "%1"=="--help" goto help
if "%1"=="-h" goto help
SET platform=armi
if "%1"=="" goto build
SET platform=%1
:build
echo ---------------------------------------------------
@ECHO ON
call abld build %platform% urel %target%
goto End
:fast
echo ---------------------------------------------------
REM @ECHO ON
call abld library %platform% urel %target%
REM call abld resource %platform% urel %target%
call abld target %platform% urel %target%
goto End
:test
echo ---------------------------------------------------
@ECHO ON
call abld test build armi urel %target%
goto End
:clean
abld clean %target%
goto End
:help
echo Usage: make clean
echo make [armi|wins] [target]
goto End
:End
echo ---------------------------------------------------

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 822 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

View File

@ -0,0 +1,136 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header:
*/
//
// EPOC MMP makefile project for ScummVM
//
// *** Definitions
TARGET scummvm_base.lib
TARGETTYPE lib
OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp
OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings
MACRO NONSTANDARD_PORT
MACRO USE_MAD
MACRO USE_ZLIB
// these need too high a resolution
MACRO DISABLE_SWORD1
MACRO DISABLE_SWORD2
// these are not ready to be released
MACRO DISABLE_SAGA
MACRO DISABLE_KYRA
// these work, so don't disable them :)
//MACRO DISABLE_SIMON
//MACRO DISABLE_SKY
//MACRO DISABLE_QUEEN
//MACRO DISABLE_GOB
// *** Include paths
USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\sound
USERINCLUDE ..\..\..\backends\fs ..\..\..\backends\epoc ..\..\..\backends\sdl
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\..\..\backends\epoc // for portdefs.h
// *** SOURCE files
SOURCEPATH ..\..\..
//START_AUTO_OBJECTS_COMMON_// Updated @ Mon Jun 6 23:07:22 2005
SOURCE common\config-file.cpp
SOURCE common\config-manager.cpp
SOURCE common\file.cpp
SOURCE common\md5.cpp
SOURCE common\mutex.cpp
SOURCE common\str.cpp
SOURCE common\stream.cpp
SOURCE common\timer.cpp
SOURCE common\util.cpp
SOURCE common\savefile.cpp
SOURCE common\system.cpp
//STOP_AUTO_OBJECTS_COMMON_//
//START_AUTO_OBJECTS_GRAPHICS_// Updated @ Mon Jun 6 23:07:22 2005
SOURCE graphics\animation.cpp
SOURCE graphics\consolefont.cpp
SOURCE graphics\font.cpp
SOURCE graphics\fontman.cpp
SOURCE graphics\newfont.cpp
SOURCE graphics\newfont_big.cpp
SOURCE graphics\primitives.cpp
SOURCE graphics\scummfont.cpp
SOURCE graphics\surface.cpp
//STOP_AUTO_OBJECTS_GRAPHICS_//
//START_AUTO_OBJECTS_GUI_// Updated @ Mon Jun 6 23:07:22 2005
SOURCE gui\about.cpp
SOURCE gui\browser.cpp
SOURCE gui\chooser.cpp
SOURCE gui\console.cpp
SOURCE gui\dialog.cpp
SOURCE gui\editable.cpp
SOURCE gui\EditTextWidget.cpp
SOURCE gui\launcher.cpp
SOURCE gui\ListWidget.cpp
SOURCE gui\message.cpp
SOURCE gui\newgui.cpp
SOURCE gui\options.cpp
SOURCE gui\PopUpWidget.cpp
SOURCE gui\ScrollBarWidget.cpp
SOURCE gui\TabWidget.cpp
SOURCE gui\widget.cpp
//STOP_AUTO_OBJECTS_GUI_//
//START_AUTO_OBJECTS_SOUND_// Updated @ Mon Jun 6 23:07:22 2005
SOURCE sound\adpcm.cpp
SOURCE sound\audiocd.cpp
SOURCE sound\audiostream.cpp
SOURCE sound\flac.cpp
SOURCE sound\fmopl.cpp
SOURCE sound\mididrv.cpp
SOURCE sound\midiparser.cpp
SOURCE sound\midiparser_smf.cpp
SOURCE sound\midiparser_xmidi.cpp
SOURCE sound\mixer.cpp
SOURCE sound\mp3.cpp
SOURCE sound\mpu401.cpp
SOURCE sound\rate.cpp
SOURCE sound\voc.cpp
SOURCE sound\vorbis.cpp
SOURCE sound\wave.cpp
SOURCE sound\softsynth\adlib.cpp
SOURCE sound\softsynth\ym2612.cpp
//STOP_AUTO_OBJECTS_SOUND_//
// backend specific includes
SOURCE backends\midi\null.cpp
SOURCE backends\fs\fs.cpp
// backend specific includes

View File

@ -0,0 +1,69 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header:
*/
//
// EPOC MMP makefile project for ScummVM
//
// *** Definitions
TARGET scummvm_gob.lib
TARGETTYPE lib
OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp
OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings
MACRO NONSTANDARD_PORT
// *** SOURCE files
SOURCEPATH ..\..\..
//START_AUTO_OBJECTS_GOB_// Updated @ Mon Jun 6 23:07:22 2005
SOURCE gob\anim.cpp
SOURCE gob\cdrom.cpp
SOURCE gob\dataio.cpp
SOURCE gob\draw.cpp
SOURCE gob\driver_vga.cpp
SOURCE gob\game.cpp
SOURCE gob\global.cpp
SOURCE gob\goblin.cpp
SOURCE gob\init.cpp
SOURCE gob\inter.cpp
SOURCE gob\map.cpp
SOURCE gob\mult.cpp
SOURCE gob\pack.cpp
SOURCE gob\palanim.cpp
SOURCE gob\parse.cpp
SOURCE gob\scenery.cpp
SOURCE gob\util.cpp
SOURCE gob\video.cpp
SOURCE gob\sound.cpp
SOURCE gob\timer.cpp
SOURCE gob\gob.cpp
//STOP_AUTO_OBJECTS_GOB_//
// *** Include paths
USERINCLUDE ..\..\..\gob
USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\sound ..\..\..\backends\epoc
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\..\..\backends\epoc

View File

@ -0,0 +1,69 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header:
*/
//
// EPOC MMP makefile project for ScummVM
//
// *** Definitions
TARGET scummvm_queen.lib
TARGETTYPE lib
OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp
OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings
MACRO NONSTANDARD_PORT
MACRO USE_MAD
// *** SOURCE files
SOURCEPATH ..\..\..
//START_AUTO_OBJECTS_QUEEN_// Updated @ Mon Jun 6 23:07:22 2005
SOURCE queen\bankman.cpp
SOURCE queen\command.cpp
SOURCE queen\credits.cpp
SOURCE queen\cutaway.cpp
SOURCE queen\debug.cpp
SOURCE queen\display.cpp
SOURCE queen\graphics.cpp
SOURCE queen\grid.cpp
SOURCE queen\input.cpp
SOURCE queen\journal.cpp
SOURCE queen\logic.cpp
SOURCE queen\music.cpp
SOURCE queen\musicdata.cpp
SOURCE queen\queen.cpp
SOURCE queen\resource.cpp
SOURCE queen\restables.cpp
SOURCE queen\sound.cpp
SOURCE queen\state.cpp
SOURCE queen\talk.cpp
SOURCE queen\walk.cpp
//STOP_AUTO_OBJECTS_QUEEN_//
// *** Include paths
USERINCLUDE ..\..\..\queen
USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\sound ..\..\..\backends\epoc
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\..\..\backends\epoc

View File

@ -0,0 +1,142 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header:
*/
//
// EPOC MMP makefile project for ScummVM
//
// *** Definitions
TARGET scummvm_scumm.lib
TARGETTYPE lib
OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp
OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings
MACRO NONSTANDARD_PORT
MACRO USE_MAD
MACRO USE_ZLIB
// *** SOURCE files
SOURCEPATH ..\..\..
//START_AUTO_OBJECTS_SCUMM_// Updated @ Mon Jun 6 23:07:22 2005
SOURCE scumm\actor.cpp
SOURCE scumm\akos.cpp
SOURCE scumm\base-costume.cpp
SOURCE scumm\bomp.cpp
SOURCE scumm\boxes.cpp
SOURCE scumm\camera.cpp
SOURCE scumm\charset.cpp
SOURCE scumm\costume.cpp
SOURCE scumm\cursor.cpp
SOURCE scumm\debugger.cpp
SOURCE scumm\dialogs.cpp
SOURCE scumm\gfx.cpp
SOURCE scumm\imuse.cpp
SOURCE scumm\imuse_player.cpp
SOURCE scumm\input.cpp
SOURCE scumm\instrument.cpp
SOURCE scumm\help.cpp
SOURCE scumm\midiparser_ro.cpp
SOURCE scumm\midiparser_eup.cpp
SOURCE scumm\nut_renderer.cpp
SOURCE scumm\object.cpp
SOURCE scumm\palette.cpp
SOURCE scumm\player_mod.cpp
SOURCE scumm\player_v1.cpp
SOURCE scumm\player_nes.cpp
SOURCE scumm\player_v2.cpp
SOURCE scumm\player_v2a.cpp
SOURCE scumm\player_v3a.cpp
SOURCE scumm\resource.cpp
SOURCE scumm\resource_v2.cpp
SOURCE scumm\resource_v3.cpp
SOURCE scumm\resource_v4.cpp
SOURCE scumm\room.cpp
SOURCE scumm\saveload.cpp
SOURCE scumm\script.cpp
SOURCE scumm\script_c64.cpp
SOURCE scumm\script_v2.cpp
SOURCE scumm\script_v5.cpp
SOURCE scumm\script_v6.cpp
SOURCE scumm\script_v6he.cpp
SOURCE scumm\scumm.cpp
SOURCE scumm\sound.cpp
SOURCE scumm\string.cpp
SOURCE scumm\usage_bits.cpp
SOURCE scumm\util.cpp
SOURCE scumm\vars.cpp
SOURCE scumm\verbs.cpp
SOURCE scumm\thumbnail.cpp
//STOP_AUTO_OBJECTS_SCUMM_//
//START_AUTO_OBJECTS_SCUMM_DISABLE_SCUMM_7_8// Updated @ Mon Jun 6 23:03:34 2005
SOURCE scumm\script_v8.cpp
SOURCE scumm\imuse_digi\dimuse.cpp
SOURCE scumm\imuse_digi\dimuse_bndmgr.cpp
SOURCE scumm\imuse_digi\dimuse_codecs.cpp
SOURCE scumm\imuse_digi\dimuse_music.cpp
SOURCE scumm\imuse_digi\dimuse_sndmgr.cpp
SOURCE scumm\imuse_digi\dimuse_script.cpp
SOURCE scumm\imuse_digi\dimuse_track.cpp
SOURCE scumm\imuse_digi\dimuse_tables.cpp
SOURCE scumm\insane\insane.cpp
SOURCE scumm\insane\insane_ben.cpp
SOURCE scumm\insane\insane_enemy.cpp
SOURCE scumm\insane\insane_scenes.cpp
SOURCE scumm\insane\insane_iact.cpp
SOURCE scumm\smush\chunk.cpp
SOURCE scumm\smush\codec1.cpp
SOURCE scumm\smush\codec37.cpp
SOURCE scumm\smush\codec47.cpp
SOURCE scumm\smush\imuse_channel.cpp
SOURCE scumm\smush\smush_player.cpp
SOURCE scumm\smush\saud_channel.cpp
SOURCE scumm\smush\smush_mixer.cpp
SOURCE scumm\smush\smush_font.cpp
//STOP_AUTO_OBJECTS_SCUMM_DISABLE_SCUMM_7_8//
//START_AUTO_OBJECTS_SCUMM_DISABLE_HE// Updated @ Mon Jun 6 23:03:34 2005
SOURCE scumm\logic_he.cpp
SOURCE scumm\palette_he.cpp
SOURCE scumm\resource_v7he.cpp
SOURCE scumm\script_v7he.cpp
SOURCE scumm\script_v72he.cpp
SOURCE scumm\script_v80he.cpp
SOURCE scumm\script_v90he.cpp
SOURCE scumm\script_v100he.cpp
SOURCE scumm\sprite_he.cpp
SOURCE scumm\wiz_he.cpp
//STOP_AUTO_OBJECTS_SCUMM_DISABLE_HE//
// *** Include paths
USERINCLUDE ..\..\..\scumm ..\..\..\scumm\smush ..\..\..\scumm\insane
USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\sound ..\..\..\backends\epoc
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\..\..\backends\epoc // for portdefs.h

View File

@ -0,0 +1,64 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header:
*/
//
// EPOC MMP makefile project for ScummVM
//
// *** Definitions
TARGET scummvm_simon.lib
TARGETTYPE lib
OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp
OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings
MACRO NONSTANDARD_PORT
MACRO USE_MAD
// *** SOURCE files
SOURCEPATH ..\..\..
//START_AUTO_OBJECTS_SIMON_// Updated @ Mon Jun 6 23:07:22 2005
SOURCE simon\charset.cpp
SOURCE simon\cursor.cpp
SOURCE simon\debug.cpp
SOURCE simon\debugger.cpp
SOURCE simon\icons.cpp
SOURCE simon\items.cpp
SOURCE simon\midi.cpp
SOURCE simon\midiparser_s1d.cpp
SOURCE simon\res.cpp
SOURCE simon\saveload.cpp
SOURCE simon\sound.cpp
SOURCE simon\simon.cpp
SOURCE simon\verb.cpp
SOURCE simon\vga.cpp
//STOP_AUTO_OBJECTS_SIMON_//
// *** Include paths
USERINCLUDE ..\..\..\simon
USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\sound ..\..\..\backends\epoc
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\..\..\backends\epoc

View File

@ -0,0 +1,71 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header:
*/
//
// EPOC MMP makefile project for ScummVM
//
// *** Definitions
TARGET scummvm_sky.lib
TARGETTYPE lib
OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp
OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings
MACRO NONSTANDARD_PORT
MACRO USE_MAD
// *** SOURCE files
SOURCEPATH ..\..\..
//START_AUTO_OBJECTS_SKY_// Updated @ Mon Jun 6 23:07:22 2005
SOURCE sky\autoroute.cpp
SOURCE sky\compact.cpp
SOURCE sky\control.cpp
SOURCE sky\debug.cpp
SOURCE sky\disk.cpp
SOURCE sky\grid.cpp
SOURCE sky\hufftext.cpp
SOURCE sky\intro.cpp
SOURCE sky\logic.cpp
SOURCE sky\mouse.cpp
SOURCE sky\rnc_deco.cpp
SOURCE sky\screen.cpp
SOURCE sky\sky.cpp
SOURCE sky\sound.cpp
SOURCE sky\text.cpp
SOURCE sky\music\adlibchannel.cpp
SOURCE sky\music\adlibmusic.cpp
SOURCE sky\music\gmchannel.cpp
SOURCE sky\music\gmmusic.cpp
SOURCE sky\music\mt32music.cpp
SOURCE sky\music\musicbase.cpp
//STOP_AUTO_OBJECTS_SKY_//
// *** Include paths
USERINCLUDE ..\..\..\sky ..\..\..\sky\music
USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\sound ..\..\..\backends\epoc
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\..\..\backends\epoc

View File

@ -0,0 +1,156 @@
use Cwd;
print "
=======================================================================================
Preparing to update all the Symbian MMP project files with objects from module.mk files
=======================================================================================
";
$buildDir = getcwd();
chdir("../../../");
my @std = (""); # section standard, no #ifdef
#my @sec = ("", "DISABLE_SCUMM_7_8", "DISABLE_HE"); # sections for scumm DISABLED_s
my @exc = ("mt32","fluidsynth"); # exclusions for sound
#arseModule(mmpStr, dirStr, ifdefArray, [exclusionsArray])
#ParseModule("_base", "base", \@std); # now in EScummVM_TRG.mmp, these never change anyways...
ParseModule("_base", "common", \@std);
ParseModule("_base", "gui", \@std);
ParseModule("_base", "graphics", \@std);
ParseModule("_base", "sound", \@std, \@exc);
ParseModule("_scumm", "scumm", \@std); #\@sec # no more: enabled all again
ParseModule("_queen", "queen", \@std);
ParseModule("_simon", "simon", \@std);
ParseModule("_sky", "sky", \@std);
ParseModule("_gob", "gob", \@std);
print "
=======================================================================================
Done. Enjoy :P
=======================================================================================
";
# parses multiple sections per mmp/module
sub ParseModule
{
my ($mmp,$module,$sections,$exclusions) = @_;
my @sections = @{$sections};
my @exclusions = @{$exclusions};
foreach $section (@sections)
{
CheckForModuleMK($module, $section, @exclusions);
UpdateProjectFile($mmp, $module, $section);
}
}
# parses all module.mk files in a dir and its subdirs
sub CheckForModuleMK
{
my ($item,$section,@exclusions) = @_;
if (-d $item)
{
#print "$item\n";
opendir DIR, $item;
#my @Files = readdir DIR;
my @Files = grep s/^([^\.].*)$/$1/, readdir DIR;
closedir DIR;
foreach $entry (@Files)
{
CheckForModuleMK("$item/$entry", $section, @exclusions);
}
}
if (-f $item and $item =~ /.*\/module.mk$/)
{
my $sec = "";
my $secnum = 0;
print "Parsing $item for section '$section' ... ";
open FILE, $item;
my @lines = <FILE>;
close FILE;
my $count = @lines;
print "$count lines";
A: foreach $line (@lines)
{
# found a section? reset
if ($line =~ /^ifndef (.*)/)
{
$sec = $1;
}
# found an object? Not uncommented!
if (!($line =~ /^#/) && $line =~ s/\.o/.cpp/)
{
# handle this section?
if ($sec eq $section)
{
$line =~ s/^\s*//g; # remove possible leading whitespace
$line =~ s/ \\//; # remove possible trailing ' \'
$line =~ s/\//\\/g; # replace / with \
chop($line); # remove \n
# do we need to skip this file?
foreach $exclusion (@exclusions)
{
if ($line =~ /$exclusion/)
{
#print "\n !$line (excluded)";
next A;
}
}
$secnum++;
#print "\n $line";
$output .= "SOURCE $line\n";
}
}
}
print " -- $secnum objects selected\n";
}
}
# update an MMP project file with the new objects
sub UpdateProjectFile
{
my ($mmp,$module,$section) = @_;
my $n = "AUTO_OBJECTS_".uc($module)."_$section";
my $a = "\/\/START_$n\/\/";
my $b = "\/\/STOP_$n\/\/";
my $name = "scummvm$mmp.mmp";
my $file = "$buildDir/$name";
my $updated = " Updated @ ".localtime();
print " ===>Updating backends/epoc/build/$name @ $n ... ";
open FILE, "$file";
my @lines = <FILE>;
close FILE;
# open FILE, ">$file~";
# print FILE @lines;
# close FILE;
my $onestr = join("",@lines);
$onestr =~ s/$a.*$b/$a$updated\n$output$b/s;
open FILE, ">$file";
print FILE $onestr;
close FILE;
print "done.\n";
$output = "";
}

78
backends/epoc/portdefs.h Normal file
View File

@ -0,0 +1,78 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
* Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
* Copyright (C) 2005 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header$
*/
#include <assert.h>
#include <stdarg.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <e32def.h>
#include <e32std.h>
#include <math.h>
// the place in Symbian FS where scummvm.ini & std***.txt are saved
#define SYMBIAN32_DOC_DIR "C:\\documents\\EScummVM\\" // includes final \\!
#define DISABLE_HQ_SCALERS // we only need 1x
// hack in some tricks to work around not having these fcns for Symbian
// and we _really_ don't wanna link with any other windows LIBC library!
#ifdef __GCC32__
#define snprintf(buf,len,args...) sprintf(buf,args)
#define vsnprintf snprintf
#else // WINS
// let's just blatantly ignore this for now and just get it to work :P but does n't work from the debug function
int inline scumm_snprintf (char *str, unsigned long n, char const *fmt, ...)
{
va_list args;
va_start(args, fmt);
vsprintf(str, fmt, args);
va_end(args);
return strlen(str);
}
#define snprintf scumm_snprintf
#define vsnprintf scumm_snprintf
#endif
// somehow nobody has this function...
#define hypot(a, b) sqrt((a)*(a) + (b)*(b))
// Symbian bsearch implementation is flawed
void inline *scumm_bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) {
size_t i;
for (i=0; i<nmemb; i++)
if (compar(key, (void*)((size_t)base + size * i)) == 0)
return (void*)((size_t)base + size * i);
return NULL;
}
#define bsearch scumm_bsearch