Difference between revisions of "Windows CE"

Jump to navigation Jump to search
12,424 bytes added ,  10:29, 3 June 2020
no edit summary
 
(85 intermediate revisions by 13 users not shown)
Line 1: Line 1:
{{Infobox Port Information|title=Windows CE Port
{{PortFeatures|
|version=[http://prdownloads.sourceforge.net/scummvm/scummvm-0.10.0-WinCE.zip?download 0.10.0]
name=Windows CE|
|audio=Tremor (OGG Vorbis), MP3, FLAC, Uncompressed
backend=wince + sdl|
|webpage=Check the [http://forums.scummvm.org/viewforum.php?f=6 forums] :-)
version=1.5.0|
|maintainer=[[User:Jubanka|Jubanka]]
status=Unmaintained|
|forum=[http://forums.scummvm.org/viewforum.php?f=6 Port Forum]
mp3=yes|
|status=Maintained
ogg=yes Tremor|
|firstversion=Unknown :-)
flac=no|
uncompressed=yes|
zlib=yes|
plugins=yes|
16bits=no|
buildbot=no|
firstversion=0.2.0|
maintainer=[[User:Jubanka|Jubanka]]|
packager=[[User:Jubanka|Jubanka]]|
pkgend=-wince.zip|
forum=6|
icon=wince|
notes=PocketPCs, Smartphones and other handheld devices|
 
agi=yes Build 1|
agos=yes Build 2 *|
cine=yes Build 2|
cruise=yes Build 1|
draci=no|
drascula=yes Build 2|
gob=yes Build 2 *|
groovie=yes Build 2 *|
kyra=yes Build 2|
lure=yes Build 1|
made=yes Build 2|
parallaction=yes Build 2|
queen=yes Build 1|
saga=yes Build 2 *|
scumm=yes Build 1 *|
sword1=yes Build 1 *|
sword2=yes Build 1 *|
sky=yes Build 1|
teenagent=yes Build 2|
tinsel=yes Build 1 *|
touche=yes Build 1 *|
tucker=yes Build 2|
}}
}}
[http://www.scummvm.org/ ScummVM] for Windows CE is a port of the mentioned interpreter for use with the Pocket PC and Windows Mobile platforms. It was last maintained by [[User:Jubanka|Jubanka]], following the footsteps of [[User:Arisme|Arisme]] and Vasyl Tsvirkunov.
== What is Windows CE? ==
Windows CE is an [http://en.wikipedia.org/wiki/Operating_system Operating System] developed by [[Microsoft]], targeting mainly devices with minimal storage capacity. The latest stable version of Windows CE, now officially dubbed Windows Embedded CE, was released November 2006, with numerous new variations based off the CE core released under both Pocket PC and Windows Mobile trademarks. The two latter are mostly intended for use in PDAs and smartphones specifically, ergo their respective titles.
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.
You read more about Windows CE at [http://en.wikipedia.org/wiki/Windows_ce Wikipedia], which new users are encouraged to do before using this port.
== Supported devices ==
[[image:pocketpc_phone.png|thumb|An example of a Pocket PC phone, the Qtek 9100]]
There are two types of devices you can run the Windows CE ARM port of ScummVM with. One type being [http://en.wikipedia.org/wiki/Pocket_pc Pocket PC] and features a touch sensitive screen, which is ideal to play [http://en.wikipedia.org/wiki/Point-and-click point-and-click] games on. The other type being [http://en.wikipedia.org/wiki/Smartphone Smartphone], which is often refered to as a mobile phone with enhanced capabilities that ''usually'' doesn't have a touch screen. While some smartphones do have touch screens, the majority don't and you will have to play the games by steering the crosshair using the phones buttons.
ScummVM currently supports all Windows CE versions from 3.00 (Pocket PC 2002) and up with the ARM architecture. This includes the vast majority of Windows Mobile devices out there, with the exception that they should have enough free [http://en.wikipedia.org/wiki/RAM RAM] for both the executable binary and game data to run. Some Pocket PC 2000 (WinCE version 2.00) devices are reported to work, although this has yet to be officially confirmed.
The codebase can support all types of CPUs and WinCE versions down to 2.00, but there's currently no official builds for e.g. devices using older [http://en.wikipedia.org/wiki/ARM_architecture ARM] processors (Handheld PCs, Palm Size PCs) and others such as [http://en.wikipedia.org/wiki/MIPS_architecture MIPS] or [http://en.wikipedia.org/wiki/SuperH SH] architectures. If your device uses any of these architectures you will have to download an outdated build from [http://scummvm.org/downloads.php#older the download page]. And if you've got the programming know-hows, feel free to [mailto:jubanka_at_scummvm_dot_org?subject:ScummVM contribute] with a more up to date build.
=== Supported resolutions ===
[[Image:Scumm_lowres.png|frame|right|An example of the lowest resolution available]]
;*'''Low resolution Smartphones at 176x220'''
:Support is only provided for games using a resolution at 320x200 or 320x240 as the font can get very hard to read. Should you have access to a talkie version of a game you would want to play, it would be to your avail to use that one. Games with 640x480 resolution such as [http://scummvm.org/compatibility.php?details=comi The Curse Of Monkey Island] or [http://scummvm.org/compatibility.php?details=sword1 Broken Sword] cannot be scaled down to this resolution without being rendered unplayable.
;*'''QVGA square devices at 240x240'''
:Only games using a resolution at 320x200 or 320x240 are supported due to lack of downsampling scaler.
;*'''QVGA Pocket PCs or Smartphones, with resolutions at 240x320 portrait or 320x240 landscape'''
:All games are playable in these devices. Some landscape devices may not be able to rotate the screen around.
;*'''VGA Pocket PCs utilizing a resolution at 640x480 or higher'''
:All non VGA games should work properly on these devices. Devices with resolutions larger than VGA should be supported as the display can be resized with different scalers and have automatic screen centering. Also, VGA games will be displayed in true VGA mode.
=== Partial or discontinued support ===
Support for the following devices is not complete, not working properly or discontinued because the device is now obsolete. Feel free to [mailto:jubanka_at_scummvm_dot_org?subject:ScummVM contribute] and improve the port for your favorite device, or use the last release built with the previous port architecture (0.5.1) which was less resource hungry and supported more exotic devices.
;*'''"Paletted" devices (non [http://en.wikipedia.org/wiki/Truecolor truecolor])'''
:These devices will be supported through the [http://en.wikipedia.org/wiki/Graphics_Device_Interface GDI] layer which will slow down the games a lot. You can try to disable the music/sound effects to get a better experience with a faster framerate.
;*'''Devices with [http://en.wikipedia.org/wiki/Monochrome monochrome displays]'''
:These kind of devices have not been tested officially, feel free to run your own diagnostics and [mailto:jubanka_at_scummvm_dot_org?subject:ScummVM report] with your success.
== Supported games ==
All available ScummVM engines are supported in this Windows CE port. See the [http://scummvm.org/compatibility.php compatibility chart] for more information on which games run on each engine.
It should be noted that some games, such as [http://scummvm.org/compatibility.php?details=samnmax Sam & Max: Hit The Road], may require to have a mouse button mapped to a physical button on your device. This can be accomplished by using the Mapping utility, please read [[Windows CE#How to use ScummVM|below]]. See [[Where to get the games|here]] for where to obtain games.
== Installation ==
There are currently no installation software available for ScummVM, so you will have to manually copy the files and games onto your device. If your device has support for memory cards, you should really use one, as games can be up to 1 GB uncompressed. Either use a [http://en.wikipedia.org/wiki/Card_reader card reader] or sync your device using [http://en.wikipedia.org/wiki/ActiveSync ActiveSync] to transfer the files. Linux users should check out [http://www.synce.org/moin/ SynCE] and Mac OS users [http://www.markspace.com/missingsync_windowsmobile.php The Missing Sync] for all their syncing needs.
=== Installing ScummVM ===
The ideal installation would be to create a folder directly on your device and place the ScummVM binary there - this way we can have different memory cards with the game data files which can be exchanged without affecting save and configuration files.
# Obtain the latest "Windows CE ARM package" from [http://scummvm.org/downloads.php the download page] and unpack it on your computer using a [http://en.wikipedia.org/wiki/Comparison_of_file_archivers ZIP program]
# Create the folder '''''ScummVM''''' under e.g. '''''\Program Files\''''' on your device and place the '''ScummVM.EXE''' there
# If you want the new and now default modern launcher theme, copy over '''Modern.ZIP''' and '''Modern.INI''' as well
# Now, copy '''ScummVM.EXE''' and paste it as a shortcut into '''''\Windows\Start Menu\'''''
# Depending on which games you decide to run with ScummVM you will need to copy over their required data files from the ZIP archive. You could also copy over all of them, as they are quite small in size. But if you are finicky about the storage, here's what files are needed:
:: '''queen.tbl''' - ''Flight Of The Amazon Queen''
:: '''sky.cpt''' - ''Beneath A Steel Sky''
:: '''lure.dat''' - ''Lure Of The Temptress''
:: '''kyra.dat''' - ''Legend Of Kyrandia''
:: '''pred.dic''' - A dictionary for use with ''Sierra AGI titles'' on devices that has no built-in keyboard
Now that you've got the actual application installed, let's get those games working!


=== Installing games ===
As mentioned above - you may want to use a memory card for the game storage, the games can grow quite big without compression.


[http://www.scummvm.org ScummVM] has been ported to the Windows CE platform.
#The games can be installed anywhere on your device, but let's first make a folder called '''''\Storage Card\Games\SCUMMVM\'''''' on the memory card, so that we may know where we've got our games
Actually, it's one of the first ports of ScummVM.
#Now, following [[Datafiles|this list]], copy over the required data files from your favorite games and store them in separate folders as instructed
It is currently actively maintained by [[User:Jubanka|Jubanka]], following the footsteps of [[User:Arisme|Arisme]] and Vasyl Tsvirkunov.
#In the ScummVM launcher, choose ''''Add game...'''' and when the dialog asking to do an automatic search pops up, choose ''''Yes''''. In the next dialog, browse to your recently created '''''\Storage Card\Games\SCUMMVM\''''' folder and tap on ''''Choose''''. ScummVM will then automatically configure the games recursively and put them on the launcher list. You may want to edit the games and remove the version information - '''(VERSION/PLATFORM/LANGUAGE)''' - as it may clutter the list and cropping the games titles, therefore you can change the title entry completely. You may also have to rename some fan-made AGI games as they might not have been added to the compatibility list yet.
This wiki page presents some useful info on the port.


== What is WinCE ==
==== Compressing games ====
''Disclaimer'': What follows is a rather loose description of the OS.
Since most of these games, especially the CD-talkies, will take several megabytes of space, it might be a good idea to compress them as much as possible. This can be achieved with a set of tools provided by the ScummVM team, each engine having its own [[User Manual/Appendix: Tools|compression tool]].
We '''do not''' claim it is full, or even at all correct.


Windows CE is an [http://en.wikipedia.org/wiki/Operating_system Operating System] developed by [http://www.microsoft.com Microsoft], targeting mainly portable devices.
== How to use ScummVM ==
Recently, Microsoft decided to rename the OS to the more snappy ''Windows Mobile'' title,
There's a couple of differences with ScummVM on Windows CE compared to the standard PC build. This section of the manual will describe the additional features in this port.
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 [http://en.wikipedia.org/wiki/Windows_ce Wikipedia page on Windows CE] is better documented and users are encouraged to read through it.
=== The menu ===
The biggest difference you'll notice is the menu on the bottom of the screen. This menu helps you with standard input that would normally require a keyboard, such as saving and loading or skipping a cutscene.


== Supported Devices ==
[[Image:pocketscummmenu.png|center|frame|Figure 1: ''The Pocket Scumm menu'']]
{| border="1" cellpadding="2" align="right"
|- style="background:silver"
!Supported Resolutions
|- align="center"
|176x220
|- align="center"
|240x240 (QVGA Square)
|- align="center"
|240x320 (QVGA)
|- align="center"
|320x240 (QVGA Landscape)
|- align="center"
|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. Game menu
# Pocket PC or Smartphone: Pocket PC (like) devices have a pointing device (stylus), Smartphones don't.
::Opens up the in-game menu; where you can e.g. save/load, configure ScummVM or quit the application. When playing e.g. AGI games or other games with an original menu preserved, this icon will open up the game's standard menu and not ScummVM's built-in. This button won't work with games such as Simon The Sorcerer.
# Resolution: Currently we support directly all resolutions listed in Table I. Larger screens work too.
;2. Skip
::Skips in-game cutscenes and the current character's spoken line.
;3. Sounds and music
::Mutes and unmutes the game sound, convenient in public places when you don't want to attract attention.
;4. Keyboard mapper
::If you need to map an action, e.g. right mouse click, to a button on your device; tap this button to open up the mapping utility.
;5. Orientation monkey
::The orientation monkey is for use with rectangular QVGA/VGA devices. Tap him to make the screen rotate into three different [http://en.wikipedia.org/wiki/Page_orientation page orientation] modes - portrait, landscape and reverse landscape.


== Supported Games ==


All ScummVM engines are supported in the Windows CE port.
'''''If you want to hide the menu, either double-tap on top of the screen or configure a button using the mapping utility, and use it.'''''
Low resolution Smartphones (176x220) cannot run games which were originally designed for VGA-class resolutions (they are unplayable at such low resolutions).


== FAQ ==
== FAQ ==
;''How do I show/hide the toolbar (with Pocket PC)?''
:Double tap at the top of the screen, twice. You may also assign a button on your device using the '''Key Mapping''' utility.
;''Is there a virtual keyboard around?''
:Yes, it can be accessed by double tapping near the top of the screen (Pocket PC) or by assigning the ''Keyboard'' action to a button (Smartphones).
;''Hey, the game is stuck and I cannot quit without rebooting.''
:Bind and use the ''Quit'' action to cleanly exit ScummVM.


Coming soon...
;''How do I do all those cool actions you talk about in the readme?''
:Bring up the '''Key Mapping''' 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 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. The most common action in adventure games is to combine two or more items, where you basically have to:
:#Point to an object in the playfield
:#Point and click onto a verb at the bottom of the screen
:#Point and click to an object in the inventory at another part of the screen (e.g. USE chewing gum WITH stick).
 
:The zoning function 'remembers' the position of three virtual cursors which you can toggle through with the zone action. Ideally, one of those should be positioned inside the playfield, another to where the verbs 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?''
:Short answer: 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.
:Long answer: Several vendors (including Intel, Samsung, etc) use ARM processor cores for main CPUs inside their [http://en.wikipedia.org/wiki/System_on_a_chip System On Chip] integrated circuits, so check the specifications of your device to see if it is supported. Note that many devices can specify using a different processor, such as [http://en.wikipedia.org/wiki/OMAP OMAP], but most of these are ARM based and should work.
 
;''Look, I have another question [...]''
:''Always'' read the port's Readme file, which can be found in the ZIP-package you've downloaded. You should also have a look at the generic ScummVM Readme file before asking questions. If you haven't found an answer for your questions in any of these documents, please visit our forum and ask nicely.
 
== Appendix A: Jubanka's "A Brief History of PocketScumm" ==
 
<THIS SECTION IS TO BE REWORKED INTO A PROPER HISTORY SEGMENT>


== 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.
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,
Eager to find out how the port got to the current form,
Line 70: Line 198:
So, let's go with some PocketScumm history, straight from the original porter:
So, let's go with some PocketScumm history, straight from the original porter:


<font size="+10"> &laquo; </font>
;<font size=10 face=Georgia color=gray><b>,,</b></font>
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).
: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 [http://www.pocketmatrix.com PocketMatrix] forums started working on the sound, and had some success with that, but without getting officially involved in the ScummVM project.
Then Andys from [http://www.pocketmatrix.com 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
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.
: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.
: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 :)
: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 :)
: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.
: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).
: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 :)
: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.
: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.
: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 :)<font size=10 face=Georgia color=gray><b>,,</b></font>
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 :)
 
<font size="+10"> &raquo; </font>
== Resources ==
* [[Compiling_ScummVM/Windows_CE|Compilation instructions for the Windows CE port]]


== External links ==
== External links ==
* [[Compiling_ScummVM/Windows_CE|Compilation instructions for the Windows CE port]]
* [http://forums.scummvm.org/viewforum.php?f=6 ScummVM PocketPC/WinCE forum]
* [http://forums.scummvm.org/viewforum.php?f=6 ScummVM PocketPC/WinCE forum]
* [http://forums.scummvm.org/viewtopic.php?t=936 SirDave's PocketScumm Manual]
* [http://forums.scummvm.org/viewtopic.php?t=936 SirDave's PocketScumm Manual]
* [http://en.wikipedia.org/wiki/Windows_ce Wikipedia page on Windows CE]
* [http://en.wikipedia.org/wiki/Windows_ce Wikipedia page on Windows CE]
[[Category:Platforms]]
271

edits

Navigation menu