这个站是怎么跑起来的
页面里跑的模拟内核是 freej2me-web (FreeJ2ME 经 CheerpJ 编译到浏览器)。你在游戏库点「开始游戏」之后,浏览器会做四件事:
- 向本站
/api/jar/<id>请求 jar 字节,该接口把请求转发到 java.52emu.cn 的xz2.php,由它的 302 决定文件真实所在域名; - 在浏览器内存里把 jar 和一份
config/settings.conf拼成 freej2me-web 认识的 app bundle; - 把 jar 字节本身存进本机 Cache Storage,下次进来不再碰上游;
- 加载
/emu/run.html?app=<id>&bundle=1,模拟器内核通过postMessage向父页面索取 bundle 字节,交给LauncherUtil.importData解进 CheerpJ 的虚拟文件系统后运行。
字节是直接从父页面递进 iframe 的,不经过任何 HTTP 合成,所以没有 Service Worker 那一层不确定性。切换设置模板会重拼 bundle 并重启。
关于设置模板
模板写的是 FreeJ2ME 的 settings.conf,一行一条 key:value,可选项为
width height sound phone rotate
fps fontSize dgFormat forceFullscreen
queuedPaint textureDisableFilter。
每个游戏详情页会显示实际写入的内容。上游索引里带的画面尺寸参数只当作提示,
你手动选的模板优先级更高。
游戏文件存在哪
本站服务器不存放任何游戏文件,Pages 上只有索引元数据、页面和模拟器代码。
索引元数据(标题、分类、简介、截图地址)抓取自 52模拟器,jar 字节由访问者的浏览器
经 /api/jar/<id> 向上游取,取到就落在访问者自己的 Cache Storage 里。
响应头 X-Upstream 会标明这次字节实际来自哪个域名。
J2ME 游戏绝大多数仍是受版权保护的商业作品。本站只是把已有的开源模拟器与公开索引接起来,
不构成对任何作品的分发授权,也不存放任何游戏文件。收录内容的权利归属与授权
一律以上游站点为准,详见 权利人与下架通道。