| Manager / device: | Nokia N95 ROM version v11.0.026 | Esmertec Jeodek 20070115.1.1 (the one coming with the HTC Vox / s710 pre-installed) | Esmertec Jbed 20070622.2.1 (Schap) / 20070802.2.1 (Cloudyfa) | IBM J9 6.1.1 | TAO Intent 11.1.7.1036 | Aplix JBlend v3.2.8 20061016c (and JblendFullScreen (JBFS)) |
| Price / availability | OEM; Symbian S60 v3 FP1; NOT for Windows Mobile! | OEM; "hacked" dFine1107 version can be separately downloaded HERE (mirrored HERE). Note that there are some other (for example, jasjamming) versions at XDA-Dev HERE and HERE. These are NOT recommended if you plan to keep a lot of MIDlets on your handheld because they can't be installed on a storage card and keep their deployed MIDlets in the main storage, unlike the dFine1107 version. Note that there’s another, M3G-capable, a bit older version out there; you’ll want to prefer it to run M3G-based games. | OEM; "hacked" version can be separately downloaded (mirror HERE). Schap’s version is timebombed (you’ll need to set back the clock to pre-September, 2007 dates before starting it; note that you can set back the clock immediately after starting it to the current date so that, for example, Opera Mini 4, which doesn't start on devices set back to an old clock, also starts) but, in some cases (when the cookie storage problems become annoying with Jbed with the newer version), you’ll want to prefer it to Cloudyfa’s, non-timebombed version. Availability-wise, Handango also has some Jbed distros (THIS being the most related), but they’re all outdated and it’s still not known whether Esmertec plans to update them, or has entirely gone OEM-only. | $25 at Handango (QVGA, VGA) (used to be $5.99); no trial at Handango, only at IBM. The latter, unfortunately, requires registration, on top of which you’ll need a review process if you live outside of the States because of the export laws – all in all, getting the trial is a real pain in the back. (I haven’t been contacted back at all – IBM might have messed this up ROYALLY, their old approach (instant trial download at both Handango and their homepage) was far better). As IBM J9, as opposed to all the other KVM's, is available for purchase (but, again, it seems non-Americans can't download a trial), I don't provide download links to unofficial distributions. | OEM; "hacked" version can be separately downloaded. Note that, it seems, the latest (1036) version can only be installed on WM6 PPC (PE?)'s, not on even (official) WM5 AKU 3.3 ones like the HTC Wizard with the AKU3.3 T-Mo update. (The same TAO installs OK on a Wizard with mfrazzz’s XDA Mobile 6 Release 3 - that is, a WM6 ROM.) Therefore, if you have a WM5 device, you MUST get Risidoro's 1034 instead. The two CAB files are also mirrored HERE. See the WM2003 / Smartphone compatibility section for non-WM5 & non-PPC downloads. | OEM; "hacked" (mirror HERE). JBFS (mirror HERE), as opposed to the recommended Jblend, is pretty old and VERY restricted (no Network access); its only advantage is the support for real full screen which may prove to be useful with some, strictly QVGA games. Unfortunately, the developer doesn't want to release it as a purchasable, non-OEM product. |
| Platform compatibility: non-phone PPC | n/a (Symbian only) | - by default; if you copy "Phone.dll" from THIS (also mirrored HERE) to the home directory of Jeodek, it'll run. WM5+ | See with Jeodek (here, the home directory being \Windows, unless you relocate the KVM by hand, which is HIGHLY recommended); now, however, you'll need to transfer Sms.dll too. | WM2003+ | - by default; the sms / phone.dll hack (see Esmertec) works just great. Historically, there has also been another (but, now, not recommended any more) hack: with the elate.dll hack applicable to all 11-series versions. It's already in the 1023 version; with later versions (for example, 1034 or, if you can install it, 1036) you must get the elate.dll hack and overwrite the original, installed elate.dll with the one in the \elate_tao_11171023\ elate_NO_SMS_by_ZuRiUs\ directory in the ZIP file) | - by default; however, with the hacked phone and SMS DLL's (see the Esmertec columns), it works just great |
| PPC PE? | n/a (Symbian only) | WM5+ | WM5+ (tested on both the Universal and the Wizard). Note that it exits at once after trying to launch any of the deployed MIDlets with some locales like Slovak (but not with English; I've also tested this with Estonian and Finnish; both worked). That is, if it's unable to execute MIDlets, just play with the system locale - for example, set it to English (any English sub-locale will do). This also applies to the SP version. | WM2003+ (even the latest, 6.1.1 is compatible with these "old" OS'es, despite what the official homepage states) | +; there are some older versions compatible with WM2003(SE) too HERE (mirror HERE) | WM5+ |
| SP? | n/a (Symbian only) | WM5+. The M3G-enabled version, in addition to the taskbar at the top, puts a useless command bar at the bottom on the SP platform (unlike on PPC). This severely reduces the available screen estate. HERE is a possible solution; note that it didn’t work with my Smartphones. | WM5+ (tested on Vox); on the Vox, the bottom-most 20-30 pixels are hidden with some (but not all!) midlets; this also means hiding active content (for example, menus) as can be seen in THIS (Portrait) and THIS (LS). The case is the same on the Moto Q with the Intent TAO v10.1.7.561 - see THIS. Fortunately, several games and Opera Mini aren't affected by this bug. | SP2003+ (separate SP version). You will need to get THIS file if you want to install TAO Intent (v10.1.7.561) on your WM5+ Smartphone. Should you need a WM2003 one, get THIS (v10.1.0.14) instead. | Only the older, less capable 10.x series is compatible with the SP. HERE is the SP2003 and HERE is the WM5 version (mirrored HERE) | WM5+ |
| Generic compliance with standards: CLDC | | ME Configuration | CLDC-1.1 | | ME Profiles | MIDP-2.0 | | CLDC Version | 1.1 | | Platform | NokiaN95/12.0.013; NokiaN95/10.0.005; NokiaN95/11.0.026; NokiaN95/12.0.014; NokiaN95/1.43.049; NokiaN95/10.0.018; NokiaN95/10.0.004; NokiaN95/10.0.015; NokiaN95-3/10.2.006; NokiaN95/10.0.010; NokiaN95/12.0.010; NokiaN95/10.2.001; NokiaN95/10.0.002; NokiaN95/10.0.014; NokiaN95/SPP 31.31 20 BL; NokiaN95/11.0.025 | | ME Encoding | ISO-8859-1 |
| 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
| MIDP | | MIDP Version | 2.0 | | MSA version | No | | ME Comports | USB0,USB1,COM0,IR0, BT0,BT1,..,BT63; USB0,COM0,IR0, BT0,BT1,…,BT63; USB0, COM0, IR0, BT0,BT1,…,BT63; COM0,IR0,USB0, BT0,BT1,…,BT63 | | ME Locale | pl-PL; et-EE; sr-YU; en-US; zh-HK; en; cs-CZ; ro-RO; sv; de; lv-LV; es-ES; it; lt-LT; zh-CN; pt-PT; he-IL; no-NO; ru-RU; nl-NL; fi-FI; sl-SI; fr |
| 2.0 | 2.0 | 2.0 | 2.0 | 2.0 |
| JVM Multimedia (JSR 135) | | MMAPI Version | 1.1 | | MMAPI Mixing | true | | MMAPI Audio-capture | true | | MMAPI Video-capture | true; false | | MMAPI Recording | true | | MMAPI Audio Encodings | None; encoding= audio/amr encoding= audio/basic encoding= audio/x-au encoding= audio/au encoding= audio/x-basic encoding= audio/wav encoding= audio/x-wav encoding= pcm encoding= ulaw encoding= gsm | | MMAPI Video Encodings | encoding= video/3gpp2 encoding= video/mp4 encoding= video/3gpp; None | | MMAPI Snapshot Encodings | encoding= png encoding= jpeg encoding= image/png encoding= image/jpeg encoding= image/jpg encoding= image/gif encoding= image/bmp | | MMAPI Streamable Contents | None | | AMMS Version | 1.0 | | AMMS Music | true | | AMMS Audio 3D | true | | AMMS Image Encoding | false | | AMMS Image Postprocessing | false | | AMMS Camera | false | | AMMS Tuner | false | | AMMS Audio 3D Simultaneous Locations | 4 | | AMMS Audio Samplerates | 8000 16000 |
| | MMAPI Version | 1.0 | | MMAPI Mixing | true | | MMAPI Audio-capture | false | | MMAPI Video-capture | false | | MMAPI Recording | false | | MMAPI Audio Encodings | None | | MMAPI Video Encodings | None | | MMAPI Snapshot Encodings | None | | MMAPI Streamable Contents | None | | AMMS Version | No |
| | MMAPI Version | 1.1 | | MMAPI Mixing | true | | MMAPI Audio-capture | false | | MMAPI Video-capture | false | | MMAPI Recording | false | | MMAPI Audio Encodings | None | | MMAPI Video Encodings | None | | MMAPI Snapshot Encodings | None | | MMAPI Streamable Contents | None | | AMMS Version | No |
| | MMAPI Version | No | | AMMS Version | No |
| | MMAPI Version | 1.1 | | MMAPI Mixing | true | | MMAPI Audio-capture | true | | MMAPI Video-capture | false | | MMAPI Recording | true | | MMAPI Audio Encodings | pcm&rate=22050 &bits=16 &channels=1 pcm&rate=11025 &bits=16 &channels=1 pcm&rate=8000 &bits=16 &channels=1 pcm&rate=22050 &bits=16 &channels=2 pcm&rate=11025 &bits=16 &channels=2 pcm&rate=8000 &bits=16 &channels=2 | | MMAPI Video Encodings | None | | MMAPI Snapshot Encodings | png jpeg | | MMAPI Streamable Contents | None | | AMMS Version | No |
| | MMAPI Version | 1.1 | | MMAPI Mixing | true | | MMAPI Audio-capture | true | | MMAPI Video-capture | false | | MMAPI Recording | true | | MMAPI Audio Encodings | encoding= audio/amr | | MMAPI Video Encodings | None | | MMAPI Snapshot Encodings | None | | MMAPI Streamable Contents | None | | AMMS Version | No | |
| JVM Memory (approximate numbers; it's worth checking out the Tao Intent 11.x series reports far (two orders of magnitude) more free memory than the others | 424960 - 883072 (adaptive or dynamic; independent of the free RAM size). Note that, independent of this, it seems it's able to allocate far more (6...8 Mbytes) of RAM memory - this is why most (except for some tests in the 3D low-level test package) of the JBenchmarks, packed into one huge JAR file per category (for example, the Composite tests totalling 1.6 Mbytes), ran | 1857212 | 4194240 | 1572864 | 134217728 | 4M by default; can be changed at HKEY_CURRENT_USER\ Software\JBlend\ JavaHeapSize. Sometimes, it’s useful to increase this; for example, with the 2D Java Benchmarks, while the original 4M doesn’t suffice for all tests; 10M does the trick. With all "real" MIDlets out there, however, the default 4M is more than sufficient. |
| JVM Display | | Color Display | true | | Double Buffered Screen | true | | Number of Colors | 16777216 | | Alpha Levels | 256 | | Form Size | 308x192; 231x234; 228x229 | | Canvas Size | 320x198; 240x235 | | Canvas Full Size | 320x240; 240x320 | | GameCanvas Size | 320x198; 240x235 | | GameCanvas Full Size | 320x240; 240x320 |
| | Color Display | true | | Double Buffered Screen | true | | Number of Colors | 65536 | | Alpha Levels | 256 | | Form Size | 320x187 | | Canvas Size | 320x187 | | Canvas Full Size | 320x213 | | GameCanvas Size | 320x213 | | GameCanvas Full Size | 320x213 |
| | Color Display | true | | Double Buffered Screen | true | | Number of Colors | 65536 | | Alpha Levels | 256 | | Form Size | 320x240 | | Canvas Size | 320x188 | | Canvas Full Size | 320x240 | | GameCanvas Size | 320x240 | | GameCanvas Full Size | 320x240 |
| | Color Display | true | | Double Buffered Screen | true | | Number of Colors | 65536 | | Alpha Levels | 2 | | Form Size | 240x268 | | Canvas Size | 240x268 | | Canvas Full Size | 240x268 | | GameCanvas Size | 320x320 | | GameCanvas Full Size | 320x320 |
| | Color Display | true | | Double Buffered Screen | true | | Number of Colors | 65536 | | Alpha Levels | 256 | | Form Size | 240x268 | | Canvas Size | 240x268 | | Canvas Full Size | 240x268 | | GameCanvas Size | 240x268 | | GameCanvas Full Size | 240x268 |
| | Color Display | true | | Double Buffered Screen | true | | Number of Colors | 32768 | | Alpha Levels | 2 | | Form Size | 480x515 | | Canvas Size | 480x536 | | Canvas Full Size | 480x588 | | GameCanvas Size | 480x588 | | GameCanvas Full Size | 480x588 |
|
| JVM WMA (Wireless Messaging API; JSR 120) | 2.0 | - | 1.1 | - | 1.1 | 1.1 |
| JVM M3G (JSR-184 Mobile 3D Graphics API) | | M3G Version | 1.1 | | M3G Antialiasing | true | | M3G True Color | false | | M3G Dithering | false | | M3G Mipmapping | true | | M3G Perspective Correction | true | | M3G Local Camera Lighting | false | | M3G Max. Lights | 8 | | M3G Max. Viewport Dimension | 1024 | | M3G Max. Viewport Width | 1024 | | M3G Max. Viewport Height | 1024 | | M3G Max. Texture Dimension | 1024 | | M3G Max. Spritecrop Dimension | 1024 | | M3G Max. Transforms per Vertex | 4 | | M3G Max. Texture Units | 2 | | - with the newer Jeodek builds, + with an older, 2006, otherwise, for non-gamers, not really recommended version; see THIS for a complete overview & tutorial. | - | - | 1.0; | M3G Version | 1.0 | | M3G Antialiasing | false | | M3G True Color | false | | M3G Dithering | true | | M3G Mipmapping | false | | M3G Perspective Correction | true | | M3G Local Camera Lighting | false | | M3G Max. Lights | 8 | | M3G Max. Viewport Dimension | 2048 | | M3G Max. Texture Dimension | 512 | | M3G Max. Spritecrop Dimension | 512 | | M3G Max. Transforms per Vertex | 4 | | M3G Max. Texture Units | 2 |
| JBFS doesn't support it; JB does: | M3G Version | 1.1 | | M3G Antialiasing | false | | M3G True Color | false | | M3G Dithering | false | | M3G Mipmapping | false | | M3G Perspective Correction | true | | M3G Local Camera Lighting | true | | M3G Max. Lights | 256 | | M3G Max. Viewport Dimension | 1024 | | M3G Max. Viewport Width | 0 | | M3G Max. Viewport Height | 0 | | M3G Max. Texture Dimension | 1024 | | M3G Max. Spritecrop Dimension | 1024 | | M3G Max. Transforms per Vertex | 2 | | M3G Max. Texture Units | 2 |
|
| JVM PIM (PIM database and the File System access, JSR 75) | 1.0 | - | 1.0 | - by default; also see the File Connection group. | 1.0 | 1.0 |
| JVM SATSA | 1.0 | - | 1.0 | - | - | - |
| JVM Bluetooth (JSR 82) | Tested with 3D Constructo Combat between an N95 and a Nokia 6680; worked just great (unlike with the N95 Java vs. native WM version, where connection attempts failed). | Bluetooth Version | 1.0 | | Obex Version | N/A | | Bluetooth Master Switch | false | | Bluetooth Connected Inquiry Scan | false | | Bluetooth Connected Page Scan | false | | Bluetooth Connected Inquiry | false | | Bluetooth Connected Page | false | | Bluetooth SD Attr. Retrievable Max. | 65535 | | Bluetooth Connected Devices Max. | 7 | | Bluetooth I2Cap Receive MTU Max. | 672 | | Bluetooth SD Trans. Max. | 1 | | - | - | It used to have two third-party BT add-on libraries, but they no longer exist. See THIS for more info. | - | - |
| JVM Location | ME Location Version: 1.0; Location Version: 1.0 | - | - | - | - | - |
| JVM Web Parser | 1.0 | - | - | - | - | - |
| JVM Web RPC | 1.0 | - | - | - | - | - |
| JVM JTWI (JSR 185) | 1.0 | - | 1.0 | - | 1.0 | 1.0 |
| JVM SIP | 1.0.1 | - | - | - | - | - |
| JVM SVG | | ME SVG Version | 1.0 | | M2G Version | 1.1 | | SVG Base Profile | tiny | | SVG Version | 1.1 |
| - | - | - | - | - |
| JVM I18N | - | - | - | - | - | - |
| JVM Content Handler (CHAPI) | No; 1.0 | - | - | - | - | - |
| JVM Payment | - | - | - | - | - | - |
| JVM Mobile Telephony | Mobile Telephony Charging version: No; Mobile Telephony version: No | - | - | - | - | - |
| JVM Sensor | - | - | - | - | - | - |
| JVM Contactless Communication | - | - | - | - | - | - |
| JVM OpenGL ES Environment Variables | - | - | - | - | - | - |
| JVM EGL Variables | - | - | - | - | - | - |
| JVM CDC | - | - | - | | Java Installation Directory | /SD Card/J9-MIDP | | Java Class Path | /My Documents /temp/ G11885887 60742V .jar | | Operating System Name | Windows CE | | Operating System Architecture | arm | | Operating System Version | 5.1 build 195 | | List of Paths to Search when Loading Libraries | /SD Card/J9-MIDP/bin/;/ | | Default Temp File Path | TEMP |
| - | - |
| JVM CDC - RMI | - | - | - | - | - | - |
| JVM File Connection (part of JSR 75): Reported version | | ME FileConnection API Version | 1.0 | | Photos Directory | file:///C:/Data/ Images/ | | Videos Directory | file:///C:/Data/ Videos/ | | Graphics Directory | file:///C:/Data/ Images/ Pictures/ | | Tones Directory | file:///C:/Data/ Sounds/ | | Music Directory | file:///C:/Data/ Sounds/ | | Recordings Directory | file:///C:/Data/ Sounds/ Digital/ | | |
| - | 1.0 | - by default; (1.0) file support must be manually added: get THIS file (mirrored HERE)copy fc.jar to /lib/ jclMidp20 /ext/ copy fileconn.dll to /bin/ (both directories under the home of J9) | 1.0 | 1.0 |
| File Connection test 1 with a specific MIDlet I've written (which writes out a byte to a file and, then, reads it back and prints it); source HERE, deployable JAR versions HERE and HERE; the first JAR has manifest / JAD-based permission requests to filter out non-capable KVM's right at install time; the second doesn't. | n/t | -: javax. microedition .io. Connection NotFound Exception; no file permission setting capabilities - pretty much understandable as Jeodek completely lacks file support | -: SecurityException; no file access permissions can be set(both JAR versions). The selector.utf hacks don’t help with file access either – while for example Net access is always allowed, there’s no security setting for file system access as can be seen in HERE | + | -: Asks for read permission only (doesn’t touch the file); throws an IOException later (both JAR versions); doesn’t display version at the start, unlike all other KVM's | - with both JAR versions. With the one without the manifest-based requirements, runtime java.lang. SecurityException: javax. microedition. io.Connector. file.read was denied. With the JAR with explicitly defined permissions in the JAD file, refused to be deployed entirely. |
| File Connection test 2 with the built-in download support of the unsigned Russian Opera Mini Mod 2.04 using the same File Connection framework | +, worked flawlessly in all tests | As Jeodek has no File Connection support, by default, OM Mod stores the downloaded files in the standard Record Store; hence the RMS: prefix. This means encoded files under \Windows\AppDb. The store only adds headers at the beginning so, for example, ZIP files (which are processed from the end) can be easily decompressed when stored in the Record Store. This, however, doesn’t necessarily apply to non-ZIP files. It has no direct file access; that is, trying to save the file in the file system (in exactly the same way as with the patched J9) results in a StringIndexOut OfBoundsException | -: SecurityException (1 2). Note that the 4PDA folks also state it supports File Connection (see for example daemonpnz, 29.09.07 06:54:32) but they don't explicitly state it's working. Interestingly, with other, 2.05-based page saving and reading tests, it worked OK. | +: 1 2 3 4 | -: an Exception is thrown | -: the same error as with the test with my test app |
| Storage usage: Where can it be installed to? | n/a | Anywhere (with the recommended dFine1107 version; NOT with the XDA-Dev versions!) | Main storage by default. However, it's pretty easy (and, if you plan to install a lot of MIDlets, highly recommended) to relocate it after installing to a storage card. To do this, with, for example, Resco Explorer (desktop tools like Total Commander with the WinCE FS plug-in won't work because of security issues) move every file dated 08/10/2007 from \Windows to any directory (I recommend \Program Files\Jbed) on the storage card. Here's a screenshot of selecting all the files (make sure you allow for seeing system files AND make Resco order by date so that you can easily transfer the files in one step!). After that, reconstruct the JAR / JAD associations by importing THIS Registry import file (modify it if you've put the files in another directory and not \Storage Card\Program Files\Jbed). There is also an older CAB file that is supposed to be installable to storage cards, together with the appdb directory; I haven't tested it. | Anywhere | Anywhere | In theory, anywhere. In practoice, however, even if you try to install it in the main memory, it'll always install itself into \Storage Card\Program Files\Jblend if you select the built-in storage as the installation target. That is, the path \Storage Card is hard-coded into Jblend. This will cause a lot of problems if your handheld has a single storage card without a card when you install the KVM - because of the name clash, the card will be renamed to Storage Card2 upon reinsertion, causing problems. That is, ONLY install Jblend with the storage card in! If yours is a dual-slot device (almost all Dell Axims, some iPAQ's etc.), then, as Stroage Card doesn't clash with any of the card names (CF / SD Card), it'll be installed to the main memory. With devices Jblend is coming with as an OEM KVM, its data files are in \Windows\Java. |
| Where are deployed MIDlets kept? | Both the storage card and built-in memory | With the recommended dFine1107 version, an appdb subdirectory of the home of the MIDlet Manager. With other versions, main storage only (\Windows\appdb), can't be relocated. Note that there’s a related Registry value set by both the Jeodek and Jbed installer, HKEY_CLASSES_ROOT\ jarfile\Shell\ Save\Save Location\@. Its default value is "Personal" with Jeodek and "\Windows\appdb" with Jbed. Changing it, however, has no effect on the home directory. | The same as with Esmertec Jeodek; compilation results in additional *.obj files in the same directory, making memory usage even worse. Again, if you manually relocate it onto a storage card, it's on the card that it'll keep its deployed MIDlets on! | Main storage only, can't be relocated: \My Documents\temp contains the JAR files; if you delete them by hand, you’ll no longer be able to run, not even delete them, unless you also clean up \My Documents\ recordStores, which contains additional (small-size) information on the deployed JAR files | With preinstalled Tao’s, \Application Data\Tao\ intent\app\ jam\midlets\; with post-installed ones (like the 1023/ 1036), under the home directory (that is, even on a storage card, which is VERY good news). That is, it’ll be in [optional storage card; if not present, main storage]\Program Files\TAO\intent\app\jam\midlets\ . Note that midlets take up quite a bit of storage space because they’re also stored in a less-compressed format too. Keep this in mind if you’re running out of built-in storage. Also note that, in the Registry, if you modify (or add if it doesn’t exist) HKEY_LOCAL_MACHINE\ Software\Tao\ JMM\DataPath with the String value of for example "\Storage Card\ Application Data\ Tao\intent", you can redirect your MIDlet repository to your storage card. In this case, you also have to move the file rofs_target.zip in there (also see tobbbie’s related comments HERE) | InstalledMidlets subdir under the home (that is, it can be, therefore, on a storage card too if you install Jblend right there); it's possible it can be set in the Registry too (under HKEY_CURRENT_USER\ Software\JBlend, where there are several path-related settings. I haven't tested them though. Incidentally, there are for example font size and auto-connect settings in there - might be worth looking at them) |
| Text input: cut/paste? (SIP Ctrl-C/V; on Smartphone, tools like VITO’s excellent CopyPaste) | n/a | + | + | + | - (you can’t even select text) | + |
| Known text input-related bugs? Maximal editable pre-populated text area size - see THIS test page | Opera Mini 4 b2: 4k max.; at 8k, everything is shown but no longer editable; Opera Mini Mod 2.05: 1k max; at 2k, the rest is chopped off and not shown; no bugs known. | Opera Mini 4 b2: can only have about 2.5 kbytes of text in a text area; should you exceed it, you’ll have problems: it won't be saved. With Opera Mini Mod 2.05, the situation is even worse: you can't enter text into 1k text areas either. | See Jeodek | OM4b2: 4k max; with 8k, nothing can be added; OM Mod 2.05: 1k max, longer texts are chopped & nothing can be added | OM4b2: Only able to edit text areas if they don't contain line breaks. If they do, it won't be able to edit it. The 10.1 on Smartphones, on the other hand, worked just great (screenshot 1 2) | Should the text area already contain some text, it won’t have new lines in it (meaning, for example, you can’t just go to the end of it easily, without having to scroll, awkwardly, with the D-pad there) and only the first, visible part of the text will be, finally, submitted back to the server. Very bad! |
| Display: Cleartype / font smoothing? | - | + when using Small characters, - otherwise (see particularly the QVGA screenshots). This isn’t REAL ClearType as it uses the nearby pixel and strictly of the same, but brighter color (gray with black, for example). Note that the post HERE states the opposite, that is, the Esmertec KVM’s don’t have font smoothing. | See Jeodek | - ; strangely, the left screenshot HERE shows there IS ClearType – at least on the Smartphone platform . In my tests, there was no smoothing, not even when small chars are used. | + as with Esmertec (and unlike IBM J9 / Jblend), when small charsize is used; - otherwise | -, not even with the smallest charset |
| Opera Mini 4 beta 2 fonts - VGA? | n/a | 1 2 3 4 | 1 2 3 4 | 1 2 3 4 – as can be seen, even if you use the VGA version, the screen will be treated as QVGA. Hence the huge fonts and the complete lack of bold chars – even using the smallest font size. While the text isn’t pixel doubled, IBM J9 considers VGA devices as a low-res ones; therefore, images are also low-res (pixel doubled) as can for example be seen HERE. Forcing J9MIDP20.EXE (or, for that matter, ANY .EXE's) doesn't help, as opposed to earlier, 5.7-series J9 versions. The only way to get high-res support is switching to Real VGA mode and using the QVGA version of J9 (NOT the VGA version - the latter won't execute your deployed MIDlets at all!). An example screenshot of this is HERE (using Large characters). Note that, as the QVGA and VGA versions can co-exist on the same machine and will use the same deployed MIDlets, this seems to be a usable solution to get hi-res support when you really need it (and, at the same time, can live without hardware softkey support - you'll need to use the on-screen menus to issue commands, unlike with the VGA version. At least this was the case on my VGA Universal.). | 1 2 3 4. Note that there is a hack (originally published HERE) that greatly increases font sizes (unless you use the "Small" size) and also makes it possible to still be able to see bold characters even when using pretty large fonts (as opposed to the non-hacked case, where "Extra Large" characters lack bold). Just import THIS Registry file. The results of the hack: OM4 Medium and Large font size. (Small isn't affected by the hack.) | 1 2 3 4 |
| Opera Mini 4 beta 2 fonts - QVGA? See THIS: "The only disadvantage with Esmertec jbed is that the "medium font size" setting on Opera mini, look quite small while the "large font size" make the fonts VERY large." Tested with THIS test page | The font sizes are pretty OK; in small size, there’s font smoothing, as with some WM MIDlet managers. Note that, with OpMini Mod 2.05, small fonts aren’t used – they’re equally large as medium ones | 1 2 3 4 | 1 2 3 4 – I didn’t find much difference between the Medium and Large setting here either. | 1 2 3 4 | 1 2 3 4 | (taken on the HTC Vox Smartphone because with the ROM version I use on my Wizard I wasn’t able to run any OM4b2 versions under Jblend): 1 2 3 4 |
| Display-related bugs? | - | - | - | On VGA, it’s pixel doubling - must be run in true (native) VGA mode to get rid of this bug | - | Text overlaps with different styles in OM4b2; SIP icon always visible on Pocket PC’s in the (missing) bottom command / menu bar; major problems with many MIDlets in Landscape mode (as opposed to all the other KVM’s) |
| Keyboard, SIP, softkeys: SIP can be brought up even if there’s no text input field/area to focus to (see Opera Mini hotkey control with Pocket PC’s without dialpads / keyboards like the Trinity / HTC P3600) | n/a | - | -. However, if in Settings / Buttons, you assign a hardware button to < Input Panel >, Jbed will work GREAT: keep the just-associated hotkey depressed, click SHIFT and, then, 8 on the SIP. Note that this in no way works on Jeode. | + (bottom command bar, along with the SIP icon, always visible) | + (bottom command bar, along with the SIP icon, always visible) | + (while the bottom command bar is hidden, the SIP icon is always visible. In no way the prettiest solution, but, in cases, it might turn out to be preferable over the no-SIP-accessible-at-all Jbed) |
| Softkey support? | + (very good!) | + (very good!) | See with Jeodek | Hardware keys, generally, don’t work (an exception is Opera Mini Mod 2.04); on-screen taps do with several apps. Also see THIS | So-so (hardware keys do work with OM4b2 and some other app, but the vast majority of games don’t; this also stands for the inability to use the touchscreen for pressing them, which is the case with most titles, except for for example Opera Mini Mod 2.04, where they are registered). Also see THIS, THIS and THIS | + (very good!) |
| Can you use an external tool (MortScript's SendKeys, VJKeyPress or PQzII) to "inject" keypresses into the emulator? | n/a | + | + | MortScript, which is needed for entering *, on the Universal, very rarely worked – about 1 of 20-30 times, tried both single and dual. "2", on the other hand, always worked (with VJKeyPress). On the hx4700, it always worked, but ALWAYS requires double presses, with some 1 sec waiting in between. Unfortunately, using the sleep() function in MortScript (as in SendKeys("*"); Sleep(4000); SendKeys("*")) didn’t help. On the Dell Axim x51v, it has never worked with MortScript (tested with both VITO BM and the default) and VJ in no way worked; only with PQzII (but the latter is unable to send *). | + | PQzII works great with alphanumeric input (but not with non-alphanumeric input like *'s as it doesn't support them). As far as external apps like MortScript or VJKeyPress are concerned (invoked and run each time), Jblend pauses every time and the focus switches to Today. As entering * on the SIP doesn't work either (unlike with, say, Jbed), this is a major PIA. |
| Selective (app-specific) button assignment for input with VITO ButtonMapper | n/a | + | + | -: (tested on the hx4700, which (see above) proved to be the best platform for input): no app-specific button assignments for EMULATOR.exe | + | -: Pauses at once and the focus is moved to Today (see above) |
| MIDlet installation, separation, direct invocation, uninstall: menu-based deployment support for local files (all MM’s are able to deploy local MIDlet JAR’s via file association!) | n/a (no MIDlet manager interface at all, unlike with all the WM MIDlet managers) | +; note that, it only lists 220...250 MIDlets at once (another screenshot); no alphabetic sorting either | Has a tendency of NOT finding some subdirectories (not to mention it doesn't use alphabetical sorting) - much fewer than Jeodek | + (but there’s no browsing – you must directly enter the full filename + path, along with file:// - very awkward! Screenshot) | +; note that, on storage cards, it only finds MIDlets in the root and My Documents\My Midlet in the main storage – not very nice | - (probably via entering a file:// URL in the browser?) |
| JAD file also needed for installing JAR files in the local file system? (As can be seen, only the disqualified CrEme and the two MIDlet Managers coming with BenQ P50 and the Gigabyte GSmarts (iaJET, III iJet) require it) | - | - | See Esmertec Jeodek | - | - | - |
| Over-The-Air (OTA) (non local JAR file-based) JAD-based installation (for example, from http://mini.opera.com/beta/ ) | + | + | + | + | + | -: exits at starting to download |
| Possible to use folders for better midlet separation? | + (Options / Move into folder; into system-level folders!) | +; you can create new folders upon deploying a new midlet (1 2 3; accessing them 1 2) | See Esmertec Jeodek | - | + (in version 11.1; still not in 10.1). (screenshots: 1 2 3 4) | - |
| Direct, system-level links (shortcuts) to midlets – a better alternative to third-party macroing / screen tap / button press simulator solutions like Mortscript. | + | +: \Windows\jeodek.exe" -run s1_. Excerpt from HERE: "The magic portion is the number after the the letter "s" in the shortcut target. This is the list position of the Java MIDlet in the Jeodek/Jbed application list. If you install Jeodek/Jbed as a fresh install (non Mogul users), and then directly install Opera Mini, just use the number "0" to refer to Opera Mini ("\windows\jbed.exe -run s0_"). If you install another MIDlet (after Opera Mini), its index will become 1, then the next installed MIDlet will have an index of 2, and so on." | See Esmertec Jeodek ; the only difference is that you must invoke \Windows\jbed.exe and not jeodek.exe. (Of course, if you install / relocate them to a storage card, change \Windows to the real path.) | +; very easy to create; "\<Installdir>\emulator.exe" "-Xjam:run=1", where 1 is the first app in the list etc.; also see for example THIS | +; a bit more complicated to create. See THIS, THIS, THIS and THIS. An example with OM4: 199#"\Storage Card\Program Files\TAO\Jmm.exe" -r"Opera Mini 4 beta","Opera Software ASA","Opera Mini 4 beta". For your convenience, I've created two direct link files for you: HERE is the non-beta Opera Mini pre-4 and HERE the Opera Mini 4 beta 2. | ? |
| Registry import files to quickly reassociate JAR / JAD files (so that you can go on deploying them by simply clicking them in the file system / on the Web) with the given KVM, should be there another, more recently installed KVM on the same handheld, un-associating these files | n/a | HERE for internal-storage installations; for storage card-based installations, HERE | HERE | HERE (for Storage Card-based installations) | HERE | HERE |
| Uninstallation: Uninstall All at once? (Useful when testing a lot of MIDlets; note that without the explicit support for this, you can, in most cases, simply get rid of all the files in the deployment directory of the MIDlet) | n/a (no MIDlet manager interface at all) | + (Menu / Uninstall All) | See with Jeodek | - (albeit deleting everything from the related directories works) | - | +: Menu / Application / Delete all |
| Security: Allow permanent Net access without prompting ("Blanket" security model, as opposed to "Session" / "Oneshot")? | - (absolutely no config capabilities) | +, "Blanket" model easily and automatically hackable; see THIS. An except: "1.) Copy the file \windows\appdb\ selector.utf to your PC (make sure backup this file first in case something goes wrong!) 2.) Remove read-only attribute 3.) Open the file with a hex editor, and find the line "domain=untrusted, \". Replace the text untrusted with the text tckmax. Add space characters between the x (in tckmax) and the comma (otherwise connection warnings or a nullpointerexception error may occur). The above line may appear multiple times in the "selector.utf" file, each corresponds to a different Java MIDlet you have installed in JBed. If hex editing is too blackhat for you, g-funkster has created a desktop application that can do this for you automatically! You can find it HERE". Also cross-posted to HERE. Note that, in addition to this, an app can be not only untrusted, but also midp1 (see daemonpnz 29.09.07 08:14:43 at 4PDA) - hack these accordingly. | See Esmertec Jeodek | + by directly editing editing the security.policy file in the lib subdirectory: change session(session): NetAccess to allow: NetAccess (if you only need to allow OM4 to communicate; should you need to run other apps with, for example, local access, also change everythig to ‘allow’); also see THIS | See dFine1107's excellent tutorial and explanation on 24.07.07 05:57:06 and, then, 12:15:26 at 4PDA; note that I haven't tested this hack | Note that the current version only supports the One Shot model, which makes Web browsing quite a PIA (and, on top of that, Jblend doesn’t seem to support (self-)signed JAR’s). JBFS supported even blanket - too bad its Network access doesn’t work at all |
| Midlet-level security prompt fine-tuning? | - | Menu / Actions / Security; only local / remote connections and auto starting may be configured (1 2). Doesn't allow for question-less remote connections; local ones can be allowed. Note that the JVM also allows for listing & quickly en/disabling already-imported certificates (1 2) | See Esmertec Jeodek | The complete list is HERE; file access can be configured to be always allowed; Internet connections, unfortunately, can not be – HERE, a HTTP connection is shown; the case is the same with all other Internet connections. However, by manually editing /lib/security.policy, you can grant any rights to anything. | Both the newest, 11.x series (where it has been moved out of the main menu to a context menu). Note that the currently available, downloadable .1034 version is buggy: you need to answer the question every time you access a new page with .1034. As can clearly be seen in the security fine tuner dialog, only "Oneshot" is available – not only with Net access, but also with other settings – even with Local connectivity. Opposed to this are all the other (former) 11.x versions, where "Session" and, with local access, "Blanket" are also available. With .1029 and the latest (and most recommended) .1036, fortunately, this is session-based – you only need to answer it once each time you run an Internet client. Screenshots of the older, 10.x series (for example, version 10.1.7.693 coming with many cooked ROM’s): Menu / Manage / Security. The full list is HERE. Unfortunately, Net Access can only be Session, One Shot or None; it’s only Local Connectivity that has a "Blanket" setting. | ? |
| Compatibility with the MXit LifeStyle-signed JAR’s like OM4b2 HERE (and, in the thread HERE and HERE, some other MIDlets; for example, TeaShark and other OM versions). Note that with some (cooked) ROMs like some AKU3.5 Wizard ROMs; then, not even signed MIDlets will work under Jblend. With other MIDlet managers, this JAR file is regarded as signed. (Incidentally, under the same ROM version, TAO Intent 1036 won’t be installed, also because of security problems. 1034, on the other hand, can be installed). | n/t | +; note that, however, you MUST manually set Net connection to "Always" in (with the signed MIDlet highlighted) Menu / Actions / Security; otherwise, you’ll get an exception | +; See with Jeodek; Jbed screenshot of the needed setting HERE | - | -: can’t even install it | - |
| Misc (sound, compatibility with some popular apps, proxy, etc): Full screen? | + | - | + | - | - | -; JBFS: + (ALWAYS, which is a problem in several cases) |
| Sound? (see for example DoomRPG1) | +; mono only in the menu of the game | + | Stereo, great quality – in general, the best of all | + | + | Jblend has very limited sound and no music support; JBFS has better music support, but it’s still far inferior to that of Jbed |
| Executing more than one MIDlets at the same time; switching between them (also see the comments HERE; at 4PDA (dFine1107, 21.06.07 21:18:01 and volta_john, 21.06.07 23:31:23)) | + (the OS handles MIDlets as regular programs; therefore, you can start them to run concurrently and use the same system tools to switch to / kill) | - (but, if you install Jbed or any other MIDlet manager, you'll be able to run your MIDlets under it - that is, one MIDlet under Jeodek, one under Jbed and any number under J9 or TAO in parallel) | - (see the Jeodek comments; able to work concurrently with Jeodek) | +; a bit more complicated to switch between concurrently running MIDlets as, in task managers, they don't have a name (listed as an empty string) - at least when started from Emulator.exe. Example screenshot HERE (acbTaskMan screenshot)) | + (absolutely the best support: the TAO Intent main program has an inner "Running" tab, which lists the currently (in the background) running MIDlets, making it very simple to switch between them. THIS screenshot shows Opera Mini and Opera Mini Mod running at the same time, a single tap will activate the given MIDlet. In addition, you can stop all the running MIDlets with the “Stop All” menu item only available in the Running pane. As can clearly be seen in HERE, the two MIDlets will remain in the same process (as opposed to J9); hence the only one jmm.exe instance.) | - |
| Running in the background (especially useful with networking like lengthy page downloads with Opera Mini or periodic mail checking with the Gmail MIDlet) | + | + | + | + | + | - (forces a pause on even non-games) |
| Advanced, config file-based configuration (for example, forced connection dropping capabilities to, for example, reduce battery usage): (also see THIS and the comments HERE) | - | + | + | - | - | - |
| Proxy support (see THIS) – tested with my own HTTP tester (source HERE; should you need a small server printing out the IP address of the client, get THIS source.). Tested both the system-level setting and, wherever possible, command-line parameters and/or /lib/internal.config. | n/t | - (system-level proxy) | +: The system-level proxy setting is used | System-level setting: - Direct invocation: + ("\\emulator.exe" "-Xj9arg:-Dhttp.proxyHost=" "-sXj9arg:-Dhttp.proxyPort=" "-Xjam:run=1") As far as other parameters are concerned, "-Dcom.sun.midp. io.http.proxy" (as in "199#"\SD Card\ J9-MIDP\bin\ emulator.exe" "-Xj9arg:-Dcom.sun.midp. io.http.proxy= HOST:PORT" "-Xjam:run=2""); see THIS and THIS) didn’t work in my tests.) Creating a /lib/ internal.config file (see THIS and THIS) with the contents http.proxyHost: HOST http.proxyPort: PORT com.sun.midp. io.http.proxy.host: HOST com.sun.midp. io.http.proxy.port: PORT didn’t work either (tested with both the first and second pair of attributes) | System-level setting: -, not even when Menu / Choose Network Type is explicitly set to the one with the proxy Other hacks: While THIS states it’s possible to configure a proxy in the Registry (\HKEY_LOCAL_MACHINE\ SOFTWARE\ Tao\intent\conf\ protocol\http\ scheme[http]\ proxy_host= ""193.113.200.195" and proxy_host.port= "port"). No success. | System-level: - I don’t know of direct invocation capabilities and there doesn’t seem to be other ways of passing parameters. |
| Auto-initiate network connection? If it isn’t supported, you’ll need Vijay555's excellent VJVolubilis utility – more precisely, the "-gprson" command (and, if you want to programmatically stop the connection – without long-pressing the Red phone button -, use the "-gprsoff" command after the KVM’s exit). If you have a MM with direct link capabilities (TAO, IBM J9), then, you can just create a link file with nScriptm or MortScript to run these two apps in turn; if it doesn’t support invocation, then, just start the KVM itself. Also see THIS | + | - | + | - | + | - |
| Full Gmail midlet (1.5.0 / 1.1.1 (download of the latter HERE)) compliance? | + / + | 1.5.0: - (exception thrown during install); 1.1.1: + | Both + | Both + | 1.5.0: - (fails to run it; tested it under 10.1.7.680 (factory Smartphone version), it didn't work either and even messed up TAO completely: all previously installed MIDlets got deleted); 1.1.1 :+ | JB: 1.5.0: + (albeit almost useless because of the constant net access authorization requests - it seems this happens upon downloading each mail header!) / 1.1.1: n/t; JBFS: because of the lack of network access, - (while it starts, it crashes after pressing "Done" after entering the username); in another occasion, I’ve encountered an ?? Invalid JAR error message |
| Full Opera Mini Mod 2.04 / 2.05 English (sorry, I don't give you the URL to protect the original authors, that is, Opera) | +; also tested with 2.05 | + | + | + | + | +; HW softkeys work; no file download |
| Full Opera Mini 4 beta2 compliance? (Including screen dragging with the stylus on touchscreen-enabled devices) | + | + | See Esmertec Jeodek | + | + | +, albeit (almost?) always collects font information after restarting, which takes a LOT of time. This bug, along with the One Shot net access security model, really makes this KVM useless for running OM4. |