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]

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; 14 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

History

edit

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

edit

JSR lib loading

edit

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

File system access

edit

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

edit

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]

 
Minimum device skin

Skin, screen and window size configuration

edit

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

edit
  • 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

edit

Android

edit

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]

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

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

edit

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

Maemo

edit
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

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

edit

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

mpowerplayer SDK

edit

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

edit

MicroEmulator as Opera Mini sandbox

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

MicroEmulator as J2ME SDK

edit
  • 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 the Eclipse ititially there was opensource bridge plugin EclipseME created,[89] but Eclipse 1.7 and later got own bridge plugin.[90][91][55][92][93]
  • MicroEmulator available as org.microemu plugin for Apache Maven build automation tool.[94]

Publications

edit

Video

edit

See also

edit

References

edit
  1. ^ "MicroEmulator - Browse /microemulator/1.0". SourceForge.
  2. ^ Teodorczyk, Bartek (2010-01-14). "MicroEmulator 2.0.4 has been released". MicroEmu. Retrieved 2024-08-12.
  3. ^ "Build 3.0.0-SNAPSHOT.112 · barteo/microemu@259e576". GitHub. 24 May 2013.
  4. ^ a b "MicroEmulator". SourceForge. 2013-04-26. Retrieved 2024-08-12.
  5. ^ a b c Teodorczyk, Bartek (2009-11-11). "Project hosting migrated to Google Code". MicroEmu. Retrieved 2024-08-12.
  6. ^ a b c Teodorczyk, Bartek (2024-06-19), barteo/microemu, retrieved 2024-08-12
  7. ^ "MicroEMU | Acquired by All My Web Needs". www.microemu.org. Retrieved 2024-08-12.
  8. ^ "Index of /microemulator/download". snapshot.microemu.org. 2013-01-19. Archived from the original on 2013-10-17. Retrieved 2024-07-23.
  9. ^ "MicroEmulator - Frequently Asked Questions: Proxy". microemu.org. Archived from the original on 7 February 2014.
  10. ^ "let Opera Mini (in Microemulator, on OS X) hit local network". Server Fault. Retrieved 2024-08-14.
  11. ^ "microemu/microemulator/src/site/apt/usage.apt at master · barteo/microemu". GitHub. Retrieved 2024-08-12.
  12. ^ "microemu/microemulator/src/site/apt/extensions.apt at master · barteo/microemu". GitHub. Retrieved 2024-08-12.
  13. ^ "microemu/microemulator/src/site/apt/classloader.apt at master · barteo/microemu". GitHub. Retrieved 2024-08-12.
  14. ^ "A tutorial about MicroEmulator, a java applet to demonstrate midlets. Installing MicroEmulator as an application. Includes examples". mobilefish.com. Retrieved 2024-07-21.
  15. ^ SteppingStone (2018-01-14), SteppingStone/sstone-j2me-emulation, retrieved 2024-08-13
  16. ^ "MicroEmulator - Custom Skin Creation". microemu.org. Archived from the original on 2013-10-16.
  17. ^ "Skinning the MicroEmulator". www.petitpub.com. Retrieved 2024-08-12.
  18. ^ Bartek, Teodorczyk (29 December 2008). "3D Game?". Google Groups. There is no open source JSR-184 implementation for MicroEmulator, for the commercial license, contact me directly to my e-mail.
  19. ^ "J2ME-Loader/app/src/main/java/javax/microedition/m3g at master · nikita36078/J2ME-Loader". GitHub. Retrieved 2024-08-13.
  20. ^ a b Jussupgaliyev, Arman (2024-08-11), shinovon/KEmulator, retrieved 2024-08-13
  21. ^ a b "mpowerplayer SDK". mpowerplayer.com. Archived from the original on 2007-03-06. The mpowerplayer sdk also includes an experimental implementation of the Scalable 2D Vector Graphics API (JSR-226), the only public implementation outside of Nokia.
  22. ^ Romash (2023-05-10), rmn20/MascotME, retrieved 2024-08-13
  23. ^ woesss (2023-01-31), woesss/MascotCapsuleV3_java-wrapper, retrieved 2024-08-13
  24. ^ "Как запустить Opera Mini на компьютере". old.computerra.ru (in Russian). Retrieved 2024-08-12.
  25. ^ "Opera Mini для ASUS Eee PC". Хабр (in Russian). 2008-03-25. Retrieved 2024-08-12.
  26. ^ "Настройка GPRS и установка Оперы Мини на Eee PC". Хабр (in Russian). 2009-02-02. Retrieved 2024-08-12.
  27. ^ "Маленькая Опера для Большого Компьютера". KV.by (in Russian). 2008-08-14. Retrieved 2024-08-12.
  28. ^ "Microemulator - 4PDA". 4pda.to. Retrieved 2024-08-12.
  29. ^ Teodorczyk, Bartek (2008-11-04). "Running Java ME applications on Android". MicroEmu. Retrieved 2024-08-12.
  30. ^ Teodorczyk, Bartek (2009-11-25). "Converting JavaME applications to the Android platform (revisited)". MicroEmu. Retrieved 2024-08-12.
  31. ^ Shakarun, Nikita (2024-08-11), nikita36078/J2ME-Loader, retrieved 2024-08-12
  32. ^ Shakarun, Nikita (2024-04-16), nikita36078/microemu, retrieved 2024-08-12
  33. ^ woesss (2024-08-11), woesss/JL-Mod, retrieved 2024-08-13
  34. ^ Влад Фед (2022-04-15). "Mascot Capsule 3D" теперь в J2ME Loader... Retrieved 2024-08-13 – via YouTube.
  35. ^ "MicroEmulator on iPhone – Markus Heberling". 2008-11-24. Retrieved 2024-08-13.
  36. ^ Teodorczyk, Bartek (2008-12-04). "MicroEmulator coming to the iPhone". MicroEmu. Retrieved 2024-08-13.
  37. ^ AtoroGM (2009-11-17). Microemulator on iPhone crosscompiled with XMLVM. Retrieved 2024-08-13 – via YouTube.
  38. ^ Heberling, Markus (10 March 2009). "LWUIT on MicroEmulator on iPhone". markus.heberling.net.
  39. ^ "Install microemu on macOS with MacPorts". ports.macports.org. Retrieved 2024-08-14.
  40. ^ Gad, Ruediger. "MicroEmulator for Maemo (N900)". www.my-maemo.com.[dead link]
  41. ^ "Microemulator on Maemo SDK". microemu.org. Archived from the original on 2007-03-06.
  42. ^ "Downloads: MicroEmulator". Maemo. Retrieved 2024-08-12.
  43. ^ "[Announce] Microemulator S60 Skin (now in .deb) - maemo.org - Talk". talk.maemo.org. Retrieved 2024-08-13.
  44. ^ "MicroEmu JavaME 240x320 Skin (for N900 in landscape) - maemo.org - Talk". talk.maemo.org. Retrieved 2024-08-13.
  45. ^ "Microemulator compatibility list - maemo.org - Talk". talk.maemo.org. Retrieved 2024-08-13.
  46. ^ "MicroEmulator - maemo.org - Talk". talk.maemo.org. Retrieved 2024-08-14.
  47. ^ Karin (2021-09-10), glKarin/karinme, retrieved 2024-08-13
  48. ^ "KarinME". openrepos.net. Retrieved 2024-08-12.
  49. ^ "KarinME - MicroEmulator run on Harmattan - maemo.org - Talk". talk.maemo.org. Retrieved 2024-08-13.
  50. ^ "mpowerplayer". mpowers.net. Archived from the original on 2004-08-07.
  51. ^ "MIDP 2.0 on the Mac.. It works!!! – Not sLop". 2005-03-20. Retrieved 2024-08-13.
  52. ^ "MIDP 2 on Mac OS X is here !". justobjects.nl. Retrieved 2024-08-13.
  53. ^ "Mpowerplayer, Inc. Launches Unique "Try before You Buy" Platform for Mobile Java Games". WebWire. Retrieved 2024-08-13.
  54. ^ "Configuring the MobileSDK – IDEs Support (IntelliJ Platform)". JetBrains. 12 January 2005.
  55. ^ a b "Eclipse Community Forums: DSDP - Mobile Tools for Java (MTJ) » MTJ 0.9 RC1 Available". www.eclipse.org.
  56. ^ "Brian - documentation". trbtr.de. Retrieved 2024-08-13. On mpowerplayer.com there are 2 ways to try J2ME-Software without a mobilephone. Both of them work on any platform that has a working Java installation and they are free.
  57. ^ "WMA support for the mpowerplayer SDK freecode Japanese information - OSDN". osdn.net. 2005-11-18. Retrieved 2024-08-13.
  58. ^ "Opera Mini". Opera. Archived from the original on 2016-03-12.
  59. ^ "Opera Mini simulator". Opera Software. Archived from the original on 2013-02-23. Retrieved 2024-07-23.
  60. ^ Bruce, Alan (2008-10-29), Opera Mini inside Open Java inside Kazehakase inside Debian inside Maemo, retrieved 2024-08-13
  61. ^ "Opera Mini on your PC". My Opera. 3 April 2008. Archived from the original on 2012-08-25.
  62. ^ Kleinschmidt, Lars (29 March 2008). "Opera Mini - in 1280*1024!". My Opera. Archived from the original on 2012-09-19.
  63. ^ Dube, Ryan (2011-07-13). "How To Use Microemulator To Use The Internet From Low-Bandwidth Rural Areas [Windows]". MUO. Retrieved 2024-08-12.
  64. ^ Mister Nobody. "Пользуемся Opera Mini на субноутбуке или обычном компьютере". operafan.net (in Russian). Archived from the original on 2008-04-22.
  65. ^ Mister Nobody. "Opera Mini на PC". myopera.net (in Russian). Archived from the original on 2008-04-12.
  66. ^ "Installing Opera Mini emulator locally". sharovatov.github.io. Retrieved 2024-07-23.
  67. ^ Bovens, Andreas (2009-09-16). "Opera Mini 5 Beta Is Out". Dev.Opera. Archived from the original on 2023-11-11. Retrieved 2024-07-23.
  68. ^ "Настройка GPRS и установка Оперы Мини на Eee PC". Хабр (in Russian). 2009-02-02. Retrieved 2024-07-23.
  69. ^ "maemo.org - Talk - View Single Post - Opera Mini 4.1 for Maemo". talk.maemo.org. Retrieved 2024-08-13.
  70. ^ Kumar, Saurabh (10 January 2010). "Browse the web with lightning fast speed using this trick". techpp.com.
  71. ^ "Kyivstar and Yandex make traffic in mobile Yandex.Maps free". SudoNull. 2 June 2011.
  72. ^ Автоцентр (2011-06-02). "Яндекс.Карты теперь с бесплатным трафиком для абонентов «Киевстар» – останні автоновини на Автоцентр.ua". Автоцентр (in Russian). Retrieved 2024-08-14.
  73. ^ "«Яндекс-Карты» для «Киевстар» и дальше будут бесплатными". ITC.ua. 2011-10-28. Retrieved 2024-08-14.
  74. ^ Фурман, Олексій (2014-09-04). "Opera Software и «Киевстар» заключили соглашение о стратегическом партнерстве | Creativity Ukraine" (in Russian). Retrieved 2024-08-14.
  75. ^ "«Безлимитный интернет с Opera Mini на день» от МТС теперь стоит всего 1 гривну". ITC.ua. 2014-10-20. Retrieved 2024-08-14.
  76. ^ "100 тыс. абонентов «МТС Украина» воспользовались услугой «Безлимитный интернет с Opera Mini»". ko.com.ua (in Russian). Retrieved 2024-08-14.
  77. ^ "«Киевстар» предложит своим абонентам специальную версию Opera Mini - PC Week/UE". www.pcweek.ua. Retrieved 2024-08-14.
  78. ^ "Безлимитный интернет с Opera Mini - PC Week/UE". www.pcweek.ua. Retrieved 2024-08-14.
  79. ^ "Анлим с Opera Mini - посоветуйте Java-эмулятор на комп и как качать через него? (-) (Просьба)". cells.ru. Retrieved 2024-08-12.
  80. ^ "Абоненты МТС «прокачали» через браузер Opera Mini 600 терабайт информации". Экономическая правда (in Russian). Retrieved 2024-08-14.
  81. ^ aNNiMON (2024-05-15). "Рассвет и закат мобильного программирования" [Sunrise and sunset of mobile programming]. annimon.com (in Russian).
  82. ^ "Janino, Preverifier, JarBuilder - Скачать бесплатно". seclub.org. Retrieved 2024-08-14.
  83. ^ "J2ME SDK Mobile - Скачать бесплатно". seclub.org. Retrieved 2024-08-14.
  84. ^ ozuffy (2012-11-14). "J2ME SDK Mobile". ozuffy. Retrieved 2024-08-14.
  85. ^ "Build J2ME apps with a J2ME phone - From the archive". elvischidera.com. Retrieved 2024-08-13.
  86. ^ "Jasmin". PS Мир смартфонов (in Russian). Retrieved 2024-08-14.
  87. ^ says, Jane Andreas (2009-02-16). "Creating deployable MIDlets with free software". François' Weblog. Retrieved 2024-08-13.
  88. ^ "Eclipse Community Forums: DSDP - Mobile Tools for Java (MTJ) » Using ProGuard as preverifier with MicroEmu?". Eclipse. Retrieved 2024-08-13.
  89. ^ "EclipseME". SourceForge. 2012-12-08. Retrieved 2024-08-13.
  90. ^ Boabby, Shug. "Plugin for Java 2 Mobile Edition Development for Eclipse". gmane.org. Archived from the original on 2007-01-29. Pure Java emulators (e.g. MicroEmu and MPowerPlayer)
  91. ^ Skerrett, Ian (15 October 2008). "New Eclipse MTJ Release Eases Cross Platform Development for Mobile Java Applications | The Eclipse Foundation". www.eclipse.org.
  92. ^ "Eclipse offers mobile development tools". Computerworld. 16 October 2008.
  93. ^ "DSDP Mobile Tools for Java Project". SlideShare. 2010-04-19. Retrieved 2024-08-13.
  94. ^ "MVN Repository: org.microemu". mvnrepository.com.
  95. ^ Gawroriski, Stephanie. "SquirrelJME: SquirrelJME". multiphasicapps.net. Retrieved 2024-08-12.
  96. ^ Dandawate, Saket (2024-07-30), hex007/freej2me, retrieved 2024-08-13
  97. ^ "ME4SE". kobjects.org. Retrieved 2024-08-13.
  98. ^ "Running me4se on PocketPC (WindowsCE)". me4se.org. Retrieved 2024-08-13.
edit