直接先放上整理的结果。
名词介绍
* J2ME:java me,java微型版本,安卓手机之前的功能机平台,例如诺基亚什么的,程序运行时会有一个咖啡logo,相信用过的不会陌生
* MRP: 斯凯平台,和java同时期的产物,区别是国产,然后比Java轻量,国内山寨机有些会用这个平台,说个冒泡社区,你应该不会陌生。不过有些手机虽然用这个平台,但是不允许自由安装app,但是内置了QQ,QQ游戏平台等软件。
**J2ME:**
* https://github.com/hex007/freej2me j2me模拟器,可以用在pc,树莓派等设备上,自己二次开发移植应该不困难
* https://github.com/pthalin/bittboy-j2me 故名思意,bittboy这个开源掌机上的j2me模拟器,我想也可以用在miyoo mini上,看issue中文显示有问题。
* https://github.com/j2me-preservation/midpath 也是一个j2me模拟器,很老了,相比freej2me来说,代码依赖更少,支持功能更多,依赖更少也就意味着移植更简单,可以在phonej2me,cacaojvm等'残缺'的jvm上运行
* https://phonej2me.github.io 看起来像是c写的j2me平台,可以在windows上运行,没多研究
* https://github.com/tomatsu/squawk 跑在嵌入式的jvm,本机编译成功了,没在嵌入式跑过,交叉编译太烦了。
* https://github.com/plasma-umass/doppio 一个基于网页的jvm,功能挺齐全,用起来也方便,支持java8,我想可以把上面midpath跑在这个基于web的jvm上,不就可以在网页上玩以前的j2me游戏了吗
* https://multiphasicapps.net/doc/ckout/readme.mkd 可以跑在 RetroArch(全能模拟器)上的j2me模拟器
> 上面的j2me模拟器大多不能直接运行,还需要个jvm,这才是我头疼的地方,移植jvm到嵌入式设备太头疼了。
**MRP:**
* https://vmrp.gddhy.net 在线模拟器,可以去回顾下童年
* https://ityouyou.com/ 一个论坛,可以下载到冒泡社区,还有一些关于mrp的东西,里面花钱的不要下
* http://sohehe4.ysepan.com 还是一个论坛,里面有些关于mrp的更多信息,应该是我目前看到最全的了
* https://github.com/vmrp/vmrp 用c写的mrp模拟器
* https://github.com/vmrp/vmrp.github.io 网页版源码,想要自己网页嵌入可以用这个
**其他**
* https://nostalgist.js.org/ nes网页模拟器,可以二开
* https://bell-sw.com/libericajdk-for-embedded/ 嵌入式的jvm
* https://blog.csdn.net/suolong123/article/details/111563559 arm嵌入式的移植教程
---
下面说下折腾的过程,起因是我上年买了个开源掌机,叫`miyoo mini`,长下面这样,还蛮精致的
![f78d74511646d67976119597084d2fa.jpg](https://thetbw-hk.cos.thetbw.xyz/blog/f78d74511646d67976119597084d2fa_1697444603618.jpg)
自带了FC、GB、GBA、MD,PS等模拟器,不过既然是开源掌机,肯定是折腾了,上面一些平台可能是一些人的童年,对于我的童年来说,当年的山寨机才是。
之前写了个pc运行j2me的[教程](https://blog.thetbw.xyz/archives/run-java-me-game-on-pc) 就想着能不能移植到这个上面
直接流水账式的说下我的过程
**1.** java也有arm版,就想能不能直接复制到机子的sd卡上运行 -> 成功
**2.** 运行awt界面-> 失败,因为这个机子只有SDL,不支持 x11界面,所以不能显示界面
**3.** 那换个思路,github上看到了个[JavaFrameBuffer](https://github.com/ttww/JavaFrameBuffer)的库,可以直接向framebuffer写数据;
先在自己电脑上测试了下,可以,然后交叉编译复制到机子上,运行,也成功
然后画一些图形试试,其他都成功了
但是显示文字失败了;
```
Fontconfig error: Cannot load default config file
Fontconfig error: Cannot load default config file
Exception in thread "Test" java.lang.Error: Probable fatal error:No fonts found.
```
**4.** 试了网上很多方法,比如复制字体,创建配置文件,都不行,也去瞅了好久java相关源码,真的头大,最后放弃。
可能是这个机子上没fontconfig的问题把,期间还看了一些其他jvm,想着换个简单的jvm,源码简单些,我把底层改了不就行了吗,结果还是我想多了,参考上面我提到的几个jvm,我都尝试过移植,一是要准备一堆环境,二是我还要上班,断断续续的经常中断
**5.** 后面陆陆续续想起这件事,也找找一些解决方案,
* 不知道用`SunFontManager.registerFontFile()手动注册字体行不行。
* https://github.com/pthalin/bittboy-j2me 这个项目不知道能不能在miyoo mini上直接运行,就算有中文显示问题,我想这不是难事
上面最后的尝试,后面有空再看吧,另外最近在折腾`doppio`这个jvm,把`j2me`跑在网页上应该比跑在嵌入式上简单一点吧,所以最近会优先折腾这个,毕竟网页版也好调试,那个机子我每次调试都是复制程序过去,然后再把sd卡拔出来看日志文件,太费事了。
最后,那个mrp平台是无意间想到了,毕竟是和java同期的产品,而且在我的映像中,这玩意的稳定要比java还好点,java则有很多兼容性问题,不知道是不是当时山寨厂商的问题,或者mrp作为一个国内平台技术支持完善点。
未完待续...
J2ME,开源掌机以及以前的山寨机平台