maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Games (https://talk.maemo.org/forumdisplay.php?f=12)
-   -   ScummVM on N900 (https://talk.maemo.org/showthread.php?t=33126)

toninikkanen 2009-10-19 20:31

ScummVM on N900
 
Just a quick note, that I have made an initial build of ScummVM for the N900 that is basically working, for the rest of the details, please see my web page:

http://www.tuug.fi/~toni/serendipity/index.php?/archives/2-ScummVM-for-N900-Fremantle.html

bergie 2009-10-20 05:38

Re: ScummVM on N900
 
Quote:

Originally Posted by toninikkanen (Post 351768)
Just a quick note, that I have made an initial build of ScummVM for the N900 that is basically working

Great! Having all these classic games available was a big bonus for the older tablets.

Now, one feature request: a mode similar to the Maemo 5 browser where you can display the mouse cursor. Many of the games are easier when you can hover over things...

toninikkanen 2009-10-20 05:51

Re: ScummVM on N900
 
Quote:

Originally Posted by bergie (Post 352278)
Now, one feature request: a mode similar to the Maemo 5 browser where you can display the mouse cursor. Many of the games are easier when you can hover over things...

I agree this would be useful so I'll add it to the list of things to do. It'll happen a lot faster if someone gives me a pointer on how to do it though..

mece 2009-10-20 08:52

Re: ScummVM on N900
 
I've been waiting for this. The Monkey Island theme immediately started playing in my head :)

pelago 2009-10-20 14:46

Re: ScummVM on N900
 
Thanks for this, as I'm currently playing Curse of Monkey Island on my N810 and it would be nice to continue on the N900. Mind you, I already have to squint a bit sometimes to see small items or read small text on the N810, so the N900 might be a bit of a challenge.

toninikkanen 2009-10-20 15:07

Re: ScummVM on N900
 
Quote:

Originally Posted by mece (Post 352369)
I've been waiting for this. The Monkey Island theme immediately started playing in my head :)

I was feeling more like i could... like i could... like i could.. . take over the world! Bwahhhaahaa!

choubbi 2009-10-20 16:23

Re: ScummVM on N900
 
Quote:

Originally Posted by toninikkanen (Post 352696)
I was feeling more like i could... like i could... like i could.. . take over the world! Bwahhhaahaa!

I'd wet my pants, if I wore any

toninikkanen 2009-10-23 23:46

Re: ScummVM on N900
 
I have a newer version out now:

http://www.tuug.fi/~toni/serendipity/

- enable full screen mode with ctrl-f
- enable global menu with ctrl-m
- enable SCI (newer Sierra) game support, seems to work with for example Larry 1 VGA, Larry 6, Quest for Glory 2

optimaxxx 2009-10-26 12:05

Re: ScummVM on N900
 
you're a legend!!

Rotkaeqpchen 2009-10-26 12:28

Re: ScummVM on N900
 
Thanks toninikkanen! I cant wait to play it on the n900 when it arrives. Is there a list of compatible games? Especially Monkey Island 3 and Full Throttle!

Did you manage to fix the screen to be centered?

Thank you!

justmeinit 2009-10-26 13:00

Re: ScummVM on N900
 
Great work just a quick question ive been playing these games on m nokia n97 will the same game work on the Nokia n900

ColdFusion 2009-10-26 13:18

Re: ScummVM on N900
 
Quote:

Originally Posted by pelago (Post 352662)
Thanks for this, as I'm currently playing Curse of Monkey Island on my N810 and it would be nice to continue on the N900. Mind you, I already have to squint a bit sometimes to see small items or read small text on the N810, so the N900 might be a bit of a challenge.

Maybe a "magnifying glass" feature could be added? Once activated, you can drag your finger on the screen to move the magnified area.

javispedro 2009-10-26 13:45

Re: ScummVM on N900
 
You mention you applied Maemo specific patches... you mean fanoush' ones?

mikkov 2009-10-26 14:02

Re: ScummVM on N900
 
Quote:

Originally Posted by javispedro (Post 358214)
You mention you applied Maemo specific patches... you mean fanoush' ones?

There aren't any other patches. They are found from the scummvm svn and source packages.

pelago 2009-10-26 15:54

Re: ScummVM on N900
 
Quote:

Originally Posted by ColdFusion (Post 358197)
Maybe a "magnifying glass" feature could be added? Once activated, you can drag your finger on the screen to move the magnified area.

That's a good idea.

fanoush 2009-10-26 20:45

Re: ScummVM on N900
 
Quote:

Originally Posted by toninikkanen (Post 356944)
I have a newer version out now:

http://www.tuug.fi/~toni/serendipity/

Cool stuff :-)

What I'm missing in your TODO list is
- release source diff together with the binary
- let the current maintainer know ;)

Quote:

Originally Posted by mikkov
There aren't any other patches. They are found from the scummvm svn and source packages.

There is this 'run scummvm as a fake d-bus service to make task switching button switch back working' patch done by you which is currently only in Diablo extras sources and not in official scummvm svn (not sure if this is still relevant for N900). And also latest Discworld and Cruise for Corpse keybindings mentioned here http://talk.maemo.org/showthread.php?t=31174 are not yet in svn either, older RC1 version is here http://scummvm.svn.sourceforge.net/v...patch?view=log

ScummVM 1.0.0 had a delay and is currently planned as "November 6: tagging, November 15: release". Since this thread proves there appears to be some interest :) it would be nice to have basic N900 fixes in official 1.0.0 and perhaps have 1.0 testing version in Fremantle extras-testing ASAP.

toninikkanen, can you post source diff for your changes here?

fanoush 2009-10-26 20:59

Re: ScummVM on N900
 
and BTW what is the best to check in debian source package building scripts for determining current maemo SDK version? I'd like to build all binaries (OS2006,7,8,fremantle) from same source.

javispedro 2009-10-26 21:19

Re: ScummVM on N900
 
Quote:

Originally Posted by fanoush (Post 358538)
and BTW what is the best to check in debian source package building scripts for determining current maemo SDK version? I'd like to build all binaries (OS2006,7,8,fremantle) from same source.

I personally Build-depend on "maemo-version" SDK package and parse file /etc/maemo_version from debian/rules (adding -DMAEMO_VERSION to cflags, conditionally calling optify, etc.)

toninikkanen 2009-10-26 22:06

Re: ScummVM on N900
 
I'm going to bed right now so here's just an ugly megadiff against 1.0.0rc1 sources, it has the supplied backend/platform/maemo/scummvm-1.0.0-maemo.patch applied in it as well.

http://www.tuug.fi/~toni/blogitems/p...mmvm_n900.diff

Í have the stuff in a locat git repo and can make you a better diff tomorrow if needed.

mikkov 2009-10-26 22:31

Re: ScummVM on N900
 
Quote:

Originally Posted by fanoush (Post 358528)
There is this 'run scummvm as a fake d-bus service to make task switching button switch back working' patch done by you which is currently only in Diablo extras sources and not in official scummvm svn (not sure if this is still relevant for N900).

It is not needed for N900 because there is no similar task switching behaviour. Although when using d-bus service, you can't start another scummvm instance, but it brings the old one to front. XStoreName is also not needed.

But there are some other issues, SDL_UpdateRects is dead slow and SDL_Quit is somewhat unsafe :) https://bugs.maemo.org/show_bug.cgi?id=5524. SDL_SetIcon breaks keyboard input.

I think that some basic power saving features would be useful. For example stop when backgrounded and stop when in front and screen blanks. Perfect powersaving is not possible with SDL library unless the whole program is killed though ;).

Addison 2009-10-27 08:22

Re: ScummVM on N900
 
Hey fanoush. Will you be releasing another port for the N8x0 come the November 16th release?

Only asking, not a request this time.

Also, if you do, will it have SCI support?

Looks like in your current version you have that blocked out for some reason.

Thanks chief!

By the way, I'm still enjoying Discworld, so again, many thanks! :)

toninikkanen 2009-10-27 09:44

Re: ScummVM on N900
 
Just to recap, the three most important (and very small) changes I did on top of the included maemo patch were:

Add -lX11 to link flags. This was enough to build the whole package and get it running as well.

Added RX-51 to the list of keyboard-equipped Maemo devices

Commented out the SDL_WM_SetIcon call. This enabled getting window focus -> enabled you to use the keyboard.


The rest is just trying to get the keyboard mappings to such a state that they make sense on the N900 - and I'm still missing the ability to enter the save dialog and enter numbers - the keyboard command part of the code is a bit confusing there and I don't know SDL anyway.
Also I enabled the SCI and SCI32 engines because I wanted to play Quest for Glory 2.

fanoush 2009-10-29 22:08

Re: ScummVM on N900
 
Quote:

Originally Posted by Addison (Post 358825)
Hey fanoush. Will you be releasing another port for the N8x0 come the November 16th release?

Yes, I don't have N900 so N8x0 and 770 are my preferred devices :-)
Quote:

Originally Posted by Addison (Post 358825)
Also, if you do, will it have SCI support?

Official ScummVM package (the one available at scummvm.org site) adheres to rules set by ScummVM developers. AFAIK the SCI engine is currently disabled in official build since it is not out of beta, see http://wiki.scummvm.org/index.php/Engines . Many engines live like that for a long time. Once it is good enough it is enabled with a big fanfare in some release. I am not sure about stability of SCI engine but for build in Maemo extras I guess we can have extra beta engines enabled if at least some games are completable for such engines. Or maybe it would be better to make available some unstable scummvm package with all such engines enabled.

fanoush 2009-10-29 22:44

Re: ScummVM on N900
 
OK, I have finally installed Fremantle SDK :o and made some build of scummvm, installed into x86 target to test with the fancy Maemo 5 UI and indeed there are some issues.

Quote:

Originally Posted by toninikkanen (Post 358855)
Commented out the SDL_WM_SetIcon call. This enabled getting window focus -> enabled you to use the keyboard.

Yes, happens in Xephyr too.

Quote:

Originally Posted by toninikkanen (Post 358855)
The rest is just trying to get the keyboard mappings to such a state that they make sense on the N900.

As I don't have the device I need a bit of help here. So we have no fullscreen, no home and no menu button. Do we have Escape key? What shortcuts are good for those on N900? In maemo developers there was some discussion about fullscreen key, what about other SDL based ports? would ctrl+space be good for fullscreen? What about others? Is there no way to switch to fullscreen in the UI?

Maybe with so many buttons missing, some virtual buttons on screen are really needed :-(

Quote:

Originally Posted by toninikkanen (Post 358855)
and I'm still missing the ability to enter the save dialog and enter numbers - the keyboard command part of the code is a bit confusing there and I don't know SDL anyway.

At least on N810 holding Fn worked to print numbers, Fn is not sticky in SDL. Does this work with N900 too?

So I guess to test the water I will start with fremantle specific sources for uploading to fremantle extras-devel (hopefully this weekend) and try one source for all later. As for dependencies and maemo autobuilder it looks great. I see there is both libvorbisidec and libmad in fremantle extras-devel but libmad is not in extras. FLAC is in both.

As for power management - do SDL apps get lost focus event when the application is switched away or display is blank? How can I blank the display in SDK?

mikkov 2009-10-29 23:06

Re: ScummVM on N900
 
Quote:

Originally Posted by fanoush (Post 361167)
As I don't have the device I need a bit of help here. So we have no fullscreen, no home and no menu button. Do we have Escape key?

That's right, there isn't any of those. Backspace is a good candidate for Escape key.

Quote:

What about others? Is there no way to switch to fullscreen in the UI?
There is no universal way to switch to fullscreen, soft button is needed. One option is to keep it always in fullscreen mode.

Quote:

At least on N810 holding Fn worked to print numbers, Fn is not sticky in SDL. Does this work with N900 too?
I haven't tested scummvm but Fn button works in SDL as before.

Quote:

. I see there is both libvorbisidec and libmad in fremantle extras-devel but libmad is not in extras. FLAC is in both.
Depencies will be promototed automatically towards extras as needed.

Quote:

As for power management - do SDL apps get lost focus event when the application is switched away or display is blank? How can I blank the display in SDK?
SDL_ACTIVEEVENT is received when window is backgrounded. This patch is from madbomber, where game is paused quite violently when it loses focus.

Code:

+        else if (event.type == SDL_ACTIVEEVENT)
+          {
+            if ( event.active.gain == 0)
+              {
+                Mix_PauseMusic();
+                while (SDL_WaitEvent(&event) )
+                {
+                  if (event.type == SDL_ACTIVEEVENT && event.active.gain == 1 ) break;
+                  if (event.type == SDL_QUIT )
+                  {
+                      quit = 1;
+                    break;
+                  }
+                }
+              }
+            Mix_ResumeMusic();
+          }

This is not very good (better than nothing still) because sound isn't deinitialzed so pulseaudio stays active. And even if sound was completely disabled, SDL won't let processor to sleep unless SDL is killed completely.

ACTIVEEVENT is not received when screen blanks. For that we should use libosso, but right now (or again :)) I can't get it to receive display events.

Addison 2009-10-29 23:13

Re: ScummVM on N900
 
Quote:

Originally Posted by fanoush (Post 361130)
Yes, I don't have N900 so N8x0 and 770 are my preferred devices :-)

Official ScummVM package (the one available at scummvm.org site) adheres to rules set by ScummVM developers. AFAIK the SCI engine is currently disabled in official build since it is not out of beta, see http://wiki.scummvm.org/index.php/Engines . Many engines live like that for a long time. Once it is good enough it is enabled with a big fanfare in some release. I am not sure about stability of SCI engine but for build in Maemo extras I guess we can have extra beta engines enabled if at least some games are completable for such engines. Or maybe it would be better to make available some unstable scummvm package with all such engines enabled.

Oh yeah!

I'm all about instability!

Just ask anyone who knows me! :D

I do understand that the daily builds can play a game, such as Leisure Suite Larry VGA, in it's entirety one day and then break it the next. So there's no guarantees on anything with an unofficial release.

It still would be fun just to try a few out though.

Your call. Either way, it won't take away my happiness from your current build. :)

javispedro 2009-10-29 23:15

Re: ScummVM on N900
 
Quote:

Originally Posted by mikkov (Post 361182)
ACTIVEEVENT is not received when screen blanks. For that we should use libosso, but right now (or again :)) I can't get it to receive display events.

Or hildon-games-wrapper, which was designed specifically for SDL games. If only upstream development was active...

Bundyo 2009-10-30 10:50

Re: ScummVM on N900
 
one can use key combinations like Ctrl+Enter to switch to fullscreen too.

pillar 2009-12-01 10:56

Re: ScummVM on N900
 
Is this still being worked on? I would love to have this working on N900.

toninikkanen 2009-12-01 10:58

Re: ScummVM on N900
 
I am no longer actively doing anything at least, since I supposed others picked up the ball..

toninikkanen 2009-12-01 11:07

Re: ScummVM on N900
 
...but the .deb package (and patches) I made can still be downloaded from http://www.tuug.fi/~toni/serendipity/ while waiting for more polished, more official versions from others.

fanoush 2009-12-01 11:21

Re: ScummVM on N900
 
Well, after I updated my scratchbox environment to latest Fremantle SDK I no longer see display updated inside Xephyr window. Only when switching to/from fullscreen display is updated. This happens to all maemo 5 apps (browser, control panel,...) in FREMANTLE_X86 target, not just scummvm. Previous SDK had only wrong colours :-) This is my old ubuntu 6.04 virtual machine I have since OS2006 days and I do all OS2006/7/8/Fremantle development there. I need to migrate it to something newer but currently don't have disk space for another virtual machine :o

That's why I have put is aside for the moment since the developer device should arrive any time soon (3 weeks since I ordered)

But anyway, the 1.0.0 scummvm release is out and the 1.0.0 source includes N900 fixes mentioned in this thread so it should in theory build out of box.

Then there is submission to extras-devel->extras-testing->extras and voting which can take some time too.

So to make it short - I was waiting for the device to do some final touches and already expected to have it. Look like it can still take long so I guess I can build Maemo5 deb and put it somewhere even without doing proper testing with real device.

fanoush 2009-12-02 09:09

Re: ScummVM on N900
 
Quote:

Originally Posted by fanoush (Post 402496)
But anyway, the 1.0.0 scummvm release is out and the 1.0.0 source includes N900 fixes mentioned in this thread so it should in theory build out of box.

Hmm, just found out that someone installed the official version from scummvm site (not intended for N900) and it runs on N900 too. http://forums.scummvm.org/viewtopic.php?t=8206

Since Fremantle uses gcc 4 compiler and previous SDKs use gcc 3.4, I was expecting it to fail because of different libgcc/libstdc++. It is nice this is not the case and we can still have same binary fror all devices. Time to add escape and menu key. Fullscreen switch is currently ctrl+space, global menu is ctrl m, both work on N810 too.

toninikkanen 2009-12-02 09:24

Re: ScummVM on N900
 
Ah it seems they have disabled SDL_WM_SetIcon for Maemo, so I'm not surprised it's working out of the box, that was the only major problem (along with the keybindings of course.)

Kjow 2009-12-02 09:37

Re: ScummVM on N900
 
Hi! I installed it on N900, but to do this I used "dkpg -i" from terminal. Maybe this is the biggest problem for common users. I think N900 doesn't accept .deb as native "installer"...

However ScummVM runs very well, full speed (monkey Island 3, full throttle), right speech, perfect mouse emulation... only things I see that misses are some keys, such as "ESC" (it can be emulated by "backspace" [ <- ]), "." to skip dialogues and possibilities to remap arrows (in non-english keyboard layout there are "up" and "down" in 2° function).

A virtual keyboard would be very appreciated (ctrl+k ? :) ) to insert some text with real qwerty closed or without some special keys.

fanoush 2009-12-02 10:14

Re: ScummVM on N900
 
Quote:

Originally Posted by Kjow (Post 404343)
Hi! I installed it on N900, but to do this I used "dkpg -i" from terminal. Maybe this is the biggest problem for common users. I think N900 doesn't accept .deb as native "installer"...

It should. Both when downloading .deb directly (open button, not save) and also there should be 'install from file' somewhere in application manager menu. Could you verify that it works? Just click the download link on official site and select open button not save.

Quote:

Originally Posted by Kjow (Post 404343)
However ScummVM runs very well, full speed (monkey Island 3, full throttle), right speech, perfect mouse emulation

Yes, all tablets are good enough. MI3 is playable even on 770.
Quote:

Originally Posted by Kjow (Post 404343)
... only things I see that misses are some keys, such as "ESC" (it can be emulated by "backspace" [ <- ]), "." to skip dialogues and possibilities to remap arrows (in non-english keyboard layout there are "up" and "down" in 2° function).

real backspace may be needed in some games, maybe ctrl+backspace is free, '.' is remapped to some arrow key since N800/770 have no keyboard. As for keybindings - they need to be selected carefully, each game engine has its own keymappings and even ctrl and shift combinations are used in some games.

Also maybe you will be missing ESC in other software too, another way is to change N900 native keymapping to add tab, esc, pipe, page up/down, braces etc.

For N810 this is in /usr/share/X11/xkb/symbols/nokia_vndr/rx-44, maybe there is rx-51 too?
Quote:

Originally Posted by Kjow (Post 404343)
A virtual keyboard would be very appreciated (ctrl+k ? :)

There is slowly going project inside ScummVM to provide generic keymapper and virtual keyboard, it is stil not ready though. Many game engines have keys hardcoded so even with keymapper available most engines needs to be ported to use keymapper instead of raw key scancodes.

Kjow 2009-12-02 11:15

Re: ScummVM on N900
 
Quote:

Originally Posted by fanoush (Post 404377)
It should. Both when downloading .deb directly (open button, not save) and also there should be 'install from file' somewhere in application manager menu. Could you verify that it works? Just click the download link on official site and select open button not save.

My N900 ask only where to save...

Quote:

Yes, all tablets are good enough. MI3 is playable even on 770.
Perfect :)
N900 has not relevant "incompatibility" with official scummvm :)

Quote:

real backspace may be needed in some games, maybe ctrl backspace is free, '.' is remapped to some arrow key since N800/770 have no keyboard. As for keybindings - they need to be selected carefully, each game engine has its own keymappings and even ctrl and shift combinations are used in some games.
ok.
ctrl backspace is not free on N900, it open program switcher (such as ALT TAB on windows)...
ctrl e ? ( e = esc)

'.' (or arrows) doesn't work for me in N900 to skip MI2 dialogues.

Quote:

Also maybe you will be missing ESC in other software too, another way is to change N900 native keymapping to add tab, esc, pipe, page up/down, braces etc.

For N810 this is in /usr/share/X11/xkb/symbols/nokia_vndr/rx-44, maybe there is rx-51 too?
I'll try, but it is not comfortable :)

Quote:

There is slowly going project inside ScummVM to provide generic keymapper and virtual keyboard, it is stil not ready though. Many game engines have keys hardcoded so even with keymapper available most engines needs to be ported to use keymapper instead of raw key scancodes.
There is a virtual keyboard on NDS, I simply thinked that it uses it from scummvm "generic"...

fanoush 2009-12-02 11:40

Re: ScummVM on N900
 
Quote:

Originally Posted by Kjow (Post 404482)
My N900 ask only where to save...

Oh, that's bad. And no menu in application manager either?

Quote:

Originally Posted by Kjow (Post 404482)
'.' (or arrows) doesn't work for me in N900 to skip MI2 dialogues.

just tried, it is arrow down on N810

Quote:

Originally Posted by Kjow (Post 404482)
I'll try, but it is not comfortable :)

Yes, it is bad, there should definitely be a way with no such changes needed.

Quote:

Originally Posted by Kjow (Post 404482)
There is a virtual keyboard on NDS, I simply thinked that it uses it from scummvm "generic"...

Will check. But NDS has two displays so it is perhaps fullscreen on the bottom? Quite NDS specific. For Maemo either semi-transparent switchable or small on some side would be nice.

For previous tablets there was also xkbd and xvkbd available with customizable layouts (usable also for dosbox and other stuff that needs keyboard).

mikkov 2009-12-02 11:47

Re: ScummVM on N900
 
Quote:

Originally Posted by fanoush (Post 404525)
Oh, that's bad. And no menu in application manager either?


UI for installing from .debs was removed in fremantle

Kjow 2009-12-02 12:06

Re: ScummVM on N900
 
Quote:

Originally Posted by fanoush (Post 404525)
Oh, that's bad. And no menu in application manager either?

If I "Click" on .deb in file manager, N900 ask me wich program to use for open .deb and selecting "application manager" nothing happends.

Application manager has not any "load file" :(

With "dpkg -i file.deb" all ok.

Quote:

just tried, it is arrow down on N810
My N900, such as all non-english N900, has arrows keys in second function. Here photos:

English layout
Non-english layout

fn+right arrows ( = down) is not recognized... but fn+numers works ok on MI2 protection.

Quote:

Will check. But NDS has two displays so it is perhaps fullscreen on the bottom? Quite NDS specific. For Maemo either semi-transparent switchable or small on some side would be nice.

For previous tablets there was also xkbd and xvkbd available with customizable layouts (usable also for dosbox and other stuff that needs keyboard).
Yes, virtual Keyboard of NDS appear fullscreen on touch display...


All times are GMT. The time now is 11:58.

vBulletin® Version 3.8.8