implementation
Lemmings 4.1
Lemmings offers a very addictive and fun game. more>>
Lemmings 4.1 offers a very addictive and fun game. Lemmings is the implementation of the classic game originally created by Psygnosis (in 1991) for the Palm Computing Platform. A Palm(tm) compatible handheld running Palm OS version 3.1 or better is required for the demo. lemming (lem-ing) adorable yet incredibly stupid furry creature; known for walking off cliffs, wandering aimlessly into dangerous situations and drowning by the thousands in pools of water. If you remember the game, you'll know exactly what is meant by the above! It even comes equipt with cool background music and heaps of cool animations you'll remember from the original game! Additional level packs (non original, yet still challenging) can be purchased seperately- more information can be found on the Lemmings level pack page on the website.

CleverTexting French 2.0
A disruptive new Mobile Texting technology makes predictions based on the statistical nature of a language instead of a dictionary and performs equally well across dictionary and non dictionary more>>
CleverTexting French 2.0 is designed to be a useful, disruptive new Mobile Texting technology that makes predictions based on the statistical nature of a language instead of a dictionary and performs equally well across dictionary and non dictionary words. It offers single keypress typing in all languages of the world from your existing keypad and phone. It is also comfortable to your thumb while you type.
CleverTexting makes predictions on what characters you are most likely to type next based upon what you have just typed before and armed with the probabilistic statistical tables of what is actually found in the language. This experimental model is providing excellent results for every language. The predictions are shown on the screen and you use the numeric keypad to make the choices, always with a single keystroke. No multitap, no mode change, no disambiguation. That user interface , with no characters fixed to the face of the numeric keypad and dynamic allocation of characters to the keys is also new.
Same software also supports Touch Screen Mobile Phone in which case you choose from the screen directly. It is a pleasure typing with it because the predictions it makes are always on the mark to aid you type and yet you have complete control on what you wish to enter. Prototype Java application can be used to compose and send messages. We also offer on phone SMS compression (as an option before transmission) so you can pack in more text into the same SMS.
Major Features:
- Ergonomic: The most likely next characters are arranged to positions easiest for the thumb, as in Right hand and left.
- Ergonomic and Persistent: Alphabets retain their positions between two state transitions. This reduces jitter and improves search ability of characters.
- Legacy Keypad: Heavy users of legacy keypad habitually look for keys there. In this implementation, alphabets are assigned legacy positions as best as possible.
- Legacy Colour: An extension of legacy, alphabets that could not be assigned legacy positions are shown highlighted to improve search ability.
- Nearest Key: The next likely keys crowd around the last used key.
- SMS Compression: The composed message is compressed before transmission. So you can pack in more text into the same SMS.
tinybytes Collection 1.0
tinybytes Collection is a collection of 12 free tinyBytes for use with ThinkDB 2. more>>
IOU: Tracks objects or money that youve lend to or borrowed from someone.
WARDROBE: Organizes your wardrobe and the items which need maintenance or may be donated, and also creates a travel list.
TIMECARD: Works like a timecard, and shows statistics about monthly and average daily working time.
BOOKS: Organizes your personal library and titles you wish to buy.
CDs: Organizes your CD collection and track titles you wish to buy or listen to.
MDs: Organizes your MD (minidisc) collection, tracks your recordings and the available space for each disc.
GAMES: Organizes your PC and VideoGames collection, tracks scores and lists your favorite titles.
MOVIES: Tracks movies that you want to see, rates those youve already seen and keeps your "favorites" list.
DISTANCES: Helps you to find the best route between two points, calculating the approximated fuel cost.
PROJECTS: For software developers - tracks implementations to be done in your programs or bugs to correct, and the current stage of each item.
URLs: Organizes your favorite web sites and those you wish to visit later.
JOURNAL: Keep a personal diary and organize events according to their importance.
Documentation with screenshots is included.

CleverTexting Swahili 2.0
CleverTexting Swahili 2.0 is a new Texting Technology that predicts letters as you type. more>>
CleverTexting Swahili 2.0 is a new Texting Technology for Mobile that predicts letters as you type. It offers single keypress typing in all languages of the world from your existing keypad and phone. It is also comfortable to your thumb while you type. CleverTexting makes predictions on what characters you are most likely to type next based upon what you have just typed before and armed with the probabilistic statistical tables of what is actually found in the language. This experimental model is providing excellent results for every language.
The predictions are shown on the screen and you use the numeric keypad to make the choices, always with a single keystroke. No multitap, no mode change, no disambiguation. That user interface, with no characters fixed to the face of the numeric keypad and dynamic allocation of characters to the keys is also new. Same software also supports Touch Screen Mobile Phone in which case you choose from the screen directly. It is a pleasure typing with it because the predictions it makes are always on the mark to aid you type and yet you have complete control on what you wish to enter. Prototype Java application can be used to compose and send messages. We also offer on phone SMS compression (as an option before transmission) so you can pack in more text into the same SMS.
Major Features:
- Ergonomic: The most likely next characters are arranged to positions easiest for the thumb, as in Right hand and left.
- Ergonomic and Persistent: Alphabets retain their positions between two state transitions. This reduces jitter and improves searchability of characters.
- Legacy Keypad: Heavy users of legacy keypad habitually look for keys there. In this implementation, alphabets are assigned legacy positions as best as possible.
- Legacy Colour: An extension of legacy, alphabets that could not be assigned legacy positions are shown highlighted to improve searchability.
- Nearest Key: The next likely keys crowd around the last used key.
- SMS Compression: The composed message is compressed before transmission. So you can pack in more text into the same SMS.
Lorenz Attractor 1.0
Lorenz Attractor is a lorenz attractor implementation for the Palm. more>>
User can adjust the inputs and magnify the displayed plottings of a lorenz attractor.
MoMEUnit 1.1.0
MoMEUnit is an instance of the xUnit architecture for unit testing of J2ME applications more>>
This framework overcomes lack of reflection API in J2ME MIDP API and supports such main features of JUnit framework as:
- Ease of development and run of tests.
- Sharing the same fixture among different tests.
- Running test in its own fresh fixture.
- Modification of fixture for a group of tests.
- Possibility of simultaneous tests runs.
- Independence of tests runners (different tests runners can be used with framework package).
This framework includes an optional Ant Integration package. This package consists of several fully featured, extensible tasks that simplify use of MoMEUnit framework with Ant build system.
MoMEUnit Ant Integration package offers following functionality:
- Calculates list of tests to run based on Test interface implementation and specified patterns. There is no need to specify test cases to run explicitly. Developers can add test cases without configuring test runners.
- Runs test cases of already built J2ME application or builds test application on behalf of developer based on source files, classes, resources and libraries specified.
- Preverifies J2ME application before running tests on demand.
- Formats tests run output by using predefined or custom tests results formatters like in task. All test characteristics including times and stack traces are available.
- Gives developers possibility to choose emulator and/or preverify tool to run by specifying predefined or custom emulator or preverifier.
- Gives developers possibility to configure test J2ME application by specifying attributes of application JAD descriptor and/or manifest.
This framework provides as an extension a MIDletTestRunner - a fully configurable MIDlet. It is intended to run tests in emulator or mobile device. It shows the results of tests run (progress bar, statistics, lists of failures or errors with detailed messages for each test) in one screen. The tests can be run automatically during start-up and re executed more times later. It can print descriptive messages of failures and errors thrown together with stack-trace to the standard error output

Pente 1.4
Pente is an attractive Asian game of ni-nuki, which is itself a version of the game of go-moku. more>>
Pente 1.4 is an attractive Asian game of ni-nuki, which is itself a version of the game of go-moku. Pente is played on a 19x19 grid with stones in two different colors. Each player chooses one set of stones; then the players take turns placing their stones on any unoccupied intersection until one player wins. Stones may be captured in pairs only. To capture a pair of stones, a player must place one stone on either side of the pair. When the second side is placed, the center two stones are captured. This counts as one capture. The game continues until a player gets 5 in a row or captures 5 pairs. This implementation includes a computer AI with 6 levels and complete undo/redo support.
Enhancements:
- Features unspecified improvements and bug fixes.
MobileMule 0.9b
MobileMule lets you control eMule with a Java-enabled mobile phone. more>>
Which mobile phones are supported?
Basically all java enabled mobile phones which have 40 KB free fixed memory and about 150-200KB Heap. A color display is strongly recommended (many older phone types - especially from Nokia - with non color display do not have enough free Heap anyway. Also you need to be able to access the Internet via HTTP. All java-enabled mobile phones should supported this, however it is possible that your contract doesnt allows internet access (prepaid) or that your carrier offers only restricted access. Anyway, the best way to find out is to try it.
Anything else needed?
Yes, your port 80 must be open reachable for incoming connections. So if you have a router or firewall you have to open this port.
Installation
1. Before Installing MobileMule
Before you beginn to install MobileMule make sure you meet all Requirements:
- You have a Java-enabled mobile phone (which is not on the "blacklist")
- You can access the Internet (WAP Gateway or direct Web access)
- Port 80 on your Box is reachable for incomming connection
2. Downloading
Ok, now that you know you could theoretically use MobileMule, it is worth a try to install it ;) Go to the download site and get the most current eMule version. This version is based on the latest official Release, but makes also sure that the MobileMule implementation is the most current one. It is possible that the last eMule release has already the most current MobileMule protocol, in this case you will find a notice about it on the download site. Unpack the Zip-File and replace the your old Exe-File with the new one you just downloaded.
There are two possibilities to download MobileMule: WAP/OTA direct into your mobile phone or saving it on your PC and then transfer it to your handy with a datalink cable. If you have a datalink cable, the second method is recommended, because your Operator will probably charge you for OTA transfer, while the second method doesnt cause any costs. A guide to install MobileMule via WAP can be found on the download site. IF you dont know how to use your datacable, check your phone manual - it is impossible to explain this for all mobile phone types here.
3. Setup
MobileMule needs no further setup. However make sure that your phone settings (WAP, Security) are ok, so that MobileMule can access the internet. In most cases you wont have to change anything.
In eMule you have to activate the MobileMule server. Open the preferences -> Webinterface and click on "MobileMule enabled". Now enter a password, which you will need later to log in. If you use the webserver, make sure it is not assigned to Port 80, or the MobileMule server will not work.
Now you have MobileMule installed, read the rest of the guide to learn more about using MobileMule.
Preferences
You can reach the preferences form the loginscreen. Here is a description of all available options:
Port
With this option you can change the port which MobileMule uses to connect to eMule. You have to choose the same port in the preferences of eMule. Note: Some WAP Gateways do not allow to connections on ports other than 80. If you do not use a WAP gatway there should be no problem with choosing other ports.
Login Method
Here you can select which address format MobileMule should use to find your eMule. If you choose Client ID you have to enter the (high) ID which was assigned to your eMule when it connected to a server, for example "16777343". DynIP or IP lets you choose between your real IP of your PC (for example "212.101.30.14") or the address of a dynamic DNS, which allows you to connect to your eMule even if it changed its IP and you do not know the new IP(only if you installed a dynamic ip programm, please look into the manuals of your favourite dynamic DNS service). An example: "myMule.dyns.net"
Save Password
If you want MobileMule to save your password, enable this option. If you want more security and enter the password everytime you start MobileMule disable it.
Login
ClientID: Enter here the ID which was assigned to your eMule when it connected to a server. LowIDs will not work. Also your ID will change everytime when your IP changes. In future version there will be additional and easier options, which replace the ID (like Dynamic IPs, or an Accountname for an MobileMule account which you can create on this page).
Password: The password you selected in your eMule preferences for MobileMule.
If everthing works, you should now be able to loging, if not you will (probably) get an error message. here are some of the possible errormessages and their meaning:
Unexpected Servererror - MobileMule could not access the internet or it could not find your ID (IP). Make sure you securit settings allow MobileMule to access the internet and that your WAP/Web settings are right.
Wrong opcode received - The responding server was no MobileMule server. If you use a WAP gateway it could also mean that it could not find your ID/IP or that you operator does not allow to access the internet.
Password rejected - Well this should be quite clear :)
Wrong server version - Your eMule version is not compatible to your MobileMule version. Download the latest MobileMule and eMule files and try again
General Servererror - The server (emule) reported an error for some reason. Maybe there is a problem with your WAP Gateway which corrupted the message, but it could have many reasons
Important:
If you have any problems logging in, first try to use the option "Connection test". MobileMule will then try to connect to a server, which is for sure available and will response. If this test succeeds, but you cannot log into your eMule then the problem is located somewhere on your PC. Recheck if you started the MobileMule Server in eMule, if there was no Errormessage in the log and if you have set it to the default port, if you have used the correct ID or IP and if you firewall or router allows/forwards incoming connections on this port.
Status Overview
You can find some basic information about what your eMule does right now here. Everything should be selfexplaining (ok that sounds strange for a HowTo ;) ).
Downloads
On this screen you will see all current downloads and their status. Two red rectangles means this file is paused, a green circle indicates that this file has the waiting state while a filled green circle is a file which is currently receiving data.
You have 4 options here: Cancel, Delete and Pause/Resume should be clear. However be warned: currently there MobileMule will not ask you to confirm your selection if you choose to delete a file. The detail option leads you to the detail screen.
Preview
MobileMule can preview all movie files, which your eMule is currently loading or finished in its current session. Go into the "Finished Files" or "Downloads" screen and select Preview. eMule will try to grab the first frame from the selected movie, resize it to your mobile phones display size and send it.
The preview works with most codecs and video types, but there are some exception were eMule is not able to get a frame. In this case you will see an error message or a complete black image. Also you will only be able to use the preview if your phone has a color display and enough memory to recieve and draw the picture.
Also please keep in mind that the picture has a size of about 5-10KB (depending on the size of your display). This means that it will take a moment until the picture is loaded and it also means that if your operator charges you for transferred volume you should use this option careful.
File Details
This screen contains all information about a file, which you could also find in the eMule download window.
Search
Type the keyword you want to search for into the field (in the prior screen), select a file type and then click start. MobileMule will show you up the 15 results which have the most sources available. The number on the right will you you how many sources this file has. However it has max. 2 digits, meaning if there are more than 99 sources it will show 99.
You have two options here: Detail will show you more details about the selected file like the full name, filesize and how many sources it has and Download will tell eMule to download this file.
Commands
There are currently two commands available here. You can shut down your PC (and turn off power) or shut down eMule. Of course shutting down your PC will result in shutting down eMule too. Another note: Do not expect to be able to connect to your eMule after you used one of those commands ;)
System requirements:
- Java-enabled mobile phone
- Internet connection (WAP Gateway or direct Web access)
- port 80 must be open reachable for incoming connections
PocketColeco 1.0 beta
PocketColeco emulates the ColecoVision console on your PocketPC. more>>
It needs to be said that it provides a good old Z80A at 3.58MHz, 8 kilobytes of RAM and a true OS (with the Atari you had to tackle hardware directly...) A video processor managing 16 kilobytes of RAM to complete the package.
To emulate all this on an actual Pocket PC doesnt pose any insurmountable technical problem, I recall that the resolution of the ColecoVision was 256x192 pixels. Its all done by this excellent program that I recommend to anyone with a nostalgia of this machine, as the ROMs are extremely easy to find.
Notes:
1. These zips contain .exe files compiled for PDAs. They must be manually copied to your device.
2. Roms must be located under "My Documents", or one of its subdirectories. If you are placing roms on a CF card, create a directory of this name first.
3. You must have a copy of the GAPI library file "gx.dll" in your PDAs /windows directory. There are various versions of this file, depending on the device. These files can be found at:
http://www.microsoft.com/pocketpc/downloads/gapi12.zip
4. In case you really mess things up, and cant remember what you did...delete the file "Pocketcoleco.set" from your PDAs root directory!
Main features:
- - Support for all known catridge sizes and formats
- - Full 4 voice sound implementation, with volume, sample rate, and buffer size controls.
- - Standard controller support, with keypad onscreen
- - Bitmap screen image save feature
- - Full speed emulation
- - Last settings saved automatically
- - Save/Load Gamestates
- - Autofire support for both A and B fire buttons, individually. Pressing the fire key while this feature is enabled will function as "stop firing"
- - Full control over processing time during Horizontal and Vertical Sync.
- - Skipframe support for speed control
- - Adam emulation support.
Boolean Function Simplification Tool 1.0
A useful educational tool is presented for minimizing low order Boolean expressions. The algorithm follows the Karnaugh map looping approach and provides optimal results. more>>
The algorithm follows the Karnaugh map looping approach and provides optimal results.
For the implementation, C++ was used on the CodeWarrior for Palm Operating System environment.
In order to make the overall implementation efficient, the object oriented approach was used.
The proposed application can be used by students and professors in the fields of electrical and computer engineering and computer science.

CleverTexting Suomi Kieli 2.0
CleverTexting Suomi Kieli supports you a fantastic and beneficial Mobile Texting technology which makes predictions based on the statistical nature of a language instead of a dictionary more>>
CleverTexting Suomi Kieli 2.0 supports you a fantastic and beneficial Mobile Texting technology which makes predictions based on the statistical nature of a language instead of a dictionary and performs equally well across dictionary and non dictionary words. It offers single keypress typing in all languages of the world from your existing keypad and phone. It is also comfortable to your thumb while you type.
Along with a user interface innovation of dynamic key assignment, it offers a terrific advantage of single keystroke typing on limited keypad devices like the mobile phone. And offers a smoother typing experience to the user.
Major Features:
- Ergonomic: The most likely next characters are arranged to positions easiest for the thumb, as in Right hand and left.
- Ergonomic and Persistent: Alphabets retain their positions between two state transitions. This reduces jitter and improves searchability of characters.
- Legacy Keypa: dHeavy users of legacy keypad habitually look for keys there. In this implementation, alphabets are assigned legacy positions as best as possible.
- Legacy Colour: An extension of legacy, alphabets that could not be assigned legacy positions are shown highlighted to improve searchability.
- Nearest Key: The next likely keys crowd around the last used key.
- SMS Compression: The composed message is compressed before transmission. So you can pack in more text into the same SMS. Needs this application on both phones.
IMR-Snake 2.0
Slither around the board eating the little bits of food. more>>
System requirements:
- Palm OS 1.0, 7KB space.
MM Reversi for Symbian 1.0
A very quick and strong AI Reversi implementation - really a challenge! more>>
The board consists of 8x8 fields, the two players alternately put white and black stones onto the board. Your goal is to have the most stones at the end of the game. To do so, directly enclose your white opponent horizontally, vertically or diagonally.
All surrounded stones become yours - change to your black color. If you cannot surround stones, you have to pass. The game ends if the board is full or you and the computer have to pass.
The program individually fits boardsize to your Phones screensize, works in color, grayscale or black/white, playable on each Java Phone with at least 200 KByte Heapmemory (and 64 KByte linear accessible, older Siemens not). You can use 2,4,6,8 or joystick to move the cursor, press 5 or fire to place your black stone.
Main features:
- 6 different levels (Weak, Moderate, Normal, Good, Strong and Hard, the "Normal" level was tested with many other Phone Reversi Games without losing)
- shows your Move- Possibilities (optional)
- shows last Computer- Move
- animated stones (optional, if you have problems deactivate it)
- first Move for Computer or Player (startposition commutable too)
- really quick calculation and strong AI
- shows Time- Bar during calculation
- really small, only 16 KByte
System requirements:
- Symbian devices.
OpenDMTP 1.1.3
OpenDMTP (Open Device Monitoring and Tracking Protocol) is a highly configurable and extensible protocol for communicating with mobile devices over high-latency/low-bandwidth networks. more>>
There are many mobile GPS tracking devices on the market today with their own closed proprietary protocols. Searching the web for open protocols revealed only a few available for transferring data (including GPS information) between devices. However these solutions are generally designed for non-mobile applications and/or lack some of the low-bandwidth, configurable, and extensible features that mobile applications require.
Having an open protocol designed specifically for mobile devices has many advantages:
Targeted Event Generation: Many devices on the market are designed simply to transmit copious amount of GPS data to a back-end server hoping that the server can make sense of the data that it is receiving. The problem with this approch is that it tends to result in higher data transmission costs for information which will never be used. A protocol used for mobile applications need to be able to provide the flexibility to generate only the events that are pertinent to the specific application.
Network Efficient: Mobile devices typically have limited network connectivity, and in some cases data communication can be quite expensive (e.g. satellite). Because of this the protocol needs to be efficient in its dialog between the client and server. The communication needs to be optimized such that the necessary information can be conveyed with a minimum number of bytes in the least amount of time.
Transport Media: Differrent mobile applications will have their own unique way of communicating data back to the server. Some may use GPRS, or socket based communication, others may use satellite communication, while still others may use other forms of wireless communication, such as BlueTooth. The design of the protocol should be able to encompass all such transport media types, regardless of the type of transport in use.
Bi-directional: Some devices can support two-way communication (ie. GPRS, or other socket based connections), while others may only support one-way communication (ie. some satellite communication systems). With this in mind, a protocol should be designed to support both duplex (two-way) and simplex (one-way) communication.
Flexible Data Encoding: Most types of transport media allow for the transmission of binary encoded data. However, there may be some forms of media for which an ASCII encoded data packet is much better suited. A protocol designed with this in mind should be able to support both types of data encoding.
Configurable Messages: Due to the broad range of data types used in mobile applications, the protocol should be flexible enough to define standard messages, yet still allow custom messages within the framework.
Extensible: Not every mobile application is the same. Some require special handling and may have various types of inputs and outputs. A protocol designed for mobile applications should insure that the framework can be easily extended to incapsulate the specific needs of the device.
Small Footprint: Mobile devices typically have limited resources on which to run client code (ie. memory, processor speed). An open protocol designed with this in mind should be optimized to allow efficient implementation and should easily support devices such as PDAs, mobile phones, GPS monitoring devices, and other OEM micro-devices.
Industry Compatibility: Having an open protocol insures better compatibility between different client devices and service providers.
Reference Implementation: Having a reference implementation that showcases the major features of the protocol provides an easy starting point on which developers can add their own features and platform specific implementation without having to worry about how data gets from the client to the server.
OpenDMTP was specifically designed to suit all these needs, especially "Targeted Event Generation" and "Network Efficiency". The typical data plan for GPRS communication, for instance, is usually 1Mb per month. OpenDMTP was designed to optimize packet encoding to allow the collection of GPS information packets once every 3 minutes, 24 hours a day, 30 days a month, and still stay under the 1Mb data plan limit.
While XML is very extensible, it fails the "Small Footprint" and "Network Efficiency" requirements. Thus, it was discounted as a viable protocol solution. Many mobile devices do not have the resources necessary to be able to provide full XML parsing functionality. And an XML packet may need to be several hundred bytes in length just to send a few bytes of actual data. This alone would make the solution cost prohibitive for high-cost transport media such as satellite.
OpenDMTP also includes a full-featured commercial quality reference implementation to jump-start development.
System requirements:
- J2ME supported devices
Burning 1.0
Burning is a program considered an implementation of a burning flame which is created for the Palm Computing Platform. more>>
Burning 1.0 is a program considered an implementation of a burning flame which is created for the Palm Computing Platform.