diff options
author | Lars Persson | 2005-06-21 20:19:39 +0000 |
---|---|---|
committer | Lars Persson | 2005-06-21 20:19:39 +0000 |
commit | 7bded41f194331f309388afa5a30035927655f5d (patch) | |
tree | 394c4111912f6bb328ef0c0669aa4f7e9335fe11 /backends/epoc | |
parent | fd8c94a2f372e64593657b1d02776d208af62bd0 (diff) | |
download | scummvm-rg350-7bded41f194331f309388afa5a30035927655f5d.tar.gz scummvm-rg350-7bded41f194331f309388afa5a30035927655f5d.tar.bz2 scummvm-rg350-7bded41f194331f309388afa5a30035927655f5d.zip |
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
Diffstat (limited to 'backends/epoc')
50 files changed, 3193 insertions, 0 deletions
diff --git a/backends/epoc/README b/backends/epoc/README new file mode 100644 index 0000000000..8c69a255e7 --- /dev/null +++ b/backends/epoc/README @@ -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 +
\ No newline at end of file diff --git a/backends/epoc/ScummApp.cpp b/backends/epoc/ScummApp.cpp new file mode 100644 index 0000000000..f4caa7ea33 --- /dev/null +++ b/backends/epoc/ScummApp.cpp @@ -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); +} + +///////////////////////////////////////////////////////////////////////////////////////////////// + + diff --git a/backends/epoc/ScummApp.h b/backends/epoc/ScummApp.h new file mode 100644 index 0000000000..af44952b16 --- /dev/null +++ b/backends/epoc/ScummApp.h @@ -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 diff --git a/backends/epoc/ScummVm.hrh b/backends/epoc/ScummVm.hrh new file mode 100644 index 0000000000..3eb4dab62d --- /dev/null +++ b/backends/epoc/ScummVm.hrh @@ -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 diff --git a/backends/epoc/SymbianOS.cpp b/backends/epoc/SymbianOS.cpp new file mode 100644 index 0000000000..55f52260a0 --- /dev/null +++ b/backends/epoc/SymbianOS.cpp @@ -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); +*/
\ No newline at end of file diff --git a/backends/epoc/SymbianOS.h b/backends/epoc/SymbianOS.h new file mode 100644 index 0000000000..abe72dc57d --- /dev/null +++ b/backends/epoc/SymbianOS.h @@ -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 diff --git a/backends/epoc/build/.placeholder b/backends/epoc/build/.placeholder new file mode 100644 index 0000000000..dcf4d34a62 --- /dev/null +++ b/backends/epoc/build/.placeholder @@ -0,0 +1 @@ +>> SumthinWicked *grins* <<
\ No newline at end of file diff --git a/backends/epoc/build/S60/BLD.INF b/backends/epoc/build/S60/BLD.INF new file mode 100644 index 0000000000..25d2d236ca --- /dev/null +++ b/backends/epoc/build/S60/BLD.INF @@ -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 diff --git a/backends/epoc/build/S60/EScummVMS60.rss b/backends/epoc/build/S60/EScummVMS60.rss new file mode 100644 index 0000000000..0d1fe28bde --- /dev/null +++ b/backends/epoc/build/S60/EScummVMS60.rss @@ -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";} + }; +} diff --git a/backends/epoc/build/S60/EScummVM_080.pkg b/backends/epoc/build/S60/EScummVM_080.pkg new file mode 100644 index 0000000000..51cb3e394c --- /dev/null +++ b/backends/epoc/build/S60/EScummVM_080.pkg @@ -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.
\ No newline at end of file diff --git a/backends/epoc/build/S60/EScummVM_S60.mmp b/backends/epoc/build/S60/EScummVM_S60.mmp new file mode 100644 index 0000000000..9fe8e1e9c7 --- /dev/null +++ b/backends/epoc/build/S60/EScummVM_S60.mmp @@ -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 + diff --git a/backends/epoc/build/S60/EScummVM_S60_App.mmp b/backends/epoc/build/S60/EScummVM_S60_App.mmp new file mode 100644 index 0000000000..0664320027 --- /dev/null +++ b/backends/epoc/build/S60/EScummVM_S60_App.mmp @@ -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
\ No newline at end of file diff --git a/backends/epoc/build/S60/ScummVMApp.cpp b/backends/epoc/build/S60/ScummVMApp.cpp new file mode 100644 index 0000000000..1702a88ba7 --- /dev/null +++ b/backends/epoc/build/S60/ScummVMApp.cpp @@ -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; +} diff --git a/backends/epoc/build/S60/ScummVMApp.h b/backends/epoc/build/S60/ScummVMApp.h new file mode 100644 index 0000000000..9cf8623835 --- /dev/null +++ b/backends/epoc/build/S60/ScummVMApp.h @@ -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 diff --git a/backends/epoc/build/S80/BLD.INF b/backends/epoc/build/S80/BLD.INF new file mode 100644 index 0000000000..72207eb096 --- /dev/null +++ b/backends/epoc/build/S80/BLD.INF @@ -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 diff --git a/backends/epoc/build/S80/EScummVM_080.pkg b/backends/epoc/build/S80/EScummVM_080.pkg new file mode 100644 index 0000000000..51cb3e394c --- /dev/null +++ b/backends/epoc/build/S80/EScummVM_080.pkg @@ -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.
\ No newline at end of file diff --git a/backends/epoc/build/S80/EScummVM_S80.mmp b/backends/epoc/build/S80/EScummVM_S80.mmp new file mode 100644 index 0000000000..4b12e269b7 --- /dev/null +++ b/backends/epoc/build/S80/EScummVM_S80.mmp @@ -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 + diff --git a/backends/epoc/build/S80/EScummVM_S80_App.mmp b/backends/epoc/build/S80/EScummVM_S80_App.mmp new file mode 100644 index 0000000000..05f14b703a --- /dev/null +++ b/backends/epoc/build/S80/EScummVM_S80_App.mmp @@ -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
\ No newline at end of file diff --git a/backends/epoc/build/S80/EScummvmS80.rss b/backends/epoc/build/S80/EScummvmS80.rss new file mode 100644 index 0000000000..1f116a7bf7 --- /dev/null +++ b/backends/epoc/build/S80/EScummvmS80.rss @@ -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";} + }; +} diff --git a/backends/epoc/build/S80/ScummVMApp.cpp b/backends/epoc/build/S80/ScummVMApp.cpp new file mode 100644 index 0000000000..f0e0860216 --- /dev/null +++ b/backends/epoc/build/S80/ScummVMApp.cpp @@ -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; +} diff --git a/backends/epoc/build/S80/ScummVMApp.h b/backends/epoc/build/S80/ScummVMApp.h new file mode 100644 index 0000000000..71732f2ec0 --- /dev/null +++ b/backends/epoc/build/S80/ScummVMApp.h @@ -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 diff --git a/backends/epoc/build/S90/BLD.INF b/backends/epoc/build/S90/BLD.INF new file mode 100644 index 0000000000..62c19024cb --- /dev/null +++ b/backends/epoc/build/S90/BLD.INF @@ -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 diff --git a/backends/epoc/build/S90/EScummVM_080.pkg b/backends/epoc/build/S90/EScummVM_080.pkg new file mode 100644 index 0000000000..51cb3e394c --- /dev/null +++ b/backends/epoc/build/S90/EScummVM_080.pkg @@ -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.
\ No newline at end of file diff --git a/backends/epoc/build/S90/EScummvmS90.rss b/backends/epoc/build/S90/EScummvmS90.rss new file mode 100644 index 0000000000..1f116a7bf7 --- /dev/null +++ b/backends/epoc/build/S90/EScummvmS90.rss @@ -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";} + }; +} diff --git a/backends/epoc/build/S90/EScummvm_S90.mmp b/backends/epoc/build/S90/EScummvm_S90.mmp new file mode 100644 index 0000000000..6327b93c74 --- /dev/null +++ b/backends/epoc/build/S90/EScummvm_S90.mmp @@ -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 + diff --git a/backends/epoc/build/S90/EScummvm_S90_App.mmp b/backends/epoc/build/S90/EScummvm_S90_App.mmp new file mode 100644 index 0000000000..b070a317e1 --- /dev/null +++ b/backends/epoc/build/S90/EScummvm_S90_App.mmp @@ -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
\ No newline at end of file diff --git a/backends/epoc/build/S90/ScummVMApp.cpp b/backends/epoc/build/S90/ScummVMApp.cpp new file mode 100644 index 0000000000..95ab6d3b84 --- /dev/null +++ b/backends/epoc/build/S90/ScummVMApp.cpp @@ -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; +} diff --git a/backends/epoc/build/S90/ScummVMApp.h b/backends/epoc/build/S90/ScummVMApp.h new file mode 100644 index 0000000000..71732f2ec0 --- /dev/null +++ b/backends/epoc/build/S90/ScummVMApp.h @@ -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 diff --git a/backends/epoc/build/ScummVmAif.rss b/backends/epoc/build/ScummVmAif.rss new file mode 100644 index 0000000000..cc4424f7cb --- /dev/null +++ b/backends/epoc/build/ScummVmAif.rss @@ -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; + } + + + diff --git a/backends/epoc/build/UIQ/BLD.INF b/backends/epoc/build/UIQ/BLD.INF new file mode 100644 index 0000000000..870189a4d0 --- /dev/null +++ b/backends/epoc/build/UIQ/BLD.INF @@ -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 diff --git a/backends/epoc/build/UIQ/EScummVM.cer b/backends/epoc/build/UIQ/EScummVM.cer new file mode 100644 index 0000000000..8a366f1cab --- /dev/null +++ b/backends/epoc/build/UIQ/EScummVM.cer @@ -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----- diff --git a/backends/epoc/build/UIQ/EScummVM.key b/backends/epoc/build/UIQ/EScummVM.key new file mode 100644 index 0000000000..9002105043 --- /dev/null +++ b/backends/epoc/build/UIQ/EScummVM.key @@ -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----- diff --git a/backends/epoc/build/UIQ/EScummVM.rss b/backends/epoc/build/UIQ/EScummVM.rss new file mode 100644 index 0000000000..470e819220 --- /dev/null +++ b/backends/epoc/build/UIQ/EScummVM.rss @@ -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";} + }; +} diff --git a/backends/epoc/build/UIQ/EScummVM_080.pkg b/backends/epoc/build/UIQ/EScummVM_080.pkg new file mode 100644 index 0000000000..7dabed2d08 --- /dev/null +++ b/backends/epoc/build/UIQ/EScummVM_080.pkg @@ -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.
\ No newline at end of file diff --git a/backends/epoc/build/UIQ/EScummVM_UIQ.mmp b/backends/epoc/build/UIQ/EScummVM_UIQ.mmp new file mode 100644 index 0000000000..c0ad2e1bef --- /dev/null +++ b/backends/epoc/build/UIQ/EScummVM_UIQ.mmp @@ -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 diff --git a/backends/epoc/build/epoc-libmad.zip b/backends/epoc/build/epoc-libmad.zip Binary files differnew file mode 100644 index 0000000000..dec1a8eb69 --- /dev/null +++ b/backends/epoc/build/epoc-libmad.zip diff --git a/backends/epoc/build/epoc-zlib.zip b/backends/epoc/build/epoc-zlib.zip Binary files differnew file mode 100644 index 0000000000..efae82d6b3 --- /dev/null +++ b/backends/epoc/build/epoc-zlib.zip diff --git a/backends/epoc/build/make.bat b/backends/epoc/build/make.bat new file mode 100644 index 0000000000..a6ea619763 --- /dev/null +++ b/backends/epoc/build/make.bat @@ -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 --------------------------------------------------- + diff --git a/backends/epoc/build/scummL.bmp b/backends/epoc/build/scummL.bmp Binary files differnew file mode 100644 index 0000000000..4cb8bd3228 --- /dev/null +++ b/backends/epoc/build/scummL.bmp diff --git a/backends/epoc/build/scummLm.bmp b/backends/epoc/build/scummLm.bmp Binary files differnew file mode 100644 index 0000000000..f4f35e48f2 --- /dev/null +++ b/backends/epoc/build/scummLm.bmp diff --git a/backends/epoc/build/scummS.bmp b/backends/epoc/build/scummS.bmp Binary files differnew file mode 100644 index 0000000000..457ef4d241 --- /dev/null +++ b/backends/epoc/build/scummS.bmp diff --git a/backends/epoc/build/scummSm.bmp b/backends/epoc/build/scummSm.bmp Binary files differnew file mode 100644 index 0000000000..9ddfee2a85 --- /dev/null +++ b/backends/epoc/build/scummSm.bmp diff --git a/backends/epoc/build/scummvm_base.mmp b/backends/epoc/build/scummvm_base.mmp new file mode 100644 index 0000000000..e7c0a5f3de --- /dev/null +++ b/backends/epoc/build/scummvm_base.mmp @@ -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 diff --git a/backends/epoc/build/scummvm_gob.mmp b/backends/epoc/build/scummvm_gob.mmp new file mode 100644 index 0000000000..c580f4bb0c --- /dev/null +++ b/backends/epoc/build/scummvm_gob.mmp @@ -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 diff --git a/backends/epoc/build/scummvm_queen.mmp b/backends/epoc/build/scummvm_queen.mmp new file mode 100644 index 0000000000..699a004f7b --- /dev/null +++ b/backends/epoc/build/scummvm_queen.mmp @@ -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 diff --git a/backends/epoc/build/scummvm_scumm.mmp b/backends/epoc/build/scummvm_scumm.mmp new file mode 100644 index 0000000000..9760985f2a --- /dev/null +++ b/backends/epoc/build/scummvm_scumm.mmp @@ -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 diff --git a/backends/epoc/build/scummvm_simon.mmp b/backends/epoc/build/scummvm_simon.mmp new file mode 100644 index 0000000000..ed9fbd8679 --- /dev/null +++ b/backends/epoc/build/scummvm_simon.mmp @@ -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 diff --git a/backends/epoc/build/scummvm_sky.mmp b/backends/epoc/build/scummvm_sky.mmp new file mode 100644 index 0000000000..985b0f8d0b --- /dev/null +++ b/backends/epoc/build/scummvm_sky.mmp @@ -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 diff --git a/backends/epoc/build/updateMMPs.pl b/backends/epoc/build/updateMMPs.pl new file mode 100644 index 0000000000..fc7108c3e6 --- /dev/null +++ b/backends/epoc/build/updateMMPs.pl @@ -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 = ""; +} + +
\ No newline at end of file diff --git a/backends/epoc/portdefs.h b/backends/epoc/portdefs.h new file mode 100644 index 0000000000..2f993c7e4e --- /dev/null +++ b/backends/epoc/portdefs.h @@ -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 + |