一个名为W4ME Station的开源项目,让原本只存在于现代浏览器里的WebAssembly游戏,直接跑在了2000年代中期的Java功能机上。该项目不依赖JIT编译器,也不需要网络连接,仅凭一个不到300KB的JAR文件,就能在支持CLDC 1.1和MIDP 2.0的老式手机上执行未经修改的WASM-4游戏卡带。
W4ME Station内置了13款可直接游玩的游戏,包括经典推箱子《Sokoban》、对战类《Wasm Wars》、解谜《Waternet》、扑克抽牌《Dragon Poker Draw》、井字棋《Tic Tac Toe》、俄罗斯方块变体《Watris》、国际象棋《Glowfish Chess》、迷宫《Duck Maze》、休闲《Rubido》、解绳《Untangle》以及《Sound Demo》和《Plasma Cube》演示程序。所有内置卡带与运行时一起被压缩进275KB大小的JAR包中,同时提供基础版和带JSR-75文件浏览功能的全量版两种变体,两个版本的体积均保持在300KB以内。
除了预装的13款游戏,用户还可以通过设备的本地存储或HTTP(S)、RMS、URL等方式加载额外的.wasm文件,扩展游戏阵容。运行时环境提供了对WASM-4全套主机API的支持,涵盖图形、输入、音频、磁盘、文本和追踪接口。在操作上,玩家可以使用实体键盘、键盘映射、指针触控,甚至一个屏幕上的虚拟触控板来控制游戏。每款游戏都拥有独立的持久化磁盘存储空间,通过校验和验证的RMS世代备份保证存档安全。
音频方面,W4ME Station利用MMAPI实现了采样音频播放,并支持流式MIDI、playTone音调生成,且在无法输出声音时自动退回到静音模式。系统还内置了全局的音效开关和主音量控制,所有设置都保存于RMS中,即使换游戏或重启应用也不会丢失。
该项目已发布1.0.0正式版本,SHA-256校验和随构建产物一同提供。官方文档中给出了已验证的兼容范围及已知限制。开发环境需在Linux下搭配just、Podman和Distrobox,工具链包含JDK 8、ProGuard、KEmulator、WABT等组件,版本相关的依赖项均由容器定义锁定,保证可重复构建。
W4ME Station独立于WASM-4的官方维护者,并非其背书产品。它通过一个持久化的固定宽度W4IR缓存来验证WebAssembly代码的执行,确保在资源极度受限的MIDP设备上也能稳定运行未经转译的原生游戏卡带。
热门跟贴