harbour-meliona

Rating: 
4
Your rating: None Average: 4 (2 votes)

Meliona — J2ME Emulator for Sailfish OS

A native Sailfish OS application that runs classic Java J2ME games
on your phone.If you want to reset the application, navigate to Settings > Storage and tap the resource path and config path options.

source code:https://gitee.com/yun_gitee/meliona

Requirements

  • Sailfish OS 5.0
  • Java 11
    • OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.20_8.tar.gz(e.g., Redmi K20)
    • zulu11.88.17-ca-jdk11.0.31-linux_i686.tar.gz(e.g., Example Mipad2)

Version

0.2-1 — Beta

  • Support gamebox import (add/edit/delete custom phone shells)
  • Support per-game orientation (portrait / landscape-left / landscape-right) 
  • Support display modes (original ratio / fit screen / skin fullscreen)
  • Support touchscreen input for J2ME pointer events (press/drag/release)
  • This update involves database modifications. Please reset the application.

0.1-2 — Beta

  • Add armv7hl & i486 build targets (no corresponding test hardware available temporarily)
  • Reduce application size by removing partial default Game box resources

0.1-1 — Initial release(Beta)

  • Game import with JAR manifest parsing and icon extraction
  • Hitmap-based game box skin system with per-key highlight masks
  • Stdio-based frame streaming from Java to QML
  • Game box (simulator skin) management with resolution filtering
  • Play config persistence (keyboard type, window mode, bound skin)
  • Splash-screen JDK detection and preference-based override
  • About page reading RPM spec metadata at runtime

Known Issues

  • background music is not supported
  • Game box skins import is not supported
Screenshots: 
Application versions: 
AttachmentSizeDate
File harbour-meliona-0.1-1.aarch64.rpm8.83 MB31/05/2026 - 18:41
File harbour-meliona-0.1-2.i486.rpm1.45 MB01/06/2026 - 18:07
File harbour-meliona-0.1-2.aarch64.rpm1.44 MB01/06/2026 - 18:07
File harbour-meliona-0.1-2.armv7hl.rpm1.43 MB01/06/2026 - 18:07
File harbour-meliona-0.2-1.aarch64.rpm1.59 MB06/06/2026 - 21:42
File harbour-meliona-0.2-1.armv7hl.rpm1.58 MB06/06/2026 - 21:42
File harbour-meliona-0.2-1.i486.rpm1.6 MB06/06/2026 - 21:42
Changelog: 

(none)

Comments

windes's picture

[defaultuser@XperiaXA2 ~]$ JAVA_HOME=/home/defau ltuser/java harbour-meliona [D] unknown:0 - Using Wayland-EGL [D] unknown:0 - [DatabaseConnection] 数据库路径: "/ho me/defaultuser/.config/com.unapp/harbour-Meliona /db/meliona_info.db" [D] unknown:0 - [ApplicationCore::getAppConfigVa lue] 查询应用设置值,( "APP_SETTING" , "ORIENTATION" , Q Variant(int, 0) ) [D] unknown:0 - [ApplicationCore::getAppConfigVa lue] 查询应用设置值,( "APP_SETTING" , "ORIENTATION" , Q Variant(int, 0) ) [D] unknown:0 - [ApplicationCore::setAppConfigVa lue] 存储应用设置值,( "STORE_SETTING" , "DATA_PATH" , Q Variant(QString, "/home/defaultuser/.local/share /com.unapp/harbour-Meliona") ) [D] unknown:0 - [ApplicationCore::setAppConfigVa lue] 存储应用设置值,( "STORE_SETTING" , "CONFIG_PATH" , QVariant(QString, "/home/defaultuser/.config/co m.unapp/harbour-Meliona") ) [D] unknown:0 - [ApplicationCore::getAppConfigVa lue] 查询应用设置值,( "APP_SETTING" , "JDK_PATH" , QVar iant(QString, "") ) [D] unknown:0 - [ApplicationCore::setAppConfigVa lue] 存储应用设置值,( "APP_SETTING" , "FLASH_HOME" , QV ariant(bool, true) ) [D] unknown:0 - [ApplicationCore::getAppConfigVa lue] 查询应用设置值,( "APP_SETTING" , "FLASH_HOME" , QV ariant(bool, false) ) [D] unknown:0 - [ApplicationCore::getGameList] 查 询游戏列表 [D] unknown:0 - [ApplicationCore::getGameList] 日 志目录 "/home/defaultuser/.local/share/com.unapp/ha rbour-Meliona/harbour-meliona-debug.log" [D] unknown:0 - [ApplicationCore::setAppConfigVa lue] 存储应用设置值,( "APP_SETTING" , "FLASH_HOME" , QV ariant(bool, false) ) [D] unknown:0 - 根据主键查询成功: "GameInfo{du='4a4e0b5a 140a5fb71e6e371059966000', name='Sonic Advance' aultuser/java/bin/java"
[D] unknown:0 - startGame: gamePath = "/home/def
aultuser/.local/share/com.unapp/harbour-Meliona/
4a4e0b5a140a5fb71e6e371059966000/1553_sonic_adva
nce_r.jar"
[D] unknown:0 - startGame: workDir = "/home/def
aultuser/.local/share/com.unapp/harbour-Meliona/
4a4e0b5a140a5fb71e6e371059966000"
[W] unknown:0 - startGame: 进程启动失败: "Permission d
enied"

[D] unknown:0 - SkinManager: generated 31 highli
ghts
[D] unknown:0 - 根据主键查询成功: "GameInfo{du='4a4e0b5a
140a5fb71e6e371059966000', name='Sonic Advance',
iconPath='/home/defaultuser/.local/share/com.un
app/harbour-Meliona/4a4e0b5a140a5fb71e6e37105996
6000/icon.png', gamePath='/home/defaultuser/.loc
al/share/com.unapp/harbour-Meliona/4a4e0b5a140a5
fb71e6e371059966000/1553_sonic_advance_r.jar', g
ameFormat='jar', gameSize=644469, dataDir='/home
/defaultuser/.local/share/com.unapp/harbour-Meli
ona/4a4e0b5a140a5fb71e6e371059966000', vendor='G
ameloft SA', version='1.4.0', createTime='2026-0
7-13 10:34:44', updateTime='2026-07-13 10:34:44'
, screenWidth=0, screenHeight=0, encoding='UTF-8
', remark='CLDC:CLDC-1.0, MIDP:MIDP-2.0'}"
[D] onCompleted:88 - [分辨率] 来源: 游戏盒子, 原始: 240 x 3
20
[D] computeLayout:223 - ========== 布局计算 ========
==
[D] computeLayout:224 - [容器] 宽: 1080 高: 192
0
[D] computeLayout:225 - [机壳] 原生: 1440 x 2560
显示: 1080.0 x 1920.0 偏移:( 0.0 , 0.0 ) 旋转: 0 °
宽高互换: false
[D] computeLayout:229 - [屏幕开孔] 大小: 542.3 x 726.0
起点:( 273.0 , 181.5 ) 终点:( 815.3 , 907.5 )
[D] computeLayout:232 - [游戏画面] 原生: 240 x 320 显示
: 480 x 640 起点:( 304.1 , 224.5 ) 终点:( 784.1 ,
864.5 )
[D] computeLayout:237 - [缩放] 显示模式: 2 自适应比:
2.259 整数倍: 2
[D] computeLayout:240 - ========================
======

Log of starting Meliona with Sonic.jar 240x320. Black screen. Underlined string is also on Sandboxing=Disabled. What permission is denied?..

windes's picture

Still not appear for armv7hl.

yun_L's picture

Could you clarify whether the problem is that the package cannot be installed or that the armv7hl package cannot be found? If the package cannot be found, you can directly visit OpenRepos.net, where I uploaded it. However, I am not sure how storeman identifies different versions.

birdzhang's picture

哈哈,好玩。

另外,只能竖屏吗?像植物大战僵尸是横屏的, 玩起来有点显示不全。可以下载 https://java.zixing.fun/java/jar/pvz.jar 测试一下。

yun_L's picture

是的,目前仅仅支持竖屏。更多分辨率与屏幕模式,将会在新的版本中得到支持

windes's picture

Thanks! Waiting for armv7hl so much!

yun_L's picture

The armv7hl build is ready now, feel free to give it a try.

windes's picture

Cool! Loaded, tryed. How to install java environment on armv7hl, could you explain?

I loaded zulu11.86.21-ca-jdk11.0.30-linux_aarch32hf.tar file. But what to do with it, how to install?

 

Copied all unpacked folders to filesystem, tried to select JDK11 folder - but it is possible to select only file, not folder! Tried select /bin/java file, /Welcome.html - not works. What to do?

 

Launched with command:

JAVA_HOME=/home/defaultuser/java harbour-meliona

Selected from Settings jdk11 file as /java/release

Now jar started and show phone skin (Nokia 6300 or Nintendo pocket). Tried 4 different jars - always black screen inside skin's display. What need else?..

 

 

And would you please make Meliona on english please? Very hard to understand interface.

 

roundedrectangle's picture

Hello! Where can I find the sources for your application, and will there be armv7hl and i486 versions of it?

yun_L's picture

Hello! The source code is available at: https://gitee.com/yun_gitee/meliona. I will release builds for armv7hl and i486 in the future.

Matias's picture

Hi, the repo appears to be private. I'm getting a 403 upon visiting.

yun_L's picture

try again

trial's picture

Me too.

yun_L's picture

try again