当全世界都在翘首期盼6月5日即将发售的Switch 2时,我却忍不住回首往事。除了我的《动物之森》限定版Switch(以及那台《动物之森》主题3DS XL),我可能花了太多时间怀念任天堂那款迷人的紫色“午餐盒”。没错——我就是那种令人疲惫的GameCube死忠粉,每次直面会都望眼欲穿地期盼《永恒的阿卡迪亚》重制版。不过既然任天堂不做,模组制作者们或许能代劳。
抱怨到此为止。重点来了:模组制作者们已近乎完全反编译了《马里奥派对4》,使其成为首款几乎完成逆向工程的GameCube游戏。这项非官方、绝对未经任天堂许可的工程耗时18个月,为未来推出粉丝自制的原生PC移植版铺平了道路。
需要明确的是,这不同于模拟器运行——那种通过“欺骗”手段让软件在非兼容硬件上运行的方式。此处的反编译是对游戏源代码更为深入的逆向工程,只是实现PC可玩版本的第一步。
反编译技术能让开发者更便捷地获取游戏代码,从而大幅提升经典主机游戏在现代PC硬件上运行的灵活性。比如,某些雄心勃勃的模组制作者可能会为这款二十多岁“高龄”的游戏手工打造原生在线模式。我们已见过《班卓熊大冒险》《纸片马里奥》等任天堂64游戏的反编译案例,但《马里奥派对4》项目因其特殊性质成为了独特的挑战——不仅仅是因为它诞生于紫色主机时代。
据YouTuber MattKC Bytes透露,模组制作者Rainchus最初着手反编译1998年登陆任天堂64的首代《马里奥派对》,但该项目很快遭遇需要耗费巨量时间突破的技术瓶颈。转而攻坚2002年GameCube续作《马里奥派对4》反而事半功倍——特别是开发者当年编译代码时未进行优化处理,使得源代码更易被有心人破解。
作为科技记者,我倾向于将编译器优化理解为一种高效速记法:不同于人类程序员需要保留大量标签来维持代码可读性,编译器会剔除冗余内容,仅保留CPU运行游戏所需的核心代码段。用拟人化说法,就是编译器明智地使用方括号省略号,只为CPU奉上“干货”。
哈德森软件(Hudson Soft)的开发团队当年放弃对《马里奥派对4》进行编译器优化可能有几个原因:人类在调试和质检环节仍不可替代,而当游戏频繁崩溃时,经过优化的机器码就像被诅咒般难以解析。“调试符号”就是开发者定位问题代码的路标之一,它能建立编译后执行文件与源代码之间的索引关联。由于同社作品《哈德森精选集第四卷:高桥名人的冒险岛》与《马里奥派对4》使用相同引擎,反编译后者时意外曝光了前者的更多源代码。
虽然模组制作者仍需推敲大量代码段的原始写法,但至少不再是面对空白对话框的绝望处境。目前反编译工程已完成99.8%以上,仅剩少数复杂函数有待解析——这些内容对实际游戏体验并非必需。
在所有粉丝项目中,很少有比逆向工程一款平庸派对游戏源代码更极客、更迷人的事了——我暗自祈祷任天堂大佬永远别发现这个项目。这家公司向来对模拟器和硬件改装采取强硬法律手段(尽管任天堂博物馆曾被曝用Windows PC模拟SNES游戏)。此类游戏反编译项目迄今尚未引发任天堂直接诉讼,但随着任天堂经典游戏库宣布将扩展至GameCube作品,这些项目的安全期或许所剩无几。