马里奥是电子游戏厂商任天堂在一系列超级马里奥游戏中的一个卡通角色,他长着大鼻子,头戴小红帽,身着背袋装,是超出了游戏界的著名形象。在超级马里奥世界(SMW)里,玩家通过马里奥借助于恐龙耀西与同伴路易,在恐龙岛上,在营救被绑架的碧奇公主过程中,克服险阻,过关斩将,将反派角色库巴击败。
家有游戏娃自幼即玩超级马里奥系列游戏,对SMW当是钟爱有加,自从有了自己的手提电脑,更是下载了这款软件的电脑版模拟器,在PC机上运行,为破解SMW成为可能。游戏娃在2007年小学时注册smwcenteral网站,尝试自编简单程序破解SMW,从而开始了学习汇编语言并用其编程的经历。在这里简单介绍如何用smwcentral所推荐的各种软件工具及汇编语言编程来破解SMW,希望对与游戏编程感兴趣的家长小孩有所裨益。当然这里的破解不是非法上传下载游戏软件,而是在合法的前提下,通过对SMW代码修改移置增加新的游戏功能的兴趣,增进对计算机结构与系统编程的认识。
smwcentral.net是一家SMW游戏破解网站,它襄括了各种软件工具破解方法以及众多实例便于编程爱好者对SMW游戏破解,这些软件破解与SMW有关的内容有图象,音乐,精灵(sprites),等等,它还为破解其他电子游戏提供软件支持。此外,它也提供一个论坛平台,讨论各种与破解游戏有关的话题,让众多SMW爱好者相互交流。游戏娃曾作为smwcentral的主要成员(staff member),志愿服务直到高中毕业。
破解SMW需要了解以下几点。首先最重要的是assembler汇编语言的使用。汇编是一种用于CPU的低级编程语言,smwcentral重点讨论的是任天堂Super Nintendo Entertainment System (SNES) ,SNES的16-bit CPU采用65C816汇编。汇编语言可在破解SMW的实践中学习。其次是游戏的模拟器与ROM。这里的ROM主要涉及SMW游戏代码的存储与转录,以便在PC机模拟器上运行或反录。模拟器则是在PC机上通过读取所存储或破解了的SWM游戏代码,模拟SNES环境的执行程序。第三,了解16进制机器码,以及汇编代码与机器码的转换关系,这是因为在ROM破解过程中,有时直接更改机器代码更有效。最后,应该注意破解ROM后的文件发布上传,必须采用ROM补丁的形式,而不是将下述破解的ROM直接上传,以避免可能的版权纠纷。
smwcentral有许多65C816汇编语言编程教材,讨论论坛,以及年度的工作间,使人们有机会深入了解如何破解SMW ROM。有兴趣的可以参考以下链接https://www.smwcentral.net/?p=viewthread&t=98237。破解文件.asm一般可用PC机的文字编辑器notepad生成,smwcentral还有一专门用于编辑SMW的应用软件,即支持拖动/粘贴,关卡编辑,图形编辑,配色编辑,地图编辑,文字编辑等功能等等的具有图形界面的编辑软件套件lunar magic供人们使用。
如果有了破解SMW的汇编文件,如何与原始的SMW ROM结合,生成破解的SMW ROM呢?smwcentral提供了一款软件工具asar用来完成这项工作,将以.asm后缀的文字文件与原始SMW ROM组合在一起,生成新的.src ROM,可用模拟器调用执行。