Opened 12 years ago

Closed 12 years ago

Last modified 11 months ago

#8778 closed patch

MAEMO port preliminary patch

Reported by: SF/fanous Owned by: sev-
Priority: normal Component: Port: Maemo
Keywords: Cc:
Game:

Description

OK, this is not finished but at least you can give some comments

debian directory - Maemo is debian based so I'm not sure where to put it since debian port already exists, perhaps I can put it to backends/platform/maemo/debian?

configure - i am using tremor and FLAC and FLAC is build without ogg so with -logg the build fails

sword1 and 2 - keymapping (see http://maemo.org/community/wiki/scummvm/ for explanations) can be moved to remapKey in platform/sdl/events.cpp

scumm - cannot be moved easily - how can I check for specific active engine (i.e. scumm) and the its version in platform/sdl/events.cpp? I am not interested in specific game.

Touche - in original you need to hold right button and release it - mapped to center key and (which may be useful elsewhere) you can just (right) click for menu popup and left click for selecting item and closing menu

CINE 0.10 to 0.11 move is unfinished yet but seems trivial

backends/plugins/sdl/sdl-provider.cpp - i tried to build plugins too, it produced bigger code in total so I disabled it back. But noticed that plugins dir is hardcoded to plugins/ so it is searched in /usr/games/bin/plugins which is not ideal, added variable so i could move it somewhere else. Can be ignored.

backends/platform/sdl/events.cpp - I have added setMousePos(event.mouse.x, event.mouse.y); call to case SDL_MOUSEBUTTONDOWN since without any mousemotion events it may not be updated at all and click is done at wrong coordinates (?) I'm not sure about it but I think it improved situation with CINE engine at least.

Lure - mapping is done in platform/sdl/events.cpp but it is not ideal so I will probably move it out. need to map center key differently in save dialog

As for moving keymapping out of engines there are issues - I need to access private data of specific engine (scummvm), sometimes I need to map keys differently in some parts of game - center key (=Enter/ascii 13) to right click in main view but to Enter in save game dialog.

So if there will be generic keymapper it would need something like game domain parameter added (and passed to pollevent from engine) so the keymapping code knows which set of keymapping is needed to which part of the game. I will make the final patch over the weekend and submit it here hopefully Sunday evening. It will consist of dirty patch that should be commited to backends/platform/maemo/ as a file for (later patching) and 'clean' version which will patch backends/platform/maemo/ and add README makefile etc.

Ticket imported from: #1869152. Ticket imported from: patches/883.

Attachments (2)

scummvm-maemo-1.patch (5.5 KB ) - added by SF/fanous 12 years ago.
scummvm-0.11.0-maemo.patch (24.8 KB ) - added by SF/fanous 12 years ago.

Download all attachments as: .zip

Change History (13)

comment:1 by sev-, 12 years ago

1. dists/debian directory. Yes, please, put it to backends/platform/maemo/debian
2. lure/menu.cpp, sdl/sdl-provider.cpp, configure and sdl/events.cpp about setMousePos() changes could go to SVN
3. scummvm.desktop move to dists/maemo
4. All other changes should be put in a separate patch which you should put to backends/platform/maemo/scummvm-0.11.0-maemo.patch

Also as you mention, there is no your port-specific README change.

As of Sunday, today is the tagging day, so Sunday will be too late. Is there possibility to have this done today?

Generic keymapper, I will try to find someone to do it by the next release, or at least will do by myself. Your hacks would be OK if they would sit in your backend directory like in other ports, but we can not allow them to engines.

comment:2 by sev-, 12 years ago

Owner: set to sev-

by SF/fanous, 12 years ago

Attachment: scummvm-maemo-1.patch added

comment:3 by SF/fanous, 12 years ago

added first part that should be commited to svn directly patching
- configure for flac/tremor
- NEWS, README, dists/maemo, backends/platform/maemo/Makefile

File Added: scummvm-maemo-1.patch

comment:4 by SF/fanous, 12 years ago

attached dirty version to be committed as backends/platform/maemo/scummvm-0.11.0-maemo.patch
File Added: scummvm-0.11.0-maemo.patch

comment:5 by fingolfin, 12 years ago

Re plugins: It's normal that building using plugins generates bigger code overall. The main benefit is reducing the run-time memory usage, though -- only one plugin has to be loaded while playing a game.

comment:6 by SF/fanous, 12 years ago

Re plugins: yes but it is more critical in low memory ports, unix have virtual memory so most/all of unused code is not even paged-in from disk (at least in theory, not sure about C++ objects in general and scummvm object oriented code in particular). Also Maemo devices has 64MB (770) or 128MB (N800,N810) plus optional swap enabled on memory card so RAM is not that tight. So my primary motivation was disk(=flash) space. With plugins one could package each plugin separately and save some space. This didn't work as expected :-)

by SF/fanous, 12 years ago

Attachment: scummvm-0.11.0-maemo.patch added

comment:7 by SF/fanous, 12 years ago

uploaded final patch for maemo, to be commited as backends/platform/maemo/scummvm-0.11.0-maemo.patch
fixed Lure and Future Wars keymapping and added missing debian directory

File Added: scummvm-0.11.0-maemo.patch

comment:8 by sev-, 12 years ago

Status: newclosed

comment:9 by sev-, 12 years ago

Excellent! committed

comment:10 by digitall, 12 months ago

Component: Ports

comment:11 by digitall, 11 months ago

Component: PortsPort: Maemo
Note: See TracTickets for help on using tickets.