MicroEmulator

Emulation software From Wikipedia, the free encyclopedia

MicroEmulator

MicroEmulator (also MicroEMU) — is a free and open-source platform independent J2ME emulator allowing to run MIDlets (applications and games) on any device with compatible JVM. It is written in pure Java as an implementation of J2ME in J2SE.[4][5][6]

Quick Facts Other names, Original author(s) ...
MicroEmulator
Other namesMicroEMU
Original author(s)Bartek Teodorczyk
Developer(s)Bartek Teodorczyk, Vlad Skarzhevskyy
Initial releaseMarch 31, 2006; 18 years ago (2006-03-31)[1]
Final release
2.0.4 / January 14, 2010; 15 years ago (2010-01-14)[2]
Preview release
3.0.0-SNAPSHOT.112 / May 24, 2013; 11 years ago (2013-05-24)[3]
Repositorymicroemu on GitHub
Written inJava
Size1.1 MB
TypeEmulator
LicenseGNU Lesser General Public License version 2.1; Apache License version 2.0
Websitemicroemu.org
Close

History

In November 2001, MicroEmulator project has been created on SourceForge.

On 31 March 2006, MicroEmulator version 1.0 has been released.

In November 2009, project moved to code.google.com,[5] and after Google closed it, development moved to GitHub.[6]

On 10 January 2010, the last stable version 2.0.4 has been released.

On 24 May 2013, the last preview version 3.0.0-SNAPSHOT.112 has been released.

After 2014, MicroEMU technology has been acquired by All My Web Needs company and all the MicroEmulator's docs and binary builds has been removed from the official site.[7][8]

All sources and binary previously released on SourceForge, Google Code and GitHub preserved as open-source, but development stalled since then.[4][5][6]

Features

Summarize
Perspective

JSR lib loading

By default MicroEmulator does not loads all distributed JSRs; user should load it per launch via custom commands instead.[11]

File system access

By default, MicroEmulator does not loads JSR 75 lib, required to grant MIDlets an access to file system.

To grant file system access, config2.xml file (on Linux, in ~/.microemulator/ folder) should include the next code <extensions> block after </windows> tag:[12]

<config>
    ...
    </windows>
    <extensions>
        <extension>
            <className>org.microemu.cldc.file.FileSystem</className>
            <properties>
                <property VALUE="{path/to/folder}" NAME="fsRoot"/>
            </properties>
        </extension>
    </extensions>
    <recordStoreManager CLASS="org.microemu.app.util.FileRecordStoreManager"/>
</config>

MicroEmulator should run with loading JSR 75 lib.[13] On Linux, launch command to add into microemulator.desktop file is:

java -cp {path/to}/microemulator.jar:{path/to/lib}/microemu-jsr-75.jar org.microemu.app.Main

On Windows, ; (semicolon) in command should be replaced with : (colon).

To load more libs, path to additional libs should be added each after each in a row into launch command.

Java applet for Web

MicroEmulator allows conversion of any J2ME app into a Java applet, that could be placed on a web page. This feature is used for demonstrating apps and games demos on vendors sites, but it requires JVM and Java Web Start plugin to be installed on the user's PC or device.[14][15]

Thumb
Minimum device skin

Skin, screen and window size configuration

MicroEmulator allows interface customization with skins called "devices" (see "Options > Select device..." menu) and distributed with few "devices":

  • Default device — phone with 176x220 color display and antialiased font
  • Minimum device color — small phone with 128x128 color display and non-antialiased font
  • Minimum device — small phone with 128x128 monochrome display and non-antialiased font
  • Large device — large phone with 240x320 color display and antialiazed font
  • Resizable device — full window resizible color display with antialiased font (could be forced to full screen kiosk mode)

Each "device" skin consist of XML-files, that stores definitions of window size, keys layout and assignations (according scancodes), text rendering options, etc. Optionally, skin could include image textures for "device" background and keys animation on key click and key relax. All files of "device" skin should be packed into ZIP or JAR, and its possible to include few "devices" into single package.[16][17]

Screen could be switched between portrait and landscape (rotated) orientation. Additionally its possible to show current MIDlet screen scaled (x2, x3 or x4) in a separate floating window.

Limitations

  • MicroEmulator lacks support for few Java APIs and JSRs often used in j2ME games (and implemented in other emulators and MicroEmulator forks):
  • Some MIDlets may require other JSRs, that are not availabale for MicroEmulator yet.
  • For input Cyrillic characters it might require to use special "device" skin.[24][25][26][27][28]

Ports and forks

Summarize
Perspective

Android

MicroEmulator has official support for the Android platform.[29] It is also possible to convert J2ME MIDlet JAR-packages into standalone APK files.[30]

J2ME Loader — is an enhanced fork of MicroEmulator for Android.[31][32]

JL-Mod — is an enhaced fork of J2ME Loader with the Mascot Capsule 3D API support.[33][34]

iOS

Quick Facts
Microemulator on iPhone crosscompiled with XMLVM
Working: List, Alert and TextBox
Video by AtoroGM on YouTube
Close

MicroEmulator has been ported to iOS, but it requires to use iOS jailbreaking technique to install it on iPhone or other iOS device.[35][36][37][38]

Mac OS

MicroEmulator officially supports Mac OS, but there is also package in MacPorts repository.[39]

Maemo

Quick Facts Opera Mini 4 / Java J2ME on Nokia n810 Internet Tablet - Maemo 4 (OS2008) ...
Opera Mini 4 / Java J2ME on Nokia n810 Internet Tablet - Maemo 4 (OS2008)
This is a demonstration of running Opera Mini web browser inside Sun Java for ARM.
Video by Kajetan Krykwiński on YouTube
Close

MicroEmulator has an official support for Maemo platform, and there is custom MicroEmulator devices skins (themed to Nokia S60 smartphones with 240x320 and 640x360 displays) made for Nokia N900.[40][41][42][43][44][45][46]

Here is a command to launch MicroEmulator on Maemo with JSR 75 lib loaded, to grant MIDlets file system access:

microemulator -libraryjars /opt/maemo/usr/share/microemulator/lib/microemu-jsr-75.jar

MeeGo/Harmattan

KarinME — is a MicroEmulator front-end launcher for MeeGo/Harmattan platform, with a GUI written in QML.[47][48][49]

mpowerplayer SDK

mpowerplayer SDK — is a freeware enhanced fork of MicroEmulator, initially created for MacOS as J2ME MIDP 1.0 emulator, later become a platform independed J2ME MIDP 2.0 emulator with own implementation of M3G (JSR 184) and SVG (JSR 226).[50][51][52][53][54][55][56]

WMA (JSR 120) has been implemented for mpowerplayer SDK as an open-source library.[57]

Development stalled after mpowerplayer SDK version 2.0.1185 release in 2007. ZIP of latest distribution package available for download from archived official website on Wayback Machine.[21]

Usage

MicroEmulator as Opera Mini sandbox

Thumb
Wikipedia website in Opera Mini 8 browser running in MicroEmulator with full-screen Eee PC device skin

MicroEmulator as J2ME SDK

  • MicroEmulator, together with few MIDlets for programming directly on phone (J2ME SDK Mobile, Mobile BASIC, MIDletPascal [pl], etc.[81][82][83][84][85][86]), could be used as a fully complete J2ME SDK: it is possible to write MIDlet source code, compile and preverify Java class files, package all files and resources of MIDlet project into JAR with JAD, and then run built MIDlet for test and debug without even leaving MicroEmulator window.[87][88] The only external dependency is a JVM installed on PC or device to run Microemulator itself.
  • MicroEmulator could be used as alternative to Sun's and Oracle's JavaME emulators for various desktop Java IDE's. For Eclipse, there was initially an open source bridge plugin known as EclipseME,[89] but Eclipse 1.7 and onward got its own bridge plugin.[90][91][55][92][93]
  • MicroEmulator available as org.microemu plugin for Apache Maven build automation tool.[94]

Publications

Video

See also

References

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.