diff options
author | Eugene Sandulenko | 2008-01-12 22:30:09 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2008-01-12 22:30:09 +0000 |
commit | af486e05241ac4022e851a4e8c6ac11be4dd28cc (patch) | |
tree | c00585b91ce0d1224eea28965b1f43cc41d2a772 | |
parent | 323aafcf78c27f03250e17499787d61797228b42 (diff) | |
download | scummvm-rg350-af486e05241ac4022e851a4e8c6ac11be4dd28cc.tar.gz scummvm-rg350-af486e05241ac4022e851a4e8c6ac11be4dd28cc.tar.bz2 scummvm-rg350-af486e05241ac4022e851a4e8c6ac11be4dd28cc.zip |
Patch #1869152: "MAEMO port preliminary patch"
svn-id: r30458
-rw-r--r-- | backends/platform/maemo/scummvm-0.11.0-maemo.patch | 702 |
1 files changed, 702 insertions, 0 deletions
diff --git a/backends/platform/maemo/scummvm-0.11.0-maemo.patch b/backends/platform/maemo/scummvm-0.11.0-maemo.patch new file mode 100644 index 0000000000..35cb162a2b --- /dev/null +++ b/backends/platform/maemo/scummvm-0.11.0-maemo.patch @@ -0,0 +1,702 @@ +diff -Naur scummvm-0.11.orig/debian/changelog scummvm-0.11/debian/changelog +--- scummvm-0.11.orig/debian/changelog 1970-01-01 01:00:00.000000000 +0100 ++++ scummvm-0.11/debian/changelog 2008-01-12 22:26:50.000000000 +0100 +@@ -0,0 +1,69 @@ ++scummvm (0.11.0-0) unstable; urgency=low ++ ++ * upstream 0.11 release ++ ++ -- Frantisek Dufka <dufkaf@seznam.cz> Sat, 12 Jan 2008 22:26:34 +0100 ++scummvm (0.10.0-5) unstable; urgency=low ++ ++ * fixed for chinook, menu selection postinst script added ++ ++ -- Frantisek Dufka <dufkaf@seznam.cz> Thu, 25 Oct 2007 09:56:32 +0200 ++scummvm (0.10.0-4) unstable; urgency=low ++ ++ * AGI - added pred.dic to DATA_PATH (=/usr/share/scummvm) to enable ++ predictive input ++ ++ -- Frantisek Dufka <dufkaf@seznam.cz> Tue, 28 Aug 2007 09:58:29 +0200 ++scummvm (0.10.0-3) unstable; urgency=low ++ ++ * SCUMM - added mapping also for key up events (may fix right button in FT?) ++ * SWORD2 - added right button press mapping (not tested) ++ ++ -- Frantisek Dufka <dufkaf@seznam.cz> Mon, 20 Aug 2007 22:39:07 +0200 ++scummvm (0.10.0-2) unstable; urgency=low ++ ++ * Future Wars - add mapping for left/up/down/right,zoom +/- ++ * fix SDL backend to set mouse position on button down event ++ as we may not have mousemove events with touchscreen ++ ++ -- Frantisek Dufka <dufkaf@seznam.cz> Fri, 13 Jul 2007 09:56:37 +0200 ++scummvm (0.10.0-1) unstable; urgency=low ++ ++ * mapped F10 in Future Wars to menu key ++ ++ -- Frantisek Dufka <dufkaf@seznam.cz> Wed, 11 Jul 2007 22:20:00 +0200 ++scummvm (0.10.0) unstable; urgency=low ++ ++ * upstream 0.10 release, enabled FLAC too ++ ++ -- Frantisek Dufka <dufkaf@seznam.cz> Wed, 4 Jul 2007 12:48:48 +0200 ++scummvm (0.9.1-1) unstable; urgency=low ++ ++ * 0.9.1 mapped right mouse button in sword1 ++ ++ -- Frantisek Dufka <dufkaf@seznam.cz> Mon, 18 Jun 2007 21:15:31 +0200 ++scummvm (0.9.1) unstable; urgency=low ++ ++ * 0.9.1 upstream release ++ ++ -- Frantisek Dufka <dufkaf@seznam.cz> Wed, 1 Nov 2006 20:40:51 +0100 ++scummvm (0.9.0-3) unstable; urgency=low ++ ++ * merged fixes in 0.9.0 upstream branch ++ ++ -- Frantisek Dufka <dufkaf@seznam.cz> Mon, 9 Oct 2006 15:40:59 +0200 ++scummvm (0.9.0-2) unstable; urgency=low ++ ++ * merged fixes in 0.9.0 upstream branch ++ ++ -- Frantisek Dufka <dufkaf@seznam.cz> Sat, 12 Aug 2006 20:10:47 +0200 ++scummvm (0.9.0-1) unstable; urgency=low ++ ++ * merged changes in 0.9.0 upstream release ++ ++ -- Frantisek Dufka <dufkaf@seznam.cz> Sun, 23 Jul 2006 22:29:51 +0200 ++scummvm (0.9.0) unstable; urgency=low ++ ++ * 0.9.0 upstream release ++ ++ -- Frantisek Dufka <dufkaf@seznam.cz> Tue, 27 Jun 2006 20:30:54 +0200 +diff -Naur scummvm-0.11.orig/debian/compat scummvm-0.11/debian/compat +--- scummvm-0.11.orig/debian/compat 1970-01-01 01:00:00.000000000 +0100 ++++ scummvm-0.11/debian/compat 2008-01-06 20:45:14.000000000 +0100 +@@ -0,0 +1 @@ ++4 +diff -Naur scummvm-0.11.orig/debian/control scummvm-0.11/debian/control +--- scummvm-0.11.orig/debian/control 1970-01-01 01:00:00.000000000 +0100 ++++ scummvm-0.11/debian/control 2008-01-06 20:45:14.000000000 +0100 +@@ -0,0 +1,47 @@ ++Source: scummvm ++Section: user/games ++Priority: optional ++Maintainer: Frantisek Dufka <dufkaf@seznam.cz> ++Build-Depends: debhelper (>> 4.0.0), libsdl1.2-dev ++ ++Standards-Version: 3.6.1.1 ++Package: scummvm ++Pre-Depends: maemo-select-menu-location ++Depends: ${shlibs:Depends} ++Architecture: any ++Section: user/games ++Description: free implementation of LucasArts' S.C.U.M.M interpreter ++ ScummVM is a virtual machine for classic graphical adventure games. ++ This package does not contain any actual games. ++XBS-Maemo-Icon-26: ++ iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAC/VBMVEUICwcH ++ CQUKDAgLDQoMDwsOEAwREAUPEQ0QEg8PFQoRExAUEwoVFAwPGAcTFBIRFg0W ++ FQ0XFg4RGgkTGA8XGQsTGwwUHA0aGRIWGxMXHQkVHQ8aGhMbGxQcHQocGxUZ ++ HwsYIgcfHxgeIRUbJQwhIBofJAweJwgfKQocKwwgKgshKw0gLggfLg8jLQ8n ++ LwwpLhEmMwcoMRQjNgotLCYmNwQlNwwqOBQtOQgsOQ8xNh4sPQswNyQqQAUw ++ PAsuOiAsQgcwOyIqRgIsSAQvRgs0PyY1Rg06RA0+PDAwSwg2RxUzTQE4TQsz ++ VAc/SSo6VAk4VwE6VRM2XAVAUC85XwlJVCNEXQo+YwJGXwxMWS1JXC5AagBI ++ awJUagRIcQBSbwpHeAJTaD9OdwNXcwJKewZNfABacRlOfQBPfgBQfwBMggBW ++ fgBNgwNSgQJOhAVecUJjdSZefwNUiABZhgBjeDZieDxhezFQjQBgghZkhQ5j ++ iQJUkAZcixJmgDZnhCtckQpblgBekw5clwBqgkthlQBdmAJriz90hz5omgBs ++ mAhxlgd0mAB5lgBpnA16khdzmAtxnABooQBtnwB4jUpzngBkpQR5nQF8j0Vr ++ pQduoRZ4nRR3k014oQBzpAt8oAh/ogBvqA5trACBmypwqRF1pw+GogCAow+D ++ pQB8phJ/nUNurxh0rRd4rwmHqQd6qDOArwCJqwyDsgCMrgB8ryiFtAB7uQN8 ++ sDKBuAWOsBWJqFR8ti2IsiOSswaBuRt6vxCOtgqXsgePrjR9wQCFuw2KuQyB ++ uSeSuACEux6JuR2OvACAxACEvCuSuhOHujSMwQGTtiqfuACRvwGOvRWHuz2T ++ wASPwwmYvwaLvTebuxiWvhmSwBqZwAmNu0aevgiKvkCVviaMvE6bwQycuTid ++ vhylvQyZwB2cwg+QywCawR6fwB+bwyGI0gaewCudxCOjwyOT1ACmwjiX0g+j ++ xTqmxzOd1gCV0i6kyyuoyTah1Sif2h6tzjukzF+pz1uq1Eeg2Uml3U1kaLAB ++ AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAHrSURBVCjPY2BAAC5ubkFB ++ BkzAzggDfKgSUFEmKCmOIsPvktA0aVpbSYQ+FwsjkwpMBsi2m/X7z89v3759 ++ +ngg1UqIlZEVponJYcW/rw9unH/04u2bc0vbo+WZWGCahEv/fj+6Yc2SZfv3 ++ b5w6+eACHVYWmCazMz+unN44b3ZfV3dnx5yDiaKsUAOZGD2/fL58+PSGg3Gu ++ buEVWyZacLCzw6S8X324fOHqibMxWpKy5okBIjAZoNOt9r47e+HOnafbe/ND ++ DNWkOGAyDKwsCtXPTly4eufqm+fvHy4M1RRggsnJMLI6z9x99Oqtx7cuPP/2 ++ ele5LjtCGyObbcHcDfuevHn+5s319RuSpOByrEwcwsqhlcvXHbp38+LxiXP6 ++ DeBSTKzWvkrCun5Zq04dO7S6p67ZHibFziiRt6PYUk5YtfbUqSMTGnKyHaFS ++ rMDA3fHr7tqayKDWa0dWVmXHp5lCpRgZ2QI2HTl25NLt+1t3rppRFJ8SrwGX ++ 4g9rmbJo0cpVqxZNaK5OS0nzF4NLMWkHZ1TVN9bXlxXmAo2L0uNgZITaxcjI ++ axAYH5+RATQrPtZHk5udA+Z2cIpQN3Hy8vOwMVLmYGTidoenDSawLAsnJz8L ++ kMUiY4ySpviYoKmKRVAcIyXKyIiLyygi+ADqVqrAkApevwAAAABJRU5ErkJg ++ gg== +diff -Naur scummvm-0.11.orig/debian/copyright scummvm-0.11/debian/copyright +--- scummvm-0.11.orig/debian/copyright 1970-01-01 01:00:00.000000000 +0100 ++++ scummvm-0.11/debian/copyright 2008-01-12 22:40:37.000000000 +0100 +@@ -0,0 +1,20 @@ ++ScummVM was debianized by Bastien Nocera <hadess@hadess.net> the 5th Apr 2002. ++It was adopted by Tore Anderson <tore@linpro.no> the 4th Oct 2002. ++Packaged for the Maemo platform by Tomas Junnoen <tomas@fs-security.com> Oct 2005 ++Since 0.8.2 packaging for Maemo done by Frantisek Dufka <dufkaf@seznam.cz> ++ ++It was downloaded from <http://www.scummvm.org/>. ++ ++Upstream Authors: see AUTHORS file of the ScummVM source distribution. ++ ++Copyright: ++ ++ 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, or (at your option) any ++ later version. ++ ++ On Debian GNU/Linux systems, the complete text of the GNU General ++ Public License can be found in `/usr/share/common-licenses/GPL'. ++ ++This copyright also applies to the Debian-related build scripts. +diff -Naur scummvm-0.11.orig/debian/files scummvm-0.11/debian/files +--- scummvm-0.11.orig/debian/files 1970-01-01 01:00:00.000000000 +0100 ++++ scummvm-0.11/debian/files 2008-01-12 22:27:20.000000000 +0100 +@@ -0,0 +1 @@ ++scummvm_0.11.0-0_armel.deb user/games optional +diff -Naur scummvm-0.11.orig/debian/postinst scummvm-0.11/debian/postinst +--- scummvm-0.11.orig/debian/postinst 1970-01-01 01:00:00.000000000 +0100 ++++ scummvm-0.11/debian/postinst 2008-01-06 20:45:14.000000000 +0100 +@@ -0,0 +1,3 @@ ++#! /bin/sh ++maemo-select-menu-location scummvm.desktop tana_fi_games ++exit 0 +diff -Naur scummvm-0.11.orig/debian/rules scummvm-0.11/debian/rules +--- scummvm-0.11.orig/debian/rules 1970-01-01 01:00:00.000000000 +0100 ++++ scummvm-0.11/debian/rules 2008-01-11 22:16:49.000000000 +0100 +@@ -0,0 +1,49 @@ ++#!/usr/bin/make -f ++ ++build: scummvm ++ ++scummvm: ++ dh_testdir ++# CXXFLAGS="-Os -mcpu=arm926ej-s -fomit-frame-pointer -DMAEMO_SDL" ./configure --host=arm-linux --prefix=/usr --disable-debug --disable-mt32emu --disable-hq-scalers --with-tremor-prefix=/usr --enable-tremor --with-zlib-prefix=/usr --enable-zlib --with-mad-prefix=/usr --enable-mad --enable-flac --disable-fluidsynth ++## --enable-plugins --disable-scumm-7-8 ++ $(MAKE) ++ ++clean: ++ dh_testdir ++ dh_testroot ++ -$(MAKE) distclean ++ dh_clean ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean ++ dh_installdirs ++ install -m0755 scummvm debian/scummvm/usr/games/scummvm.bin ++ install -m0755 dists/maemo/scummvm.wrapper debian/scummvm/usr/games/scummvm ++ install -m0644 dists/maemo/scummvm.desktop debian/scummvm/usr/share/applications/hildon ++ install -m0644 icons/scummvm.xpm debian/scummvm/usr/share/icons ++# install -m0644 -d debian/scummvm/usr/lib/scummvm ++# install -m0644 plugins/lib*.so debian/scummvm/usr/lib/scummvm ++ install -m0644 -d debian/scummvm/usr/share/scummvm ++ install -m0644 dists/pred.dic debian/scummvm/usr/share/scummvm ++# install -m0644 gui/themes/modern.ini gui/themes/modern.zip gui/themes/classic080.ini debian/scummvm/usr/share/scummvm ++ ++binary: binary-arch ++ ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installchangelogs NEWS ++ dh_link ++ dh_strip ++ dh_fixperms ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary-indep: ++ ++.PHONY: build clean binary install binary-arch binary-indep +diff -Naur scummvm-0.11.orig/debian/scummvm.dirs scummvm-0.11/debian/scummvm.dirs +--- scummvm-0.11.orig/debian/scummvm.dirs 1970-01-01 01:00:00.000000000 +0100 ++++ scummvm-0.11/debian/scummvm.dirs 2008-01-06 20:45:14.000000000 +0100 +@@ -0,0 +1,3 @@ ++usr/games ++usr/share/icons ++usr/share/applications/hildon +\ No newline at end of file +diff -Naur scummvm-0.11.orig/debian/scummvm.links scummvm-0.11/debian/scummvm.links +--- scummvm-0.11.orig/debian/scummvm.links 1970-01-01 01:00:00.000000000 +0100 ++++ scummvm-0.11/debian/scummvm.links 2008-01-06 20:45:14.000000000 +0100 +@@ -0,0 +1 @@ ++/var/lib/install/usr/share/applications/scummvm.desktop /etc/others-menu/extra_applications/scummvm.desktop +diff -Naur scummvm-0.11.orig/debian/scummvm.substvars scummvm-0.11/debian/scummvm.substvars +--- scummvm-0.11.orig/debian/scummvm.substvars 1970-01-01 01:00:00.000000000 +0100 ++++ scummvm-0.11/debian/scummvm.substvars 2008-01-12 22:27:19.000000000 +0100 +@@ -0,0 +1 @@ ++shlibs:Depends=libc6 (>= 2.3.5-1), libgcc1 (>= 1:3.4.4), libsdl1.2, libstdc++6 (>= 3.4.4), zlib1g (>= 1:1.2.1) +--- scummvm-0.11.orig/engines/sword1/sword1.cpp 2008-01-12 00:06:35.000000000 +0100 ++++ scummvm-0.11/engines/sword1/sword1.cpp 2008-01-06 21:06:26.000000000 +0100 +@@ -722,8 +722,21 @@ + while (_eventMan->pollEvent(event)) { + switch (event.type) { + case Common::EVENT_KEYDOWN: ++#ifdef MAEMO_SDL ++// map center to right button ++ if (event.kbd.keycode == 13) { ++ _mouseState |= BS1R_BUTTON_DOWN; ++ } else ++#endif + _keyPressed = event.kbd; + break; ++#ifdef MAEMO_SDL ++ case Common::EVENT_KEYUP: ++ if (event.kbd.keycode == 13) { ++ _mouseState |= BS1R_BUTTON_UP; ++ } ++ break; ++#endif + case Common::EVENT_MOUSEMOVE: + _mouseCoord = event.mouse; + break; +--- scummvm-0.11.orig/engines/sword2/sword2.cpp 2008-01-12 00:06:35.000000000 +0100 ++++ scummvm-0.11/engines/sword2/sword2.cpp 2008-01-06 20:50:57.000000000 +0100 +@@ -552,11 +552,28 @@ + _gameSpeed = 1; + } + } ++#ifdef MAEMO_SDL ++// map center to right button ++ else if (event.kbd.keycode == 13 && !(_inputEventFilter & RD_RIGHTBUTTONDOWN)) { ++ _mouseEvent.pending = true; ++ _mouseEvent.buttons = RD_RIGHTBUTTONDOWN; ++ } else ++#endif + if (!(_inputEventFilter & RD_KEYDOWN)) { + _keyboardEvent.pending = true; + _keyboardEvent.kbd = event.kbd; + } ++ ++ break; ++#ifdef MAEMO_SDL ++ case Common::EVENT_KEYUP: ++// map center to right button ++ if (event.kbd.keycode == 13 && !(_inputEventFilter & RD_RIGHTBUTTONUP)) { ++ _mouseEvent.pending = true; ++ _mouseEvent.buttons = RD_RIGHTBUTTONUP; ++ } + break; ++#endif + case Common::EVENT_LBUTTONDOWN: + if (!(_inputEventFilter & RD_LEFTBUTTONDOWN)) { + _mouseEvent.pending = true; +--- scummvm-0.11.orig/engines/scumm/input.cpp 2008-01-12 00:06:35.000000000 +0100 ++++ scummvm-0.11/engines/scumm/input.cpp 2008-01-07 13:50:01.000000000 +0100 +@@ -89,6 +89,20 @@ + _keyPressed = event.kbd; + } + ++#ifdef MAEMO_SDL ++ switch (_keyPressed.keycode) { ++ case Common::KEYCODE_F8: _fastMode ^= 1; break ;// Map F8 (zoom out) to toggle fast mode ++ case Common::KEYCODE_F4: _keyPressed.keycode = Common::KEYCODE_F5; _keyPressed.ascii=Common::ASCII_F5 ; break; // map F4 to F5 (menu key) ++ case Common::KEYCODE_RETURN: _keyPressed.keycode = Common::KEYCODE_TAB; _keyPressed.ascii=Common::ASCII_TAB ; break; // map Select (return) to Tab (right mouse button) ++ case Common::KEYCODE_F7: if(_game.id == GID_MONKEY2){ _keyPressed.ascii = '1';_keyPressed.keycode=Common::KEYCODE_1;} break; // map F7 (zoom in) to 1 (to bypass Monkey2 copy protection) ++ default: ; ++ } ++ if (_game.version < 7) switch(event.kbd.keycode){ ++ case Common::KEYCODE_UP: _keyPressed.ascii = ' '; _keyPressed.keycode=Common::KEYCODE_SPACE; break ;// map Up to space (pause game) ++ case Common::KEYCODE_DOWN: _keyPressed.ascii ='.'; _keyPressed.keycode=Common::KEYCODE_PERIOD; break ;// map Down to . (skip one line of dialog) ++ default: ; ++ } ++#endif + if (_game.heversion >= 80) { + // FIXME: Move this code & VAR_KEY_STATE to class ScummEngine_v80he + +@@ -131,6 +145,21 @@ + break; + + case Common::EVENT_KEYUP: ++#ifdef MAEMO_SDL ++ // map keyup with similar rules as keydown ++ switch (event.kbd.keycode) { ++ ++ case Common::KEYCODE_F4: event.kbd.keycode = Common::KEYCODE_F5; event.kbd.ascii=Common::ASCII_F5 ; break; // map F4 to F5 (menu key) ++ case Common::KEYCODE_RETURN: event.kbd.keycode = Common::KEYCODE_TAB; event.kbd.ascii=Common::ASCII_TAB ; break; // map Select (return) to Tab (right mouse button) ++ case Common::KEYCODE_F7: if(_game.id == GID_MONKEY2){ event.kbd.ascii = '1';event.kbd.keycode=Common::KEYCODE_1;} break; // map F7 (zoom in) to 1 (to bypass Monkey2 copy protection) ++ default: ; ++ } ++ if (_game.version < 7) switch(event.kbd.keycode){ ++ case Common::KEYCODE_UP: event.kbd.ascii = ' '; event.kbd.keycode=Common::KEYCODE_SPACE; break ;// map Up to space (pause game) ++ case Common::KEYCODE_DOWN: event.kbd.ascii ='.'; event.kbd.keycode=Common::KEYCODE_PERIOD; break ;// map Down to . (skip one line of dialog) ++ default: ; ++ } ++#endif + if (event.kbd.ascii >= 512) { + debugC(DEBUG_GENERAL, "keyPressed > 512 (%d)", event.kbd.ascii); + } else { +@@ -480,9 +509,10 @@ + if (VAR_SAVELOAD_SCRIPT != 0xFF && _currentRoom != 0) + runScript(VAR(VAR_SAVELOAD_SCRIPT2), 0, 0, 0); + ++#ifndef MAEMO_SDL + } else if (restartKeyEnabled && (lastKeyHit.keycode == Common::KEYCODE_F8 && lastKeyHit.flags == 0)) { + confirmRestartDialog(); +- ++#endif + } else if (pauseKeyEnabled && (lastKeyHit.keycode == Common::KEYCODE_SPACE && lastKeyHit.flags == 0)) { + pauseGame(); + +--- scummvm-0.11.orig/engines/scumm/dialogs.cpp 2008-01-12 00:06:35.000000000 +0100 ++++ scummvm-0.11/engines/scumm/dialogs.cpp 2008-01-06 21:52:30.000000000 +0100 +@@ -818,7 +818,11 @@ + } + + void PauseDialog::handleKeyDown(Common::KeyState state) { ++#ifdef MAEMO_SDL ++ if (state.ascii == ' ' || state.keycode==273 ) // Close pause dialog if space or UP key is pressed ++#else + if (state.ascii == ' ') // Close pause dialog if space key is pressed ++#endif + close(); + else + ScummDialog::handleKeyDown(state); +@@ -885,12 +889,19 @@ + } + + void ValueDisplayDialog::handleKeyDown(Common::KeyState state) { ++#ifdef MAEMO_SDL ++ if (state.ascii == _incKey || state.ascii == _decKey || state.keycode == 275 || state.keycode == 276) { ++ if ((state.ascii == _incKey || state.keycode == 275 ) && _value < _max) ++ _value++; ++ else if ((state.ascii == _decKey || state.keycode == 276) && _value > _min) ++ _value--; ++#else + if (state.ascii == _incKey || state.ascii == _decKey) { + if (state.ascii == _incKey && _value < _max) + _value++; + else if (state.ascii == _decKey && _value > _min) + _value--; +- ++#endif + setResult(_value); + _timer = getMillis() + kDisplayDelay; + draw(); +--- scummvm-0.11.orig/engines/touche/touche.cpp 2008-01-12 00:06:35.000000000 +0100 ++++ scummvm-0.11/engines/touche/touche.cpp 2008-01-10 23:09:41.000000000 +0100 +@@ -294,6 +294,13 @@ + _flagsTable[611] = 1; + break; + case Common::EVENT_KEYDOWN: ++#ifdef MAEMO_SDL ++ if (event.kbd.keycode == 13) { // select button simulates righ button toggle ++ _inp_rightMouseButtonPressed=!_inp_rightMouseButtonPressed; ++ } else { ++ _inp_rightMouseButtonPressed = false; ++ } ++#endif + if (!handleKeyEvents) { + break; + } +@@ -302,15 +309,25 @@ + if (_displayQuitDialog) { + _flagsTable[611] = displayQuitDialog(); + } ++#ifdef MAEMO_SDL ++ } else if (event.kbd.keycode == Common::KEYCODE_F4) { ++#else + } else if (event.kbd.keycode == Common::KEYCODE_F5) { ++#endif + if (_flagsTable[618] == 0 && !_hideInventoryTexts) { + handleOptions(0); + } ++#ifdef MAEMO_SDL ++ } else if (event.kbd.keycode == Common::KEYCODE_F8) { ++ _fastWalkMode = !_fastWalkMode; ++ } ++#else + } else if (event.kbd.keycode == Common::KEYCODE_F9) { + _fastWalkMode = true; + } else if (event.kbd.keycode == Common::KEYCODE_F10) { + _fastWalkMode = false; + } ++#endif + if (event.kbd.flags == Common::KBD_CTRL) { + if (event.kbd.keycode == Common::KEYCODE_d) { + // enable debugging stuff ? +@@ -333,6 +350,10 @@ + case Common::EVENT_LBUTTONDOWN: + _inp_leftMouseButtonPressed = true; + break; ++ case Common::EVENT_LBUTTONUP: ++ // this is done elsewhere _inp_leftMouseButtonPressed = false; ++ _inp_rightMouseButtonPressed = false; // simulate rbutton up to close menu ++ break; + case Common::EVENT_RBUTTONDOWN: + _inp_rightMouseButtonPressed = true; + break; +--- scummvm-0.11.orig/engines/sky/sky.cpp 2008-01-12 00:06:35.000000000 +0100 ++++ scummvm-0.11/engines/sky/sky.cpp 2008-01-06 22:31:44.000000000 +0100 +@@ -524,6 +524,17 @@ + switch (event.type) { + case Common::EVENT_KEYDOWN: + _keyPressed = event.kbd; ++#ifdef MAEMO_SDL ++ // Maemo platform keybindings ++ if (_keyPressed.keycode == Common::KEYCODE_F4) // Map F4 (menu) to F5 (access main menu) ++ _keyPressed.keycode = Common::KEYCODE_F5; ++ if (_keyPressed.ascii == 13) // Map Select=Enter to right mouse button ++ _skyMouse->buttonPressed(1); ++ if (_keyPressed.keycode == Common::KEYCODE_F8) // Map F8 (zoom out) to toggle fast mode ++ _fastMode ^= 1; ++ if (_keyPressed.keycode == Common::KEYCODE_DOWN) // Map Down to . (skip one line of dialog) ++ _keyPressed.ascii = '.'; ++#endif + break; + case Common::EVENT_MOUSEMOVE: + if (!(_systemVars.systemFlags & SF_MOUSE_LOCKED)) +--- scummvm-0.11.orig/engines/gob/util.cpp 2008-01-12 00:06:35.000000000 +0100 ++++ scummvm-0.11/engines/gob/util.cpp 2008-01-06 20:52:51.000000000 +0100 +@@ -107,6 +107,12 @@ + _mouseButtons &= ~2; + break; + case Common::EVENT_KEYDOWN: ++#ifdef MAEMO_SDL ++ if (event.kbd.keycode==285){ ++ _mouseButtons |= 2; ++ break; ++ } ++#endif + if (event.kbd.flags == Common::KBD_CTRL) { + if (event.kbd.keycode == Common::KEYCODE_f) + _fastMode ^= 1; +@@ -117,6 +123,10 @@ + addKeyToBuffer(event.kbd); + break; + case Common::EVENT_KEYUP: ++#ifdef MAEMO_SDL ++ if (event.kbd.keycode==285) ++ _mouseButtons &= ~2; ++#endif + break; + case Common::EVENT_QUIT: + _vm->_quitRequested = true; +--- scummvm-0.11.orig/engines/lure/menu.cpp 2008-01-12 00:06:35.000000000 +0100 ++++ scummvm-0.11/engines/lure/menu.cpp 2008-01-07 21:07:54.000000000 +0100 +@@ -34,7 +34,7 @@ + #include "lure/events.h" + #include "lure/lure.h" + +-#if defined(_WIN32_WCE) ++#if defined(_WIN32_WCE) || defined(MAEMO_SDL) + #define LURE_CLICKABLE_MENUS + #endif + +--- scummvm-0.11.orig/engines/queen/input.cpp 2008-01-12 00:06:35.000000000 +0100 ++++ scummvm-0.11/engines/queen/input.cpp 2008-01-06 21:29:58.000000000 +0100 +@@ -174,7 +174,11 @@ + } + break; + case Common::KEYCODE_F1: // use Journal ++#ifdef MAEMO_SDL ++ case Common::KEYCODE_F4: // menu key on N770 ++#else + case Common::KEYCODE_F5: ++#endif + if (_cutawayRunning) { + if (_canQuit) { + _keyVerb = VERB_USE_JOURNAL; +--- scummvm-0.11.orig/engines/cine/main_loop.cpp 2008-01-12 00:06:35.000000000 +0100 ++++ scummvm-0.11/engines/cine/main_loop.cpp 2008-01-12 21:39:53.000000000 +0100 +@@ -78,18 +78,27 @@ + mouseRight = 1; + } + break; ++#ifdef MAEMO_SDL ++ case Common::KEYCODE_UP: ++#else + case Common::KEYCODE_F1: ++#endif + if (allowPlayerInput) { + playerCommand = 0; // EXAMINE + makeCommandLine(); + } + break; ++#ifdef MAEMO_SDL ++ case Common::KEYCODE_DOWN: ++#else + case Common::KEYCODE_F2: ++#endif + if (allowPlayerInput) { + playerCommand = 1; // TAKE + makeCommandLine(); + } + break; ++#ifndef MAEMO_SDL + case Common::KEYCODE_F3: + if (allowPlayerInput) { + playerCommand = 2; // INVENTORY +@@ -102,13 +111,41 @@ + makeCommandLine(); + } + break; ++#else ++//map f3, f4 to f8,f7 = zoom +- keys, when in menu generate keypresses for savegame ++ case Common::KEYCODE_F8: ++ if (inMenu) ++ lastKeyStroke = '1'; ++ else if (allowPlayerInput) { ++ playerCommand = 2; // INVENTORY ++ makeCommandLine(); ++ } ++ break; ++ case Common::KEYCODE_F7: ++ if (inMenu) ++ lastKeyStroke = '2'; ++ else ++ if (allowPlayerInput) { ++ playerCommand = 3; // USE ++ makeCommandLine(); ++ } ++ break; ++#endif ++#ifdef MAEMO_SDL ++ case Common::KEYCODE_LEFT: ++#else + case Common::KEYCODE_F5: ++#endif + if (allowPlayerInput) { + playerCommand = 4; // ACTIVATE + makeCommandLine(); + } + break; ++#ifdef MAEMO_SDL ++ case Common::KEYCODE_RIGHT: ++#else + case Common::KEYCODE_F6: ++#endif + if (allowPlayerInput) { + playerCommand = 5; // SPEAK + makeCommandLine(); +@@ -120,7 +157,11 @@ + makeCommandLine(); + } + break; ++#ifdef MAEMO_SDL ++ case Common::KEYCODE_F4: // Menu key ++#else + case Common::KEYCODE_F10: ++#endif + if (!disableSystemMenu && !inMenu) { + g_cine->makeSystemMenu(); + } +--- scummvm-0.11.orig/backends/plugins/sdl/sdl-provider.cpp 2008-01-12 00:06:35.000000000 +0100 ++++ scummvm-0.11/backends/plugins/sdl/sdl-provider.cpp 2008-01-06 20:53:38.000000000 +0100 +@@ -31,8 +31,12 @@ + + #include "SDL.h" + #include "SDL_loadso.h" +-#define PLUGIN_DIRECTORY "plugins/" + ++#ifdef PLUGIN_PATH ++#define PLUGIN_DIRECTORY PLUGIN_PATH ++#else ++#define PLUGIN_DIRECTORY "plugins/" ++#endif + + class SDLPlugin : public DynamicPlugin { + protected: +--- scummvm-0.11.orig/backends/platform/sdl/events.cpp 2008-01-12 00:06:35.000000000 +0100 ++++ scummvm-0.11/backends/platform/sdl/events.cpp 2008-01-12 22:21:51.000000000 +0100 +@@ -26,7 +26,9 @@ + #include "backends/platform/sdl/sdl.h" + #include "common/util.h" + #include "common/events.h" +- ++#ifdef MAEMO_SDL ++#include "common/config-manager.h" ++#endif + // FIXME move joystick defines out and replace with confile file options + // we should really allow users to map any key to a joystick button + #define JOY_DEADZONE 3200 +@@ -192,9 +194,13 @@ + case SDL_KEYDOWN:{ + b = event.kbd.flags = SDLModToOSystemKeyFlags(SDL_GetModState()); + ++#ifdef MAEMO_SDL ++ if (ev.key.keysym.sym == SDLK_F6) { ++#else + // Alt-Return and Alt-Enter toggle full screen mode + if (b == Common::KBD_ALT && (ev.key.keysym.sym == SDLK_RETURN +- || ev.key.keysym.sym == SDLK_KP_ENTER)) { ++ || ev.key.keysym.sym == SDLK_KP_ENTER)) { ++#endif + setFullscreenMode(!_fullscreen); + #ifdef USE_OSD + if (_fullscreen) +@@ -311,7 +317,10 @@ + break; + + fillMouseEvent(event, ev.button.x, ev.button.y); +- ++#ifdef MAEMO_SDL ++ // we have touchscreen so we may have no mousemotion events between taps ++ setMousePos(event.mouse.x, event.mouse.y); ++#endif + return true; + + case SDL_MOUSEBUTTONUP: +@@ -444,7 +453,54 @@ + return false; + } + ++// called on SDL KEYUP and KEYDOWN events + bool OSystem_SDL::remapKey(SDL_Event &ev, Common::Event &event) { ++#ifdef MAEMO_SDL ++ static int engine=0; ++#define ENG_OTHER -1 ++//#define ENG_SCUMM 1 ++ static int game=0; ++#define GAME_OTHER -1 ++#define GAME_LURE 1 ++//#define GAME_SWORD1 2 ++//#define GAME_SWORD2 3 ++ if (!engine){ ++ // one time initialization ++ Common::String gameid(ConfMan.get("gameid")); ++ if (gameid == "lure") { ++ game=GAME_LURE; ++ engine=ENG_OTHER; ++ } else { ++ game=GAME_OTHER; ++ engine=ENG_OTHER; ++ } ++ } ++ // engine specific mappings ++ switch (engine){ ++ ++ } ++ // game specific mapping ++ switch (game) { ++ case GAME_LURE: ++ switch(ev.key.keysym.sym){ ++ case SDLK_F5: // map F5 (home key) to f9 = restart game ++ ev.key.keysym.sym=SDLK_F9; ++ break; ++ case SDLK_F8: // map F8 (zoom key) to F5 (save dialog) in game ++ ev.key.keysym.sym=SDLK_F5; ++ break; ++ case SDLK_F4: // map menu to right click ++ event.type = ((ev.type==SDL_KEYUP) ? Common::EVENT_RBUTTONUP : Common::EVENT_RBUTTONDOWN ); ++ event.mouse.x = _mouseCurState.x; ++ event.mouse.y = _mouseCurState.y; ++ return true; ++ default: ++ ; ++ } ++ break; ++ } ++#endif //SDL_MAEMO ++ + #ifdef LINUPY + // On Yopy map the End button to quit + if ((ev.key.keysym.sym == 293)) { |