Ever wanted to play the great, free multiplayer game Wyvern on your Pocket PC? I have great news for you!
It was only some days ago that I reported about the new version of free Java Virtual Machine (JVM), Mysaifu, being able to run Wyvern, the great multiplayer game. Now, I have even better news for people that have pre-Windows Mobile 5 (WM5) devices â€“ CrEme, another JVM, also runs the game. What is more, as one would expect, it runs the game as if it were a native Pocket PC application; that is, much faster than Mysaifu.
No WM5-compliance as yet
Unfortunately, WM5 devices still have compatibility problems with the additional libraries I'll elaborate on in this article. (Really thoroughly tested on both my Dell Axim x51v and HTC Wizard / i-mate k-jam, both WM5 Pocket PC's, also with disabled security settings - I'm absolutely sure I'm right). That is, this tutorial will be of no interest to WM5 users until NSICom, developer of CrEme, updates their libraries to become fully WM5-compliant.
How did I found this?
When I tested the Wyvern compliance of CrEme 4.1 in its review, upon testing TinyAWT (the alternate graphics library instead of the flaky default one that comes with CrEme), I relied completely on the documentation ( c:\Program Files\NSIcom\CrE-ME V4.10\Documentation\CrE-ME V4.10 FAQ.html ) of CrEme and wouldn't have thought it contains a fatal mistake because of its being a bit outdated. This is why I haven't paid much attention to the system error message ** Unable to load: tiny/tinyconf.
Now I had some more time to play with CrEme and found out that the two Tiny AWT DLL's the above-mentioned FAQ instructs to transfer to the Pocket PC are not built for the Pocket PC; this is why CrEme wasn't able to load them (also resulting in the above-cited error message). The Pocket PC-specific DLL's can be found in the PPC\ARM subdirectory instead. These DLL's work wonderfully with graphics-enabled games and applications â€“ including Wyvern, the great multiplayer game.
Configuration â€“ the tutorial
To configure CrEme to be able to access these files,
- (If you haven't downloaded CrEme 4.1 yet, do it now HERE. After downloading it, install it.)
- get the Developer Support package here (direct link here) and install it.
- go to \Program Files\NSIcom\CrE-ME V4.10\bin\PPC\ARM\ on your desktop computer (again, not just to \Program Files\NSIcom\CrE-ME V4.10\bin\!); copy tiny.dll and tinyconf.dll to the \bin directory of your CrEme installation:
- if you've installed CrEme to the default location (this is not needed): \Windows\CrEme\bin
- if you've installed CrEme to a storage card on a Windows Mobile 5 (WM5) Pocket PC: \Storage Card\Windows\CrEme\bin on WM5 devices with only one storage card; change \Storage Card to either CF Card or SD Card if you have a WM5 Pocket PC with two memory slots. (Note that as, currently, the TinyAWT libraries don't run on WM5, you can disregard this bullet.)
- If you've installed CrEme into a non-default directory on your pre-WM5 device, go to the target directory you've given to CabInstl or Mad Programmer's FDC and go to the bin subdirectory there.
- Go to c:\Program Files\NSIcom\CrE-ME V4.10\lib; copy the 644-kbyte TAWTclasses.zip to the \lib subdirectory of your CrEme installation on your Pocket PC. (It's on the same level as the \bin subdirectory; that is, you can use the above three-item-list to find it on your Pocket PC.)
The invocating LNK command file must also be changed!
Note that you'll need to use a different .lnk file (the file that starts CrEme, sets the classpath so that CrEme can find the the main JAR file containing Wyvern and also passes CrEme the class name containing the main() to be invoked): you must supply the -tiny switch to CrEme. As opposed to the Mysaifu link files, you don't need to explicitly set any maximal memory size.
Some examples of link files
CrEme is in the default location, in the main storage; wyvern.jar is on the CF card:
255#"\Windows\CrEme\bin\CrEme.exe" -ntb -tiny -classpath '\CF Card\wyvern.jar' wyvern.client.palm.PalmClient
(Note the usage of single quotes (') with the wyvern.jar path! You cannot use double quotes (")!)
Creme is installed to a SD memory card (under \Programs\CrEme); wyvern.jar is also on the card, under \Games\Wyvern:
255#"\SD-MMCard\Programs\CrEme\bin\CrEme.exe" -ntb -tiny -Of -classpath \SD-MMCard\Games\Wyvern\wyvern.jar wyvern.client.palm.PalmClient
Note the -ntb parameter. It tells CrEme to use full-screen. It will be needed with TinyAWT because the latter uses its own taskbar, taking up precious screen estate (and hiding the last few pixel rows of the image). Make sure you click the rightmost area of this custom bar to maximize the screen area in full-screen mode. Also note that, in order to close Wyvern (first click: disconnect; second click: exit completely), you'll need to click the leftmost area of this bar.
Also note that you can also add the -Of or -Ob command-line switch (note that O is a capital 'Ohh', not a zero!) to enable logging to a file or the console mode, respectively. It won't be needed as soon as you get Wyvern up and running; for bugfixing, though, it may be needed. I recommend -Of because, then, the error messages will be printed to the file \jscpout.txt in the file system to be examined later (and there won't be an additional system process because of the console).
Some example screenshots of my pre-WM5 devices running the game
(As can be seen, it's not recommended to run Wyvern in the standard VGA mode on VGA devices.)
Midlet compliance when using TinyAWT
Unfortunately, there isn't much news â€“ as can be seen in this screenshot, midlets still don't have network access. Also, the usable screen area (as can be seen also in here) is still very small and can't be maximized (note that there's no 'maximize' button on the taskbar, unlike with the case of non-midlets.)
As with the non-TinyAWT case, you can't run MIDP2 midlets either (for example, the Advanced version of great, alternate, free browser Opera Mini) because of, for example, the lacking javax.microedition.lcdui.Display.numAlphaLevels() method.
In addition to the alread-linked, previous articles, I also recommend this AximSite thread.