REVIEW & TUTORIAL: great Doom port DoomPPC, with great multiplayer support, out! - General Topics

I’ve often reported (see my latest report here) on DoomGL-ES, the OpenGLES (including the well-known Intel 2700G GPU in the Dell Axim x50v / x51v) version of the great 3D First Person Shooter (FPS) Doom.
Now, the author of the port, Kokak, has come out with a version that doesn’t require an OpenGL-ES compatible GPU; that is, one that runs on any (WM5 – unfortunately, it isn’t compatible with earlier operating systems and the author won’t support them in the near future either) Pocket PC. The lack of the hardware 3D acceleration certainly means much worse visuals (exactly the same as were in the original Doom) and, on some devices (for example, on the HTC Wizard, even when overclocked to 240 MHz) definite slowdowns.
Note that there are two subversions: 004, which didn’t work because it had pathnames wired in and version 004b, which was released after I’ve reported the bug to the developer. The latter should be used.
I’ve tested the port on all my four WM5 Pocket PC’s (Dell Axim x51v, HTC Wizard, HTC Universal, iPAQ hx4700) and encountered no problems (except for the, in cases, slow graphics) at all.
Installing the new version is also much easier than with the OpenGLES version: you just grab this file, unzip DoomPPC.exe and doomrc.cfg from it and copy them in any directory and, then, just copy doom(1).wad in the same directory. If you’re new to the game, here is the shareware (doom1.wad) version (just unzip the contents of the ZIP file).
Networking
I’ve tested the game running over Bluetooth PAN (please do read my networking-related explanation in the Pocket PC Multiplayer Gaming Bible if you don’t know what it is) with three test Pocket PC’s: a VGA HP iPAQ hx4700 (ROM version 2.01) and Dell Axim x51v (ROM version A12) and a QVGA HTC Wizard. On the Wizard and the Axim, I used this and this Widcomm BT stack to enable BT PAN, respectively. (I haven’t tested it on the HTC Universal because, as is also pointed out in this XDA-Dev thread, there’s still no final Widcomm BT hack for the device, albeit BT PAN is already accessible.) Note that the game works just great over Wi-Fi ad-hoc connections too (that is, not only in infrastructure mode, as opposed to what the homepage of the game states).
I’ve tested most possible configurations with these three devices: Wizard vs. x51v, Wizard vs. hx4700 and all the three Pocket PC’s against each other. Most of the time, the game worked just great in multiplayer – even with three Pocket PC’s being involved.
It must be pointed out that the GLES (that is, the 3D accelerated) version doesn’t support multiplayer as yet. That is, even if you have a Dell Axim x50v / x51v, you’ll need to stick to the software-only (“low-fidelity”) version of the game if you want to play others. The GLES version, currently just displays name resolving problems with exactly the same configuration as that of the software-rendered version.
Networking configuration
In order to start a multiplayer game between different Pocket PC’s (and, for that matter, notebooks – multiplayer is cross-platform), first, you must know the IP addresses of all the Pocket PC’s involved. Fortunately, it’s very easy to find this address; please read the section “Finding out my Internet address” in my BT PAN tutorial.
Let’s assume you have the following IP addresses (in here, I use my own IP addresses so that I can provide you with some guaranteed-to-work scripts):
Wizard: 169.254.212.125
hx4700: 169.254.69.71
x51v: 169.254.179.111
Now that you know the IP address of each and every device that will participate in gaming, you must create invoker .lnk scripts. In these scripts, you must, first, assign a unique ID (between the range 1 and 4) to your Pocket PC and must also supply the IP address(es) of (the) other Pocket PC(’s).
At first, let’s assume you will only want to create a multiplayer game between the Wizard and the x51v (see the IP’s above). For this to work, you must pass the IP address of the Wizard in the x51v .lnk start command and vice versa: for the x51v, you must explicitly give the IP address of the Wizard.
That is, the x51v script should look like this:
227#"\Doom\DoomPPC.exe" -net 2 169.254.212.125
and the Wizard script should look like this:
227#"\Storage Card\DOOM\DoomPPC.exe" -warp 1 1 -net 1 169.254.179.111
(Note that the absolute paths (\Doom and \Storage Card) in here may/will be different with your installation. You can also use something other than 227 as the trailer. Also note that the number right after the –net flag is 1 with the Wizard script and 2 with the x51v one; this is because, as I’ve already mentioned, you must use unique ID’s. Finally, note that one of the participating Pocket PC’s must be passed the -warp parameter, which declares the number of the episode and mission to be played.)
You must start the game using these scripts on your Wizard / x51v after, of course, initiating the network connection, which can be any kind of connection: internet-less, peer-to-peer Wi-Fi or BT PAN or even remote, Internet-based play (in the latter case, however, you may encounter slowdowns because of the lag) – after all, Doom uses standard TCP unicasting.
Now, let’s take a look at how the Wizard should play against the hx4700. The starter command of the Wizard follows:
227#"\Storage Card\DOOM\DoomPPC.exe" -warp 1 1 -net 1 169.254.69.71
and here comes the hx4700 script:
237#"\SD Card\DOOM\DoomPPC.exe" -net 2 169.254.212.125
Again, note that one of the participants must be passed the episode and mission (-warp), assigned unique ID’s (1 and 2 in this case) and, finally, must be passed of the IP address of the other Pocket PC.
Finally, let’s see the more advanced case: a multiplayer game involving three Pocket PC’s. In this case, you must supply the IP address of the two other Pocket PC’s to all the three devices. You must use a space between the IP addresses, which, this way, form a list. That is, the Wizard script will be as follows:
227#"\Storage Card\DOOM\DoomPPC.exe" -warp 1 1 -net 1 169.254.69.71 169.254.179.111
the hx4700 script:
237#"\SD Card\DOOM\DoomPPC.exe" -net 2 169.254.212.125 169.254.179.111
and, finally, the x51v script:
227#"\Doom\DoomPPC.exe" -net 3 169.254.69.71 169.254.212.125
Also note the introduction of the ID 3 – the first two are already reserved.
For your convenience, I’ve uploaded all these link scripts HERE, into three different subdirectories separating the three cases I’ve elaborated above. The naming convention of the individual lnk files is as follows: first comes the name of the device the script must be used on and, then, the name of the other device or a ‘3’ when there will be all the three devices playing each other. Of course, you will need to change the IP addresses (and the paths to DoomPPC.exe) in them. Also make sure you change the -warp parameter when you want to play other episode / mission.
Let me know if you have further questions.

This game doesn't work on my Hermes. ;[
When I try to begin a new game (in menu) or launch with -warp 1 1 net 1 192.168.0.1, game crashes and I'm back in Windows. No error messages.
I forgot: I think this may happen because I have WM6

mrbabcia said:
This game doesn't work on my Hermes. ;[
When I try to begin a new game (in menu) or launch with -warp 1 1 net 1 192.168.0.1, game crashes and I'm back in Windows. No error messages.
I forgot: I think this may happen because I have WM6
Click to expand...
Click to collapse
I don't think it's because of WM6 - I've tested the game / wriitten the tutorial on some WM6 (Wizard, Universal) devices.

Menneisyys said:
I don't think it's because of WM6 - I've tested the game / wriitten the tutorial on some WM6 (Wizard, Universal) devices.
Click to expand...
Click to collapse
Does the same on my wing, I execute and the screen rotates sometimes becomes a gradient of blue to red and then closes back to windows.
Ok I figured it out
@ mrbabcia try using Hibernate app to free some system memory that worked for me.

Works pretty well on Elf, how do I change key bindings though?

This seems to work fine on Touch Pro but the problem is the key bindings. They could be changed by editing doomrc.cfg but the keys have numeric values and I've no idea what the values are for the hardware keys of the TP. Anyone have any idea how to edit the cfg file?

Related

The first hours with Shadow of the Legend, the King of Windows Mobile MMORPG’s

I’ve often reported on SmartCell’s forthcoming Massive Multiplayer Online Role-Playing Game (MMORPG) Shadow of the Legend; last time upon its entering (currently, still (?) open) beta. (Please see the above link for more info on how to apply, what other MMORPG’s there are for Windows Mobile and so on. Note that a new MMORPG, Providence, has also been announced in the meantime. However, not much is known about it as yet, let alone anything playable.)
Yesterday was the big day of opening the beta. Sure, I’ve jumped on playing the game at once and have been VERY happy with it. It’s working just great on all my WM2003, WM2003SE, WM5 and WM6 test Windows Mobile devices (explicitly tested on the HP iPAQ 2210, the Dell Axim x51v, the Fujitsu-Siemens Pocket Loox 720, the WM5-upgraded HP iPAQ hx4700 (which is pretty famous for not being able to run some games) and the HTC Universal). Yes, unlike what has originally been announced, the game supports the WM2003 and WM2003SE operating systems too. With the MS Smartphone platform, however, it “only” supports WM5+.
Installation
Despite what the online documentation states, you MUST have at least 850-900 Mbytes free (!) on your storage card before first starting the game (and not just 500 Mbytes). Exactly the same stands for the desktop PC version: you MUST have at least equally much free hard disk space for the (current version of the) game.
Note that as the Windows Mobile version downloads the updates into one of its subdirectories, you MUST install the original, downloadable CAB installer file (linked from here) on a storage card (unless you have at least 900 Mbytes free in your main storage, which is only the case with some new devices with 2-4 Gbytes of Flash ROM.)
Note that, fortunately, if you have more than one Windows Mobile devices and you want to avoid having to install the game on all of them separately, you can just swap the memory card between the devices – or, just copy the contents of the installed and updated, HUGE home directory from your memory card to another one. Fortunately, the game doesn’t use for example the Registry to store anything; that is, simply swapping / copying the card(s) will do just fine.
Graphics
They are very good. The WM version, as you’ve probably guessed, a scaled-down (QVGA, 320*240) version of the SVGA (800*600) desktop one. This means the graphics is FAR more coarse. Unfortunately, the game, currently, doesn’t make use of the high resolution of (W)VGA (800*480 or 640*480) WM devices. Hope this will be fixed in the future: the game would REALLY benefit a lot from it.
Music
In this regard, the desktop and the WM versions are similar. Both uses stereo music and mono sound effects. Unfortunately, while the music is VERY good and different for all main areas on the map (currently, it seems, there are 12 of them), it’s pretty short (about 1 minutes and 40 seconds) and, therefore, quickly becomes repetitive.
The developers may want to consider adding longer in-game music to the game in the final version even at the expense of storage usage (currently, in-game music is in uncompressed format).
Messages
In-game messages, which are very important with a MMORPG title, work just great (see the screenshot above) in both private and public modes (you can even fine-tune who should receive your messages as can be seen in here).
Bandwidth usage
At the SmartCell forums, people have asked what kind of connection is needed to play the game. I’ve made some extensive bandwidth tests and found out that, in five minutes, 83 kbytes were sent and 167 kbytes received, totaling to about 250 kbytes / five minutes; that is, three Megabytes in an hour. Keep this in mind if you plan to play the game through a non-unlimited mobile data access plan.
Some other screenshots
A desktop screenshot and a Windows Mobile one. Accepting a quest (WM screenshot).
Verdict
I need to disagree with Allen Gall (see THIS). This game looks to be a major hit. Don’t forget to apply for the beta – it’s REALLY worth it!
Thanks for pointing this out, just applied for the Beta!
Hahah, 2 hours after I applied to be a beta tester, they emailed me saying that i got accepted!!
Gonna install it now, look out for me, my screen name will be Ramacher.

The definitive guide to playing SNES games on Windows Mobile (and Symbian)

I’m very often asked about what emulator should be used under Windows Mobile to run Super Nintendo Entertainment System (SNES) (a.k.a. Super Famicom / Super Comboy), a hugely successful home game console of the early nineties.
One of the reasons for this is the abundance of the current emulators. See for example the SNES section on Michu’s famous EmuPage - it lists seven titles and, with some (for example, the n0p port) of them, even additional ones. Another reason for this was the shortage of dependable, comparative information available:
there are no real up-to-date articles with REAL-WORLD compatibility information and really dependable and reliable comparison; for example, the only SNES-emulations-specific roundup of available emulators I could find, PDAGameGuide's Top SNES Emulator Downloads Guide For Your Pocket PC, is heavily outdated, only discusses two (very old and, today, in no way recommended) emulators and doesn't at all dive into subtleties like emulating sound or on-screen controls.
there are a lot of plain bad information floating around (for example, some people’s praising the absolutely useless Snes9xPPC (by pdafan) or Snes9xJ4u)
and even the above-linked WikiPedia article linking in the oldest and least capable SNES emulator version (the original port made by Scott Ramsby)
Finally, the Nominations Manager for Smartphone & Pocket PC magazine’s Best Software Awards 2007, the guy responsible for nominations and (initially) deciding what should be nominated and what not, should show the entire Windows Mobile community he really knows what he does, doesn’t he? ;-)
Why should you bother?
It’s simple: if you’re into Japanese RPG’s like the early Final Fantasy series, Zelda, Earthbound, Chrono Trigger, Super Metroid and similar titles (there are a LOT of them), your best (and, in most of the cases, only) bet is SNES emulation to be able to play these titles.
Of course, there are some very good arcade / platformer games for the platform; for example, Firepower 2000, Donkey Kong Country or the Mega Man and R-Type series. In addition, you will want to check out for example the SNES implementation of the Super Mario series (there are several fan-created, free, public domain additions and fan versions like THESE)– after all, it’s free (if you own the original SNES cartridge), and high-quality – in general, much better (because of the higher quality) than the GameBoy Color / Advance versions. However, let's not forget NeoGeo emulation may offer even better arcade-quality platformer games (for example, Metal Slug) - that is, for REALLY nice action / platformer games, you may want to check out even stronger, but still properly emulated consoles / arcade machines like the NeoGeo.
What about the speed?
While many (see for example THIS PG thread) say low-resolution QVGA devices will ALWAYS be faster to emulate SNES than VGA, this is not necessarily the case. For example, the HTC Wizard runs ALL emulators REALLY slow even when overclocked to 273 MHz (and not using the touch screen – that is, it’s not the well-known 2.8” HTC bug that is slowing down the emulation). For example, some HP iPAQ hx2490 users (another QVGA model) have also reported the same. It should also be stressed that there aren’t that big differences between VGA devices than some people state.
For example, I have four VGA devices:
HTC Universal
WM5 (ROM version 2.01) HP iPAQ hx4700
WM2003SE Fujitsu-Siemens Pocket Loox 720 (without Picard’s GAPI hack)
WM5 (ROM version A12) Dell Axim x51v
All of them runs the test games (for example, Mario Kart) definitely faster (with n0p’s latest emulator version) than my HTC Wizard overclocked to 273 MHz (and not touching the touch screen), and, at least with the Pocket Loox 720 and the x51v, even faster than my 400 MHz HP iPAQ 2210 running WM2003. Yes, even the HTC Universal, which, in general, is pretty useless for action games / emulators.
This all means don’t believe people that state VGA (high-resolution) devices are bound to be useless and QVGA models bound to be great. That’s an oversimplification and, in most cases, not at all true.
Sound issues
Unfortunately, sound emulation is, in general, much worse with SNES than with CPS-1/2, Sega Genesis or even the, hardware-wise, much more advanced NeoGeo. When emulating the latter, if your device doesn’t have the necessary “juice”, all you will get is choppy sound (with only some games; for example, the Metal Slug series on NeoGeo. The vast majority of games will run with excellent sound – even NeoGeo ones).
With SNES emulation, the situation is much worse. While some games (for example, Super Ghouls and Ghosts) are reported not to have this issue, other games (for example, Final Fantasy II) will always exhibit absolutely messed-up music (see for example mrfalcon’s post in this PG thread).
If you still want sound emulation, make absolutely sure you disable automatic frame skipping and set frame skips to a wired-in value of 1 instead of the default 5. Then, after enabling sound (and sound synching as can be seen in here (note that you may also want to enable stereo mode if you uses headphones / external stereo speakers; just switch it off if you find it further decreasing the emulation speed. I didn’t; therefore, I’ve left it as stereo. You may also want to play with the other parameters)), the sound / music will become far more consistent and enjoyable.
The frame drop option “1” tells the emulator to drop (not render) every other frame. That is, the, by default, frame rate of 60 will be forced to become 30. This will help a lot in almost every respect, even at an expense of some (almost invisible) jerkiness increase.
The available emulators
OK, let’s see what we have and what you should use.
First, let me point out that there are two main groups of (current) SNES emulators.
One of the groups has numerous emulators. They’re all common in that they all are based on Scott Ramsby’s initial, old PocketSNES, either adding some additional functionality (for example, on-screen buttons) to it, bugfixing it (for example, making it VGA-compliant) or recompiling / updating it, using a newer version of the underlying Snes9x engine. As far as usage is concerned, these emulators are very similar. I’ll explain the differences in the GUI (particularly with Tala’s OpenGL ES version).
The second "group" only contains one (up-to-date) emulator: MorphGear.
Let's see the first group first.
n0p’s PocketSNES ports
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
n0p is pretty famous for his emulator ports. I've already reviewed his Genesis Plus in my Sega Genesis / Mega Drive article. With SNES emulation, he has also come up with something really top quality.
This (these) are the emulator(s) you MUST check out unless you have a Dell Axim x50v / x51v (then, Tala's emulator is the one to get first).
There are three emulators on n0p's homepage: a WM5 / VGA, a generic and an ARM one. There isn't much difference between these emulators: for example, if you have a non-VGA, XScale-based Windows Mobile device (even a WM5+ one), you can use any of the three versions. If you have a VGA device, you MUST download the latest, WM5 + VGA version. Note that it'll also run on previous-generation (WM2003SE) VGA models too, as is also explained for example in my AximSite-frontpaged review HERE.
This emulator excels in full-screen stretching capabilities and on-screen tap areas. Mostly because of these that it should be preferred over the other titles.
Tala’s OpenGL ES PocketSNES version
The above-introduced and, in general, most recommended n0p emulator doesn't use OpenGL ES in Dell Axim x50v / x51v's to make the graphics less pixelizated. For the latter, you must get the specific OpenGL ES version by Tala (also see the dedicated thread HERE and HERE).
It, being not pixelizated at all, is much easier on eyes and also supports on-screen buttons. As opposed to n0p's version, there can be only two of them at one time; they, however, can be freely assigned to any of the eight original buttons of the SNES controller (while the four on-screen buttons / tap areas of n0p's version is hardwired to A, B, X and Y). In addition, you can also configure Tala's version to treat one key as an autofire one. This is pretty unlike "traditional" autofire solutions because it'll keep autofiring even without your having to hold down the given (screen) button. This can prove really useful on devices like the HTC-manufactured Pocket PC Phone Edition models with a 2.8" screen because they all exhibit touchscreen CPU overburdening problems and, therefore, hopefully n0p will also implement this functionality on his ports.
Masterall’s PocketSNES port
Masterall is the author of the BEST NeoGeo / CPS-1/2 emulator, FinalBurn Alpha and the BEST Sega Mega Drive / Genesis emulator, PicroDrive.
Unfortunately, his PocketSNES update has nothing to write home about, except for being based on the latest, 1.43 version of the Snes9x engine, which means compatibility with some titles 1.39, on which both Tala's and n0p's above-introduced emulators are based on, was still incompatible with (see the compatibility information for individual titles below). It has no goodies like on-screen keys. You may only want to check it out if you have a Microsoft Smartphone (Windows Mobile 6 Standard Edition) and the other Microsoft Smartphone solutions (see the Additional Links section for more info) are insufficient for your needs.
PocketSNES/03 Preview 4
This title is also based on the latest, 1.43 version of the Snes9x engine. Unfortunately, it has no other goodies - it's, otherwise, almost the exact recompilation (with fixed VGA support) of the original Scott Ramsby PocketSNES.
The second group, as has been pointed out, contains one title,
MorphGear
with the SNES9x plug-in (the CAB can be downloaded from HERE, in addition to that of MorphGear. Install the latter first and, then, the former).
It's way better than some other MorphGear modules and is highly recommended. It's certainly a bit slower than the above-introduced PocketSNES modules, but exhibits a definitely higher compatibility ratio. Therefore, I really recommend installing it on your Windows Mobile device, even if as a second emulators, the main still being either n0p's or (depending on whether you have a Dell Axim x50v / x51v or not) Tala's enhanced PocketSNES versions.
Note that all the reviewed emulators are free (including the SNES module of MorphGear).
Finally, let's talk about the non-recommended titles too.
Scott Ramsby's PocketSNES 1.12.200
As has already been pointed out, this is the base of all current enhanced ports. It's not really worth checking it out – n0p’s version (or that of Tala is you have OpenGL ES support) is much more up to date & featureful (on-screen buttons, VGA support).
Snes9xJ4u (its old URL isn’t accessible any more)
The GUI of this app is entirely in Japanese and is WindowsCE-friendly, meaning a non-native Windows Mobile GUI. It was last modified on 2004/08/05. It, basically, works the same way as PocketSNES but the menus are pretty different. You can, however, easily guess what the menu items are for; except for Options / B (the bottom-most menu item). There, the bottom-most checkbox enables, while disabling bringing up the menu with on-screen controls, is related to D-pad. I couldn't find out the way it's controlled - it's absolutely irregular. The topmost checkbox seems to be doing nothing; the middle one enables the above-explained screen "control" but doesn't disable pausing the game & bringing up the menu by clicking anywhere else than the lower left part of the screen. I couldn't find out how landscape should be used instead of the default Portrait - it's possible it's not supported at all.
pdafan’s Snes9xPPC ver0.41
While this emulator is based on the Snes9x 1.43 core and is pretty new (last modified: 2006.2.24), it's definitely slow (MUCH slower than any other tested emulators!) on all the devices, both QVGA and VGA, I’ve tested it on. Avoid it.
Getting games and storing them on the mobile device in an efficient way
In here, I don't give you URL's to ROM files as it'd be illegal (without being sure you DO own the original cartridges of all games you do want to play). However, the Internet, particularly Google, has a lot of related information on how these ROM's can be acquired. That is, Google will be your friend. Note that you'll need to read THIS article for more info on ROM file naming conventions (what for example the exclamation marks, numbers and letters mean after the ROM file names).
After you've acquired your ROM images (as .ZIP or .7z files - the latter is very common with archives having more than one image - for example, different release versions, languages of the same game are often packed with 7z to GREATLY, in cases, with orders of magnitude (!) decrease the archive's size), decompress them if your emulator doesn't support ZIP archives - for example, of the three most recommended emulators, MorphGear doesn't support ZIP files as can also be seen in the "Compression support" row of the Comparison and game compatibility chart. Then, transfer them to your mobile device. Please consult the "Files" section in the first part of the Comparison and game compatibility chart for more information on whether a given emulator has its own file open dialog. If it doesn't (as is the case with Tala's app), you will need to either install Mad Programmer's File Dialog Changer (FDC), as is explained in my Sierra interpreter review & tutorial. Or, alternatively, store your (if the emulator allows for compression, ZIP'ed) ROM files in a direct subdirectory of your storage card. Otherwise, you can store them anywhere.
Also note that, if you do plan to very often load new ROM's in your emulator, you will want to thoroughly check out the "Remembers last position (with Mad programmer's FDC - that is, when NOT using the standard file dialog)" row in the same section. You will want a solution that always takes you back to the last-used directory so that you don't need to manually switch directories, which can be pretty tedious.
Unfortunately, as can be seen in the chart, n0p's (internally Mad Programmer's FDC-based) solution always starts from the home directory of the app and doesn't remember the last directory you've loaded your files from. Therefore, to make things as fast as possible, consider storing your ZIP archives right in the home directory or n0p's port (that is, in the same directory where you've decompressed n0p's emulator to).
Tala's port (the preferable emulator for Dell Axim x50v / x51v users) always starts from \My Documents, in the built-in storage, if you do install Mad Programmer's FDC. Therefore, if you don't want to move your ROM files in the main storage (because it's already full and/or you'd like to keep your ROM files on a card) but still need quick image switching capabilities, consider disabling FDC or adding Tala's emulator to the exception list of FDC and just stick with the standard file selector dialog of the operating system and just put yuour ROM's in a direct subdirectory of the root of your memory card so that they are displayed at once without your having to manually change directories.
Installation, configuration, running games
All the reviewed emulators can co-exist without problems - this means you can keep any of them on your Windows Mobile (as long as they're compatible - for example, it's pretty useless to keep the OpenGLES (Tala) version of PocketSNES on your mobile if it's not a 2700G-based Dell Axim). Actually, except for MorphGear, they don't even need to be installed: you only transfer the EXE file you dowload off the Web to your mobile device and start it in there. (With the addition that Masterall also requires Tillansoft's tGetFile and n0p's distribution has some other files in the ZIP file you'll also need to transfer to the same directory on your mobile.)
After starting the emulators, starting a game is pretty straightforward: you go to Tools / Load ROM (in all PocketSNES-derivatives) and click a ROM after finding it. After this, the game is started and can be controlled with the D-pad and hardware buttons of your device.
Buttons
The standard button assignment can be changed in Options / Buttons…; this is particularly important on WM devices with few buttons (like the HP iPAQ 2210) because the, by default, eight non-directional buttons (one of them, Start, being assigned to Action - that is, the center of the D-pad or, if present, the jog dial) needs to be assigned to 4, 5 or 6 buttons, depending on the particular WM model. Therefore, you may want to change your button assignment configuration regularly on devices having too few buttons.
To configure your button assignment, just go to the above-mentioned Options / Buttons…, click a SNES controller button (A, B, X, Y, L, R etc) on the screen and press the hardware button you'd like to assign to it.
Note that on devices with double button functionality (HTC Wizard, Fujitsu-Siemens Pocket Loox 720), in general, you can assign a functionality to the long-pressed state as well (of most buttons). This isn't the case with the WM5-upgraded and, therefore, double button functionality-enabled HP iPAQ hx4700.
You can also make use of the WM5 hardware soft keys (when available).
Finally, if you have a Windows Mobile phone, you can also utilize its red and green phone buttons.
Display
The emulators use the Portrait orientation by default, which may not be the best solution because it leaves a lot of screen estate unused (and, what is more, on-screen buttons / tap areas are far more awkward to use in this state, if not downright impossible, as is the case with the Tala OpenGL ES-enabled version). Therefore, you will want to switch the game display to Landscape mode. You can do this in Options / Display…, by clicking in either Landscape Left (Stretched) if you're right-handed or Landscape Right (Stretched) if you're left-handed. Stretched means the app (if it's capable of doing so - many, for example, PocketSNES/03, don't) will try to fill in the entire screen.
Note that if you run Tala's version, you will need to use the system-level orientation change support instead of this menu. That is, with the Tala version, leave the default "Portrait" mode in Options / Display… always intact - as opposed to all the other emulators.
Note that, as far as on-screen buttons are concerned, with n0p's ports, they are correctly relocated in the lot less widely used left-handed Landscape mode; Tala's version doesn't support this. This is certainly bad news for left-handed Dell Axim x50v/ x51v users.
It's also in Options / Display… that you will want to disable Auto Frame Skip and use a value of 1 (or, if your PDA or the emulation is particularly slow, 2 or even higher) to drop frames in order to provide a consistent, jerkiness-free emulation and, what is even more important, sound (if you enable it at all).
SNES emulation on other platforms
Desktop operating systems
Here are three, excellent emulators for desktop OS'es:
Snes9x
ZSNES
bsnes
Please check out the above links for more information.
Symbian
I've also tested the Symbian SNES emulator, vSun Plus 1.0 (and its ancestor, the still sound-enabled vSun 1.1) on my Nokia N-Gage. Note that the N-Gage is a very old (2003) phone and only has a 104MHz ARM9 CPU and some 3 Mbyte of free RAM. This is why most games run pretty slow (but some of them are still playable) and sound emulation (with vSun 1.1) results in unbelievably bad results. If they start at all, that is - it's only with ROM images smaller than 3 Mbytes that they are loaded at all.
Note that, with newer, faster Symbian devices with much more RAM, these games (can) become very nice (and 3+ Mbyte cartridges also loadable). Therefore, if you, say, have a Nokia N93 or N95, make sure you download vSun Plus 1.0 (or even the earlier, less compatible but sound-enabled vSun 1.1 to check out whether the sound emulation is OK on your model).
What I've provided here is more of compliance information to see how vSun Plus compares to the Windows Mobile emulators because many state vSun Plus is superior to WM titles (see for example THIS). As can be seen, Windows mobile has nothing to be ashamed of - in general, WM-based emulators are more compatible with the tested titles than vSun.
Also see this for more info on generic Symbian emulators.
Comparison and game compatibility chart
It's available HERE. The first section discusses generic questions like on-screen buttons, operating system / device compatibility, support for ZIP archives etc and, based on this article (and my past, emulation-related ones), is pretty easy to understand; the second has a LONG list of the best, most popular SNES titles and their compatibility with the three most recommended PPC emulators (Tala, n0p, MorphGear) and, as far as the Symbian S60 operating system is concerned, vSun Plus; in addition, I've now and then tested the other emulators with these games too. In order to help authors/developers to fix problems (or, for people that really want to see a given title indeed doesn't run) with a particular non-working title, I've also provided links to the non-working games (but only them! I haven't linked in working games. Sorry, I won't breach the (C) laws.)
Recommended links
My other game emulator reviews in the Games section of the Smartphone & Pocket PC Magazine's Expert Blog. I plan to cover / discuss ALL emulators available for Windows Mobile and have already published some of these articles. Do make sure you follow / read this articles - nowhere else will you find a better source of emulation-related information, I'm pretty sure.
Additional links
Note that these threads / articles may have outdated or plain bad info. You should NOT believe anything in them that is in strong contrast with the information in the above article. You, however, may want to give them a read.
PDAGameGuide's Top SNES Emulator Downloads Guide For Your Pocket PC
n0p's PocketSnes vs Tals's OpenGL-ES PocketSnes vs...
How to do SNES games
SNES Emulation on Pocket PC
How is game playing?
hx2750 with morphgear
MorphGear 2.0 Review
Good news, MorphGear now can run on Smartphone 2003!
working smartphone snes emulator(s)! and avalon5's new smartsnes
(Somewhat) Related comment on the Snes9xJ4u
Menneisyys said:
Snes9xJ4u (its old URL isn’t accessible any more)
The GUI of this app is entirely in Japanese and is WindowsCE-friendly, meaning a non-native Windows Mobile GUI. It was last modified on 2004/08/05. It, basically, works the same way as PocketSNES but the menus are pretty different. You can, however, easily guess what the menu items are for; except for Options / B (the bottom-most menu item). There, the bottom-most checkbox enables, while disabling bringing up the menu with on-screen controls, is related to D-pad. I couldn't find out the way it's controlled - it's absolutely irregular. The topmost checkbox seems to be doing nothing; the middle one enables the above-explained screen "control" but doesn't disable pausing the game & bringing up the menu by clicking anywhere else than the lower left part of the screen. I couldn't find out how landscape should be used instead of the default Portrait - it's possible it's not supported at all.
Click to expand...
Click to collapse
I have this emulator and use it occasionally. I actually got it from the Wizard section of this site about a year ago. I cannot find the thread now but if permitted I could re-post the app. It can easily be configured to English - the instructions were on the original thread, but they go:
HKLM\SOFTWARE\CEe4U\Snes9xJ4u\Language\ Change value from 0 (zero) to 1 (one) [OK]
The .exe runs as is, and requires no cab or pc installation. Create a short-cut and launch it, that's it! (oh, and then exit and perform the reg change above to get the english language - you can also configure the buttons).
I use a Wizard and some games run fine, but others are tricky to control and are slow. R-Type runs ok as does Mario. Overclock though.
There's no landscape support either. But you can use on screen controls if desired and this doesn't infringe upon the pittifully small screen (oh-did I not mention that). I did not find them as intuitive as using the d-pad.
I will attempt to find that link.
-edit- I have had no luck finding the original post. Maybe it has been deleted or maybe it was warez (although I think not).
decknologist said:
I have this emulator and use it occasionally. I actually got it from the Wizard section of this site about a year ago. I cannot find the thread now but if permitted I could re-post the app. It can easily be configured to English - the instructions were on the original thread, but they go:
HKLM\SOFTWARE\CEe4U\Snes9xJ4u\Language\ Change value from 0 (zero) to 1 (one) [OK]
The .exe runs as is, and requires no cab or pc installation. Create a short-cut and launch it, that's it! (oh, and then exit and perform the reg change above to get the english language - you can also configure the buttons).
I use a Wizard and some games run fine, but others are tricky to control and are slow. R-Type runs ok as does Mario. Overclock though.
There's no landscape support either. But you can use on screen controls if desired and this doesn't infringe upon the pittifully small screen (oh-did I not mention that). I did not find them as intuitive as using the d-pad.
I will attempt to find that link.
-edit- I have had no luck finding the original post. Maybe it has been deleted or maybe it was warez (although I think not).
Click to expand...
Click to collapse
Thanks for the tip; I'll link it in the update.
UPDATE (05/11/2007):
I haven’t listed YameCE, the very old, no longer supported GameBoy, PC Engine, NES and SNES emulator in the “Disqualified” section. Its SNES emulation useless: if it runs at all (for example, with Axelay or SF2 Ultra, as opposed to, for example, Super Mario World / Kart, Lufia and FirePower 2000), it's definitely slower than PocketSNES / MG. Its NES capabilities are pretty bad too, particularly under WM5+, where it crashes after a few minutes. In no way recommended.
You can make Snes9xJ4u English by changing HKLM\ SOFTWARE\ CEe4U\ Snes9xJ4u\ Language from 0 (zero) to 1 (one). (Thanks to XDA-Dev forum member decknologist for the tip)
This HowardForums thread may be of interest.
It should be stressed that the reviewed Windows Mobile (but not the Symbian ones) emulators (particularly MorphGear) require a LOT of dynamic (RAM, program) memory, particularly with larger ROM images. That is, make sure you have at least 20 Mbytes of free RAM if you encounter RAM shortage problems.
Super Metroid isn’t an RPG but an action/adventure.
If you guys need a game to test out your spanking new emulator, I recommend The Mysterious Dungeon 2 - Shiren The Wanderer (aka Fushigi no Dungeon 2 - Fuurai no Shiren). This Japanese rogue-like, with maps that are randomized each scene, will provide you hours of fun on the go, and its semi-turnbased format makes the game somewhat tolerable to play.
A translation patch for Shiren is avaliable at http://agtp.romhack.net/project.php?id=shiren . Be sure to check out their other projects as well! The patched version works on n0p's SNES recompile.
UPDATE (11/28/2007): Masterall has recently released an updated (1.53) version of his emulator.
How do I save and load saved games on PocketSNES on WM6?
Hi,
Your thread has completely rocked my world on my Wing!!! I had no idea about emulators and I followed your advice to put on your most recommended version of pocketSNES and I am able to play street fighter 2 championship edition with sound. It took some time to correctly configure controls to use keypad since the up, down, left, right on pocketsnes were actually not really those directions when in landscape mode. But I did it!!!
My issue now is saving games. I can get it to save, but cannot figure out how to load a saved game. Can you provide a very clear, step by step guide to loading a saved game. I have pocketsnes as a zip file on my storage card and madden 07 and SF2 both unzipped on my storage card as well.
Thanks for your help!!!
Menneisyys said:
The available emulators
OK, let’s see what we have and what you should use.
First, let me point out that there are two main groups of (current) SNES emulators.
One of the groups has numerous emulators. They’re all common in that they all are based on Scott Ramsby’s initial, old PocketSNES, either adding some additional functionality (for example, on-screen buttons) to it, bugfixing it (for example, making it VGA-compliant) or recompiling / updating it, using a newer version of the underlying Snes9x engine. As far as usage is concerned, these emulators are very similar. I’ll explain the differences in the GUI (particularly with Tala’s OpenGL ES version).
The second "group" only contains one (up-to-date) emulator: MorphGear.
Let's see the first group first.
n0p’s PocketSNES ports
n0p is pretty famous for his emulator ports. I've already reviewed his Genesis Plus in my Sega Genesis / Mega Drive article. With SNES emulation, he has also come up with something really top quality.
This (these) are the emulator(s) you MUST check out unless you have a Dell Axim x50v / x51v (then, Tala's emulator is the one to get first).
There are three emulators on n0p's homepage: a WM5 / VGA, a generic and an ARM one. There isn't much difference between these emulators: for example, if you have a non-VGA, XScale-based Windows Mobile device (even a WM5+ one), you can use any of the three versions. If you have a VGA device, you MUST download the latest, WM5 + VGA version. Note that it'll also run on previous-generation (WM2003SE) VGA models too, as is also explained for example in my AximSite-frontpaged review HERE.
This emulator excels in full-screen stretching capabilities and on-screen tap areas. Mostly because of these that it should be preferred over the other titles.
Tala’s OpenGL ES PocketSNES version
The above-introduced and, in general, most recommended n0p emulator doesn't use OpenGL ES in Dell Axim x50v / x51v's to make the graphics less pixelizated. For the latter, you must get the specific OpenGL ES version by Tala (also see the dedicated thread HERE and HERE).
It, being not pixelizated at all, is much easier on eyes and also supports on-screen buttons. As opposed to n0p's version, there can be only two of them at one time; they, however, can be freely assigned to any of the eight original buttons of the SNES controller (while the four on-screen buttons / tap areas of n0p's version is hardwired to A, B, X and Y). In addition, you can also configure Tala's version to treat one key as an autofire one. This is pretty unlike "traditional" autofire solutions because it'll keep autofiring even without your having to hold down the given (screen) button. This can prove really useful on devices like the HTC-manufactured Pocket PC Phone Edition models with a 2.8" screen because they all exhibit touchscreen CPU overburdening problems and, therefore, hopefully n0p will also implement this functionality on his ports.
Masterall’s PocketSNES port
Masterall is the author of the BEST NeoGeo / CPS-1/2 emulator, FinalBurn Alpha and the BEST Sega Mega Drive / Genesis emulator, PicroDrive.
Unfortunately, his PocketSNES update has nothing to write home about, except for being based on the latest, 1.43 version of the Snes9x engine, which means compatibility with some titles 1.39, on which both Tala's and n0p's above-introduced emulators are based on, was still incompatible with (see the compatibility information for individual titles below). It has no goodies like on-screen keys. You may only want to check it out if you have a Microsoft Smartphone (Windows Mobile 6 Standard Edition) and the other Microsoft Smartphone solutions (see the Additional Links section for more info) are insufficient for your needs.
PocketSNES/03 Preview 4
This title is also based on the latest, 1.43 version of the Snes9x engine. Unfortunately, it has no other goodies - it's, otherwise, almost the exact recompilation (with fixed VGA support) of the original Scott Ramsby PocketSNES.
The second group, as has been pointed out, contains one title,
MorphGear
with the SNES9x plug-in (the CAB can be downloaded from HERE, in addition to that of MorphGear. Install the latter first and, then, the former).
It's way better than some other MorphGear modules and is highly recommended. It's certainly a bit slower than the above-introduced PocketSNES modules, but exhibits a definitely higher compatibility ratio. Therefore, I really recommend installing it on your Windows Mobile device, even if as a second emulators, the main still being either n0p's or (depending on whether you have a Dell Axim x50v / x51v or not) Tala's enhanced PocketSNES versions.
Note that all the reviewed emulators are free (including the SNES module of MorphGear).
Finally, let's talk about the non-recommended titles too.
Scott Ramsby's PocketSNES 1.12.200
As has already been pointed out, this is the base of all current enhanced ports. It's not really worth checking it out – n0p’s version (or that of Tala is you have OpenGL ES support) is much more up to date & featureful (on-screen buttons, VGA support).
Snes9xJ4u (its old URL isn’t accessible any more)
The GUI of this app is entirely in Japanese and is WindowsCE-friendly, meaning a non-native Windows Mobile GUI. It was last modified on 2004/08/05. It, basically, works the same way as PocketSNES but the menus are pretty different. You can, however, easily guess what the menu items are for; except for Options / B (the bottom-most menu item). There, the bottom-most checkbox enables, while disabling bringing up the menu with on-screen controls, is related to D-pad. I couldn't find out the way it's controlled - it's absolutely irregular. The topmost checkbox seems to be doing nothing; the middle one enables the above-explained screen "control" but doesn't disable pausing the game & bringing up the menu by clicking anywhere else than the lower left part of the screen. I couldn't find out how landscape should be used instead of the default Portrait - it's possible it's not supported at all.
pdafan’s Snes9xPPC ver0.41
While this emulator is based on the Snes9x 1.43 core and is pretty new (last modified: 2006.2.24), it's definitely slow (MUCH slower than any other tested emulators!) on all the devices, both QVGA and VGA, I’ve tested it on. Avoid it.
Getting games and storing them on the mobile device in an efficient way
In here, I don't give you URL's to ROM files as it'd be illegal (without being sure you DO own the original cartridges of all games you do want to play). However, the Internet, particularly Google, has a lot of related information on how these ROM's can be acquired. That is, Google will be your friend. Note that you'll need to read THIS article for more info on ROM file naming conventions (what for example the exclamation marks, numbers and letters mean after the ROM file names).
Click to expand...
Click to collapse
Do you know any mirror for Masterall PocketSNES?
Sina™ said:
Do you know any mirror for Masterall PocketSNES?
Click to expand...
Click to collapse
Nope. However, all you need to do is registering at MoDaCo to acces the downloads. It's free...
ah, thank emu sucks @ anything.
doesn't support Touch Pro keyboard.
Does anyone happen to have Tala's PocketSNES, the one that ran on x51v?
Thanks!
thermodynamic said:
Does anyone happen to have Tala's PocketSNES, the one that ran on x51v?
Thanks!
Click to expand...
Click to collapse
http://www.winmobiletech.com/052007SNESEmus/PocketSNES.zip
Menneisyys said:
http://www.winmobiletech.com/052007SNESEmus/PocketSNES.zip
Click to expand...
Click to collapse
Thank you!
All the two links for the Snes9xJ4u are broken.
I already searched the internet and emule and can't find the Snes9xJ4u b1k or older versions.
Does anybody know I link to download it or could post it in any download site like rapidshare or megaupload?

The definitive guide to running (MS-)DOS (80x86) programs under Windows Mobile

MS-DOS, which was the most widely known operating system of the pre-Windows times on the IBM PC platform, has several unique software titles either not available on other platforms or of considerably better quality than on other platforms. This means emulating MS-DOS, in cases, may be either the only or the best way to get a particular title, let it be an application or a game, run on your Windows Mobile (WM for short) handheld.
In this article, you’ll find ALL (and I certainly mean this!) information you’ll ever need to successfully select and use an MS-DOS emulator.
(Note that, in this article, I refer to all DOS operating systems of the IBM PC as “MS-DOS”. Naturally, the discussion also applies to DR-DOS and PC-DOS and, in this roundup & tutorial, instead of elaborating on the basic operating system itself, I mostly concentrate on the most important aspect of these operating systems: running third-party applications and games.)
1.1 Why an article on MS-DOS emulators?
there are no similar all-in-one articles, let alone in-depth ones. The very few articles ever written on the subject only discuss one of the (several) available emulators, PocketDOS.
the majority of current emulators, particularly the most recommended DOSBox port by n0p, HEAVILY lack any kind of a decent tutorial. In here, you will find all the information you'll ever need configuring and running these titles.
there are many different emulator versions from a lot of developers; this may make the life of a newbie to MS-DOS emulation VERY hard.
Windows Mobile forums are FULL of contradicting and plain bad, unreliable information on these emulators. Someone had to, finally, get the facts straight.
the BEST MS-DOS emulator (that of n0p), being of Russian origin, is mostly discussed in Russian language forums. As one of the several languages I speak is Russian, I understand what is discussed there. That is, in this article, I also build on the information found in Russian forums, making it unnecessary for my readers to suffer from the Babelfish “translation”. To a lesser degree, I've also found some useful user reports & tips in German (which I also speak) forums; I’ve also incorporated the info found there in this tutorial & roundup.
my old, related article (Another reason to get a VGA device – running Legend Entertainment's old adventures reviewed) is heavily outdated because of the brand new DOSBox ports
as the Nominations Manager at Smartphone and Pocket PC Magazine, I have to know everything about Windows Mobile apps. This article also shows I do
1.2 Why should you bother?
As has already been pointed out in the introduction, MS-DOS has several quality titles either not available on other (with a usable WM emulator) platforms or the quality of these titles on all other platforms (again, with emulators) are clearly inferior to that of the MS-DOS version. For example, the evergreen games by Legend Entertainment is a very good example of these (they haven’t ever been released for other platforms). If you don’t know what these games are but you like text-based, high-quality adventures, make sure you give them a try – they’re certainly worth it. And the list of excellent, MS-DOS only titles continues; for example, Betrayal at Krondor was also a PC-only release. This means MS-DOS was a VERY strong gaming platform in the early 1990’s with tons of high-quality or unique titles worth playing even today.
However, in other cases, MS-DOS emulation is NOT something you should always prefer to emulating other platforms or looking for native WM (re)implementations / ports of the same game. For example, as far as games are concerned, with games that only had an MS-DOS version, there may be better emulators (most importantly, "partial" interpreters "only" running a specific type of games; most importantly, from a given game publisher) to run the game than a fully-fledged, full MS-DOS emulator. In addition, some (not many) classic titles have their own WM implementations / ports; examples of these include UFO (the reimplementation is Pocket UFO; see my quick review HERE and the PocketGamer thread HERE), Civilization (Pocket Humanity; unfortunately, FreeCiv has no direct port; PocketCiv only runs on Linux-based handhelds), Pipe Dream (having several WM reimplementation; see for example the Roundup of All Pocket PC Games Part I for some of them), Doom (DoomPPC / DoomGL ES are excellent), Wolfeinstein 3D (see pocketinsanity’s port) etc.
Note that the (vast?) majority of MS-DOS emulator users use emulators for gaming (it’s mostly games that haven’t been released on other platforms or are unplayable / far more awkward to play in emulators); therefore, in this article, I also concentrate on gaming issues. This, however, doesn’t mean you will be unable to make use of it if you, for example, plan to run your old MS-DOS-based apps.
1.2.1 Cases you will NOT want to use an MS-DOS emulator - I: existing ports on other, more Windows Mobile-friendly platforms
For example, if you want to play, say, the infamous Prince of Persia (which doesn't have a direct WM port), I would say you’d better get a NES (Famicom) emulator. The NES version of Prince of Persia is very similar to that of the PC; however, the NES version in no way requires as much resources (including battery power) as the MS-DOS one. Please see THIS for a complete review of NES emulation.
The same stands for, say, Xenon 2 or Risky Woods. Running them in a Sega Mega Drive / Genesis emulator is a much better choice than ding the same in an MS-DOS emulator. The Sega Mega Drive / Genesis emulators require less resources, have better sound (particularly with Xenon 2, which, on the IBM PC, only had speaker sound), are easier to control and produce higher frame rates (just as with NES and Price of Persia) than the current MS-DOS emulators. See THIS for a complete explanation.
These are not hard-and-fast rules. That is, it can't be stated "whenever a port of a game exists on a better-emulated platform, stick to it and forget MS-DOS emulation entirely". When selecting an original platform and an emulator to play a given title, you may want to prefer other, better-emulated platforms for action games like the above. For mouse (stylus)-based, generally, adventure and strategy games, on the other hand, you may want to prefer MS-DOS emulation. For example, compare the following two screenshots, showing Sierra's King's Quest 5 on a(n emulated) VGA PC (running the VGA version of the game) and on the NES (Famicom):
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
The difference in the visual quality is staggering, isn't it? And, the better visuals are just part of why the MS-DOS version is much more worth playing. The NES' not having analogue / mouse-like input, its cursor needs to be controlled by a (digital) D-pad. This means it's REALLY hard to control the game with the D-pad only.
Incidentally, the same stands for games running on other (mouseless console) platforms like the GBA version of X-COM. These kinds of games should be played under an MS-DOS emulator because they allow for stylus usage, unlike GBA emulators.
1.2.2 Cases you will NOT want to use an MS-DOS emulator - II: existing interpreters for a given game
As has already been pointed out, a specific subset of MS-DOS games have so-called 'interpeters', which run the games without emulating a full MS-DOS environment. This may be advantageous in many respects:
as they only need to run the game (and not an emulated operating system), they, generally, consume far less CPU cycles (and, therefore, both run flawlessly on slower and/or underclocked machines and result in a decent battery life). A well-known example of this is the Magnetic Scrolls interpreter (see review & tutorial HERE), which runs old, freely and legally (!) available Magnetic Scrolls textual adventures in a really CPU- (and, consequently, battery-) friendly way.
they, in cases, are much better integrated into the operating system. Again, an great example of this is the Magnetic Scrolls interpreter. It uses a standard text area (with some extras; for example, automatic text expansion of highlighted text) and standard, relocatable picture boxes. This also means it's, for example, possible to copy some of the text onto the clipboard. What is more, these operating system-level components are compatible with all kinds of operating system versions and configurations. This isn't always the case - let me point out that, for example, (W)VGA and square screens are not supported by many emulators (including, unfortunately, the most recommended one by n0p). Now, compare the quality of the rendering of the in-game text when done by the Magnetic Scrolls interpreter and n0p's MS-DOS emulator (not supporting (W)VGA screens). Yes, the difference is enormous - the interpreter-based version is perfectly playable even on a square-screen or a low-resolution (QVGA) device, while the original MS-DOS game rendered by n0p's emulator is fully unplayable on any Windows Mobile devices because of the emulator's not supporting high-resolution screens, while the games itself used EGA high-resolution.
Of course, it's not only the Magnetic Scrolls games that should be played in the related interpreter, but also a lot of other titles. For example, the earliest Sierra games should all be played under PocketSarien (review & tutorial HERE); most of the Lucasfilm games run better under PocketScumm than under MS-DOS emulators and so on.
There are exceptions, though; the most important being FreeSCI, the interpreter of (early) Sierra SCI games (released in 1989 and 1990). This is so uselessly slow that you will want to prefer an MS-DOS emulator to playing them under FreeSCI. (See THIS for more info.)
1.2.3 Cases you will NOT want to use an MS-DOS emulator - III: existing, native ports available for WM
It’s always preferable to play native WM ports / versions over emulating (if the quality of the port is at least comparable to that of the original running in a high-quality emulator), mostly because of CPU usage and hardware requirement issues. An emulator generally requires (unless we’re speaking of for example BitBank’s SmartGear, which has really modest hardware requirements) a far more powerful hardware than a native game. This means (most and, with emulating MS-DOS, all) emulators are either hard (at least without excessive overclocking) to run on slower devices at a usable speed or, on faster devices, they result in a very quick battery consumption because of the high processor usage.
Now that we’ve seen the cases where using MS-DOS emulators is NOT recommended, we can return to the original subject: running titles that are worth running under MS-DOS emulators because there isn’t another way of making them work.
Let’s see how you can acquire MS-DOS apps (if you don’t have the ones you’d like to play around) and, then, move on to introducing the (current) emulators.
1.3 Getting MS-DOS games
Start with the Wiki page List of commercial games released as freeware. Make sure you get games released before 1994 (or, if you can stand the increased slowness, 1995).
I am not allowed to provide you direct (!) links to so-called 'abandonware' sites. However, if you just use Google, you will find them at once. Also, if you spend more than five minutes at browsing Vogons, the highly useful DOS emulation page, you'll find thousands of links to these sites (it seems some people and even official forums don't take down abandonware links. However, I still refrain from giving you generic URL's, just to be on the safe side.)
Don't be afraid of dowloading from well-known abandonware sites. If you really are afraid of viruses, make sure you don't run these titles directly on your desktop PC, only under an emulator. Then, even if it, for example, formats your (virtual) hard drive (that is, the directory you give it as a hard drive), the damage will be limited. And, rest assured, it won't do any harm to your device. For this test, I've downloaded the games from abandonware sites so that I can test the games they host for viruses and trojans. I haven't found anything. That is, you can absolutely safely download from these sites.
1.4 What can I run?
Generally, games (and, of course, apps) released before 2004. Try NOT to play 3D games (this also includes classics like Betrayal at Krondor - they won't be very fast). You can have success with later, not very graphics-intensive games (for example, adventures).
1.5 Can I run Windows XP on my Windows Mobile device?
Nope. Under the most recommended emulators (n0p's DOSBox port and PocketDOS), all you can do is run Windows 3.11 if you want. I, however, don’t really recommend It - it's the best to stick to emulating strictly MS-DOS applications and games.
With Mamaich's (old) Windows Mobile port of Bochs (Bochs is a full x86 emulator, not just an MS-DOS one), however, you can even install Windows 95 as is described in THIS very long thread (also linked from PPCT). (You'll also need this Nano98 and this micro95 (also see THIS and THIS) tutorials for ripping Windows 95 and 98. Also see THIS for more info.) You, however, won't be able to do anything productive with these installs: it's REALLY slow and has major problems with input devices. That is, don’t even bother reading through these threads – not even the basic operating system will run flawlessly, let alone apps / games. Don’t even think of running for example Starcraft on a Windows Mobile handheld.
2. Desktop MS-DOS / x86 emulators and their ports on Windows Mobile
For the desktop operating systems, there exist several MS-DOS and x86 emulators. Gaming-wise, the ones discussed at Vogons are the most recommended; of them, only DOSBox has Windows Mobile ports. Actually, it has several ports; of them, n0p's port is the most important.
As far as emulating the entire hardware is concerned (also meaning the ability to run, say, Windows XP on a sufficiently powerful, high-class machine - definitely NOT a current Windows Mobile one!), the above-introduced Bochs should be mentioned. In addition, the same Mamaich has also ported QEMU, a very fast (on a current 624 MHz Windows Mobile device, it equals to about a 16 MHz 386 (screenshot 1, 2). Also see THIS.) CPU emulator. It, however, is buggy and has major problems; definitely NOT recommended for ANY serious work. (This is why I've also put it, along with the Bochs port, into the 'not recommended' section.)
In the following section, I elaborate on all the emulators available on WM.
Recommended MS-DOS emulators
2.1 n0p's DOSBox port (current version: 0.63)
As has already been stated, this emulator is the most recommended generic MS-DOS emulator. It's way faster than any other DOSBox port. Its only problems are the following:
the complete lack of support for high-resolution (for example, VGA) devices
being a heavily simplified version of the desktop counterpart, it doesn't support various goodies like MIDI sound (which is way better than the FM synthesizer-based AdLib cards) or emulated modem via Internet / LAN connections for multiplayer (or generic communication).
It, on the other hand, is VERY fast and has a lot of goodies none of the other Windows Mobile DOSBox ports can boast of:
SPEED!
Automatic cycles setting, always providing the best compromise (no need to manually set the cycles)
Very good AdLib / SoundBlaster (SB) emulation
Transparent software input panel (SIP)
It's based on DOSBox version 0.63, which isn't the latest DOSBox version; it's still definitely newer than 0.61, on which some other (not recommended) DOSBox ports are based on (including n0p's own old 0.61 port and that of Mamaich).
n0p is Russian and mostly contributes to Russian forums. Currently, he doesn't plan to update his port to 0.70 (the, currently, latest-and-greatest desktop DOSBox version). It's highly unlikely he will release a version with VGA support either. I'll try to convince him to visit English language forums too so that non-Russian speakers can also speak to him and maybe convince him to develop his emulator further.
2.1.1 Major differences between the original (desktop) and the Windows Mobile versions
While the emulation core is here, n0p’s port (as with other WM ports) lack several ‘goodies’. One of them is MPU-401 (for example, MT32) emulation (see for example the difference between AdLib and MT32 with the infamous game Spellcasting 101: start the game as S101 MT32 2 330 and compare it to the case of running SB-SOUND.COM /b24 and starting S101 without parameters. Also see THIS, THIS and THIS).
Another is connectivity for, say, multiplayer games like F29 Retaliator or Populous (also see: Directserial and Modem Guide; DosBox Guide to Multiplayer Games). While in the desktop version everything is supported (IPX over net; modem and direct serial emulation), in n0p’s version, modem emulation is surely not supported (I’ve thoroughly tested with both F29 Retaliator and Populous); I don’t think IPX is, either. I haven’t tested direct serial connections.
Finally, other goodies like making screenshots of the current screen or capturing WAV / MIDI files are also impossible with the mobile version.
The mobile version, on the other hand, has automatic cycles setting. This isn’t really needed on the desktop (where the CPU, with current PC’s, is powerful enough to run anything “old” at the highest cycles available); on current Windows Mobile devices, however, is a godsend.
2.1.2 Usage
First, download either the XScale or the more generic ARM version from the download page. Uncompress it with (if you aren’t using for example Total Commander) WinRAR to anywhere on your WM handheld (including storage cards). Start dosbox.exe (you can also create a link to it into \Windows\Start Menu\Programs or one of its subfolders like Games if you want to so that you can start it without having to use a file explorer tool).
After starting the emulator, you’ll see something like this (showing the mount command listed at the end of the original configuration file didn’t work):
Now, enter the “mount c "\Storage Card"” command, where change “Storage card” to the name of your storage card (for example, “CF Card” or “SD Card”) if it’s named so as in, say,
mount c "\SD card"
Then, enter the
c:
command to change to the now-mounted virtual drive. Then, by using the “cd” (Change Directory) command, you can step into any directory to execute any programs in there by just entering its name – as was the case with the “real” MS-DOS.
You will also want to include the two commands (or, more precisely, change the “mount c "\cf card\drive"” command already in there) in the dosbox.conf file in the same directory where you’ve unpacked the original, compressed DOSBox distribution. Then, after exiting the emulator (by clicking the exit icon in the upper right corner of the on-screen keyboard) and restarting the emulator. This is shown in this screenshot).
Note that you can also mount virtual CD-ROM's with the same command, by adding the "-t cdrom" parameter. Prefer using the virtual drive D: to mount directories containing the root of the CD file system! Also see THIS (and, with the forthcoming PocketDOS, THIS). An example command:
mount d "\SD card\7thguestCD" -t cdrom
Also note that in order to bring up the full keyboard, you will need to tap the upper left corner of the screen. Then, the keyboard is shown in its entirety (screenshot), part of it transparently (that is, you see what’s under it). Click the corner again to hide the transparent portion. (By the way, this transparency is one of the best features of this emulator). Alternatively, you can also use the “scroll bar” dragging area (screenshot) to quickly drag up and down the keyboard.
2.1.3 dosbox.conf tweaking
If you know the desktop DOSBox version, you may also have heard of its configuration file 'dosbox.conf', already mentioned in the previous section. With the desktop version, you may want to spend some time on learning what the individual parameters are and how they should be configured to achieve the best performance, set up your virtual modem configuration so that you can play for example Populous in multiplayer mode with anyone in the world and so on. (You can find a description of the desktop version HERE).
With n0p's port, most of the parameters that need to be tweaked in the desktop version don't really need to be touched if you want to have better performance. In the desktop version, you may want to spend considerable time testing for example how the OpenGL version of the emulator behaves compared to the normal one. In the WM version, this is not necessary because OpenGL (and other, alternative screen output methods) are simply not supported. This is certainly good in that you don't need to spend any time on fine-tuning the emulator - it'll deliver the best performance "out of the box".
However, there are still some parameters you may need to know of; most probably, the following ones:
core (the most important one - you'll need to edit it if you plan to run 80386+ apps / games)
memsize (if the default three Mbytes of EMS / XMS wouldn't be sufficient. It's only with few titles that it isn't; for example, with Heroes of Might and Magic, which requires 4434 kbytes of XMS / EMS and 374 kbytes of conventional memory)
finally, the autoexec section, where you should put at least mounting in your storage card(s) and changing to there so that you can save you some typing
And, some less important, but still useful parameters:
dpadmouse (if you plan to play a game that doesn't support the other two forms of mouse emulation. There are very few cases you will ever need this.)
hwkeyX and hwkeyX_ma (if you want to redefine what the four hardware keys do and what their effect on the mouse buttons are)
In the chart HERE (sorry, it'd be too big to be included in here - you'll need to click the link), I both explained ALL the parameters in the configuration file of n0p's DOSBox and compared the original desktop version to that of n0p, as far as these parameters are concerned. As you'll see, n0p's version uses the values of only very few of these parameters, unlike the original desktop version. (Actually, in this respect, Wall's approach in his pDOSBox 2b2 is better - he has deleted all the non-supported parameters from the config file, making it much more approachable for anyone not having read my description of what is used and what is not.)
The chart also provides an excellent summary of the meaning of these parameters. This is very important because n0p's original documentation (available HERE) is pretty weak (or straight non-existing) and noone else has ecer published anything comparable, as far as his port is concerned.
2.1.4 n0p's DOSBox 0.61
This highly outdated and slow(ish) version should just be forgotten. Always prefer the latest (0.63) version to it.
2.2 Wall's DOSBox port (current version: 2 beta 2), pDOSBox
(Alternative download with the sources HERE (see the bottom of the page) and here)
This, unfortunately, fully discontinued (also see THIS) emulator has some goodies; most importantly, (W)VGA support. It's therefore highly recommended for (W)VGA users wanting to play high-res (CGA hi-res, EGA and VGA hi-res) games. However, no one else should want to use it on a daily basis - (W)VGA device owners only wanting to play low-res (320*200) CGA / EGA / MCGA / VGA games should stick to n0p's port (introduced above) because of the vastly superior speed, sound support, transparent SIP etc. Note that many state Wall’s pDOSBox is faster (see for example THIS) than n0p's emulator. That's certainly not the case, particularly when it comes to sound emulation.
A tip: as the beta is expired, you'll need to set back the internal clock of your handheld before starting the emulator. For example, if you set back just the year to 2006, it'll work just great.
Another tip: the emulator often crashes upon using backspace when you delete something in a previous command taken out from the DOS history. This means don't use the backspace when in the DOS command line with constructs like "cd somegamename / somegamename", where you try to delete "cd" from before somegamename - it'll most probably lead to a crash.
I'd like to thank Michu (author of the well-known EmuPage - a MUST for every emulator fan!) and AximSite forum members heybhouse and Half Decaf for helping me finding this version.
2.2.1 Using pDOSBox 2 beta 2
After downloading and unpacking, you’ll need to transfer the files (along with the subdirectories) to your handheld (a storage card will do just fine). Start the emulator by starting PDBFEND.EXE. As with n0p’s DOSBox, you’ll want to create a shortcut to this file from your Programs menu; this is also explained in the README.TXT in the same directory.
Using the emulator is pretty much the same as with that of n0p’s DOSBox. You mount a directory (which can also be on a card) with a command like mount c "\SD card", go to the new virtual drive and start your favorite apps.
The emulator has a similar on-screen keyboard (SIP) than n0p’s DOSBox. It, however, isn’t transparent; this also means that, if the DOS prompt is already under the (maximized) SIP, you won’t see anything of it, unlike under n0p’s DOSBox. That is, you won’t see what you write. To quickly fix this problem, issue the ‘cls’ (CLear Screen) command (consisting only three letters, it's easy to be entered even if you don't see the prompt); it’ll clear the screen and the prompt will be shown at the top.
Unfortunately, the keyboard, unlike with n0p’s DOSBox, can’t be maximized by clicking the upper left corner of the screen. The only way to maximize it is pressing the Left arrow on the D-pad, while you can switch between the three panels using the Down arrow. This, unfortunately, also means you can’t use the D-pad in, for example, games.
Finally, another disadvantage of this port is the fact that it doesn’t support automatic emulation optimization – that is, built-in fine-tuning the emulation “strength” based on the CPU load. This also means you will also want to keep an eye on the actual CPU load of the given application / game and, if it has reached 100% and is constantly staying around it (not decreasing under 96-97%), just decrease the cycles given to the emulator. This, when done properly (so that the CPU utilization remains between 90 and 95%, but doesn’t exceed, say, 97%, driving the CPU into saturation and leading to (even more) sound problems and, after a while, visible visual performance degradation) maximizes performance. As games / apps are vastly different in their CPU usage, manually tuning the performance can be a real pain in the back. This is why the auto performance tuning in n0p’s app is a godsend – there, all you need to do is decrease or increase the frameskips, which is far easier and requires far less manual work than the cycle emulation fine-tuning in DOSBox ports not sporting auto settings.
2.2.2 The old pDOSBox 1.1
An earlier, release version of the above-introduced pDOSBox. It is clearly weaker than pDOSBox 2 beta 2. Therefore, I don't recommend it at all, unless you, for some reason, want to prefer it over 2b2: for example because you don’t want to set back the clock all the time.
2.3 PocketDOS 1.12
PocketDOS is the oldest MS-DOS emulator for Windows Mobile. It has been around for quite a while - well before the first DOSBox ports. It was, however, only lately that it became a bit more gaming-friendly; for example, it only received VGA support (including high-resolution modes on high-res Windows Mobile handhelds) in 2004.
Unfortunately, in general, it's less suited for generic gaming than n0p's version. Not only because of the non-existing (and, as far as beeper emulation is concerned, vastly inferior to that of n0p's DOSBox) SoundBlaster / AdLib emulation, but also because, in general, fewer titles run under it. A well-known example of this is Civilization, which, as of the latest, 1.12 version, still refuses to run, unlike under n0p’s DOSBox port.
The latest, 1.12 version of the emulator has just been released. The promised emulation speed increase (when using the built-in core and not enabling the other, 286+ cores) is indeed pretty good and, generally, outperforms even n0p's DOSBox in some games and is indeed faster than the previous, 1.11 version. Also see my Norton System Information benchmarks in the main comparison chart, which clearly shows the new version has indeed become faster. Also, some (minor) bugs have also been fixed; for example, the missing toolbar / SIP keyboard issue on the Dell Axim x51v (see THIS screenshot, taken under the old version).
It has some other goodies too. For example, unlike any of the DOSBox ports on Windows Mobile, it does support physical serial ports and printing. You may find this functionality important if you need to run legacy MS-DOS applications collecting data via the handheld's serial port and/or need to print out some stuff.
Also, another definite advantage of the title is being based on a full DOS operating system. This means for example batch files calling even scarcely used DOS commands, using not widely used command-line parameters, the full DOS operating system will know it. This is what the DOSBox ports are clearly weaker at. Note that you can choose from three versions of different DOS versions (that of Caldera (ex-Digital Research), DataLight and, in addition, the default FreeDOS) upon installing the application as can also be seen in this screenshot. You can even install more than one of them and just switch between them in Settings / System / Startup / Boot from (screenshot) when you need to switch (because, for example, a given application or game doesn’t run under the default FreeDOS. An example of these apps / games is Legend's Spellcasting 201, which doesn't run under the default FreeDOS.)
However, in most cases (when you only want to run some programs / games and don’t want to issue delicate DOS commands or run batch files that do depend on some scarce feature of DOS not present in the DOSBox implementation), being based on a full DOS doesn’t deliver much advantage as most games don't make extensive use of the external DOS commands - not even internal (command.com) ones.
2.3.1 Scaling, resizing
PocketDOS' scaling/stretching behavior in high-resolution modes (on a high-resolution handheld) is vastly different from that of DOSBox ports. DOSBox ports don't give the user any way of deciding how to downscale (make it smaller) the original high-resolution (640*350 EGA or 640*480 VGA) images to fit on a screen with SIP's on them. They only have one default behavior for all the possible resolutions as is described in the following matrix:
PocketDOS, on the other hand, behaves radically differently. It offers the user no less than four scaling options in hi-res EGA and VGA modes; two of these options (the one employing a horizontal compressing by 2, the other also vertically) targeted at users using a QVGA handheld so that they don't end up having to pan horizontally (and, in the second case, vertically), unlike in the cases of using the original resolution (where both horizontal AND vertical panning is necessary and, in many cases (for example the main text area of Legend Entertainment games), not even texts can be read without excessive (in every single row) horizontal scrolling.
(Note that the main comparison chart – to be linked below – has a lot of screenshots demonstrating these modes.)
As can be seen, the way it lets the user to select a scaling mode of his choice and, unlike DOSBox ports, not forcing QVGA users to either a downscaled, non-pannable view of the screen or one that needs to be panned in both directions (but not both) is a big advantage. In this respect, PocketDOS should be the first emulator to be given a try if you plan to play high-resolution games on your low-resolution handheld. Again, when presenting high-resolution originals on low-resolution (320*240) handhelds, it has a decided advantage over DOSBox ports.
Note that one of the video modes employing downscaling of VGA originals results in pretty bad results (particularly when you also enable the on-screen keyboard in addition to the always-visible toolbar). Here, some people (see X-Phile on Sun Jun 12, 2005 11:46 pm) also complain of this. If this issue gets on your nerves, make sure you switch to a non-scaled view, even if it results in a need of (sometimes heavy) vertical panning.
Finally, let me point out that the main comparison / feature chart (to be linked below) has a LOT of example screenshots demonstrating all these modes on both QVGA (low-resolution) and VGA (high-resolution) devices.
2.3.2 Using PocketDOS
Using this application is pretty straightforward. If you have a WM5 device (meaning the lack of, from the, in operating systems prior to WM5, RAM-based separated Built-in Storage (BIS)) with a single storage card, it will be automatically mounted as drive c:. That is, in these cases, after booting in, you will see the contents of your memory card right away and can start running your favorite apps at once, without having to play with manually mounting anything.
If, on the other hand, you either have a handheld with an operating system prior to WM5 with a built-in BIS and/or two memory cards (and you want to access the contents of your CF card, not that of SD), you will need to manually mount the other card. Fortunately, it's pretty well explained in the built-in help of the setdrive command.
You will most probably want to switch to Landscape mode (from the default Portrait) if you can live with the three-row SIP (and you aren't sensitive to the probably bad polarization problems of your handheld, which may be an issue with several non-high-end handhelds like the Dell Axim x50v/x51v). To do this, click the Windows button (above Esc), go to Settings / Display / Orientation and switch orientation.
2.3.3 Problems with the EMS/XMS memory
Unfortunately, PocketDOS has much more problems with the extended / expanded memory than n0p's DOSBox port. You can't allocate so much memory as in the latter and when you do allocate, the entire emulator may still restart itself when you try to start a memory-hungry title. This problem is particularly topical when you use the DOSBox CPU plug-in (and not that of the MUCH slower Bochs).
Also see some related posts in this thread for more info on other limitations of the memory model used by the emulator.
3. Not recommended emulators
In addition to the already-introduced three recommended emulators (and some of the older titles), here's a list of the non-recommended ones:
3.1 Mamaich’s DOSBox port
(Note that n0p’s (old and not recommended) 0.61 DOSBox port is based on this one, with some enhancements)
Shows some black screen and, then, immediately exits.
3.2 Ming Zeng's PocketDosBox v0.1.0
(based on the rather old DOSBox 0.60, last touched March 06, 2005)
Doesn't work on any Windows Mobile test device I've thrown it at (Cannot find … or one of its components)
4. The main comparison chart
Yes, I haven't given up throwing even more information at you This article also contains a VERY large comparison chart available HERE. CLICK THE LINK, YOU WILL FIND THE INFORMATION THERE REALLY USEFUL! Also, as usual, it's packed with screenshots. Also note that this chart has nothing to do with the previously linked dosbox.conf chart - they are completely different entities (yes, this article has a LOT of material!)
In addition to comparing the two DOSBox ports by Wall, the new one from n0p, the latest, just-released PocketDOS and, finally, the desktop DOSBox original, I've also made some extensive, real-world compliance testing with several games and utilities. Feel free to scrutinize these reports. Note that I've preferred checking my favorite titles; hence the several Legend Entertainment games (all of their (text) adventure titles, except for the late and, therefore, CPU/memory-hungry Death Gate and Shannara).
I especially recommend the "Norton System Info benchmarks: effects of different fine-tuned parameters" row to see how the performance of these emulators can be tweaked. As can clearly be seen, the only way to (slightly - but not much!) increase the performance of n0p's application is increasing the frameskip parameter. PocketDOS is more tweakable.
In the same row, I've also elaborated on the effects of enabling 286+ (with PocketDOS) /386+ (with the DOSBox ports) emulation. As can clearly be seen, the speed hit caused by these plug-ins is particularly high with PocketDOS. Try to stay away from the Bochs plug-in - it REALLY slows down the execution! The DOSBox plug-in of PocketDOS is clearly better. Too bad it has severe memory-related problems: the majority of 386+ games I've tested did run with "real" DOSBox ports but refused to start with the DOSBox plug-in of PocketDOS. They, on the other hand, generally ran under the (again, VERY slow) Bochs plug-in.
If you don't understand something in the chart, make sure you also check out the, in Section 2.1.3, already discussed dosbox.conf chart. I've elaborated on a lot of issues in there - for example, what the different mouse emulation modes mean, when they should be used, which games are affected etc.
Appendix A - SI benchmark results
In addition to the "tweaking" benchmarks I've elaborated on in the main chart (again, see the "Norton System Info benchmarks: effects of different fine-tuned parameters" row), I've made some really thorough benchmarks with n0p's DOSBox port to see how the frameskip parameter affects overall speed and what the speed of the different CPU cores are. This has all been measured on my 624 MHz Dell Axim x51v.
As can be seen (and has also been pointed out in the main chart),
it's not really worth using more frameskips than four or five; it won't result in further performance increase
the 'verysimple' core is about 50% faster at every frameskip settings than the full core. Interestingly, the, by n0p, not recommended, 386+-compatible normal / dynamic cores produced better results than the 'full' core. This also means if you need 386+ emulation, you may want to give a try to the 'normal' core first, and only then to the by n0p recommended 'full'.
Note that the tests were done using auto cycle settings. As has already been explained, you will NOT want to disable auto cycles. If you do disable them, you will have a hard time using these kinds of (synthetic) benchmarks to correctly benchmark your emulator. Some examples of this case (using Wall's emulator as an example):
The CPU cycles can be increased infinitively; at 9900 (instead of the, on the x51v, default 2700, where the SI index was supposed to be 16), it displayed an index of ~59. These values remained the same after starting a very CPU-intensive background process (Pocket Controller) to make screenshots. That is, the results are plain wrong.
The frameskip parameter doesn’t seem to have any effect (1 2), which is, of course, incorrect.
Recommended links / additional info
A trip down Memory Lane: PocketDOS and Realms of Arkania. The author asks whether the emulation speed depends on the speed of the medium PocketDOS is installed to / the games are stored on. In general, no; that is, you can keep your stuff on (even slow) memory cards and don't need to copy them into the main storage (let alone RAMDisks under WM5+).
Running Master of Orion under PocketDOS
A Russian thread on n0p's DOSBox
… and another, VERY long and informative one
A Russian thread on PocketDOS
Yes, and another one at www.soneric.ru
A German thread on n0p’s emulator, also pretty informative: DosBox für Pocket PC. It also contains a list of games running under n0p's emulator. Note that the original author states installing PocketDOS is very complicated because you need to get a copy of MS-DOS from somewhere. This is certainly not the case: later versions of PocketDOS have all come with MS-DOS built-in; on top of that, it's a free DOS version by default. No need to install anything else - and, if you install PocketDOS using the desktop installer EXE, you only need to run one EXE file and just press the Next buttons. He also states King's Quest 5 and 6 run slow under the emulator with 0.61 - that's not the case with 0.63 any more. Also note that, at first, he found that using the OpenGl value instead of Surface (see the Output parameter) results in slightly increased speed (using on a 400 MHz QVGA Loox). Later, however, he stated he didn't see any difference.
The old PocketDOS forum is HERE (was at Pocket PC FAQ; right now, the old contents is only accessible on the latter address); the new is HERE.
TIPS: How to get games working (well) under PocketDOS; a related remark & explanation on "Simulate display retrace" HERE
Working DosBox for X50v found (on Wall’s pDOSBox)
A Zodiac thread
A game compatibility list of (the old) PocketDOS 1.11. Note that its information isn't necessarily applicable to the latest (1.12) version; for example, the latter already runs both Spellcasting 101 and Populous without problems.
HERE: WM2003SE Dell Axim x50v + GAPI hack problems (NOT a problem with WM5-upgraded x50v's or any other models, including the x51v); some comparison between the current DOSBox ports
The Vogons (Very Old Games On New Systems) forum main page, listing all the other desktop DOS emulation projects (as has already been stated, DOSBox is "only" one of them)
Desktop DOSBox guide - really worth checking out for WM users too because it for example explains how MS-DOS apps should be configured, what drive names should be preferred etc. There is another tutorial HERE; it also explains the usage of the cycle and the frame skip parameters.
Some remarks on the two additional mouse emulation modes in the new n0p emulator version
Wisbar may result in the emulators’ hanging
Anyone know of any decent DOS emulators? (old!)
Retro Gaming help on XP (doing this on the desktop; however, the info is generally useful on the PPC ports too)
Good adventure/puzzle games for iPAQ 1950 - Nurhisham Hussein’s comments
Which DosBox works better?
PocketDOS?
windows 98 emulator – discusses PocketDOS’ (poor) Win emulation capabilities
A possible alternative to pDosBox (with sound) - at first, discusses n0p’s old port; then, switches to the new one.
UPDATE (06/03/2007):
In the meantime, I’ve been notified of a brand new, Wall-based project; pckDOS (current version: 0.63 001). To install it, just download pckDos_063_001.rar, decompress it and transfer the files inside it to anywhere on your PDA. Create a .lnk file to either pckVGA.exe to pck320.exe (for VGA and QVGA devices, respectively).
Unfortunately, it’s clearly worse than Wall’s version 2.0. While it does have VGA support, it’s even slower, has absolutely no sound emulation (not that that of Wall could be called satisfactory) and has no ways of quickly maximizing the SIP when possible (see “Left” on the D-pad with Wall 2.0 or clicking the upper left corner with n0p 0.63). At least the latter is a major problem; so are the traditional problems with Wall’s app (for example, messed-up characters in Legend Entertainment’s EGA games).
It’s very important to start pckDOS using a link; otherwise, you’ll have MAJOR SIP problems as can be seen in here. With Wall’s original 2.0 (or any other app), no such problems exist – that is, with them, you don’t need to put a link to the main executable in your Start menu.
All in all, this title is NOT recommended. Stick with Wall’s version 2 if the need for setting back the clock isn’t a problem because of (mostly) the maximizable SIP.
As far as MS Smartphone-compliance is concerned, the following needs to be known:
* n0p’s DOSBox 0.63 and the QVGA version of pckDOS 0.63 001 don’t even start on any SP platforms
* Wall’s 1.1 starts on QVGA devices (like the Vox) but has severe problems with text input: on the Vox, it’s impossible to enter characters that have a number of their secondary function
* The best is without doubt PocketDOS (tested with version 1.12): it has excellent text input capabilities using the numeric keypad of Smartphones and supports newer, higher-end QVGA devices (in both Portrait and Landscape mode), in addition to the traditional 176*220 screens (screenshots of the latter HERE and HERE - as can be seen, you can't expect much of the old, low-resolution Smartphone screens. Newer QVGA screens are WAY better.)
A screenshot of running the emulator on a new QVGA MS Smartphone (the HTC Vox) in Landscape mode:
(same, showing running Populous HERE)
Of course, it needs a LOT of learning because of the numerous input modes. This is only explained in the in-program help (screenshot) and, it seems, nowhere else. I’ve collected some of them so that you can have some idea how text input / cursor control work.
Main control:
Back Backspace
Esc Escape
Talk Cycle 'zoom' modes
Home Minimise PocketDOS
Vol Up/Down Scroll display left/right
Right Softkey Menu
Left Softkey Switch input modes
Text Mode:
# (Hold): Select symbol
#: Space
* (Hold): Select text entry method
0-9: Text entry
*: Cycle text entry methods
This is about the third of the available modes / controls: there are a lot of others.
I haven’t had any problems with PocketDOS running on newer (QVGA) Smartphones, except for the inability to activate the menu – the right softkey just didn’t work on my HTC Vox (tested both of them). It, on the other hand, worked flawlessly on my older WM5 AKU3 176*220 HTC Oxygen.
As usual, in the meantime, I’ve received a lot of praising for the article; for example, HERE is a sticky request at HowardForums, one of the most lively mobile phone forums by forum regular Ago Vino Verita

The (Java) MIDlet Bible

(Note that this Bible does NOT discuss Java applets or applications. For more info on running applets under Windows Mobile, see the Web Browsing Bible; for application-related info, see my generic Java articles.)
You may have already heard at least of Java games (more precisely, MIDlets) running on almost all current “dumb” phones. These games are all the rage today, especially with teenagers, which also means there are thousands of sometimes really high-quality games for ordinary phones, all written using the portable Java language, ready to be played on (almost) any kind of mobile phone. Just an example: in THIS HowardForums thread, the topic starter post lists some (but not all!) games available for the Samsung QVGA 240x320 phones (d600, d900, e900 etc – not only Windows Mobile ones!). Quite an impressive list, isn’t it? And it’s just the tip of the iceberg – there are a lot more games, all waiting for you to purchase, download and run!
No, don’t think MIDlets are only for gamers and are absolutely useless otherwise. You can make a good use of them in the enterprise too. There are several solutions already for, for example, mobile payment, reservations etc. done using a MIDlet as opposed to the Web, which is, in a lot of cases, is much harder to access / operate on a small-screen device. Controlling for example your bank transfers via SMS can also be less intuitive and/or require a lot more work / data entry than using a GUI to do this. Other, known enterprise-related MIDlets are Jupiter, which is basically a financial data streaming program (also see THIS) and Betfair (also see THIS). Should you be interested in these “MIDlets in the Enterprise” questions, I really recommend Michael Juntao Yuan’s excellent book “Enterprise J2ME: Developing Mobile Java Applications” – I’ve learnt a LOT from it. Highly recommended!
1.1 Microsoft and third party MIDlet manager developers
Unfortunately, Microsoft doesn’t support Java (and its, in this Bible discussed subset, MIDlets) at all. The sole reason for this is the fact that Java is a direct competitor to the .NET (Compact) Framework, and is (also) supported by almost all major competitors of Microsoft; in the telco area, most importantly, Nokia and Sony-Ericsson (S-E), the two major players in producing “consumer”, “entertainment”, “not-strictly-enterprise” handsets.
This, unfortunately, means that, under Windows Mobile, MIDlets are not as widely supported as on competing mobile platforms; most importantly, Symbian. Nokia, S-E and the rest have spent a lot of $$$ on implementing really usable and top-notch MIDlet runner environments (MIDlet managers or KVM’s) in the last few years. Microsoft didn’t do the same, only third-party developers, who, because they considered Windows Mobile not to be a gaming platform, didn’t pay much attention to implementing a very good MIDlet manager on the platform (back then, there were far fewer enterprise / productivity MIDlets than today). Just an example: while the mid-2003 Nokia N-Gage certainly lacked at the MIDlet department (very few current games run on it and if they run – for example, the River Storm chopper simulator -, they are almost unplayably slow, as opposed to current Nokia handsets like the N95), the year 2005 Nokia 6680 already had almost flawless MIDlet support. For example, it even supports Bluetooth, which still (as of late 2007) hasn’t made it to the Windows Mobile MIDlet managers, “thanks” for the third-party, uninterested, unmotivated software developers’ neglecting the platform.
1.2 Is it worth it for gaming?
The lack of Microsoft’s commitment to the decent support of MIDlets, unfortunately, means Windows Mobile users are, generally, in a far direr situation than owners of phones from manufacturers involved in developing Java further and spending a lot of $$$ on making their Java support as good as possible. A perfect example of this is, as has already been stated, Nokia. Nokia’s latest, gaming-enabled, top-of-the-line smartphones (most importantly, the PowerVR 3D-accelerated N95 (-3 / 8GB ), the N93(i) (the jBenchmark page is HERE) and E90; the complete list of current phones, based on their 3D benchmark results, can be found HERE) run truly three-dimensional (and, therefore, hardware accelerated) MIDlets considerably faster and FAR better than anything on Windows Mobile. S-E, with its 3D accelerated, touchscreen Symbian UIQ 3 models like the W950, the P990 and the M600, shouldn’t be forgotten either.
1.2.1 3D support
Currently, I don’t know of any Windows Mobile devices with 3D hardware accelerated Java (MIDlet) graphics. The Aplix folks (developers of Jblend) told me their KVM does support the underlying 3D hardware accelerator. Unfortunately, the (very few) models available outside Japan that it comes with preinstalled do not have 3D acceleration and the (comparatively old) Jblend version available for installing on any device don’t show any kind of 3D acceleration support (I’ve tested this on my 3D accelerated, 2700G-based Dell Axim x51v). Therefore, I’m not really sure it will indeed work with, say, future GoForce 5500 (currently, the O2 XDA Flame and the Toshi G900 has the CPU (neither of them come with Jblend)) and/or the new Qualcomm 7200 chipset, which is to be found in several last-generation HTC and just-announced I-Mate handsets. I don’t think they’ll come with Jblend (why would HTC change their MIDlet manager OEM again, only about a year after switching to Esmertec from the dying TAO?) either. Let’s hope for the best (for example, Esmertec’s (re-)introducing M3G support with support for hardware acceleration into Jbed), though.
The situation, now that – unlike with the 2700G and the GoForce 5500 – the Qualcomm MSM7200 chipset will be a de facto standard in many current- and most next-generation WM phones, will surely change in the future. I’m, however, pretty much sure you won’t see a 3D accelerated MIDlet manager any time soon under Windows Mobile. Again, software developers still consider Windows Mobile a non-gaming platform not really deserving 3D MIDlet acceleration.
What does this all mean? If you’ve got used to the quality of game MIDlets on your favorite Nokia N93(i)/N95/E90 or Sony-Ericsson handsets, you’ll be pretty much disappointed; particularly if you want to run 3D and/or Bluetooth (multiplayer)-based games.
1.2.2 Bluetooth support
Yes, the lack of Bluetooth is another major problem with all current Windows Mobile MIDlet managers. Don’t think of only multiplayer games – there are other uses of Bluetooth used from MIDlets; an example of them is Blooover (a great Bluetooth Sniffer), data exchange over Bluetooth and so on. You can find more information on the latter for example HERE.
Note that, as opposed to what the 4pda.ru folks stated, few games refuse to deploy / run because of the lack of the Bluetooth support. (See the main games compatibility chart for more info on these titles.)
1.2.3 Sound issues
There will be other problems too if you plan to play the HUGE library of MIDlet games available today. The most important of them is the bad sound emulation, which is quite big a problem with some MIDlet managers severely affecting the gaming experience. Actually, currently, it’s only Esmertec’s Jbed that didn’t have any problems playing back ALL the midi music I’ve thrown it at (and, of course, that of Nokia on Symbian); all the other (Windows Mobile) MIDlet managers had a much worse sound. In many cases, the music they produced was very hard to even recognize – in a way, they sounded like for example an SNES emulator running on a not-fast-enough Windows Mobile or Symbian phone.
1.2.4 Control issues
Furthermore, you’ll surely be faced control problems. Depending on the MIDlet manager you use AND the game you’re trying to run, you will face sometimes severe control problems. Either the two softkeys won’t work (not even on Pocket PC’s, where you can also try to use the stylus to “press” them) or the D-pad / Action button, or both. Note that there are some solutions to this problem (particularly if you have a Smartphone (or an, in this regard, similar Pocket PC phone like the Asus A525) with a hardware phonepad). I’ve elaborated on these questions in a separate article HERE (cross-posted to PPCT, AximSite, XDA-Developers - 1, XDA-Developers - 2, XDA-Developers - 3, FirstLoox, BrightHand, HowardForums, SPT, MoDaCo, PocketGamer.org, PocketGaming.de).
1.2.5 Screen size issues
The question of the screen size and MIDlets displayed in full screen mode should also be mentioned. As MIDlets are, generally, written for a multitude of different devices (to maximize revenue and minimize developing costs), they, generally, support three screen resolutions: 176*208 (the traditional Nokia screen size), 176*220 (the traditional Sony-Ericsson screen size which is, incidentally, the same as that of the traditional Windows Mobile Smartphone) and, finally, QVGA (240*320) – the screen size of the latest Nokia / Ericsson handsets and, of course, higher-end MS Smartphones. And, naturally, Pocket PC’s as well, which, in addition, may also have VGA (640*480) or even WVGA (800*480) screens.
MIDlet games come in two flawors: either dynamically stretching themselves to fill in the entire screen estate of the device they run on in-game (while, in most cases, using the least common denominator, that is, 176*208, to display menus), or fixed to a given resolution. Of course, using the former is preferable (when possible) because you will have a great chance of being able to run it on your even WVGA Pocket PC full-screen. Interestingly, the game speed will, in many cases, remain acceptable even at such high resolutions. This was one of the best surprises I’ve encountered during my thorough tests.
As opposed to the, technically, much more superior and mature Nokia MIDlet Manager, Windows Mobile KVM’s aren’t, generally, full-screen, which, unfortunately, mean some 20-25 or even 40-50 pixels at the bottom of MIDlets hard-coded to the QVGA resolution will be not shown on QVGA screens, depending on whether the actual MIDlet manager shows both (top and bottom) screen bars (TAO, IBM J9 or Jeodek M3G on the Smartphone platform) or “only” the top bar (Jeodek M3G on the PPC platform; non- M3G-capable Jeodek on both WM platforms, Jblend). Nevertheless, there will be missing information; in most cases, the softkey labels, but, with many games, also status messages, speedometers and the like. You can find a lot of comparative screenshots in both the previous 3D MIDlet article and the main game compatibility chart. In all these cases (when the missing information does get into your nerves), you will want to try very hard to, first, find a KVM that does full screen (Jbed or, if you can live with the bad or non-existing audio support, the full screen version of Jblend) and if they turn out to be unable to run your title, switch to a MIDlet version written for a device with a smaller screen (for example, the 176*220 version instead of the QVGA one). In the latter case, however, a large part of your screen estate will remain unused.
As far as application programs (Opera Mini, Gmail, Google Maps etc.) are concerned, they all dynamically stretch themselves to make use of the available screen estate; therefore, you won’t have problems with them on any device, with any MIDlet manager.
1.2.6 (Free) alternatives to MIDlet gaming
As several MIDlets are just rewrites of old classics like Bonk, you may find it useful to look around any online console ROM or abandonware game repository for versions of the game you plan to play. In a top-notch emulator like SmartGear, they might run FAR better than ANY MIDlet manager on your particular handset. Make sure you read ALL my previous, emulation-related articles (the Emulator category of my blog is HERE) to see what gaming console platforms there are and how they are emulated by Windows Mobile.
Just an example. The recently released Bonk’s Return runs MUCH slower (and/or using MUCH more battery) on all my test Windows Mobile devices than the same title under a PC Engine emulator like SmartGear.
All in all, if you find a MIDlet that you find a bit on the slow side, make sure you look around on, say, WikiPedia to see whether the game (originally) had handheld / desktop console versions (or, for that matter, a home computer one – even many home computers of the eighties and the early nineties are better emulated than MIDlets, particularly if you can’t use Jbed because of the compatibility issues). If it did, make sure you check out the console version first, under an emulator. Again, it can’t be stressed enough how important it is for you to thoroughly read through my console/computer emulation-related articles so that you know what emulators there are, how the original titles are emulated under Windows Mobile, what platforms to prefer when there are ports to multiple platforms of a given title etc. Yeah, I know you’ll end up having to spend hours to read all those articles, but, if you’re a hardcore gamer, you’ll certainly find it useful.
1.3 Is it worth it for non-gaming?
It definitely is; most importantly, for Web browsing with the brand new Opera Mini 4 (current, recommended version: beta 2) reviewed HERE. Opera Mini 4 is a freaking good and, what is more, FREE Web browser – in many cases, it’s preferable over all the other Web browsing solutions available for Windows Mobile.
There are other productivity MIDlets meant for non-vertical markets too; the most important example of this is the Gmail MIDlet, which offers a very nice alternative to browsing, searching, answering etc. your Gmail mailbox from your handheld, including Windows Mobile ones. It’s WAY better than any Web-based solutions (see the Web Browsing Bible for the why’s) and, given that it allows for using some really advanced functionality (for example, searching) on the server side (this wasn’t available before; now, Gmail has just implemented IMAP access (another, related PPCT thread), which might let do this from a capable IMAP client as well – see my IMAP Bible for more info), it might still be preferable on a device that, otherwise, is properly configured to access Gmail via POP3. You may also want to take a look at THIS, THIS, THIS, THIS and THIS thread / article too.
Note that now that Google has released an excellent, native Windows Mobile version of the client, (as of the current, 1.2.0.13 version) the need for the MIDlet version of Google Maps is decreased. The native version works just great on both WM platforms and is accessible HERE for download as a directly installable CAB file. Note that there may still be cases you will want to prefer the MIDlet (that is, non-native) version of this program; see for example the comments HERE, where user “fixup” complains of the native version’s keeping the backlight and the connection on (as opposed to running the Java version under a MIDlet manager), which both may lead to (vastly) increased battery consumption.
Finally, as you most probably WILL want to run at least Opera Mini (or its modded version) on your device, the answer is YES.
2. Available MIDlet managers
In this chapter, I give you a thorough overview of what current (!) MIDlet environments there are, how they compare to each other and which one you should prefer. As you’ll see, particularly if you’re a power user and/or player, you will want to keep different KVM’s on your Windows Mobile handheld simultaneously so that you can make use of the functionality of each of them (there’s no “best” KVM – unfortunately, the otherwise best Jbed lacks some functionality only provided by other KVM’s).
Note that I don’t provide you download /purchase links here. You can find all of the download sources and / or accessibility remarks in the main chart, in the second, “Price / availability” row.
Also note that this is just a sketchy list of what KVM’s there are and what (dis)advantages they have. For a full list of tips, tricks, capability and problem lists, you MUST consult the above-mentioned main chart. Note that, in Chapter 4, I will also elaborate on the meaning of the rows in the chart.
2.1 Esmertec Jbed
This is by far the best and most recommended KVM for Windows Mobile, (QVGA; NOT 176*220 – on the latter, it refuses running deployed MIDlets) Smartphones and Pocket PC’s alike. Its only problems are the lack of M3G (3D gaming) support and the inability to run more than one MIDlet concurrently. As with the other products of Esmertec, it isn’t compatible with pre-WM5 operating systems and needs to be “hacked” in order to be able to run it on non-Phone Edition Pocket PC devices. (See the “Platform compatibility: non-phone PPC” row in the main chart to see how this hacking must be done.)
Note that the latest, currently available Jbed version has problems with the cookie handling of Opera Mini 4 beta 2. This means you can’t log in to many (but not all; for example, Yahoo Mail works) Web sites with OM4b2 running under Jbed. As this isn’t an issue with Opera Mini Mod 2.04/2.05, this seems to be a problem exclusively with the given Opera Mini version and not that of Jbed. If this is a problem, consider switching to another MIDlet manager (for example, Jeodek), where the cookies of Opera Mini 4 beta 2 do work.
2.2 Esmertec Jeodek
There are, basically, two versions of this KVM. The non-M3G-enabled, newer version isn’t really recommended (Jbed is definitely better in almost every respect, except for the Opera Mini 4 beta 2 cookie issues). There is, however, an older, M3G-enabled version out there, which allows for playing a wide variety of games. I’ve explained how the latter should be used HERE, in the 10/11/2007 update. That is, if you’re into gaming, you might want to go for the M3G version; otherwise, I recommend upgrading / switching to Jbed.
2.3 IBM J9
This is a well-known but, now that both Jblend and the two product lines of Esmertec are considerably better in most respects (except for some deliberate questions like the ability to run multiple MIDlets at the same time, in which it’s, together with TAO Intent, is clearly better than Esmertec’s products), not any more recommended KVM. You should prefer Jbed to it and only consider using it if you do need J9’s special capabilities or its compatibility with pre-WM5 operating systems.
Note that, lately, IBM has made much harder to download a trial version of J9 if you’re situated outside the States.
2.4 TAO Intent
This is the MIDlet manager having come with almost all HTC-manufactured WM5 Pocket PC’s and Smartphones. Now that the developer no longer exists, the HTC folks have switched to Esmertec Jeodek / Jbed instead (and independent MS Smartphone / PPC PE manufacturers like Sharp or Samsung prefer Aplix JBlend instead). However, this still means there’s a HUGE number of installed userbase of this MIDlet manager.
Currently, two major releases of these titles are widely used: the 10.1 series (also compatible with WM2003(SE) and the MS Smartphone platform) and the latest 11.1 series (the latter being only WM5+ & Pocket PC-compliant).
In general, you will want to prefer Jbed to this title. It has only few areas where it’s clearly better. Just like with IBM J9, in addition to WM2003(SE) support, it also supports running MIDlets concurrently.
If you have a (non-rebranded!) HTC WM6 Pocket PC device, go for the latest, .1036 version; otherwise (you have a rebranded and/or WM5 device), go for .1034. Should you have a plain (non-phone) Pocket PC, make sure you apply the SMS.dll / Phone.dll hacks already mentioned with Jbed.
Note that, at 4pda.ru, there is a separate “turbo” version. While I haven’t really measured remarkable speed increase with the jBenchmark tests, many users have reported generic speedup with at least starting / loading MIDlets. This is because many library files have been decompressed by the creator, meaning no decompression needed in runtime. This may indeed result in some speed increase. (Note that this trick doesn’t work the 10.1-series TAO Intent MIDlet managers (MM’s); this is why only the new series has a separate “turbo” version.) Note that this also means this version occupies about two times more storage than the non-turbo one; therefore, if you have little built-in storage, consider installing it on a storage card. Also, it’s a bit older (version 1023) than the – currently – latest, 1036 version.
2.5 Aplix JBlend
This OEM MIDlet manager comes with, compared to Esmertec’s KVM’s, very few Windows Mobile models. Compared to Jbed, it has both advantages and disadvantages; for example, it supports M3G (and, therefore, far more games) BUT it doesn’t support midi / MP3 playback (that is, you won’t really hear music anywhere) and has a messed-up security model making it pretty useless for Net access like Opera Mini or Gmail. This means you will only want to use it for gaming – if the other two, decent alternatives (the M3G-enabled Jeodek or Jbed) don’t work or work slower.
In THIS HowardForums thread, you’ll find many titles compatible with this MIDlet manager; and, of course, my main games compatibility chart will provide you with a lot of additional compatibility information with current MIDlets.
2.6. Not recommended KVM’s
Note that the charts (and this tutorial) don't elaborate on the following MIDlet managers:
2.6.1 NSICom CrE-ME
This manager is still (as of version 4.12) pretty weak (MIDP 1-only, really low resolution, problems with connecting to the Net, pretty complicated to install a MIDlet etc.). This means it, in most cases, should not be used. Strange the developers still call it "the world's most reliable J2ME/CDC Java Virtual Machine technology for Embedded platforms". While CrE-ME is without doubt the BEST JVM out there right now for running individual applications / applets (which are vastly different from MIDlets), its MIDlet support is really bad.
2.6.2 Coretek Delta Java Manager
This MIDlet manager is only slightly better than NSICom's above-mentioned CrE-ME. While it's compatible with quite a few games, it has severe problems; most importantly, its utilized screen estate is tied to 176*220 (fortunately, it’s pixel doubled on VGA devices). This means you won't be able to run your MIDlets using the real, full screen estate of your QVGA / VGA / WVGA Pocket PC's or QVGA Smartphones. Therefore, I only recommend it if you want to run MIDlets tied to 176*220 (or smaller) screen sizes and/or you have a 176*220 MS Smartphone.
A related (Russian) thread is HERE (BabelFish HERE)
2.6.3 Mitac JVM
This is an old (2003), pretty bad and not recommended MIDlet manager.
Related thread: MoDaCo Working midlets and non-working midlets.
3. Introduction to using MIDlets
Now, let’s see how you can install (deploy) MIDlets on your Windows Mobile device and how you can use them. Fortunately, doing this is very simple.
First, make sure you do have a KVM on your handheld. If you don’t, install one. If you have a non-phone Pocket PC and want to use any MIDlet manager (except for IBM J9), make sure you install the SMS.dll and Phone.dll hacks and / or if you have a pre-WM5 device, you’ll need to choose from either IBM J9 or old versions of TAO Intent.
After this, your life will be pretty easy.
3.1 Two ways of deployment (installation): online vs. offline
In general, there are a lot of MIDlets available online. In general, if you click them on the Web from your Windows Mobile device (preferably, using a built-in Web browser), they get downloaded to your handheld and automatically deployed in your device. The same happens with JAR files you copy to your handheld and, then, deploy them locally by either making your KVM explicitly search for it or clicking it / pressing the Action button from a local file manager. In the following two subsections, I elaborate on these questions.
Note that, generally, there are two kinds of files you’ll run into: JAD files and JAR files. When you download a MIDlet to your desktop PC so that you can, later, deploy it into your handheld’s KVM, only download JAR files, not the JAD ones.
If there’s no way of directly accessing JAR files, only JAD ones (as is, for example, the case with the Opera Mini 4 beta download page HERE - note that you should visit it from a Wap-capable desktop browser (Opera), that is, NOT from IE!), the “Download high memory version” download link will download you a JAD file, not a JAR one. You can directly copy this file to your handheld but, then, it’ll need to have Internet connection to be able to download the JAR file referenced by the small JAD file. If you can’t guarantee this or prefer collecting the JAR files offline, do the following: open the JAD file you downloaded with a text / file viewer (editor) and look for the attribute named “MIDlet-Jar-URL”. Copy the URL after the colon (for example, http://mini.opera.com/dl/1B8GM15aEP5uj-jE8A4AACMhDw8C/mini.jar) to your desktop Web browser. Now, you’ll have direct access to the JAR file – you can already safely save it.
Note that some KVM’s support separating MIDlets into different folders. Some allow for selecting the folder at deployment time (an additional step in the deployment process; this is what, initially, the “root” screen stands for when deploying into Esmertec products), the others after deployment. (And, on the Nokia, as it has no MIDlet manager interface at all but all deployed MIDlets are listed as regular applications, you can use the system file explorer tools to move them elsewhere, in another folder. This is slightly different from the way MIDlets were handled or early MIDlet-capable Nokia phones like the N-Gage, where there was a separate folder for them.) Also see the “Possible to use folders for better MIDlet separation?” row in the main chart for more info & screenshots.
Also note that, during the deployment process, you will also need to let the installation continue, particularly when the given MIDlet isn’t signed with a trusted certificate. (The vast majority of MIDlets are like this.) This, in general, only means you will need to press the left softkey some times on both Windows Mobile and Symbian.
3.1.1 Offline: originating the deployment from inside the manager vs. doing the same from the outside
There are two ways of deploying a local MIDlet JAR file to your MIDlet browser. The easiest is the default way of just clicking / pressing the Action key while viewing it from a local file explorer tool. This, as long as the file associations are correctly set (which may NOT be the case if you install more than one KVM’s on your handheld – more on this later), will automatically invoke the JVM and deploy the MIDlet.
Another way to select the related menu item inside the given KVM is to search for JAR files in the local file system (for example, Menu / Install / Local with TAO and Menu / Install / Local Files with Esmertec’s KVM’s). Unfortunately, it’s pretty flawed with most of the KVM’s; for example, the lack of alphabetical sorting, some of them can’t display all the files at once if there are more than 200-250 of them, some are only looking in a given directory or have no search capabilities at all, which is the case with IBM J9. The latter, as it doesn’t allow for browsing the file system for a given JAR file, forces you to enter the full (local, that is, Error! Hyperlink reference not valid. ) URL of the JAR file, which is really a pain in the back. Finally, Jblend doesn’t offer any local file browsing / deployment at all – with it, you must initiate the deployment from any file explorer tool. The latter is “only” highly recommended with other KVM’s because of the other annoyances and bugs they have.
3.1.2 Online
This is much easier: you just navigate to the given page with the MIDlets online and just click the JAD (or JAR) files. Note that some KVM’s may not allow for installing Web-based JAR’s directly; with them, you will need to click the JAD file instead. This is in stark contrast with the local install: all the tested (non-disqualified) browsers allow for the direct installation of JAR files and no local JAD’s are needed.
3.2 Running the already-deployed MIDlets
After your MIDlet is deployed, you will need to click it from inside the KVM if it’s not started automatically: most current, recommended KVM’s ask the user whether the MIDlet should be started right after the deployment.
Otherwise, you just start the KVM environment (it’s, in general, in the main Start Menu / Programs folder (except for the HTC Kaiser / Tilt, where it’s in the Tools subdirectory there) and is called “Jbed”, “Java”, “Jeodek” or “Esmertec Jbed/Jeodek” with the Esmertec products, “MIDlet Manager” with TAO Intent, “Midlet HQ” with IBM J9 (linking emulator.exe) and “Jblend” with Jblend) and simply double-click the given, already-deployed MIDlet. With IBM J9, you must select the uppermost “Launch” menu item in Actions instead, after highlighting your MIDlet.
Now that I’ve made it clear it’s only Nokia’s (Symbian) MIDlet manager that puts the deployed MIDlet icons in the traditional Applications folder, you may also want to know whether you can also hack the Windows Mobile KVM’s to do the same. This, as you may have already guessed, also greatly speeds up starting a given MIDlet: you don’t need to start an additional layer of managers. The answer is: yes, with most KVM’s (except for Jblend), you can. Then, you won’t need to separately start the KVM interface to gain access to the deployed MIDlets. See the “Direct, system-level links (shortcuts) to MIDlets” row in the main chart for more info on this. Note that, as opposed to Nokia’s system-level links (or, for that matter, the way the excellent Palm OS emulator, StyleTap, works on Windows Mobile), all these links will have the same icon, unlike under Symbian – not that of the icon of the MIDlet itself. This is a definite disadvantage if you prefer looking for a MIDlet based on its icon and not its name / position.
3.3 Security issues
Unlike with native Windows Mobile (or Symbian) applications, you’ll always run into security prompts. Therefore, it’s worth knowing a bit about what they are all about.
Java programs, in general, put a lot of weight on security measurements. This is why they continuously prompt the user when they try to access “sensitive” resources like the Net or the local file system.
Fortunately, you can, in general (except for Jblend), easily get rid of this problem:
- if you have any of the Esmertec KVM’s, use the MIDlets signed by the MXit LifeStyle-signed JAR’s available in THIS thread. Note that I’ve separately linked in the most common non-game (games, in general, aren’t affected by these issues, unless they want to use Bluetooth) MIDlets you may want signed. Then, you’ll be able to set their security model for “Blanket”, which means you’ll never be prompted for permission. It’ll certainly be easier for you than with the default “Session” (you’re asked once per session – that is, after starting the MIDlet) and the even more restrictive “One Shot” security model. Incidentally, Jblend employs exclusively the latter model with accessing the Net; this means it’s pretty much useless for applications like Opera Mini or the Gmail MIDlet. This is particularly true with the Gmail client, where it prompts the user to allow going on upon downloading every single mail (header). That is, never use Gmail under Jblend.
- if you have a KVM where you can “hack” the security descriptor files (all Esmertec KVM’s and IBM J9 belong to here; TAO Intent is also said to be but the opinions do differ on the latter and I haven’t tested this hack), do the hacking to get rid of the annoying security prompts. See the “Security: Allow permanent Net access without prompting ("Blanket" security model, as opposed to "Session" / "Oneshot")?” row in the main chart for more info / links.
3.4 Runtime issues: concurrent (parallel) and background execution
The KVM’s slightly differ in how they handle concurrent execution of MIDlets – or, simply running something in the background. Some (TAO and J9) allow for the concurrent execution of MIDlets, while the rest don’t. This means the, otherwise, excellent Esmertec KVM’s will only run one MIDlet at a time, while the certainly, in most respects, inferior J9 and TAO Intent will run any number of them. TAO, in addition, also supports the in-environment switch between running MIDlets, unlike J9.
Support for parallel MIDlet execution can be very useful; for example, the Gmail MIDlet could continuously check Gmail for incoming messages, while, in another MIDlet, you could browse the Web. You can find some other uses for example HERE, in the comment section (the comments HERE are also pretty instructive and shed light on related issues).
The ability to execute a MIDlet in the background is also very important. Just an example: you start downloading a Web page in Opera Mini but quickly realize the download will take ages. In order to save time and do something useful in the meantime, you decide to minimize the Opera Mini task, do something else in another program and only return later, expecting Opera Mini has already finished downloading and rendering. All the tested WM and Symbian KVM’s support this kind of operation; the only exception is Jblend, which immediately pauses when it loses the focus. Incidentally, Jblend’s behavior also has some other consequences; for example, in no way can you use external character injectors to it (unless they’re continuously running and, therefore, don’t result in executing a new process; PQzII is one of these) and you will even have problems uploading Jbenchmark results to the server (because it constantly thinks the MIDlet has been paused and prompts you for resuming).
I also recommend Solnyshok’s excellent article for more information on the advantages of parallel execution of some MIDlets. Also note that the article contains an excellent hacking tutorial on how multiple instances of the same MIDlet can be executed at the same time.
4. The main chart
Again, this is where you’ll find most information. It contains an order of magnitude more information than the article you’re just reading in a well-condensed, tabular, easy-to-compare form, packed with tons of screenshots helping in finding out how a given feature should be enabled / used.
I’ve already elaborated on several (for example, security-related) of the rows this chart has; now, let me elaborate on the rest.
In the “Price / availability” row, as has already been stated, you’ll find where to get / download the given KVM from.
In the “Platform compatibility” group, I’ve listed three rows: compatibility with non-phone Pocket PC’s, Pocket PC Phone Edition devices and, finally, touchscreen-less Smartphones (abbreviated as SP’s).
As has already been pointed out, you MUST apply the SMS/Phone DLL hack explained in the Jeodek column if you have a phone-less, “classic” Pocket PC. Also, if you have a MS Smartphone (as opposed to Pocket PC’s), pay special attention to the compatibility remarks here as, unfortunately, not all titles are Smartphone-compliant or, if they are, you may encounter some problems when trying to run them.
The “Generic compliance with standards” group is more for techies: people that would like to know everything about the standards support of the given KVM. As can clearly be seen, the Nokia N95 KVM blows all the other KVM’s out of the water (in this respect too); this is particularly true of, under Windows Mobile, never (except for some very old and long-discontinued IBM J9-specific add-on projects I’ve elaborated on HERE) implemented, for, for example, multiplayer gaming (give a try to the MIDlet version of 3D Constructo Combat in multiplayer mode on even slower / older Nokias like the 6680 – you’ll LOVE it! The same stands for for example the infamous Naval Battle: Mission Commander) Bluetooth support. The same stands for other goodies like support for camera: all WM KVM’s lack the support for it, as can clearly be seen in the “MMAPI Video-capture” cell of the “JVM Multimedia (JSR 135)” row. It could be VERY useful; see for example the posts HERE, seeking for support for barcode reader applications. Audio capture (which isn’t really supported by many apps either) is also pretty useful; see for example the TellMe MIDlet for a real-world usage example. Yeah, you can clearly see MIDlets are in no way for gaming only – there have a LOT of enterprise uses and are particularly useful when you have a lot of different platforms you need to quickly develop a business solution for!
In the “JVM Memory” row, I’ve listed the appropriate heap (free memory) size available for each KVM. The more, the better for running memory-hungry MIDlets – unless the given KVM uses dynamic (de)allocation of memory when the need arises. Then, it’ll be able to run even the most memory-hungry MIDlets (for example, a full JBenchmark category, in High Quality, packed into one JAR). Unfortunately, only Nokia’s KVM and Jbed support the latter. Also note that you can set the memory allocated for Jblend in the Registry.
Support for “JVM M3G”, that is, the Mobile 3D Graphics API is the dream of most Java MIDlet gamers. As can be seen, several KVM’s support it. (Speed, without hardware acceleration, is another question.)
The “JVM File Connection” group is also very important, particularly with applications like Opera Mini Mod, the unofficial (and, unfortunately, illegal; therefore, I cannot provide a link to it either) “hack” of Opera Mini, adding a lot of goodies like (pretty rude, but still working) page saving and IEM favorite import / export. These all require access to the file system, which, unlike with real Java, isn’t built-in or required by the basic standard. This is why so few WM KVM’s support it: IBM J9 with an additional hack (I’ve elaborated on the installation in the chart) and Jbed. Interestingly, some real-world tests were failed by Jbed, while IBM J9 passed all of them. The support for accessing the local file system is certainly a big plus with IBM J9 – one of the very few advantages of the environment, along with, for example, the ability to run several MIDlets at the same time.
The “Storage usage” group is very important because internal storage memory is doomed to fill up very quickly (especially with low-end WM devices only having 64M of Flash ROM – an example is the HTC s310/Oxygen WM5 Smartphone), particularly if you install sizable games (current games are 300-600 kbytes in size). In this group, I’ve explained the following:
Where can a given MIDlet manager KVM be installed to – that is, can it be installed to a storage card? All of them can (note that we’re, mostly, dealing with XDA-Dev-created installers and hacks in here!), except for Jbed, which MAY require some additional manual file copying (also explained in the chart).
Where the deployed MIDlets are kept: This is also highly important. Fortunately, it’s only IBM J9 that is doomed to store the deployed MIDlets in the internal storage (I’ve tried to hack it to a card very hard – see my related article – but in vain); other MIDlet managers, when installed to a storage card, don’t. Note that, should Jblend and TAO be an OEM-installed KVM on your handset, you can still easily “hack” them to store their MIDlets on a storage card with a simple Registry edit.
In the “Text input” group, first, I’ve listed the copy / cut / paste capabilities of the KVM’s. One of the biggest problems with TAO is the complete lack of copy / paste functionality in any of its textboxes. This is a real pain in the back. Note that some 4pda users have implemented an external, not very reliable way of pasting text to the TAO textboxes (via MortScript), it’s still far from perfect.
“Known text input-related bugs? Maximal editable pre-populated text area size?” elaborates on the text input-related bugs of the tested KVM’s. The most important of them (without any exception – not even Nokia’s implementation did fare well in this respect) is the text input areas’ limited size. This means the following: when you, for example, post an answer in a forum using the “QUOTE” button, you may end up not being able to enter anything and/or your answer getting completely deleted. In general, the threshold is between 1 and 8 kilobytes, depending on the actual KVM and the Web browser you use (Opera Mini fares far better in this respect than its modded version; I think because the latter uses 16-bit Unicode for input, which take up double the memory as the 8-bit input of Opera Mini.) Therefore, make sure you either quote VERY short answers and try to remain under the threshold or try not to quote anything.
In addition, TAO has a very bad, additional bug: if the quoted (and/or, original) text contains line breaks, you won’t be able to edit it at all.
I really recommend giving the test HTML page I’ve created for this test a thorough try to see what restrictions there are, whether your input is retained (after you exit the edit mode) etc so that you can be absolutely sure you don’t mess up anything when you do start filling in Web forms or post to forums with Opera Mini (Mod).
The “Display” category contains information on the usage of font smoothing technologies like ClearType (also see THIS request). As can clearly be seen, it’s only when using the smallest character size and only with some KVM’s that there is font smoothing (with OM4b2)
I’ve devoted two separate rows (and a lot of screenshots) to demonstrate the font sizes of Opera Mini 4 beta 2 in both VGA and QVGA because a great deal of misinformation is all around the Net on the different font sizes of each. For this test, I’ve also created a test page. As can be seen, the font sizes are roughly equal with all KVM’s, as opposed to what some people state. Also note that I’ve also published how you can increase the font size in TAO with a simple Registry edit (I’ve also attached the import file) – the ability to do this is clearly is a definite advantage of TAO.
As far as the “Keyboard, SIP, softkeys” group is concerned, please read THIS for a very thorough explanation.
I’ve already elaborated on most rows of the “MIDlet installation, separation, direct invocation, uninstall” group; therefore, I won’t go into this once more. It’s probably only “Registry import files to quickly reassociate JAR / JAD files” that still hasn’t been explained. Please see the “2.4 Co-existing on the same Windows Mobile devices” section in the Definitive Guide to Running 3D-enabled Java MIDlets on Windows Mobile to see why you might need these Registry import files if you plan to use more than one KVM’s on your Windows Mobile device and want to retain (or, quickly restore) the ability of a given KVM to deploy a MIDlet you click on in an external (Windows Mobile) Web browser or in the file system.
The “Security” group has already been explained above.
The “Misc (sound, compatibility with some popular apps, proxy, etc)” group contains some miscellaneous tests and rows like
support for full screen: as can clearly be seen, in this regard, Jbed is the best (it indeed offers full screen) and Jeodek is the second (it only displays the upper task bar but not the lower menu bar; Jeodek M3G being the only exception when run on the MS Smartphone platform). So does Jblend. TAO and IBM J9, unfortunately, both display the two bars at the top and bottom. Needless to say, Nokia’s KVM also makes use of the full screen estate.
Sound support: as has turned out during the tests, Jbed (along with Nokia’s KVM) is by far the best KVM when it comes to playing in-game music. Note that I’ve tested it being stereo by running Doom RPG, a very famous MIDlet (even PocketGamer.org’s infamous Sponge likes it). Strangely, while Jbed does support stereo, Nokia has failed the stereo test: it only plays music in mono. At last something that Nokia’s KVM gets beaten at
Proxy support is also very important and in high demand among Opera Mini users (as Opera Mini, by default, doesn’t support proxies, unlike Opera Mini Mod, where you can enter the proxy address right in the browser settings). In these tests, I’ve used my custom-written Web client MIDlet and Web server to easily find out which of the several possible ways Opera Mini (or, any other Web browser not supporting custom, local proxy settings) can be made use a proxy. As can clearly be seen, only Jbed and IBM J9 support this. (I haven’t tested Nokia’s KVM in this respect; I assume it works OK.)
the compliance test of three highly popular productivity (non-game) MIDlets: Gmail, Opera Mini and Opera Mini Mod.
5. jBenchmark Benchmark Results
I’ve also made some serious benchmarks with the well-known jBenchmark suite.
First, it’s worth pointing out that, while Esmertec Jbed does promise speedup by compiled code, in reality, it doesn’t mean THAT big a speed increase. That is, you won’t even see a twofold speed increase in everyday apps / games – if there will be any speed difference at all. In the charts, I’ve emphasized the tests where Jbed produced FAR better results than other MIDlet managers running on the same device. I’ve used plain bold to emphasize differences up to two; to emphasize even bigger differences (for example, the Chess test), I’ve additionally used Italic and <u>Underline</u>.
It’s also worth pointing out that while high-resolution (VGA) devices (in the test, the Dell Axim x51v and the HTC Universal) tend to run standard 2D graphics tests (at times a LOT) slower than standard-resolution (QVGA) models like the HTC Wizard or the HTC Vox / s710, with 3D (with the only currently available, 3D-capable MIDlet manager, the TAO Intent 11.x series), the differences aren’t that big.
As far as the 3D benchmarks are concerned, which show a clear, sometimes 20-fold speed difference in favor of the 3D hardware accelerated Nokia N95, don’t think Windows Mobile devices are THAT bad at playing the currently available 3D games. While M3G games indeed run pretty much flawlessly on the Nokia N93(i), N95 and E90 (the current Nokias with 3D hardware acceleration), the currently available, non-accelerated Windows Mobile KVM’s don’t produce MUCH worse results either – most 3D games still remain playable under WM too. In practice, the 20-fold difference in these synthetic tests reduce to two to three-fold difference with currently available, tested 3D MIDlets. Never ever believe anyone that states the opposite – he or she, then, hasn’t compared (unaccelerated) Windows Mobile and (accelerated) N95. I did and know the difference, which is certainly not even tenfold, no matter what the JBenchmark results suggest. Note that the reason the Nokia N95 scores so good in 3D is not because the built-in PowerVR 3D chip would be so much faster than, currently, the 2700G. It’s just because the former is supported by the built-in MIDlet manager and the latter isn’t supported by any Windows Mobile MIDlet managers.
Otherwise, speed-wise, there’s no clear winner. In general, all MIDlet managers have their strengths and weaknesses; there isn’t a single one with the best speed / efficiency (not even that of Nokia). Also note that, in general, the Nokia benchmarks don’t differ much from those of the WM KVM’s – of course, the M3G results are completely different. But, again, with real MIDlets, this difference is far less pronounced than one would think based on the synthetic JBenchmark 3D results.
Note that the columns are a bit different from the first chart; now, I’ve also listed the device I’ve run the given MIDlet manager on.
6. Game compatibility reports
I’ve also thoroughly tested some hundred (!) popular, well-known games; both 2D and 3D titles. (More on these games in THIS article – my previous and, now, slightly outdated article on 3D gaming.)
As has already been emphasized with the benchmarks, there’s no clear winner here either. As a rule of thumb, however, you should always try to run a given title under Jbed first. It’s the least compatible with existing games, but has three real advantages over both the M3G-compliant version of Jeodek and Jblend: if it does work then, generally, it’s the fastest; of the three, it has the best sound emulation and it supports full screen mode.
If you do encounter problems, give a try to alternative MIDlet managers: to IBM J9, TAO Intent, Jeodek M3G or Jblend (or, JblendFullScreen if you don’t need M3G and/or decent music but do need full screen because of, for example, the hard-coded screen size used by the MIDlet). Note that it’s pretty useless to try to run a title not running under Jbed under the non-M3G-capable Jeodek either. Doing the same under the M3G-capable Jeodek version, however, is a completely different issue.
As has already been emphasized, these MIDlet managers can co-exist on the same device and if you’re really into gaming as many MIDlets as possible, you will want to put at least three (Jbed, Jblend and Jeodek M3G) on your handset.
Note that there is an earlier version of this chart HERE. As the chart doesn’t contain for example the Nokia N95, the M3G-capable Jblend (only its full screen, old and pretty much incapable version) and lists far fewer titles than the main games compatibility chart, it’s in no way as important as the main compatibility chart listing the, for gaming, most recommended WM KVM’s (along with Nokia). However, it also contains some info on how different hardware (520 MHz XScale-based VGA HTC Universal vs. 195 MHz TI OMAP-based QVGA Wizard, for example) compare when it comes to running (graphics-intensive) games. As can be seen, the, otherwise, for gaming not really recommended Wizard behaves pretty OK even at the default 195 MHz CPU clock speed.
Highly recommended articles
TUTORIAL: Control issues of Java MIDlets – all secrets of button handling. Crossposts: PPCT, AximSite, XDA-Developers - 1, XDA-Developers - 2, XDA-Developers - 3, FirstLoox, BrightHand, HowardForums, SPT, MoDaCo, PocketGamer.org, PocketGaming.de.
The Definitive Guide to Running 3D-enabled Java MIDlets on Windows Mobile (note that its discussion of some of the apps is a bit outdated; that is, consider the info in the current Bible of higher priority than in there. Also note that the comments (at the bottom) are really worth checking out, just like with the comments arrived at THIS article. Crossposts: PPCT, AximSite, XDA-Developers, XDA-Developers - 2, FirstLoox, BrightHand, HowardForums, SPT, MoDaCo, PocketGamer.org, PocketGaming.de
The Button Enhancer Bible & great button config tips for Opera Mobile / Mini users – it has a LOT of MIDlet-related info. Crossposts: PPCT, AximSite, XDA-Developers - 1, XDA-Developers - 2, FirstLoox, BrightHand, HowardForums, SPT, MoDaCo.
4PDA thread; translations HERE
5 things noobs should know about java mobile games
The MIDlet reviews at Mobile Critic and Midlet Review
The homepages of Fishlabs, Gameloft, Glu and Xendex
My old, outdated, related articles
What TAO Intent versions there are? - this article has been written before Risidoro’s releasing the 1034/1036 versions and the release of the generic SMS / phone.dll hacks. The latter means you don’t need to install the somewhat older version .1023 of the MIDlet manager on your phone-less PPC any more.
Running Motorola-specific Midlet games on the Pocket PC? YES!!
IBM releases new, 6.1.1 version of great Midlet runner J9; now, it’s fully compatible with Google Maps!
Great, Free Java/Midlet Environment IBM J9 New, 6.1 Version is Out – a Full Compliance & Bug Report & Never Before Published Tweaks that Help Using It Much Easier (in there, I’ve also reported on my effort of trying to relocate the IBM J9 deployed MIDlet repository from the main memory).
Java Midlets on the Pocket PC - the Complete Tutorial (outdated, but nice for some additional tips)
Wowz, thanks for the kind words
Menneisyys, as usual you did an excellent job! Many thanks
I would welcome one addition though: a table which shows which JSR standards are supported by each midlet manager.
I have spent much time to find out that only IBM J9 supports both JSR-75 (accessing PIM database and the File System) and JSR-82 (Java BT API & serial ports). There exist a couple of applications, e.g. MGMaps, which rely on support for both stds.
Cheers
JockyW
jockyw2001 said:
Menneisyys, as usual you did an excellent job! Many thanks
I would welcome one addition though: a table which shows which JSR standards are supported by each midlet manager.
I have spent much time to find out that only IBM J9 supports both JSR-75 (accessing PIM database and the File System) and JSR-82 (Java BT API & serial ports). There exist a couple of applications, e.g. MGMaps, which rely on support for both stds.
Cheers
JockyW
Click to expand...
Click to collapse
1. Thanks for the kind words
2. JRS-75 (File Connection & PIM) requires an add-on hack (see the "JVM File Connection (part of JSR 75):" row)
3. As far as JSR-82 (BT) is concerned, it did have two third-party BT add-on libraries, but they no longer exist. See http://www.aximsite.com/boards/bluetooth-talk/209772-pocketpc-bluetooth-enabled-midlets.html for more info.
bt info on a wizard
hi i have months trying to use a software bt info in my wizard htc 8125. it use bluetooth and is like the bloover... i can use it... some help please what i have to install im from ecuador and is a little hard to read all that i dont understan at all. thanks
ernestorendon86 said:
hi i have months trying to use a software bt info in my wizard htc 8125. it use bluetooth and is like the bloover... i can use it... some help please what i have to install im from ecuador and is a little hard to read all that i dont understan at all. thanks
Click to expand...
Click to collapse
I haven't managed to install any 3rd party BT libraries under IBM J9. jockyw2001 may know how this is done.
thanks
Menneisyys said:
I haven't managed to install any 3rd party BT libraries under IBM J9. jockyw2001 may know how this is done.
Click to expand...
Click to collapse
thanks, somebody helppppp
UPDATE (11/23/2007):
in the meantime, thanks to XDA-Devs user defcomg, a new, third-party, free Bluetooth (JSR-82) library, BlueCove has been found, which supports IBM J9.
In the second part of this article, I elaborate on how you can “hack” some Nokia classes into MIDlets so that they have a chance to run. I also explain how you can force the installation of MIDlets that, otherwise, are refused to be deployed because of missing library (for example, Bluetooth under Jbed) support.
1. BlueCove
Let’s start with the compatibility issues.
1.1 Real-world (!) compatibility
First, it’s only IBM J9-compliant (NO TAO, NO Jbed, NO Jblend). Even under J9, unfortunately, it’s (as of this writing) pretty much far away from REALLY working. While it correctly implements Bluetooth discovery, in general, it doesn’t go further and just crashes at actually connecting (not only discovering). I’ve tested this with both the Microsoft and the Widcomm Bluetooth stack, using version 6.1.1 (that is, the latest one) of IBM J9.
My compliance test results are as follows:
Super Bluetooth Hack 1.07 (note that the two (2nd/3rd) versions are exactly the same): doesn’t even start (IncompatibleClassChangeError with Vector)
Blooover discovering works; the actual connection doesn’t (IncompatibleClassChangeError with javax.microedition.io.Connection).
3D Constructo Combat: The same: it is able to discover other devices:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
but, upon actually connecting to them (or, when you start it in server mode), it immediately crashes and exits.
1.2 Downloading, installing
If you still want to give it a try (again, it’s pretty much useless as of now!):
Get bluecove-2.0.1.jar (version as of 11/23/2007) from HERE
if you have WinRAR on your desktop Windows machine, enter the WinRAR bluecove-2.0.1.jar command;
otherwise, rename bluecove-2.0.1.jar to bluecove-2.0.1.zip and click it so that its content is shown;
extract bluecove_ce.dll and intelbth_ce.dll from the root of the archive; transfer them to the \bin subdirectory of your IBM J9 installation.
Note that if you don’t want to hunt for / extract these files yourself, I’ve made them available HERE as a standard ZIP file. Just unZIP it and transfer the two DLL's.
copy bluecove.jar to the \lib\jclMidp20\ext directory of your IBM J9 installation. If “ext” doesn’t exist, create it.
you’ll need to use special link files to start your Bluetooth-enabled MIDlets. This also means you don’t need to deploy your MIDlets under J9 at all as direct links of this type don’t require the MIDlets to be deployed beforehand. A typical link file looks like this:
255#"\Storage Card\ibm\bin\j9.exe" -jcl:midp20 -Dmicroedition.connection.pkgs=com.intel.bluetooth -cp MIDletName.jar "-jxe:\Storage Card\ibm\lib\jclMidp20\jclMidp20.jxe" MIDletName.jad
(An example link file is HERE as a real file.)
In here, change MIDletName to the filename of the MIDlet and, of course, change \Storage Card\ibm to the actual path of your IBM J9 installation.
Note that you’ll also need the JAD files in this setup. Should you not have them, use the free JADMaker to create them from JAR files (see the link for more info). If you don’t provide any absolute directories in the link file to the JAR / JAD files, then, you’ll need to copy the JAR file to the \lib\jclMidp20\ext directory of your IBM J9 installation before invoking the MIDlet through the link file. This is the same directory where bluecove.jar should reside. Also, the JAD file must be in the same directory as the lnk file itself.
2. Some additional hacking
2.1 Nokia classes missing in the game
If you try to run 3D Constructo Combat under J9 (I’ll elaborate on other MIDlet managers later), you’ll notice at once it doesn’t run. The sole reason for this is the lack of some Nokia-specific libraries in the MIDlet manager. You can, however, easily “hack” these classes into the JAR file of the MIDlet itself.
To do this, first, download THIS archive and unZIP it. Second, get WinRAR and, after installing it, enter the WinRAR jarfilename command to open the JAR (the main MIDlet) file. Now, just drag-and-drop the com directory (with all its subdirectories, of course) to the opened JAR file – making sure you don’t drop it on a directory, but in the root.
That’s all; now, your MIDlet might start.
Note that this definitely works with 3D Constructo Combat and J9 but will NOT work with Jbed, not even with the permission hacking I’ll explain in the following section.
(also see THIS Russian-language post for more info if interested. It doesn't contain much additional info, though.)
2.2 Permission hacking
As has been explained in the MIDlet Bible, some (very few!) MIDlets can’t even be deployed under Jbed (and other, less recommended) MIDlet managers. The reason for this is the deployment-time permission checking.
An example of these MIDlets is 3D Constructo Combat, which is refused to be deployed because of the unavailability of a library (here, a Bluetooth one):
You can easily help this and make MIDlets at least deployable (being actually runnable is another question). To do this, enter the WinRAR MidletFileName.jar command and extract the META-INF\MANIFEST.MF file. In there, look for the MIDlet-Permissions: row. For example, with 3D Constructo Combat, it’ll be the following:
MIDlet-Permissions: javax.microedition.io.Connector.bluetooth.client,javax.microedition.io.Connector.bluetooth.server
Just delete it and overwrite the original META-INF\MANIFEST.MF file with the new version, all this in the JAR file. Again, the new file no longer contains the MIDlet-Permissions: row. Now, the MIDlet at least becomes deployable as can also be seen in THIS screenshot. (This, again, doesn’t mean Jbed will be able to run it as well. It won’t, not even with the above-explained Nokia class hack.)
UPDATE (11/24/2007): At last: an M3G-capable, much more gaming-friendly Jbed version is out!
As is stated in the Bible (as can also be seen in the main game compliance chart), the recommended, current version of Jbed has very limited game compatibility. If you do want to use it and do need to run for example M3G titles, so far, you needed to turn to alternative and, in many respects, inferior MIDlet managers. Now, this has changed: thanks to XDA-Devs forum members viperj and defcomg, a brand new and really great version has been posted.
This is version 070524.2.1 - that is, slightly older than the current, 070802.2.2 version. The major disadvantage of this version, compared to the 2.2 one, is the complete lack of sound emulation.
It runs all the games running under the old, M3G-capable Jeodek (see their list HERE) and is very fast. Furthermore, it isn’t affected by the locale bug of version 2.2 – that is, the inability to run under any locales using a language with a non-Western alphabet (for example, most East-European languages).
I’ve tested it with I-Play’s FIA World Rally Championship 3D, Namco’s Arcade Golf and High Speed 3D. All these worked flawlessly (except for, of course, the complete lack of sound), unlike under 2.2. Under 2.2, they didn't even start or crashed later.
If you really need sound emulation and it’s indeed able to run the given title, you will still want to version 2.2 of Jbed, though. For example, it runs Simcity Societies with great sound.
Installation
To install it, just grab THIS file, unRAR it to, preferably, the “J” subdirectory on your storage card (so that jbed.exe is right in the “J” subdirectory) and import THIS Registry import file (change all occurrences of "Storage Card" to the name of your card if it has another name). You might also want to copy a link to the main executable, jbed.exe, to \Windows\Start Menu\Programs (or, just \Windows\Start Menu\ on MS Smartphones). I’ve created the link file HERE.
UPDATE (01/16/2008): In the meantime, it has turned out that you can use the non-M3G-specific version of Jbed (that is, Cloudyfa's 20070802.2.1) with any localizaton setting if and only if you start your specific MIDlet directly; that is, via a system-level shortcut.
I've also been using Opera Mini 4 on the Blackberry 8800, using the default MIDlet manager coming with the device. Note that, unlike the built-in Web browser and the mailer, you MUST specify the APN of your operator for it to work. Otherwise, it'll just report being unable to connect to the Net after starting (and a lengthy installation process). To do this, go to Options / Advanced / TCP?IP and enter your APN (for example, "Internet" with T-Mobile.)
Hello Menneisyys.
Have you seen this?
http://www.pda4x.com/read.php?tid=59304
It work great with full screen java game and good sound.
UPDATE (02/01/2008):
There are new builds of both Jbed and Jblend (two excellent MIDlet Managers – see the Java MIDlet Bible for more info). Due to lack of time, I haven’t tested them. Both has been done by Da_G (his projects’ homepage is HERE) and are accessible HERE. Note that you MUST register yourself (it’s free and is done quickly) in order to access the page above (along with the download).
I hope I’ll be able to test them some time – along with the default Blackberry MIDlet manager. (I might wait with testing the latter until version 4.5 of BB OS is released, though.)
UPDATE (02/06/2008): Another Jbed MIDlet Manager version has been released: JRebeiro_EsmertecJbed_20071119.3.1.
It’s available HERE (at the bottom of the first page).
As I don’t have the time to thoroughly test it, feedback is REALLY welcome!

Windows Mobile News as of 11/02/2007

As you may have noticed, I’ve started working on the Multimedia Bible, the premier resource of all info on multimedia playback, streaming etc. I don’t know when I get it ready. I’ll announce when the first chart versions are ready for public scrutiny.
After some 13-14 months of the 2.x -> 3.x series jump, the excellent S-K folks have just announced they will release a brand new, 4.0 version of SKTools, the, IMHO, best (albeit a bit overwhelming and, because of its capabilities and complexity, hard-to-discover) all-in-one systems management tool available for Windows Mobile. The new version will have the following new features:
- Cab Manager: SKTools can show all CAB,CPF,TSK files on device, show content (with full names, installation path, registry keys, shortcuts, _setup.xml), extract with full names, install to ANY location (full installation made by SKTools) for WM5/ WM6; SKTools can be associated with CAB files
- Replaced ROM Files: show which ROM files have been replaced by another version, show version and date of these files; the user can see if the "newest" file (the file having the latest time stamp) is, in reality, older than others and, therefore, remove it.
- Move Data: move application, folders, files to any location with automatic (!) registry and shortcut modification (and other data about files and their path)
- Storage Analyzer: show what files and folders (by types, attributes, ...) are stored on the device
The open beta starts next week (I already have a pre-beta); I’ll let you know when it becomes ready.
I’ve reported on LogMeIn Rescue Mobile more than two months ago. Now, a similar product, LogMeIn Hamachi has also been released, which – as opposed to ALL the other, similar tools – even the otherwise BEST Pocket Controller by SOTI – uses HTTP(S) tunneling for remotely controlling your Windows Mobile handheld from a remote desktop PC. This means any Windows Mobile device can be accessed, even ones behind firewalls and/or in NAT’ed networks (like about 60-70% of current mobile networks). See THIS and THIS MoDaCo threads for more info.
Spb has just released an updated version of their flagship, brand new product, Spb Pocket Plus 4.0, of which I’ve reviewed some modules HERE and HERE.
The dialup-sharing-over-Wi-Fi (which is of extreme importance with non-BT DUN and/or non-BT PAN-capable devices like, for example, Symbian smartphones (neither of them) or other Windows Mobile PDA’s based on the MS BT stack (no PAN support)) method (see THIS) has been GREATLY enhanced and automatized. See XDA-Dev forum member TalynOne’s excellent tutorial and tools HERE.
Moving to dialup and DUN: XDA-Dev forum member Technology has come up with a decent tool for making it work on the T-Mobile Dash.
CrazySoft released another puzzle adventure game
Their last “adventure”, “Lost in the Pyramid”, was a complete disaster. The new game is certainly MUCH better, albeit I’ve found some of the steps similarly illogical and/or plain stupid (for example, dying right away if you smash a tile; getting caught by the guards if you, for example, exit your prison through the window etc.). It’s still a far cry away from “real” (even emulated – see my emulation-related roundups and Bibles HERE) adventures like those of Legend Entertainment or Fade Team (Fade / Acedior), but you may want to give it a try nonetheless. Be warned: the trial can be played through in 10-15 minutes and I’m not really sure whether the full game is really worth the money. I’ll wait for either Eric’s or Ben’s reviews; I definitely won’t request a review copy (because I don’t really like biting the feeding hand, which, I think, may happen this time too.)
Therefore, just some remarks: The game is multiplatform and supports both VGA and QVGA on the Pocket PC. I’ve tested it on both VGA and QVGA Pocket PC’s, QVGA Smartphones and the Symbian S60v3 Nokia N95. With the latter two platforms, it’s pretty hard to control because of the lack of the touchscreen (and a sophisticated control system). At least you can use the 3…0 buttons to quickly access the inventory items.
continued at http://forum.xda-developers.com/showthread.php?p=1635470 with some games news/ reviews

Categories

Resources