用 Fable 5.1 修复字节码偏移,Urban Terror 成功跑进浏览器
levelsio 卡了半年的游戏移植,换 Fable 5.1 一下就修好了字节码错位,现在能开黑联机,老游戏复刻党别错过。
levelsio 尝试把基于 Quake 3 引擎的游戏 Urban Terror 通过 ioquake3 和 WASM 移植到网页端。6 个月前他用 Opus 5.5 处理时始终卡在加载阶段无法正常运行。改用 Fable 5.1 高强度模式后,模型定位到引擎结构体比 UT 字节码预期多 4 字节、导致实体列表读取错位的问题,并重写字节码完成修复。目前游戏已可在浏览器中 100% 运行,并附带多人联机服务器。
I keep going more niche with reverse engineered web-based versions of games
👉 https://t.co/MohU4A8Zel 👈
6 months ago I tried to reverse engineer Urban Terror
Urban Terror was kind of a Counter-Strike style mod on top of the Quake 3 Arena engine, I think @Erwin_AI got me to play this during COVID
Because it runs on Quake 3's engine like RTCW and Q3 itself, I thought I could just use ioquake3 and WASM to run it on web, then add a multiplayer server and it'd just work...
But no it didn't, I got stuck 6 months ago, it was buggy and wouldn't work, I kept trying and kinda got it to load but not really play
Today I tried it again with Opus 5.5 and again, I couldn't get it to work, giving up I did a last try with Fable 5.1 on high effort and it after awhile it did figure out the issue!
"The engine's struct was 4 bytes longer than what UT's bytecode expects, everything after that point (the entity count and the entity list) was read 4 bytes off"
It rewrote the bytecode and made it work!
So now we have another game preserved, running 100% the web via WASM, with a multiplayer server tied to it, so you can play with your friends 😊
Every model that comes out makes a bit more things possible and you can just keep trying old things that didn't work before
I see lots of people mod modern games now too which looks very cool too
Here I'm playing it with @marckohlbrugge a few minutes ago! Anyway you can play it with everyone else at https://t.co/MohU4A8Zel now :D