MicroEmulator
   HOME

TheInfoList



OR:

MicroEmulator (also MicroEMU) — is a
free and open-source Free and open-source software (FOSS) is software available under a Software license, license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term ...
platform independent Within computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform softw ...
J2ME Java Platform, Micro Edition or Java ME is a computing platform for development and deployment of porting, portable code for embedded system, embedded and mobile devices (micro-controllers, sensors, gateways, mobile phones, personal digita ...
emulator allowing to run
MIDlet A MIDlet is an application that uses the Mobile Information Device Profile (MIDP) of the Connected Limited Device Configuration (CLDC) for the Java ME environment. Typical applications include games running on mobile devices such as smartphones wi ...
s (applications and games) on any device with compatible
JVM A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally descri ...
. It is written in pure Java as an implementation of
J2ME Java Platform, Micro Edition or Java ME is a computing platform for development and deployment of porting, portable code for embedded system, embedded and mobile devices (micro-controllers, sensors, gateways, mobile phones, personal digita ...
in J2SE.


History

In November 2001, MicroEmulator project has been created on
SourceForge SourceForge is a web service founded by Geoffrey B. Jeffery, Tim Perdue, and Drew Streib in November 1999. SourceForge provides a centralized software discovery platform, including an online platform for managing and hosting open-source soft ...
. On 31 March 2006, MicroEmulator version 1.0 has been released. In November 2009, project moved to code.google.com, and after
Google Google LLC (, ) is an American multinational corporation and technology company focusing on online advertising, search engine technology, cloud computing, computer software, quantum computing, e-commerce, consumer electronics, and artificial ...
closed it, development moved to
GitHub GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
. 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. All sources and binary previously released on SourceForge,
Google Code Google Developers (previously Google Code) , application programming interfaces (APIs), and technical resources. The site contains documentation on using Google developer tools and APIs—including discussion groups and blogs for developers usin ...
and GitHub preserved as open-source, but development stalled since then.


Features

* Supports loading MIDlet from JAD or JAR file (locally stored or remotely accessed via URL) * Supports various
Java API There are two types of Java programming language application programming interfaces (APIs): * The official core Java API, contained in the Android (Google), SE (OpenJDK and Oracle), MicroEJ. These packages (java.* packages) are the core Java ...
s and JSRs (Java Specification Requests): **
MIDP 2.0 Mobile Information Device Profile (MIDP) is a specification published for the use of Java on embedded devices such as mobile phones and PDAs. MIDP is part of the Java Platform, Micro Edition (Java ME) framework and sits on top of Connected Lim ...
(JSR 118) **
CLDC The Connected Limited Device Configuration (CLDC) is a specification of a Software framework, framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation. The CLDC i ...
1.0 (JSR 30) ** CLDC 1.1 (JSR 139) ** Generic Connection Framework API (GCF) ** File Connection and PIM API (
JSR 75 PDA Optional Packages for the J2ME Platform JSR 75 is a specification that standardizes access in the Java on embedded devices such as mobile phones and PDAs to data that resides natively on mobile devices. JSR 75 is part of the Java ME framework ...
) ** Bluetooth API ( JSR 82) ** Wireless Messaging API (WMA, JSR 120) ** Multimedia API (MMAPI, JSR 135) ** Location API (LAPI, JSR 179) ** Record Management System API (RMS) **
LCDUI Mobile Information Device Profile (MIDP) is a specification published for the use of Java on embedded devices such as mobile phones and PDAs. MIDP is part of the Java Platform, Micro Edition (Java ME) framework and sits on top of Connected Lim ...
, Nokia and Siemens UI APIs *
Platform independent Within computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform softw ...
(
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
Mac OS Mac operating systems were developed by Apple Inc. in a succession of two major series. In 1984, Apple debuted the operating system that is now known as the classic Mac OS with its release of the original Macintosh System Software. The system ...
,
Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
, etc.) * Works with different GUI libraries (Swing, SWT, etc.) * Supports insert PC clipboard text into MIDlet's text input fields (but not vice-versa; useful if need to input case sensitive text string or special characters in MIDlet) * Supports control MIDlet via on-screen (virtual) or real keyboard keys, touch screen and mouse gestures, mouse scroll wheel and keys (also allows remap keys'
scancode A scancode (or scan code) is the data that most computer keyboards send to a computer to report which keys have been pressed. A number, or sequence of numbers, is assigned to each key on the keyboard. Variants Mapping key positions by row an ...
s, see " Skin, screen and window size configuration" section below) *
Screencast A screencast is a digital recording of computer screen output, also known as a video screen capture or a screen recording, often containing audio narration. The term ''screencast'' compares with the related term ''screenshot''; whereas screenshot ...
recording as
GIF animation The Graphics Interchange Format (GIF; or , ) is a bitmap image format that was developed by a team at the online services provider CompuServe led by American computer scientist Steve Wilhite and released on June 15, 1987. The format can ...
* Record Store Manager (logs MIDlet's internal system calls to RMS API) * Log console (logs for
debugging In engineering, debugging is the process of finding the Root cause analysis, root cause, workarounds, and possible fixes for bug (engineering), bugs. For software, debugging tactics can involve interactive debugging, control flow analysis, Logf ...
MicroEmulator and MIDlet) * Show mouse cursor position in MIDlet screen
coordinate system In geometry, a coordinate system is a system that uses one or more numbers, or coordinates, to uniquely determine and standardize the position of the points or other geometric elements on a manifold such as Euclidean space. The coordinates are ...
* Allows control network access and setup proxy for network connections * Runs in headless mode * Many
CLI CLI may refer to: Computing * Call Level Interface, an SQL database management API * Command-line interface, of a computer program * Command-line interpreter or command language interpreter; see List of command-line interpreters * CLI (x86 instruc ...
options


JSR lib loading

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


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 block after tag: ... org.microemu.cldc.file.FileSystem MicroEmulator should run with loading JSR 75 lib. On Linux, launch command to add into microemulator.desktop file is:java -cp /microemulator.jar:/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 Java applets were applet, small applications written in the Java (programming language), Java programming language, or another programming language that Compiled language, compiles to Java bytecode, and delivered to users in the form of Ja ...
, 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 A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally descri ...
and Java Web Start plugin to be installed on the user's PC or device.


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 Color (or colour in English in the Commonwealth of Nations, Commonwealth English; American and British English spelling differences#-our, -or, see spelling differences) is the visual perception based on the electromagnetic spectrum. Though co ...
display and antialiased font * ''Minimum device color'' — small phone with 128x128 color display and non-antialiased font * ''Minimum device'' — small phone with 128x128
monochrome A monochrome or monochromatic image, object or palette is composed of one color (or values of one color). Images using only shades of grey are called grayscale (typically digital) or black-and-white (typically analog). In physics, mon ...
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 Historically, a kiosk () was a small garden pavilion open on some or all sides common in Iran, Persia, the Indian subcontinent, and in the Ottoman Empire from the 13th century onward. Today, several examples of this type of kiosk still exist ...
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. 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): ** Mobile 3D Graphics API (M3G 1.0/1.1, JSR 184) ** Scalable 2D Vector Graphics API ( SVG, JSR 226) ** Java bindings for OpenGL ES (JSR 239) ** Mobile 3D Graphics API 2.0 (M3G 2.0, JSR 297) ** Mascot Capsule 3D API * Some MIDlets may require other JSRs, that are not availabale for MicroEmulator yet. * For input
Cyrillic The Cyrillic script ( ) is a writing system used for various languages across Eurasia. It is the designated national script in various Slavic, Turkic, Mongolic, Uralic, Caucasian and Iranic-speaking countries in Southeastern Europe, Ea ...
characters it might require to use special "device" skin.


Ports and forks


Android

MicroEmulator has official support for the Android platform. It is also possible to convert J2ME MIDlet JAR-packages into standalone APK files. ''J2ME Loader'' — is an enhanced fork of MicroEmulator for Android. ''JL-Mod'' — is an enhaced fork of J2ME Loader with the Mascot Capsule 3D API support.


iOS

MicroEmulator has been ported to
iOS Ios, Io or Nio (, ; ; locally Nios, Νιός) is a Greek island in the Cyclades group in the Aegean Sea. Ios is a hilly island with cliffs down to the sea on most sides. It is situated halfway between Naxos and Santorini. It is about long an ...
, but it requires to use
iOS jailbreaking iOS jailbreaking is the use of a privilege escalation exploit to remove software restrictions imposed by Apple on devices running iOS and iOS-based operating systems. It is typically done through a series of kernel patches. A jailbroken devic ...
technique to install it on
iPhone The iPhone is a line of smartphones developed and marketed by Apple that run iOS, the company's own mobile operating system. The first-generation iPhone was announced by then–Apple CEO and co-founder Steve Jobs on January 9, 2007, at ...
or other iOS device.


Mac OS

MicroEmulator officially supports Mac OS, but there is also package in
MacPorts MacPorts, formerly DarwinPorts, is a package manager for macOS and Darwin. It is an open-source software project that aims to simplify the installation of other open source software. It is similar in function to Fink and the BSD ports collection ...
repository.


Maemo

MicroEmulator has an official support for
Maemo Maemo is a Linux-based software platform originally developed by Nokia, now developed by the Free software movement, community, for smartphones and Internet tablets. The platform comprises both the Maemo operating system and Software development ...
platform, and there is custom MicroEmulator devices skins (themed to Nokia S60 smartphones with 240x320 and 640x360 displays) made for
Nokia N900 The Nokia N900 is a smartphone made by Nokia, launched at Nokia World on 2 September 2009 and released in November. Superseding the Nokia N810, the N900's default operating system, Maemo 5, is a Linux-based OS originally developed for the Nokia ...
. 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 QML (Qt Meta-object Language) is a user interface markup language. It is a declarative language (similar to CSS and JSON) for designing user interface–centric applications. Inline JavaScript code handles imperative aspects. It is associate ...
.


mpowerplayer SDK

''mpowerplayer SDK'' — is a
freeware Freeware is software, often proprietary, that is distributed at no monetary cost to the end user. There is no agreed-upon set of rights, license, or EULA that defines ''freeware'' unambiguously; every publisher defines its own rules for the free ...
enhanced fork of MicroEmulator, initially created for
MacOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
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). WMA (JSR 120) has been implemented for mpowerplayer SDK as an open-source library. 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 The Wayback Machine is a digital archive of the World Wide Web founded by Internet Archive, an American nonprofit organization based in San Francisco, California. Launched for public access in 2001, the service allows users to go "back in ...
.


Usage


MicroEmulator as Opera Mini sandbox

* Web applet with Opera Mini MIDlet running inside MicroEmulator has been placed on
Opera Opera is a form of History of theatre#European theatre, Western theatre in which music is a fundamental component and dramatic roles are taken by Singing, singers. Such a "work" (the literal translation of the Italian word "opera") is typically ...
official website. * MicroEmulator used together with Opera Mini MIDlet to browse Internet via metered networks and slow mobile GPRS connection on
netbook A netbook is a small-sized laptop computer; they were primarily sold from 2007 until around 2013, designed mostly as a means of accessing the Internet and being significantly less expensive than regular-sized laptops. At their inception in l ...
s (such as
Asus Eee PC The ASUS Eee PC is a netbook computer line from Asus, and a part of the ASUS Eee product family. At the time of its introduction in late 2007, it was noted for its combination of a lightweight, Linux-based operating system, solid-state drive (S ...
), low-end PCs and other mobile devices. * In some countries
mobile network operator A mobile network operator (MNO), also known as a mobile network provider, mobile network carrier, mobile , wireless service provider, wireless carrier, wireless operator, wireless telco, or cellular company, is a telecommunications provider of se ...
s provided free traffic or very lowcost plan with unlimited traffic for Opera Mini and some social networks and services via its J2ME clients (like
Facebook Facebook is a social media and social networking service owned by the American technology conglomerate Meta Platforms, Meta. Created in 2004 by Mark Zuckerberg with four other Harvard College students and roommates, Eduardo Saverin, Andre ...
, Yandex Maps, etc.). Use of MicroEmulator together with Opera Mini or other app with free traffic plan allowed to browse Internet fully free on PC (with
USB modem A mobile broadband modem, also known as wireless modem or cellular modem, is a type of modem that allows a personal computer or a router to receive wireless Internet access via a mobile broadband connection instead of using telephone or cable te ...
attached) at home or on netbook on the go.


MicroEmulator as J2ME SDK

* MicroEmulator, together with few MIDlets for programming directly on phone (J2ME SDK Mobile, Mobile BASIC, , etc.), could be used as a fully complete J2ME SDK: it is possible to write MIDlet source code, compile and preverify
Java class file A Java class file is a file (with the filename extension) containing Java bytecode that can be executed on the Java Virtual Machine (JVM). A Java class file is usually produced by a Java compiler from Java programming language source files ...
s, 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. The only external dependency is a JVM installed on PC or device to run Microemulator itself. * MicroEmulator could be used as alternative to
Sun The Sun is the star at the centre of the Solar System. It is a massive, nearly perfect sphere of hot plasma, heated to incandescence by nuclear fusion reactions in its core, radiating the energy from its surface mainly as visible light a ...
's and
Oracle An oracle is a person or thing considered to provide insight, wise counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. If done through occultic means, it is a form of divination. Descript ...
's JavaME emulators for various desktop Java IDE's. For
Eclipse An eclipse is an astronomical event which occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ...
, there was initially an open source bridge plugin known as EclipseME, but Eclipse 1.7 and onward got its own bridge plugin. * MicroEmulator available as org.microemu plugin for
Apache Maven Maven is a build automation tool used primarily for Java projects. Maven can also be used to build and manage projects written in C#, Ruby, Scala, and other languages. The Maven project is hosted by The Apache Software Foundation, where it was ...
build automation tool.


Publications

* * * * * * * * * * * * * *


Video

* * Alan Bazan.


See also

* SquirrelJME (JavaME 8 VM for
embedded device An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or Electronics, electronic syst ...
) * KEmulator (J2ME emulator for
Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
) * FreeJ2ME (J2ME emulator for
Libretro RetroArch is a free and open-source, cross-platform frontend for emulators, game engines, video games, media players and other applications. It is the reference implementation of the libretro API, designed to be fast, lightweight, portable and ...
and
RetroArch RetroArch is a free and open-source, cross-platform frontend for emulators, game engines, video games, media players and other applications. It is the reference implementation of the libretro API, designed to be fast, lightweight, portable and w ...
) * ME2SE (J2ME APIs for J2SE, runs on Windows Mobile) *
ScummVM Script Creation Utility for Maniac Mansion Virtual Machine (ScummVM) is a set of game engine recreations. Originally designed to play LucasArts adventure games that use the SCUMM system, it also supports a variety of non-SCUMM games by companies l ...
*
DOSBox DOSBox is a free and open-source MS-DOS emulator. It supports running programs primarily video games that are otherwise inaccessible since hardware for running a compatible disk operating system (DOS) is obsolete and generally unavailab ...
* PyPy * Python for S60


References


External links


Official website
() * * * *
MicroEmulator
on
Google Groups Google Groups is a service from Google that provides discussion groups for people sharing common interests. Until February 2024, the Groups service also provided a gateway to Usenet newsgroups, both reading and posting to them, via a shared user ...
* * * * * * (includes collection of MIDlets for J2ME programming) {{Mobile operating systems Computing platforms Platform, Micro Edition Platform, Micro Edition