ScummVM for PNAs/PNDs
Moderator: ScummVM Team
ScummVM for PNAs/PNDs
With the huge and ongoing success of WindowsCE-based Personal Navigation Assistans (PNAs, also sometimes called Personal Navigation Devices), it sounds tempting to have ScummVM support these devices (at least to me it does ). Unfortunately, there are some differences between PNAs and PocketPCs that prevent the current PocketScumm versions from running on PNAs.
First and foremost is the dependency on GAPI, which is not supported on virtually all PNAs currently on the market. Of course, there is always the GAPI for HPCs, but it supports only a limited number of mostly old devices - if you're the happy owner of a current-generation PNA, you're pretty much out of luck. Question to the developers: Is it possible to optionally use a different graphics API that is also supported by non-PocketPC CE devices without deep structural changes to the ScummVM architecture? If so, how much of an effort do you think it would be?
Another point is display size and orientation. While PocketPCs mostly use QVGA or VGA portrait as the default resolution, QVGA landscape is very common among PNAs - but 480x272 occurs more and more often. A truly PNA-compatible ScummVM would need to support this resolution and either scale games to it, or use the remaining display space for something sensible, like a menu bar or keyboard.
Maybe I'm the only one that believes this would be an interesting project - what does everybody else think?
First and foremost is the dependency on GAPI, which is not supported on virtually all PNAs currently on the market. Of course, there is always the GAPI for HPCs, but it supports only a limited number of mostly old devices - if you're the happy owner of a current-generation PNA, you're pretty much out of luck. Question to the developers: Is it possible to optionally use a different graphics API that is also supported by non-PocketPC CE devices without deep structural changes to the ScummVM architecture? If so, how much of an effort do you think it would be?
Another point is display size and orientation. While PocketPCs mostly use QVGA or VGA portrait as the default resolution, QVGA landscape is very common among PNAs - but 480x272 occurs more and more often. A truly PNA-compatible ScummVM would need to support this resolution and either scale games to it, or use the remaining display space for something sensible, like a menu bar or keyboard.
Maybe I'm the only one that believes this would be an interesting project - what does everybody else think?
- DrMcCoy
- ScummVM Developer
- Posts: 595
- Joined: Sat Dec 17, 2005 1:33 pm
- Location: Braunschweig, Germany
- Contact:
Re: ScummVM for PNAs/PNDs
I for one think it's an interesting project, too. When do you start?shurlogg wrote:Maybe I'm the only one that believes this would be an interesting project - what does everybody else think?
on like a satnav? that is indeed interesting, i voted yes, to conform to clems prediction.
though, as DrMcCoy stated, coders don't come out of the woodwork though will alone - so its likely that you'll have to do it yourself... and if you ask for help im sure someone will provide(probably the pocket pc/win ce porter)
also, there's no way of knowing if it will be made official till its complete
good luck!
though, as DrMcCoy stated, coders don't come out of the woodwork though will alone - so its likely that you'll have to do it yourself... and if you ask for help im sure someone will provide(probably the pocket pc/win ce porter)
also, there's no way of knowing if it will be made official till its complete
good luck!
That is actually what I had in mind when I started the poll - I dare say I have enough experience with C++ development for Windows CE (it's part of what I do for a living), so that should not be a problem - I just want to be sure that if there is going to be a PNA version of ScummVM, some people are going to use it. In my eyes, it does not make sense to develop a feature for a community project like ScummVM if you're going to be the only person that wants to have it.PsYcO wrote:though, as DrMcCoy stated, coders don't come out of the woodwork though will alone - so its likely that you'll have to do it yourself...
Re: ScummVM for PNAs/PNDs
Just to clarify, ScummVM works an any wince arm based (post 2002 to be safe) device out there including "PNA"s. In fact, I'm pretty sure I had a report somewhere where it works ok on such a device, but can't find the reference right now (either the bugtracker or the forums). Of course it runs at 320x240 centered on a 480x272.
ScummVM does not require GAPI to work. Provided of course that the "undocumented" ExtDriverEscape function works as it is undocumently documented.shurlogg wrote:First and foremost is the dependency on GAPI, which is not supported on virtually all PNAs currently on the market.
This is only a matter of coding in a 3/2 horiz, 9/8 vert scaler (setting aside for a moment the "exactness" issues the scaler subsystem has). This scaler does not keep the aspect ratio so the image will be slightly distorted, in comparison with the original. Take a look at CEScaler.cpp.shurlogg wrote: 480x272 occurs more and more often.
Re: ScummVM for PNAs/PNDs
I am aware of this. I saw the report you are talking about (here in the forums I think), but that one used the GAPI for HPCs, which is device-specific and not available for many PNAs.knakos wrote:Just to clarify, ScummVM works an any wince arm based (post 2002 to be safe) device out there including "PNA"s. In fact, I'm pretty sure I had a report somewhere where it works ok on such a device, but can't find the reference right now (either the bugtracker or the forums). Of course it runs at 320x240 centered on a 480x272.
Right now, ScummVM depends on GAPI, because the WinCE port of SDL requires it. If you try to run any ScummVM release on a device without a gx.dll, it does not start. But I agree to you in this respect, that this would have to be changed in SDL, not ScummVM. The other option would be to try and use the official WinCE version of SDL instead of Arisme's unofficial port, which may or may not depend on GAPI - I haven't had a chance to check yet.knakos wrote:ScummVM does not require GAPI to work. Provided of course that the "undocumented" ExtDriverEscape function works as it is undocumently documented.
Btw, where would I find documentation on the undocumented ExtDriverEscape function?
I will, thanks for the advice.knakos wrote:This is only a matter of coding in a 3/2 horiz, 9/8 vert scaler (setting aside for a moment the "exactness" issues the scaler subsystem has). This scaler does not keep the aspect ratio so the image will be slightly distorted, in comparison with the original. Take a look at CEScaler.cpp.
Re: ScummVM for PNAs/PNDs
This is not true and can be shown easily either by Makefile inspection or directly through inspection of the binary. WinCE ScummVM does not require the presence of GAPI to launch. Furthermore, WinCE ScummVM does not use the official WinCE SDL port because (last time I checked) I simply do not find it up to par with what I want ScummVM to perform like on my device, and also for compatibility reasons across the whole spectrum of devices. We maintain a custom branch of SDL 1.2.6 for our purposes. I have not had the time to prepare a proper patch for submission to the SDL project.shurlogg wrote: Right now, ScummVM depends on GAPI, because the WinCE port of SDL requires it. If you try to run any ScummVM release on a device without a gx.dll, it does not start.
Please refrain from making authoritative-looking comments with false claims on the forums which confuse the users.
Okay, message understood. Sorry. I mistakenly thought that adding "I believe" to every sentence would have made my comments a bit tedious to read.
Thank you for the clarification, I will try to check which other DLL I was missing. You have certainly spared me a lot of work trying to remove something that isn't there.
Thank you for the clarification, I will try to check which other DLL I was missing. You have certainly spared me a lot of work trying to remove something that isn't there.
-
- Posts: 3
- Joined: Fri Aug 24, 2007 11:52 pm
solution?
@shurlogg
Did you solve the problem yet? Because I have the same right now I guess.
This is what scummvm_stderr.txt says:
Did you solve the problem yet? Because I have the same right now I guess.
This is what scummvm_stderr.txt says:
Do I need to update Ozone (whatever that is)?SDL: Version $Rev: 41 $ bootstrapping GAPI device
SDL: Device is portrait, OS version 5.0 build 1400
SDL: orientation 0
SDL: GAPI_RealizePalette NOT IMPLEMENTED
SDL: Starting video access detection --->
SDL: System 480x272
SDL: Checking for GAPI
SDL: Trying Ozone
SDL: Running on Ozone
SDL: Ozone unknown screen format
Re: solution?
This is a severe error, so you need to install GAPI (see the related bug report).babybambula wrote: SDL: Ozone unknown screen format
Even though it isn't mentioned in the report, my guess is that wincesoft's or microsoft's is used. Let us know which one works.
-
- Posts: 3
- Joined: Fri Aug 24, 2007 11:52 pm
gapi12 and GAPI for HPCs
Thanks for the info!
Unfortunately the WinCESoft GAPI doesn't support my device yet (Medion GoPal P4410 MD96404).
And somehow I'm too stupid to install the Microsoft dll. When I just copy it to the WINDOWS directory it doesn't work.
Unfortunately the WinCESoft GAPI doesn't support my device yet (Medion GoPal P4410 MD96404).
And somehow I'm too stupid to install the Microsoft dll. When I just copy it to the WINDOWS directory it doesn't work.
-
- Posts: 3
- Joined: Fri Aug 24, 2007 11:52 pm
gx.dll trouble
Nope, the Microsoft one doesn't work at all (fatal application error). The WinCESoft dll kind of works, since there pops up a menu where I'm supposed to choose my device. My device isn't listed yet, though. I wrote an email to WinCESoft to get further information regarding my device.
Still, thanks!
Still, thanks!