JAVA游戏馆

这个站是怎么跑起来的

页面里跑的模拟内核是 freej2me-web (FreeJ2ME 经 CheerpJ 编译到浏览器)。你在游戏库点「开始游戏」之后,浏览器会做四件事:

  1. 向本站 /api/jar/<id> 请求 jar 字节,该接口把请求转发到 java.52emu.cnxz2.php,由它的 302 决定文件真实所在域名;
  2. 在浏览器内存里把 jar 和一份 config/settings.conf 拼成 freej2me-web 认识的 app bundle;
  3. 把 jar 字节本身存进本机 Cache Storage,下次进来不再碰上游;
  4. 加载 /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 游戏绝大多数仍是受版权保护的商业作品。本站只是把已有的开源模拟器与公开索引接起来, 不构成对任何作品的分发授权,也不存放任何游戏文件。收录内容的权利归属与授权 一律以上游站点为准,详见 权利人与下架通道