Windows Mobile News as of 11/02/2007 - General Topics

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

Related

Playing Flash Content on the Pocket PC - the Roundup

Macromedia (now Adobe) Flash is very commonly used on the Web. There’re a lot of, for example, games utilizing this format. Actually, you can't even use a lot of sites without built-in Flash support. In addition, as Flash content can be very nice to play with (for example, there’re a lot of cool Flash games also running on the Pocket PC - you will definitely want to check out the Games section over at, for example, KillSomeTime.com, Arcade Pod and Flash Magazine (the latter is more of a news portal) to see what Flash is capable of, leisure-wise), I’ve decided to write a fully-fledged review and tutorial of everything Flash-related.
Please note that I not only scrutinize the existing solutions, but also publish never-before-published tweaks for greatly enhancing the usability of one of the players, Bryht, particularly on WM5 devices.
1. Flash-capable players
1.1 The Macromedia (Adobe) Flash Plug-in
The free Macromedia (Adobe) Flash Plug-in, apart from a one-week period of becoming commercial, has always been the best choice for playing Flash contents on Pocket PC’s. It’s by far the most compatible and fastest player on our PDA’s and, with third-party add-on tools (which will later be introduced), it’s also the most versatile and usable one. It’s definitely better than either the built-in Flash support in NetFront or early Flash players like PocketSpark (see later).
1.1.1 Getting it
There have been several Macromedia Flash plug-in versions for the Pocket PC, of which version 7, released early April 2006, is the most up-to-date and, therefore, recommended. You will want to download this version unless you have a pre-WM2003 device. Also note that, much as some (very few) Pocket PC’s (their list can be found here) have been shipped with the plug-in in the ROM, they’re all version 6 at most and, therefore, may be needed to be upgraded to version 7 (make sure you only try to do the upgrade if the device has at least WM2003 - the Toshiba Genio series is Pocket PC 2002 only and, therefore, can’t run version 7 of the plug-in).
There aren’t many differences between version 7 and version 6 - it’s with very few of the available Flash animations (for example, Heli Attack 3) that don’t work under version 6. Version 7 will be a must for WM5 users, however - it has much better WM5 compliance/stability than version 6, which worked quite unreliably under WM5.
This application, contrary to the popular belief, can and will be installed to non-built-in storage; that is, for example, a storage card - as with all the previous versions.
Note that if you have a Pocket PC 2002 device, download version 6 instead (version 7 is no longer PPC2k2-compliant). Alternate download here; the CAB file itself can be found here.
If you have a Pocket PC 2000 MIPS/SH3 device, download version 4/5 linked from this or this page (I’ve also made them available here in one RAR file. The MIPS CAB file can be found here). I really recommend the user comments in the latter page. It is in French; therefore, if you don’t speak the language, make Babelfish translate it.
I’d like to thank torgamm at PocketPCFreeware, akheron at AximSite and dlangton at PPCT for helping me to find the PPC2k-compliant plug-in versions.
1.1.2 Macromedia Flash plug-in and PPC Web browser compliance
Note that, regardless of the version, the Macromedia plug-in can only be used with the built-in Pocket Internet Explorer / Internet Explorer Mobile to access online Flash content. Other Pocket PC web browsers, except for NetFront and its (compared to the Macromedia Flash plug-in, pretty inferior) built-in Flash support, do not support Flash and all. This means you won’t be able to play any Flash animations in Opera 8.5 beta 2, Opera Mini, Minimo (also see this explanation of the lack of Flash support in Minimo from the author of Minimo himself) and Thunderhawk.
1.2 Flash player applications not depending on the MacroMedia plug-in
In addition to the MacroMedia plug-in, there are three completely independent applications to render Flash contents.
1.2.1 PocketSpark beta2 by Conduits
This free player is, unfortunately, almost useless - it’s really old (year 2000) and isn’t compatible with almost anything. Not recommended at all.
(Also see this (for info on other players too) and this threads.)
1.2.2 NetFront 3.2
NetFront is a well-known alternate browser. Unfortunately, version 3.2 - the most up-to-date version to have Flash support - is pretty inferior to the currently available version 3.3 previews. The latter don’t have Flash support as yet; so, you’ll need to stick to NetFront 3.2. This may be pretty problematic, particularly on WM5 devices because NetFront 3.2 isn’t WM5-compliant. What is more, its WM2003SE VGA support is pretty bad too.
Its built-in Flash player isn’t as good as that of the Macromedia plug-in. Much as it has some strengths over it (it’s able to play local contents without additional tools or HTML hacking), it’s definitely slower, less compatible and supports external/on-screen keyboards far worse.
1.2.3 Beta Macromedia Flash
This is also a free player and is pretty good. It supports the operating system Landscape mode flawlessly (unlike, say, FlashAssist), which is very good news for WM2003SE+ users. Also, it is compatible with the native VGA mode. While it's only using low resolution in the standard SE VGA mode, with forcing, it can be made use the high resolution even there. Also, it centers the animation in the middle of the screen. Also, it's very easy to install - you just copy the main executable EXE file to anywhere on your Pocket PC, reassociate the .swf file extension to it and, after that, clicking a .swf file will automatically invoke the player. Also, it has the standard Flash context menu-based 100% zoom-in capabilities and you can scroll (drag) the Flash window in this mode like, say, Bryht and PflashP.
It also has problems: there are no button assignment capabilities; you can't change the built-in Macromedia 6 plug-in to anything else (to version 7 - again, as very few Flash animations require Flash 7, this isn't that big a problem; the probable incompatibility with WM5 may be a bigger one).
If these aren't a problem, however, you will really want to give it a try, especially if you have a WM2003SE device (where the Macromedia 6 incompatibilities aren't a problem and there's Landscape support built into the operating system, making Bryht less necessary).
A mini-tutorial on making it work: download the installer from the above page; execute it (you can safely cancel the setup when the execution is transferred to the well-known ActiveSync dialog to avoid anything useless - the installer has a lot of useless demos and similar stuff in addition to the executable file of the player itself - to be installed on your Pocket PC; you can also do the installation while no PDA is connected to your desktop computer. Then, next time you cradle your PDA, you will only need to cancel the auto-installation.
Now, go to C:\Program Files\Microsoft ActiveSync\App\ and step into Tutorials.CAB. (If you have Total Commander on your desktop Windows computer, just press Enter while the cursor is on the CAB file.) Extract TUTORI~2.001 from the CAB file (with Total Commander, just Copy (F5) to a directory) and rename it to have an .exe extension. The name can be anything - it's the extension that counts. Now, transfer it to anywhere on your PDA and make sure you associate the .swf file extension to the application.
A big thanks goes to dlangton in the PPCT forums for pointing me towards this hidden gem!
2. Saving and Playing Local (offline) Flash Files
Flash is pretty similar to, say, Java applets and, most importantly, Java midlets (the mainstream form of distributing mostly games for "dumb" mobile phones and, in cases, even Symbian smartphones) in that they can be executed both remotely (in a Web page) and locally (without having to have an active Internet connection), after you’ve downloaded them onto your PDA (of course, midlets are downloaded only once - so, no re-download will occur. Applets will be fetched again and again if they can’t be found in the local browser cache). This means that you can save Flash applications onto your PDA and, then, just use/play them when you want to even if you don’t have any kind of Internet connection. It’s much easier than initiating an Internet connection, revisiting the given Web page and playing the game from there.
By itself, the Macromedia plug-in is unable to run local Flash files (while the independent NetFront and PocketSpark can). There’re several solutions to this problem: either creating a local HTML stub referring to the downloaded Flash (.SWF) file, which you can just click on to be invoked by Pocket Internet Explorer / Internet Explorer Mobile or use third-party tools to run them. The latter can have additional advantages (for example, the really useful keymapping and full-screen modes without using full-screen PIE plug-ins under pre-WM5 operating system), while the former is free.
First, however, let’s take a look at how you can save Flash content to be reused later without having to connect to the Net. By default, saving Flash content is not supported by most browsers.
2.1 Finding and Saving Flash Animations for Offline Use
To save Flash animations onto your desktop computer (and, then, transferring them to your PDA) without installing third-party applications, do the following. If you’re using Internet Explorer on your Windows XP desktop, you can just go to c:\Documents and Settings\username\Local Settings\Temporary Internet Files\Content.IE5\ and do a generic search for *.swf files. Use for example Total Commander for this; in it, while staying in the c:\Documents and Settings\username\Local Settings\Temporary Internet Files\Content.IE5\ directory, press Alt-F7 and enter *.swf in the Search for: text input field as can be seen in this screenshot.
Also, you can refine your search (if there’re a lot of hits) by clicking the Advanced tab, and, after enabling it, filling for example "2 minutes" in the "Not older than" text input field as can be seen in here.
The situation is the same with all browsers that use some kind of cache in the file system: you’ll surely find *.swf files in the cache. As far as alternate (non-Internet Explorer) desktop browsers are concerned, there is some information on saving Flash animations from Firefox here. Note that as long as the given browser has a cache with readable contents (and does support Flash - that is, it’ll download Flash animations), you’ll be able to find SWF files in there. That is, you can save Flash stuff under even the rarest, but Flash-capable browsers too. This also stands for looking around in the cache of, say, Pocket Internet Explorer on the Pocket PC itself. You may want to see for example the article Downloading binary files off the Web on the Pocket PC - tips and tricks (alternatives: PPCT, AximSite, PPC Magazine, FirstLoox, BrightHand) for more information on doing this on the PDA.
If you still find all this far too awkward, you can give a try to third-party applications; for example, the now-free Flash Catcher 2.6 by justDo Software, which integrates quite seamlessly into the desktop Internet Explorer and offers a simple way of saving your favorite Flash animations with a mere mouse click (see this and this screenshots on how saving can be activated). Note that it won’t be able to save some Flash animations (with them, just looking into the browser cache and searching for new SWF files manually will suffice) and may leave its old icons on the screen. You will only be able to get rid of them by shutting down and, then, restarting all Internet Explorer instances.
There’re several other solutions as well, but, in general, I’ve found Flash Catcher the best (and, after all, it’s free), not taking into account the problems outlined above. For example, I’ve never managed to make Save Flash 3.0 by Pilot Group (15-day trial) work. I haven't even been able to set it up properly because it has a homepage in really- really bad English I could not understand with the images all missing.
2.2 Creating HTML stubs
Generally, you don’t need to have any commercial third-party tools to execute local, offline Flash files on your PDA with your Macromedia plug-in. The following HTML file, put in the same directory as the SWF to be played, will suffice:
Please note that, due to the restrictions of the forum engine, I had to put the code snippet on an external server. It can be found here .
where change "Gold-Miner.swf" to the SWF file you want to invoke and the width/ height properties to the preferred size of the file (it’ll, however, be overridden by the system, so, there’s no need to be precise. In most cases, you can leave it at that).
Note that this HTML file will work in the desktop Internet Explorer too. You, then, can even remove the width/ height properties and the html/body opening/closing tags. Remember, however, that these should never be removed from the Pocket PC version.
Note that the HTML stubs other sources recommend (see for example this and this threads) are far more complicated than mine. This is not needed - if you use my stubs to link in SWF files, everything will work OK and you’ll end up having to edit much smaller, easier-to-adminster stub files.
After you’ve finished creating a HTML stub for all your Flash animations (one HTML stub for each SWF file), you can play them in your Macromedia plug-in by just clicking them in your Pocket PC File Explorer - assuming the file associations point to your Pocket Internet Explorer / Internet Explorer Mobile and not to, say, Opera beta or NetFront. If the latter is the case, read this article on restoring these associations.
If you, however, would like to prefer using third-party apps which, in cases, greatly enhance the Macromedia plug-in, check out the following section.
2.3 Stand-alone apps based on the Macromedia plug-in
These applications all require the Macromedia plug-in to be installed. This means you must install not only these applications, but also the Macromedia plug-in (any version will do). You’ll need to download and install the latter separately.
2.3.1 Bryht Flash Player 2.0 by Bryht
This player is, in my opinion, the best, most capable, most game-friendly Flash player for the Pocket PC. It has a lot of unrivalled capabilities like button mapping (which is painfully missing from all the alternatives) and even desktop-based Powerpoint slide conversion. See for example this PocketNow review on the capabilities of the application. In here, I only elaborate on the hardware button mapping feature, particularly because of the additional, never-before-published information on quickly changing user-defined button mapping schemes and my hacks to make the button mapping WM5-compliant. Also, as there’re several builds of version 2.0, I also elaborate on the differences between them and the way of recognizing the actual build.
Note that you must configure the player if you have a VGA device; then, choose the GrayVGA skin in File/Skin Options. Note that it’s been created for native VGA mode; it’s only there that the GUI will be OK; in SE VGA, most parts of the buttons and the volume control won’t be visible. This is an unfortunate step back from the earlier 2.0 builds (see section 2.3.1.2 below).
2.3.1.1 Hardware button mapping
As has already been pointed out, the Bryht player has an option of freely redefining hardware keys - assigning any key on a full keyboard to any Pocket PC hardware button / D-pad direction (see File/Button Options). None of the other players support this essential feature - essential because about half of the available Flash games depend on other keys than the traditional D-pad arrows: for example, in the platform game Heli Attack 3, it’s with some alphanumeric keys that the player must control the game; in Bomberman In the land of the Pumpkin V3, you need to drop a bomb with the Delete key on the keyboard etc. (Don’t forget Flash games have been created with desktop players in mind - this is why most Flash authors assume players all have a full keyboard.)
Unfortunately, D-pad directions (none of the four) can’t be redefined on WM5 devices (it works just O.K. on pre-WM5 devices) because of the fundamental difference between WM5 and previous OS’es, as far as touchscreen-less operation is concerned: instead of just registering the new D-pad direction, the system will just traverse the focus to the following GUI item if you press the D-Pad into any direction. Until this is fixed by the Bryht folks, you can still redefine your D-pad directions by directly editing the Registry. If you thoroughly read the hardware button-related information in my below-linked GBA article and are willing to play with the Registry for some time, this will become really easy after some time, however.
Also note that there is no way of saving/restoring user-created button mappings to quickly change button layouts between game starts. There’re some predefined layouts, however; for example, if you choose Restore Default for Game in File/Button Options, the button layout will map the desktop keyboard cursor keys to the D-pad directions (the default is just moving the active area around the screen estate, which is preferable when just viewing Flash movies), which will work with most games.
Fortunately, this can be really easily helped if you aren’t afraid of modifying the Registry or, at least, importing pre-created registry files. Bryht stores the button mapping information at [HKEY_CURRENT_USER\Software\Bryhtflash\keyMapping]. An example of its content:
[HKEY_CURRENT_USER\Software\Bryhtflash]
"keyMapping"="195=131073;194=131078;193=131077;40=65;38=68;37=87;39=83;"
If you’ve already read my article on Gameboy Advance emulators for the Pocket PC, you already know that the values 37...40 in here stand for the D-pad directions, while the values starting with 193 stand for the non-D-pad hardware buttons. If you’re into any kind of programming, you’ll also easily see (by recognizing the keycodes of some control keys and the ASCII codes of the characters A/D/S/W) that the above configuration stands for D-pad directions assigned to the A/D/S/W keys (the keys the above-mentioned Heli Attack 3 uses to control the main character).
2.3.1.2 Downloads/versions
As far as the available versions are concerned, note that the standard and the Pocket PC 2003 versions are exactly the same - I don’t know why they’re listed as separate downloads.
It should also be pointed out that there were older (2004) builds of version 2.0. The current version of 2.0 has internal filedates of 2005; earlier builds are from year 2004 and have no VGA support. For example, this is the new version on a VGA device, in standard SE mode and this is the old. In this test, I only discuss/review/refer to the latest, currently available version. Make sure you upgrade to it if you still have the old one. The main difference between the two is that the old version has a BryhtFlash.exe of under 500 kbytes and an early-2004 filedate, while the newer version has a 518-kbyte file dated at 03/03/2005.
2.3.2 Pocket Flash Player (PFlashP) v2.0.0
While not sporting advanced setting capabilities like the really useful button mapping of Bryht (the player of my choice), this stand-alone Flash player may still be useful if you don’t want to spend that much money on your player - it’s definitely cheaper than Bryht.
One of its other advantages is that it automatically shifts the Flash animation upwards if you enable the SIP (because you need to enter something on it), unlike Bryht. This means in some cases you won’t be able to use the latter (unless you run it in a non-full screen mode), while PFlashP will remain perfectly usable.
As it is able to display the Flash context menu, it can also use full zooming in, which makes big flash animations that require zooming (for example, the Caliva or the Tanks Flash applications - see URL's and explanations in Chapter 4) in order for the text to be fully readable.
Unfortunately, it also has definite drawbacks, compared to Bryht. One of them is the inability of the player to provide real full screen mode in either Portrait or Landscape - the taskbar will always be visible and it’s only the command bar that will be hidden (along with the SIP icons). The other is that it’s unable to center the animation in the available screen estate - it’ll always be on the left if the animation isn’t able to fill in the entire screen area as can be seen in this screenshot. This can be really distracting. (The author has promised to look into the problem in the meantime.)
Also, if you only have a WM2003 device, PFlashP, unlike Bryht, won’t offer you Landscape capabilities as it entirely relies on the operating system’s orientation change capabilities. This is why the "Landscape" checkbox is inactive in this WM2003 screenshot. This is, of course, a non-issue on WM2003SE+ devices.
It is the only one player that requires Microsoft's free Compact Framework 2 (CF2). CF2, while it, by default, is installed into main memory (no matter what installation target you give it), taking up some 5 Mbytes of precious built-in storage. This, however, can be helped by relocating almost the entire CF2 to a memory card. Please read this article (alternatives AximSite, BrightHand, FirstLoox, MobilitySite, PPCT) for more information on this. Note that if you choose to use the just-released beta of CF2 SP1, you won't need to do any relocation if you instruct the installer to install into an alternative medium.
Note that the author of this app is the well-known author of Tweaks2k2, ctitanic. A big thanks to him for providing me with the full version for testing purposes.
2.3.3 FlashAssist 1.3 by AntMobile
The main advantage of this application is that it’s PPC2k/PPC2k2 compatible (unlike PFlashP and, as far as PPC2k is concerned, Bryth). For WM2003+ users this isn’t an advantage, naturally.
Its main disadvantages are the lack of built-in full-screen Landscape support, which would be highly useful under all pre-WM2003SE operating systems, unlike with the two previously reviewed players. What is more, it doesn’t support the native, built-in operating system-level Landscape mode of WM2003SE+ either - that is, you won’t be able to make use of the available screen estate with a lot of (Landscape) Flash animations.
All in all, I wouldn’t recommend this application - the lack of any kind of (let alone full-screen) Landscape support is too big a problem in most cases.
2.3.4 Macromedia Flash Player for Cassiopeia by myCasio
(Note that the CAB file itself can be downloaded here)
This player is only meant for MIPS-based Cassiopeia devices. There isn’t much in the player: for example, no Landscape support and no keymapping. However, it’s free.
(Thanks goes to akheron at AximSite and torgamm at PocketPCFreeware for pointing me to this player!)
3. Main Feature and Test Results Comparison Chart
This comparison chart contains most comparison and feature information. As a well-written feature/test chart makes it possible to greatly reduce the sheer size of this article (but not its content of information!), most of the information present in here hasn’t been elaborated on / mentioned in the previous sections. This means this chart should be scrutinized thoroughly. Also make sure you follow the screenshot links if you’d like to see actual screenshots demonstrating the (lack of the) given feature.
Please note that, due to the restrictions of the forum engine, I had to put the comparison chart on an external server. It can be found here .
4. Real-world Compatibility and Speed Tests with Several Games, a Movie and a fully-fledged Student App
I’ve tested the reviewed applications with several Flash games, a Flash video and a Flash student application. The latter is available here (main homepage here); to log in, enter the ccdemo/ccisthebest demo login/password pair. (Some demo screenshots of this are here, here and here).
Note that I’ve made these SWF files available here so that you don’t need to fetch them one-by-one in order to be tested if you want to re-run my tests. I’ve, of course, provided URL’s to the original source too.
Please note that, due to the restrictions of the forum engine, I had to put the comparison chart on an external server. It can be found here .
5. Verdict
5.1 If you have a WM2003+ device...
it’s the best to stick to the Macromedia 7 plug-in and a third-party Macromedia-based player on top of it.
If you are seriously into playing Flash animations on your Pocket PC and need real (!) full screen support even in Landscape mode and a centered Flash area (and not one on the left), Bryht 2.0 is the only way to go.
Much as PFlashP 2.0 is considerably cheaper, the lack of the ability of centering the Flash animation on the screen may be distracting. File association support is also lacking. Otherwise, you may want to have a look at it if you, for some reason, don’t like the Bryht player. The lack of built-in Landscape mode won't be a problem in operating systems starting with WM2003SE either; if you have a PDA with a previous OS, you'll want to stick with Bryht and its built-in Landscape mode.
You can also give a try to the free Microsoft player, particularly if Macromedia 6-compliance is sufficient. As it doesn't have built-in Landscape support (but it does support the operating system's Landscape orientation), it's mostly recommended for WM2003SE users. WM5 users may run into compatibility problems because of the Macromedia 6-based engine, though.
FlashAssist 1.3 is definitely not recommended - it’s just useless in system-level Landscape mode. Much as it has real full screen mode in Portrait, WM2003SE+ users wanting to use the Landscape to use the full screen area should avoid it. Again, it’s Bryht 2.0 that only excels in this respect.
The Flash support in NetFront 3.2 is really disappointing: it's only in very few cases that it's better than Macromedia-based solutions. I don't recommend it, particularly if you have a WM5 device - NetFront 3.2 is not compatible with WM5. Hope Version 3.3 will have a better Flash engine.
Finally, Pocket Spark is useless and is incompatible with almost everything (after all, it's based on over six-year-old code).
5.2 If you have a Pocket PC 2002 device...
get the Macromedia 6 plug-in and the Bryht player.
5.3 If you have a slow Pocket PC 2000 MIPS/SH3 device...
it’s the best to forget Flash animations - very-very few animations (for example, the great, highly recommended game Johnny Rocketfingers) will run OK because of the lack of pure computing speed. If you still need to run Flash stuff, get the Macromedia 4/5 plug-in and, if you have a MIPS Cassiopeia device, Macromedia Flash Player for Cassiopeia.
6. Note that...
1. Strictly with WM2003SE (previous / later operating system versions don’t have this problem), you will inevitably run into the Press OK to continue loading the content of this page" message like in this screenshot.
You can’t really help this without using third-party, commercial apps. Please see this article for more info on all this.
2. You can't play Shockwave content with the Flash player. This means the excellent titles at ShockWave.com and generic gamer sites like the above-linked arcadepod.com (which, for example, hosts the Shockwave Player 10.1-based great 3D RPG game, Sherwood MMORPG). Remember this if you can't run a given application/game.
Waouh ! Great guide !
Thanks for this howto !
Thanks to dlangton in the PPCT forums, I’ve been pointed to a not widely known full-screen, offline-capable, MacroMedia 6-based solution from Microsoft initially contained by one of their demo applications.
I’ve accordingly updated the roundup.
Also, there’re some other, minor changes concerning, for example, the full zoom-in of PFlashP.
Seeing as this thread has no replies in about 3 years, is there another thread that has more up-to-date info? I'm looking for the best way to play local (swf) flash files on my T-Mobile HTC Touch Pro 2. Please let me know if Bryht is still the way to go (and where the latest version can be found, as bryht.com seems to be down), or if there is a newer and/or better alternative. Thanx in advance, everyone!
"Beta Macromedia Flash" from Microsoft no longer available...
I have been looking for a smoother way to play my FlashGadgets for testing purposes, as they do not play smoothly some times on my pocket pc, and I wanted to test this program. If anyone has this program in CAB form, or as a standalone EXE, please post it, I wish to see if there is any big difference in using it for playback instead of BryhtFlash 2.0.
Regards,
Macromedia Flash Player Beta???
Where to get this software? I know that software is dead but if anyone have this software could I get link?
Thanks!

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 (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)
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.)
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!
UPDATE (03/09/2008): Sun to develop MIDlet manager for Apple's iPhone?
NOTE: this isn't strictly a Windows Mobile news item (albeit it also contains Windows Mobile references; see for example the Sun MIDlet Manager on some new HP’s). However, now that I've spoken to the Sun reps at MWC (I'm a Java guru and have also worked for Sun as a lecturer for their Java programming courses) and also spotted their own MIDlet manager on the HP iPAQ 610 series, I found it necessary to report on this.
Finnish mag Tietokone has just reported on Sun's wanting to develop a JVM for iPhone so that it can run the vast number of MIDlets out there (including, for example, Opera Mini and thousands of games, some of them - like Simcity Societies - of very high quality).
Interestingly, Steve Jobs (of Apple), who still haven't commented on Sun's announcement, earlier stated in NYT "noone uses Java any more". Sour grapes? (It was, so far, impossible to run third-party apps on iPhone - except for some, just-released titles like CorePlayer.) I pretty much think he quickly changes his opinion - after all, a decent MIDlet Manager would be more than welcome on iPhone, which still lacks third-party apps / games.
It's nice to see Sun indeed plans to port their stuff to iPhone. While their Windows Mobile implementation, according to some Opera Mini users, has a lot to be desired (I haven't personally checked the validity of their claims so I may be entirely wrong), I really hope Sun starts to take mobile platforms more seriously.
UPDATE (03/13/2008): New MIDlet manager in development: PhoneME; Jbed for WM2003(SE) released!
There are two pieces of news for everyone interested in running Java MIDlets. The first will be having a pre-WM5 device and wanting to run Java MIDlets (for example, Opera Mini) on it. Yes, at last, some Russian hackers made Jbed, the industry-leading MIDlet manager work under WM2003(SE)! The second (and, for most people, not that important) piece of news concerns a brand new MIDlet manager port for Windows Mobile.
1. Some Russian hackers, including the 4pda.ru folks, have, at last, managed to make Jbed, the best MIDlet manager, work under WM2003 and WM2003SE. The importance of this just can’t be stressed enough: so far, you only had the really inferior IBM J9 and the 10-series TAO MIDlet Manager to run MIDlets on pre-WM5 operating systems. Now, this has dramatically changed. Now, nothing will stop you from using Opera Mini on your pre-WM5 Pocket PC.
The direct link to these WM2003(SE) MIDlet Managers are as follows. There are three versions: a modded one, a non-3D one and a 3D one; all with a heap size fix.
JBed3dMod_HeapSizeFix
Esmertec Jbed heapfix
Esmertec Jbed3d heapfix
They have also made a MAJOR update to their 4PDA.ru MIDlet article, linking to all the contemporary Esmertec, TAO etc. versions (including ones with heap fixes, with and without 3D support etc.); the above links can also be found in their article. You can see the translation of the new page HERE (Google) and HERE (Babelfish). Note that I’ve kept the original page HERE (Google) and HERE for historical reasons for people interested in the pre-Esmertec times.
2. Now, the other piece of news, which, again, won’t be of that much interest to non-WM2003 / non-Java hackers.
Java is a really viable programming platform. Not only several high-quality games make it worthwhile, but also probably the best and, if you’re lucky enough with your geographical location, fastest and most bandwidth usage-friendly mobile browser available for mobile phones (including Windows Mobile), Opera Mini 4.
I’ve already devoted an entire all-in-one Bible to running Java on Windows Mobile (and Symbian). Now, let me introduce the latest Windows Mobile KVM: PhoneME.
PhoneME is another "let’s bring Java to various platforms” projects (official homepage HERE), which has recently received Windows Mobile support.
The main homepage of the Windows Mobile port is HERE (do NOT get the ones at the official download page of the project - they’re outdated!) Should you want to download the MIDlet manager, get the file starting with "phoneME Feature – MIDP” from the download page.
Get the CAB file; install it. (I assume you install it in the main storage of your handset; my MIDlet manager main lnk file and registry import file will be tailored for this install location.) After this, you’ll need to associate JAR files with the app; to do this, you’ll need THIS file (import it into the Registry!). You might also want to invoke the MIDlet manager directly; for this, you’ll need THIS file.
Unfortunately, currently, the MIDlet manager is pretty much useless; for example, it seems to be impossible to deploy Opera Mini 4 under the current (8525) MIDlet manager version:
(Interestingly, the 4PDA.ru folks reported they managed to deploy an older version of OM; however, they didn’t particularly like the way it ran. That is, they also state the current version has a lot to be desired.)
All in all, you will NOT want to check it out in its present form. I’ll try to let you know when a considerably better, more advanced version is released.
Still speaking of the project, the Personal version (not to be mistaken for the MIDP MIDlet manager!) seems to run standalone (Personal profile) apps OK (it does NOT have an Internet Explorer Mobile applet plug-in, though). An example of running the Hello World application available on the homepage as a separate download:
(Should you want to give it a try, assuming you installed the MIDlet manager in the built-in storage of your handset, use an invocation .lnk file with the following contents:
254#"\phoneme\personal\bin\cvm.exe" -cp "\phoneme\hello" Hello
Also make sure you unZIP the contents of the archive to \phoneme\hello.)
That is, if you’re into running Personal Profile applications (and not MIDlets), you might want to give it a more thorough try.
(Thanks to my blog reader thevery for drawing my attention to the project!)
Additional info
A related forums.java.net discussion (not very interesting for anyone not interested in recompiling the sources)
4PDA.ru’s related discussion (translated) HERE (Google) and HERE (Babelfish).
UPDATE (03/14/2008):
a. unfortunately, the WM2003(SE) Jbed version has turned out to be only compatible with Pocket PC Phone Edition devices, NOT plain (phone-less) Pocket PC’s. There still aren’t WM2003(SE)-compliant SMS.dll and phone.dll files. These two files are needed on WM5+ standard (“classic”) Pocket PC’s to make Esmertec’s products / Jblend work. While the “hacked” DLL’s are compatible with WM5+, they aren’t with previous operating systems. That is, you’ll need to wait for a WM2003(SE)-compliant set of “hacked” DLL’s to be released.
Also note that there are some WM2003SE Phone Edition models that seem to be completely incompatible with; most importantly, the Qtek 2020i.
Also note that some? all? of the (again, currently, only WM2003(SE) Phone Edition-compliant – do NOT bother if you only have a phone-less PDA!) contain wired-in paths. For example, the one linked to from THIS page (see daemonpnz’s post at 10.02.08 10:22:56) must be extracted to “\Storage Card\jbed0524\”. Should you want to put it somewhere else (because, for example, your PPC PE device is a non-English one), you’ll need to hexedit Jbed.exe inside the RAR file and change the two occurrences of the above path to your liking. An example showing changing the space character to a B in "Storage Card".
(Incidentally, the reason for this was the following: I’ve tested it on my HP iPAQ 2210, which is a dual-slot machine, using the card names SD Card and CF Card. As you aren’t allowed to create a directory named “Storage Card” in the root of the file system, I had to hexedit the file so that it uses another name. “StorageBCard” can already be created. Note that, as the HP iPAQ 2210 is a no-phone device, this didn’t help much as it still refuses to run. Again, because of the still-missing, WM2003(SE)-compliant SMS.dll and phone.dll files.)
I let you know when Jbed becomes compatible with non-phone pre-WM5 devices.
b. I’ve also tested some of the versions linked from the 4PDA.ru thread on my HTC Vox (s710) to find out whether they’re any good compared to the old MIDlet managers; particularly Cloudyfa’s version - the version that, so far, I’ve recommended to all MIDlet users (unless in need for M3G (3D) support.). These two are both “fixed heap” versions; some of the less simple games (for example, DoomRPG) and benchmark apps with large memory requirements are stated to run much better / more reliably in the fixed heap versions than in the regular ones (for example, that of Cloudyfa) because of the much bigger available memory. I haven’t tested the effects of this myself.
1. JBed3dMod_HeapSizeFix (that is, 3D-capable Jbed version, based on 20070524.2.1, with fixed heap)
I was really interested in how this (and an additional, hacked file available for download HERE - just overwrite JBed.exe of the original, already-installed version with JBed3d_SreenFix.exe after renaming) worked because, at 4PDA.ru, there’s a version that promises flawless, screen problem-free functionality on MS Smartphones also compatible with the excellent Gmail client MIDlet.
(Also see THIS (original HERE) for more info; see freesunny's post at 10.01.08 10:56:06.)
So far, it seemed impossible to make the latter (the Gmail MIDlet) flawlessly work on MS Smartphones under any version of Jbed. An example of the display problems the non-hacked version (or any Jbed version) can be seen in the following screenshot:
Unfortunately, the hacked version (after overwriting the EXE file with the separately downloaded JBed3d_SreenFix.exe) doesn’t really work with Gmail: while indeed the entire screen estate is used, the three lowermost menu items (Search, Compose New, Exit) aren’t visible, just like with the non-hacked case:
Note that essentially the same results from the 4pda.ru folks can be HERE. The same problem also exists in Portrait mode, not only in Landscape.
All in all, while it’s certainly a step in the right direction, you will still have problems with (at least) the Gmail MIDlet. If you absolutely hate the missing display area in the MIDlet listing on MS Smartphones with the old Jbed versions, you might want to consider upgrading, though.
2. I’ve tested JBedModHeapFix (02.01.08) too – a somewhat extended and fixed Jbed version. While it does have certain advantages over Clodyfa’s version, it entirely lacks music support and is based on the 20070802.2.1 version – that is, the same “old” version as that of Clodyfa and not anything newer. I don’t really recommend it if you need sounds / music, which is excellent in the Cloudyfa version – again, unlike any other (earlier!) versions I’ve tested, including earlier Jeodek versions like the 20070425.1.1 version coming in the original (and just-updated) firmware of the HTC Vox / s710 and having very bad and distorted sound.
Note that the Jbed version lacks the the English jbed.exe.0409.mui file – it only has the Russian localization, that is, jbed.exe.0419.mui. This means, unless you copy the (standard) jbed.exe.0409.mui file from, say, the Cloudyfa version to the new one, it’ll have messed-up, invisible menus.
I’ve also tested whether these two versions, finally, fix the two biggest problems with the Cloudyfa version:
it’s not possible to install Cloudyfa’s version on the storage card: with the new Jbed version, it’s possible – without any manual hacking. In this regard, it’s much more recommended than Cloudyfa’s. (Haven’t tested the Jbed3D version in this regard.). That is, you can safely direct the CAB installers to install the managers onto a card: they WILL be installed there, not taking up any built-in storage.
with Cloudyfa’s version, it’s not possible to start MIDlets from inside the Jbed interface if you use a localization using not strictly Western characters:
Fortunately, both the non-3D and the 3D versions available at 4PDA.ru are compatible with non-Western regional settings, unlike Cloudyfa’s version.
(Note that, in the original Cloudyfa version, you can still execute MIDlets via a direct invocation link file if you have an otherwise incompatible regional setting, circumventing the standard interface listing all your MIDlets. This, however, needs some additional tinkering and, again, you won’t be able to select the MIDlet you’d like to run from the built-in list of the MIDlet manager. Also note that I’m speaking of the generic Regional settings, NOT the language of MS Smartphones (you can easily change the entire interface language of MS Smartphone devices.). Your MS Smartphone language may be, say, East-European; if you still use some non-Eastern regional setting, the apps started from inside Cloudyfa’s version will still run and you won’t need to use direct invocation link files.)
Also note that neither of these versions have any sound emulation. This, again, isn’t a change from the previous 3D (M3G)-compliant version but can be VERY bad news for plain non-M3G-compliant Jbed users, as, again, the Cloudyfa version has excellent music / sound emulation. That is, stick to the latter if you need music.
UPDATE (some 5 hours later): I’ve also tested the latest Jbed version, JRebeiro_EsmertecJbed_20071119.3.1. I’ve already mentioned it HERE but, then, I didn’t have the time to thoroughly test it.
The bad
- not possible to install it to a storage card by default
- display problems on MS Smartphones (as with all the other Esmertec Jbed versions – except for the M3G-specific, hacked 4pda.ru version). Note that, again, this doesn’t have any effect on how Opera Mini 4 or games work; only the main MIDlet manager MIDlet lists and, for example, the Gmail MIDlet are affected
The good
- the latest version; reported to be very fast
- M3G compliant
- has sound (as with Cloudyfa’s version)!!
All in all, highly recommended for gamers.
It’s available HERE (mirrored HERE so that you don’t need to search / register).
Also see THIS German language Pocket Players Reloaded article on the games it’s compatible with.
UPDATE (04/05/2008):
In the meantime, I’ve tested two versions of the latest, 3.1 version of Jbed and found out the following (starting with, currently, the latest and, unless you MUST install it on your storage card without any manual hacking, most recommended version):
1. Jbed Java 3.1 20080222 (available HERE; mirrored HERE for your convenience): this version runs flawlessly under WM5 (not only WM6 – note that some older versions of 3.1 are NOT WM5-compliant). It supports 3D (tested with Need for speed carbon and Night Fever; neither of them run under the non-3D-capable Cloudyfa 2.1), (as usual, excellent) sound. It can’t be directly installed onto a storage card, however. (As with some older versions, it’s possible it can be hacked there, though, with some manual file copying and registry / start menu link rewriting – I haven’t tested this.)
2. I’ve also thoroughly tested JBed_20071119.3.1_3dMod_HeapSizeFix_v2_wm6(lovetz1) linked from THIS MoDaCo thread. As a plus, it can be directly installed on a storage card, as opposed to the version above. It, however, doesn’t support sound at all. Otherwise, it seems it’s pretty much the same as the version above – except for WM5-compliance: I haven’t tested the WM5-compliant subversion. Again, I’d stick with the 20080222 (the first) version unless you really need every single byte in your built-in storage.
3. Note that neither version was able to run the s60v3 (Nokia) version of Command & Conquer 3: Tiberium Wars, the latest-and-greatest real-time strategy from EA Mobile – upon loading the mission (and displaying the progress bar), it just locks up. (Needless to say, it’s working flawlessly on the Nokia N95 v20). It seems no Jbed version is compatible with this excellent game – I’ve tested with several. This means the extended, “hacked” heap didn’t help with particular game. It might help with others, though.
4. Also note that the first beta of Opera Mini 4.1 has been released in the meantime. It simply ROCKS and is a must. See THIS for a complete review & tutorial.
hey Menneisyys.
i am running Command & Conquer 3: Tiberium Wars ,perfectly on asus p525 with JBED build 20070524.2.1 .
by the way i found a bug on asus p525 in all jbed versions over 20070524.2.1 and its just you can play games with joystick not the keypad (keypad if i press 6 to go right ,it will go right and stick to the right like its stuck,i cant move anymore till i exit the game) .
i have tested all 3d java emulator you mentioned on the bible and some that you didnt .
i have 4 java vjm installed together on my device , 3 jbeds :
1. is the latest build Jbed Java 3.1 20080222
2.JBed_20071119.3.1_3dMod_HeapSizeFix_v2_wm6(lovetz1 )
3.JBED build 20070524.2.1
4.jblend 20070413 a
every java game i try on 4 of them .
UPDATE (04/11/2008): XDA-Devs forum member Ebenezer has released a version of Jbed 20080222 3.1 that can be directly installed to a storage card. It also supports sound and M3G (3D). Make sure you switch to this version if you prefer keeping your MIDlet manager and deployed MIDlets on your storage card. I've also got rid of the old, 2.1 Cloudyfa version (along with all the previously-mirrored and, now, outdated Jbed versions - this is why the old mirror links will no longer live) and made the new version of Jbed available HERE for direct download.

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!

Miscellaneous hardware & software news & hacks & tips; future plans

1. Hardware
a. HTC is going to introduce some new devices in early May – at last! While I certainly consider HTC’s models boring, unimaginative and far from multimedia- and gaming-friendly, I really hope they will, at last, come up with something more appealing for the generic users. I recommend THIS thread for more info; particularly my post posted at 04/10 15:36 CET, where I explain why I don’t consider HTC’s current lineup imaginative or even interesting and what functionalities I find the most lacking.
HowardForum's related thread is also worth checking out for other rumors / guesses. Hopefully, one of the forum members who has contacts at HTC and has always provided us with some rumors will fill us in with some insider info again
b. at CTIA Wireless 2008, there have been several new devices at Microsoft’s booth, all with the new, just (at CTIA) announced 6.1 version of Windows Mobile:
Amoi 6711: a simple Smartphone with GPS:
{
"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"
}
A newcomer to Windows Mobile, Velocity, has announced two new models:
Velocity 103: a VGA Pocket PC model
Velocity 111: a QVGA Landscape Pocket PC model
Both Velocity models come with 128M RAM / 256M ROM, GPS and HSDPA. They have no goodies like 3D hardware acceleration, FM radio or TV receiver. HowardForums has a VERY long and interesting thread on these devices.
There also was a working (at MWC, it still didn’t work) prototype of the E-Ten (now: Samsung) V900, one of the most interesting VGA handsets because of its digital TV receiving capabilities. (I only wish it had a slightly bigger screen – it’s suffering from the same problem as i-mate’s new phones.)
(See for example THIS for more info & shots.)
c. AximSite has allowed discussing the (cooked) WM6 upgrade for the Axim x50/x51 series. This is certainly very good news and may also mean I also seriously rethink my not discussing these questions at all to be on the safe side. After all, it’s time to install (and, probably, report on) the latest WM6 upgrade on my HP iPAQ hx4700, which is still probably the best bed-time e-book reader.
For example, the cooked version of Windows Mobile 6.1 has just been released for the Dell Axim x51v, sporting a lot of niceties. See the related thread HERE and HERE for the WinMo Professional / Classic versions, respectively. (Yes, the former is a PPC Phone Edition version so that you can run by default PPC PE-only software like Esmertec Jbed without additional hacking - that is, copying the "placeholder" SMS.dll and phone.dll files to \Windows, as is explained in the MIDlet Bible.) I'll soon test and report on it.
You can only hope that the current (!) HP iPAQ lineup also receives cooked 6.1 (and, in the future, later) OS ROM versions - HP has just announced they won't release any WM6.1 updates for their current devices. I don't want to comment on HP's decision because I don't want them to make angry with me - you surely know what I think . Currently, there're no HP 6.1 ROM cooking-related threads at the, say, iPAQ 210 forums of BrightHand or AximSite. THIS and THIS threads may be of interest.
d. There is a brand new article on the S-E Xperia X1 HERE.
e. i-mate's new models, the 8502 and the 9502 (see my review & remarks HERE) have started shipping and are available in Europe as well (through Clove). The related HoFo thread, packed with shots of the new models (on, for example, page 15), is worth checking out, along with a brand new review of the 8502 HERE. The reviewer, generally, likes it very much, except for the lack of microSDHC support. The latter is quite a letdown if it can't be fixed...
2. Software
a. CorePlayer 1.2.2 has been released for Windows Mobile; see THIS for more info (and also my multimedia-related articles / Bibles). (For Symbian, after the already-released 1.2.0, 1.2.1 is promised in the near future)
b. Adisasta WinMobile Download Accelerator updated has been updated to version 2.0. It seems to be FAR better than the version reviewed in The definitive guide to downloading files, images and saving Web pages with Pocket PC-based Web Browsers. I’ll review it some time, along with a comparison to the best downloader tool until now, HandyGet.
c. there has been a real plethora of new MIDlet Manager & Opera Mini-related releases I haven’t posted a separate article on. I’ve reported them at the bottom of my Opera Mini 4.1 review and the system-level invocation article. Note that the devs of the two new scripts are constantly releasing new patches in THIS thread. Note that these new posts are in no way Opera Mini 4.1-related; for example, I've elaborated on the latest 3.1 Jbed versions in the MIDlet Bible. The last post explains where to get the latest Jbed 3.1, which sports all the necessary goodies in ONE app: it can be installed on a storage card (with REALLY minimal manual hacking), supports sound and M3G (truly 3D games) and is VERY fast.
d. SmartGear, one of the best handheld / desktop console emulators for WinMo, has been constantly evolving. Currently, it’s at version 1.0.4. It’ll soon (in some weeks) receive SNES support, written in assembly (!!!). I really hope Larry comes out with a SNES emulator that will be WAY better than anything else on the platform.
e. You may already know WMWifiRouter (of, for example, you've read the article Another long-awaited breakthrough: dial-up Internet Sharing over Wi-Fi!), an excellent tool making it possible to share the dial-up (cellular) connection of a Windows Mobile handset via Wi-Fi. Now, there's an even more advanced, even cooler (and, currently, free; WMWifiRouter has gone commercial in the meantime) application with far more wide-reaching capabilities, ICS (Internet Connection Sharing) Control.
It's available in THIS thread and, in addition to sharing traditional dial-up connections, it's able to share even Wi-Fi or BT connections via any kind of a client connection. This means you can use your Windows Mobile handheld as, say, a Wi-Fi card for your non-Wi-Fi-capable notebook (via USB or BT PAN). I've always been receiving questions about using a Wi-Fi enabled WinMo device as a Wi-Fi card for notebooks; now, this has become a reality.
(Note that, for Symbian, a somewhat similar, albeit more restricted app, WalkingHotSpot, has just been announced / demoed at CTIA Wireless 2008; it's, currently, only available for mobile network operators. The developers stated they may release it for the public as well.)
f. Version 6.1 of I'm InTouch, a decent remote desktop controller (see related Bible HERE) app, has just been released. The major new feature for version 6.1 is audio support, allowing users to stream audio from their computer with I'm InTouch installed to another desktop or laptop computer. Currently this feature is not supported for Pocket PC's but the plan is to include it in a future release. The other main upgrade for this version does apply to Pocket PC's, multi-monitor support. You can now attach as many monitors as you want to your host computer and view them all from another computer or Pocket PC. The user has the choice of viewing all their desktops simultaneously or choosing to view them one at a time.
g.VITO Technology has just released EyePhoto (current version: 1.0). I'll compare it to the other "big names" in the category (Pocket Artist, Resco Image Viewer, Spb Imageer, XnView and PQV) when I have the time (for review links of the latter, see THIS).
h. While Microsoft hasn't delivered the rumoured, brand new and, as opposed to the earlier (and current) Internet Explorer Mobile (aka Pocket Internet Explorer, PIE) versions, fully-fledged Web browser (including built-in H.264, Flash and Silverlight support), they have added zooming capabilities to the one in Windows Mobile 6.1. See for example THIS for more info & links.
i. In THIS article, I've reviewed RDM+, which, currently, I consider the cheapest remote desktop controller application if you only have one handheld and definitely need file transfer capabilities. (The otherwise most recommended and free LogMeIn Free doesn't have the latter and other commercial apps all have a $50+ yearly (!) subscription fee, while, technically [for example, data usage-wise], they may be much worse than RDM+.) RDM+, in the meantime (at the time of writing the article, I wasn't aware of this), has turned out to have a desktop PC client (just like LogMeIn and all the other clients) readily accessible HERE (for free!), which makes it even more appealing and cost-effective. Now, I only wish it had remote Outlook database access features like I'm InTouch or sound / copy/paste / clipboard synchronization capabilties like Microsoft's own RDP client.
j. Particularly if you've ever used a WM5/WM6-upgraded Dell Axim x50 or HP iPAQ hx-series device, you already know how useful ramdisks can be (see my old article HERE). There is a brand new version by Russian hacker AMV007, which is signed and has an option to load with drivers before any application. It also has improved memory management using the VirtualAlloc memory function to avoid using scarce driver/kernel memory. Additionally, it has an option to periodically and automatically save the ramdisk contents to a file, which will then be read from after a soft reset, thereby restoring the contents of the ramdisk. All in all, it's really great! The thread of the new version is HERE.
k. There have been several new Windows Mobile game releases; in my opinion, however, none of them is worth devoting a self-standing review to. See the frontpage of PocketGamer.org or, if you speak German, PocketPlayers Reloaded for more info.
Note that the latter features an article on making Toy Golf (an EXCELLENT minigolf simulation; see review HERE) run on any Pocket PC, which, by default, is only compatible with the Intel 2700G-based, 3D hardware accelerated Dell Axim x50v / x51v. The article states all you need to do is copying libGLES_CM.dll (available for download HERE; it's originally from 3D Benchmark (GLBenchmarkCM.rar) available HERE) \Windows and voila - it runs. (Note that it's in \Windows that you must copy the DLL file to, NOT the home directory of Toy Golf; otherwise, you'll get an "Unable to load texture" error message during loading.) I've tested it on my WM6 VGA HTC Universal and WM6 QVGA HTC Wizard and found it pretty much useless. On the latter, it was completely unplayable because it only shows the upper left quarter of the landscape screen (the game has originally been designed for the VGA x51v); on the former, it worked, albeit a bit slow. Unfortunately, it had orientation problems on both Pocket PC's: it displayed the, by default, Landscape game in Portrait, effectively hiding the leftmost / rightmost part of the screen. In the above-linked article, Damien has presented some QVGA Landscape screenshots running the (hacked) game on his (QVGA) Blue Angel (XDA III, MDA III, Qtek 9090, PDA2K). He didn't explicitly mention whether he started toygolf_qvga.exe or toygolf.exe - more on this later.
If you (also) find the hack not working on your particular model / Toy Golf version, what I recommend is the following. Installing the game (with either the desktop-based installer or executing the CAB file directly on your handset) will install two files onto your handset, no matter whether you have a QVGA or a VGA device:
07/14/2005 08:02 PM 10,848,290 minigolf_dell.cfl
07/15/2005 09:25 PM 1,036,288 toygolf.exe
You will need to extract and rename two additional files from the CAB install file, MINIGO~1.001 and TOYGOL~1.002. Rename them to minigolf_dell_qvga.cfl and toygolf_qvga.exe respectively:
07/14/2005 10:50 PM 9,561,409 minigolf_dell_qvga.cfl
07/15/2005 09:19 PM 1,339,904 toygolf_qvga.exe
Copy these two files to the same directory on your handset where the two other files (minigolf_dell.cfl and toygolf.exe) already reside and start toygolf_qvga.exe regardless of whether you have a QVGA or a VGA device (toygolf.exe is strictly meant for 2700G-enabled devices, it seems). It will NOT need libGLES_CM.dll to run and will be very fast. The only problem will be the logos' and some of the dialogs being too big and (partly) invisible; however, all the in-game controls will be visible.
Also see THIS Russian language thread for more info (Google "translation" HERE).
(This all applies to version 1.10 coming on the x51v CD; the CAB inner filedates are 07/15/2005.)
l. Windows Live for Windows Mobile has officially been released and is available HERE. Unfortunately, it painfully lacks Live Messenger - currently, if you need to install it (and don't want to go for an alternative like IM+, imov Messenger, fring or Agile Messenger), you'll need to look around on, say, XDA-Devs for the installable CAB file. I better not provide you with a URL, just to be on the safe side (hope you understand.) See for example THIS thread for more info on the new release.
(Note that there have been some other releases / apps; I just haven’t had the time to test / review them all.)
3. The Competition
a. Nokia’s latest announcement of the Nokia Tube is REALLY interesting. If you can put up with the typically Finnish pronunciation of English, the keynote speech and Q&A session are well worth checking out. A full video is HERE, a shorter excerpt showing the touchscreen in action is HERE. While there aren’t much to report on as yet (no fancy 3D demos like those of NVIDIA at MWC - see the YouTube links at the end of the NVIDIA section HERE), the advancement in the last two months, for example, the sheer existence of a reference hardware design is certainly promising and surely shows Nokia is taking adding touchscreen support seriously. (At MWC, in mid-February, the Nokia folks didn’t have any of them – their S60 Touch demo was run on touchscreen-enabled notebooks.) I really hope they will come out with something REALLY cool – after all, their N95 (and, to a somewhat lesser degree, the N82) is already one of the best phones out there – and simply unbeatable when it comes to multimedia, gaming and built-in camera.
Software-wise, the Next-Gen N-Gage platform has, finally, been opened for the more traditional, high-end models like the N95 and N82. Several titles have been announced; head over to All About N-Gage for more info.
b. RIM (BlackBerry)’s generic CTIA booth sneak peak is HERE - not much of interest in this video. However, unlike with MWC, there are a lot of developments to report on.
First, version 4.5 of the OS, with its brand new looks and goodies like HTML mail and A2DP support, is getting closer. See THIS for more info.
Second, pictures and videos of the long-awaited BB 9000 have also surfaced; unfortunately, it won’t have a touchscreen, unlike what has been generally thought.
There are some other announcements as well; for example, a Slingplayer client in late 2008 (up to now, only available for Windows Mobile and Symbian) and an XM Radio client (natively supported, with third-party clients and a Web interface, by Windows Mobile and, via transcoding, on Symbian – see THIS for more info): 1 2).
4. What can you expect from me? Plans for the future
Yes, I know I've been pretty quiet lately. There are several reasons for this:
I've been working in real life too (I need to do some work to make both ends meet because, as you may already know, I only write for fun and, except for some gifts like free hardware, mostly from Hal Goldstein, I don't get any money for it)
I've been getting ready for my 45-minute W3C speech on multiplatform (WinMo, Symbian, BlackBerry) Web browsers. I'll soon release the English-language PowerPoint slides.
As you may already know, I've been working very hard on my Digital TV Bible explaining what WikiPedia or even commercial books targeted at non-Electric Engineers fail to explain. This involved reading several books and many recommendations / white papers. This also means I'll post some self-standing book review articles reviewing, for example, Amitabh Kumar’s Mobile TV: DVB-H, DMB, 3G Systems and Rich Media Applications, K. F. Ibrahim’s Newnes Guide to Television and Video Technology, Fourth Edition: The Guide for the Digital Age - from HDTV, DVD and flat-screen technologies to Multimedia Broadcasting, Mobile TV and Blu Ray and several other books on wireless technologies. Not only on digital TV broadcasting / unicasting, but also on CDMA (most University textbooks out there painfully fail at explaining how CDMA really works - I know this because, back in the university time, the textbooks we've used failed at this too) and WiMAX. I'm absolutely sure you'll find it VERY useful and enlightening!

Categories

Resources