PHEM - The Palm Hardware Emulator(M68k)
PHEM is an Android application that emulates the hardware of many different models of Palm Pilot built around the Motorola 68K (M68k) CPU. It is based on the Palm OS Emulator, a development and debugging tool originally created by Greg Hewgill and later developed by Palm, Inc.
PHEM can emulate models produced by Palm, Handspring, TRG, and Symbol, running Palm OS 1.0 all the way up to OS 4.2.
NOTE: PHEM emulates the Palm Pilot hardware. The Palm software must be provided in the form of a ROM image. See "Limitations" below.
In this case, a picture is definitely worth a thousand words. (These were taken from an original Droid; on most devices PHEM looks even better!)
|Palm m505 - 16-bit color||Handera 330 Hi-Res grayscale||Palm IIIc with skin|
- Supports black and white, grayscale, 8-bit, and 16-bit color. It even supports the Handera 330's "High Res" grayscale screen!
- Supports sound and (for versions of the Palm OS that support it) vibration.
- Supports multiple different "sessions" emulating different Palms - multiple models, multiple versions of a single model, or both.
- Allows you to use your device's storage as a virtual expansion card.
- Emulated Palms can communicate using your device's network connection (wifi or cellular).
- Supports network HotSync with a PC.
- Supports cutting and pasting text between the emulated Palm and your device.
- Supports hardware keyboards if present on your device, and software Android input methods (e.g. Swype).
- Supports "skin" files that precisely mimic the appearance of particular Palm devices.
- Supports most Palm "Hacks".
- Like MAME (which emulates arcade machines like Space Invaders or Defender) or NESoid (which emulates a NES game console), PHEM emulates Palm hardware only - a Palm OS ROM image is required to run.
- PHEM does not emulate Palm models with ARM CPUs (any Palm running OS 5.x). (If you require this, do check out the StyleTap emulator.)
- Some games and hacks that rely on undocumented hardware features may fail.
- Multi-touch is not supported on Android versions below Android 3.0 (Gingerbread).
The following are known issues that will be addressed in the next release:
- On some devices, GPS data can be passed to the emulated Palm faster than it can process it. Options will be added to throttle and filter the data.
- Cutting and pasting text for Chinese and Korean ROMs is currently problematic. Full detection of Palm encodings, and translation between Android and Palm encodings, will be implemented.
The following issues are under investigation for resolution in future releases:
- Actual RAM size for the m515 is limited to 8MB even when 16MB is specified. (The orginal POSE has this same issue.)
- There seems to be a rare condition where session files might become corrupted and set to 0 bytes in size. We are actively investigating this issue and trying to reproduce it. Please send reports of this problem, with any information about the circumstances, to email@example.com.
- The HotSync process is sensitive to the Android device sleeping, and in some cases to touch events on the screen. Addressing this may require adding the "Prevent device from sleeping" Android permission.
- Palm CPU timing is not always accurate, and on most devices tends to run fast. This is inherited from the original POSE code, which didn't try to match speeds. Work to improve timing accuracy is ongoing.
- Sony Clié support is in progress. This will allow support for 320x320 screens. However, the original code is Windows-only, so porting to Android (Linux) is a complex process and will take time.
PHEM can be found on the Google Play Store. It is available for all devices running Android 2.2 (Froyo) and later, running on ARM hardware. (Intel and MIPS support is intended in the future.)
PHEM currently has localization support for English and Japanese (thanks to Mini at mini.x0.com). We are always happy to add support for more languages! If you wish to contribute a translation, it's very simple. Just download the source code, edit the file "PHEM/res/values/strings.xml" with the translated text, and send the updated file to firstname.lastname@example.org.
Full documentation for PHEM is available:
- Quick Start - How to get PHEM up and running quickly.
- Using PHEM - The manual.
- Card Storage - Emulating expansion cards.
- FAQs - Frequently Asked Questions.
- Palm Basics - An introduction for the Palm newbie.
- Skins - Using Skins to mimic the appearance of different Palm models.
- Handera & TRG - Special considerations for devices made by TRG, Inc.
- Source Code - PHEM is available under the GPL.
Copyright © 2014 Perpendox Software LLC