最初是折腾移植 j2me 到开源掌机,偶然发现一个叫 doppio ,可以在浏览器上运行 jvm 。想着是不是可以搞个类似 4399 的东西,直接在浏览器上运行以前老的 j2me 游戏
地址
https://j2me.thetbw.xyz 使用方向键上下左右游戏
服务器网不咋滴,加载有点慢,总共需要加载 100m 资源,可以 f12 网络面板查看进度。后续去掉不需要的类加上压缩,加载体验应该会好一点。
截图
https://s2.loli.net/2023/10/23/vqnhIfRLUGWHD6E.png原理
通过
https://github.com/plasma-umass/doppio 创建一个浏览器中的 jvm
然后在浏览器中的 jvm 里面运行
https://github.com/j2me-preservation/midpath 这个 j2me 模拟器。
重写一个后端,将原模拟器的绘图方法绘制到 canvas 上。
目前问题:
按键的映射有问题,只有上下左右可用
按键不能按太快,不然也会 bug ,因为 js 是单线程,jvm 的多线程是通过 js 模拟出来的,可能是线程切换的问题
虽然性能差了很多,但是运行 j2me 这种游戏我觉得还是挺 ok 的,后面我也试了试《狂野飙车》,渲染没任何问题。
代码太乱了,暂时没有开源,上面两个开源项目太老了,直接编译会有一堆报错,现在算是可行性验证成功了,后面在整理下上面两个项目的代码