Difference between revisions of "Windows CE"

From ScummVM :: Wiki
Jump to navigation Jump to search
(→‎FAQ: throw some stuff in there :-P)
(→‎FAQ: some more q&a)
Line 58: Line 58:


== FAQ ==
== FAQ ==
* How do I show/hide the toolbar?
* How do I show/hide the toolbar (Pocket PC)?
: Double tap at the top of the screen.
: Double tap at the top of the screen.
* Is there a virtual keyboard around?
* Is there a virtual keyboard around?
: Yes, it can be accessed by double tapping near the top of the screen.
: Yes, it can be accessed by double tapping near the top of the screen (Pocket PC) or by using the ''Keyboard'' action (Smartphones).
* Hey, the game is stuck and I cannot quit without rebooting.
: Bind and use the ''Quit'' action to cleanly exit ScummVM.
* How do I do all those cool actions you talk about in the readme?
* How do I do all those cool actions you talk about in the readme?
: Bring up the 'Bind Keys' dialog once you launch a game, and bind away actions to device keys.
: Bring up the ''Bind Keys'' dialog once you launch a game either by clicking the key icon in the toolbar (Pocket PC) or by pressing the associated key (Smartphones) and bind away actions to device keys of your choice.
* What are the default key bindings?
: Check out the port's readme (that is, the README-WinCE.txt file).
* I cannot see the bottom part of the load/save dialog on Pocket PC because the toolbar is obscuring it.
: Double tap at the top of the screen to hide the toolbar.
* How do I get full screen display on VGA or larger screen devices?
* How do I get full screen display on VGA or larger screen devices?
: Use a magnifying scaler from the game or global options menu. If your screen is larger than the resulting resolution, the scummvm output will be centered in the display.
: Use a magnifying scaler (2x) from the game or global options menu. If your screen is larger than the resulting resolution, the ScummVM output will be centered in the display.
* What are the pointer zones mentioned in the readme for Smartphones?
* What are the pointer zones mentioned in the readme for Smartphones?
: Playing with a simulated mouse cursor is awkward, especially when the cursor has to be moved constantly in different areas of the screen. One more or less common action in adventures is: a) Point to an object in the playfield, b) Point and click onto a verb at the bottom of the screen, c) Point and click to an object in the inventory at another part of the screen (f.ex. USE chewing gum WITH stick). The zoning function 'remembers' the position of 3 virtual cursors which you can toggle through with the zone action. Ideally, one of those should be positioned inside the playfield, another to the verb are and one more to the inventory area. Then, performing the previously mentioned routine should be easier: just press the zone action to warp the mouse to the next location.
: Playing with a simulated mouse cursor is awkward, especially when the cursor has to be moved constantly in different areas of the screen. One more or less common action in adventures is: a) Point to an object in the playfield, b) Point and click onto a verb at the bottom of the screen, c) Point and click to an object in the inventory at another part of the screen (f.ex. USE chewing gum WITH stick). The zoning function 'remembers' the position of 3 virtual cursors which you can toggle through with the zone action. Ideally, one of those should be positioned inside the playfield, another to the verb are and one more to the inventory area. Then, performing the previously mentioned routine should be easier: just press the zone action to warp the mouse to the next location.
Line 71: Line 77:
: If it has an ARM based processor and it is a Windows CE or Windows Mobile device, chances are that the port will run fine. Note that several vendors (including Intel, Samsung etc) use ARM processor cores for main CPUs inside their System On Chip ICs which are used in Windows CE devices, so your ''$brand_name'' device may be ARM based.
: If it has an ARM based processor and it is a Windows CE or Windows Mobile device, chances are that the port will run fine. Note that several vendors (including Intel, Samsung etc) use ARM processor cores for main CPUs inside their System On Chip ICs which are used in Windows CE devices, so your ''$brand_name'' device may be ARM based.
* Look, I have another question: ....
* Look, I have another question: ....
: ''Always'' read the port's Readme file. Have a look at the generic ScummVM Readme file too. Then, come to the forums. :-)
: '''Always''' read the port's Readme file. Have a look at the generic ScummVM Readme file too. Then, come to the forums. :-)


== Appendix A: Jubanka's "A Brief History of PocketScumm" :-) ==
== Appendix A: Jubanka's "A Brief History of PocketScumm" :-) ==

Revision as of 09:32, 5 January 2008

Windows CE Port
Latest Released Version 0.10.0
Supported Audio Options Tremor (OGG Vorbis), MP3, FLAC, Uncompressed
Additional Webpage(s) Check the forums :-)
Maintainer(s) Jubanka
Forum Port Forum
Status Maintained
First Official Version Unknown :-)


ScummVM has been ported to the Windows CE platform. Actually, it's one of the first ports of ScummVM. It is currently actively maintained by Jubanka, following the footsteps of Arisme and Vasyl Tsvirkunov. This wiki page presents some useful info on the port.

What is WinCE

Disclaimer: What follows is a rather loose description of the OS. We do not claim it is full, or even at all correct.

Windows CE is an Operating System developed by Microsoft, targeting mainly portable devices. Recently, Microsoft decided to rename the OS to the more snappy Windows Mobile title, which is intended for use in PDAs and smartphones specifically (the core is still Windows CE though). The Windows CE OS is identified by its version number, 2.00 being dubbed as Pocket PC 2000, 3.00 is Pocket PC 2002, 4.2x is Windows Mobile 2003 (SE), 5.00 is Windows Mobile 5 and so on. Further, the OS targets devices with different CPU architectures, like ARM, MIPS, SuperH and x86.

The Wikipedia page on Windows CE is better documented and users are encouraged to read through it.

Supported Devices

Supported Resolutions
176x220
240x240 (QVGA Square)
240x320 (QVGA)
320x240 (QVGA Landscape)
480x640 (VGA)
Table I

ScummVM currently supports all Windows CE versions from 3.00 on with the ARM architecture with a single binary. This includes the majority of Windows Mobile devices out there, so it is not a big limitation. The codebase can support all types of CPUs and WinCE versions down to 2.00, but no effort is spent on those builds (feel free to contribute).

At runtime, each CE device is classified using only two criteria:

  1. Pocket PC or Smartphone: Pocket PC (like) devices have a pointing device (stylus), Smartphones don't.
  2. Resolution: Currently we support directly all resolutions listed in Table I. Larger screens work too.

Supported Games

All ScummVM engines are supported in the Windows CE port. Low resolution Smartphones (176x220) cannot run games which were originally designed for VGA-class resolutions (they are unplayable at such low resolutions).

FAQ

  • How do I show/hide the toolbar (Pocket PC)?
Double tap at the top of the screen.
  • Is there a virtual keyboard around?
Yes, it can be accessed by double tapping near the top of the screen (Pocket PC) or by using the Keyboard action (Smartphones).
  • Hey, the game is stuck and I cannot quit without rebooting.
Bind and use the Quit action to cleanly exit ScummVM.
  • How do I do all those cool actions you talk about in the readme?
Bring up the Bind Keys dialog once you launch a game either by clicking the key icon in the toolbar (Pocket PC) or by pressing the associated key (Smartphones) and bind away actions to device keys of your choice.
  • What are the default key bindings?
Check out the port's readme (that is, the README-WinCE.txt file).
  • I cannot see the bottom part of the load/save dialog on Pocket PC because the toolbar is obscuring it.
Double tap at the top of the screen to hide the toolbar.
  • How do I get full screen display on VGA or larger screen devices?
Use a magnifying scaler (2x) from the game or global options menu. If your screen is larger than the resulting resolution, the ScummVM output will be centered in the display.
  • What are the pointer zones mentioned in the readme for Smartphones?
Playing with a simulated mouse cursor is awkward, especially when the cursor has to be moved constantly in different areas of the screen. One more or less common action in adventures is: a) Point to an object in the playfield, b) Point and click onto a verb at the bottom of the screen, c) Point and click to an object in the inventory at another part of the screen (f.ex. USE chewing gum WITH stick). The zoning function 'remembers' the position of 3 virtual cursors which you can toggle through with the zone action. Ideally, one of those should be positioned inside the playfield, another to the verb are and one more to the inventory area. Then, performing the previously mentioned routine should be easier: just press the zone action to warp the mouse to the next location.
  • Will ScummVM work for my device?
If it has an ARM based processor and it is a Windows CE or Windows Mobile device, chances are that the port will run fine. Note that several vendors (including Intel, Samsung etc) use ARM processor cores for main CPUs inside their System On Chip ICs which are used in Windows CE devices, so your $brand_name device may be ARM based.
  • Look, I have another question: ....
Always read the port's Readme file. Have a look at the generic ScummVM Readme file too. Then, come to the forums. :-)

Appendix A: Jubanka's "A Brief History of PocketScumm" :-)

Before me, there were two developers whose significant work has made ScummVM available for WinCE users. Eager to find out how the port got to the current form, I recently emailed Arisme asking for any bits of history he might remember. It turns out that Arisme has a weak memory :-) and a recent hard disk crash left him with less info than what he'd like to have. Nevertheless, his memory turned out to be unexpectedly good. So, let's go with some PocketScumm history, straight from the original porter:

« I remember that Vasyl did the first port, which was just working with no sound and no specific CE features (i.e. straight port from the CVS). Then Andys from PocketMatrix forums started working on the sound, and had some success with that, but without getting officially involved in the ScummVM project. If I remember well I got involved after sending some patches for Loom CD, and doing the "first refactoring" of the port which was basically C only at that time, I fixed some Pocket PC specific bugs, and started working on a specific UI for Pocket PC, the virtual keyboard and icons. Then a guy called Bjorn Eike Schwarz (Shapeshifter on PocketMatrix) improved the UI, virtual keyboard and icons. He passed away unfortunately :( so he deserves extra credits in the Wiki I think - see http://www.pocketmatrix.com/forums/viewtopic.php?t=20410

So that was early 2002 - during the next months I improved the compatibility on the different ports on Windows CE and my holy grail at that time was to have a single binary working with all screen resolutions, as well as a very easy code base to port on multiple other Pocket PC architectures (at that time MIPS and SH3 were still on the market), and a clean framework to port SDL based games on Windows Mobile. The Pocketmatrix forum community was quite useful at that time, with a lot of people always available to test the new releases (replaying full games on each release), and SirDave's excellent documentation project. I'd say my big achievement came with the 0.5.1 release in 2003 and the special scalers to work on the first Windows Mobile Smartphone (SPV E100). It was one of the early homebrew to work on the SPV as well (since I spent some time freeing the platform for developers also), and most probably the first single Windows CE executable to work on a Pocket PC and on a Smartphone :)

After that and other funny compatibility updates (due to the ever changing Microsoft platform and mostly "updates" to the graphics drivers), I decided to refactor everything since ScummVM was turning more and more into a C++ project and I felt a little bit left behind with my messy C hacks :) This happened in 2004 but I don't remember for which release it went public. The refactoring itself was fun but of course it broke many things and the result was significantly slower and less compatible than 0.5.1, which was a little bit disappointing. So I spent the next months trying to improve that, but eventually got super busy on other things and rather bored of that never ending bug fixing and attemtps to understand the next creative way Microsoft found to break the display drivers in the next devices (the giant mess that was Windows 2003 SE and its virtual VGA resolution along with the never kept promise of a standard DirectDraw layer coming to the mobile platform pretty much convinced me to stop developing games for this platform).

And that's where you came to save the day, I guess :)

To conclude I'd say that all these years were pretty much fun, I spent a lot of time on these games as a child and feel happy to have contributed to such a great project than ScummVM is today. I think this project makes a lost gaming genre still appealing for many people, and really preserves the history of computer gaming. Bringing my small contribution to this task and helping people carry their new favorite games with them was a great experience ... I think the best part of it were the posts or e-mails of people telling me that they won't get bored anymore on the train or on meetings :) »

Resources

External links