超级马里奥兄弟使用的编程语言是什么?[关闭]


65

超级马里奥兄弟(Super Mario Bros.)无疑是迄今为止创造的最著名的视频游戏,销量高达4023万册。http://en.wikipedia.org/wiki/List_of_best-selling_video_games

它是用什么编程语言编写的?有人有原始代码参考吗?


7
我感到很多旧的NES游戏都是用特定于机器的程序集编写的。
meagar


7
不是重复的,因为这要求从特定游戏中获取特定代码示例。
AttackingHobo 2010年

5
我看不到有很多“ X用什么语言写的?”的价值。问题,无论X多么显着,除非由于开发平台而显眼。此外,它还要求提供游戏的特定代码示例,而这些游戏的示例代码仍受版权保护(并且仍在出售中),并且无意提供源代码。

3
@Toad:是的,但是您通常无权在线发布它,也无权下载副本(即使您自己拥有游戏),也无权根据自己的代码阅读来制作衍生作品。

Answers:


76

6502组装机

这是一个有关黑客ROM的论坛页面。http://forums.selectbutton.net/viewtopic.php?t=26956&sid=1a883209e1ba63877bcd58c007bb63ae

它也应该包含您需要的任何代码引用。

下方的几篇文章提供了一个指向zip文件的链接,该文件包含编辑/修改游戏所需的这些项目。

  • ca65- 来自http://www.cc65.org/6502汇编编译器
  • ld65- 来自http://www.cc65.org/6502链接器
  • smbdis.asm-全面的超级马里奥兄弟拆装
  • smb.chr-超级马里奥兄弟图形(字符ROM数据)
  • smb.hdr-超级马里奥兄弟ROM头(iNES头)
  • MAKESMB.BAT-我制作的一个批处理文件,它可以自动执行编译过程。
  • 6502jsm.doc-6502指令的摘要。

6
哇,完美的答案!荣誉
DFectuoso

31
我自己对这个答案感到困惑。基本上,您指向的是可执行文件(ROM),并声称它是用汇编语言编写的...因为它是反汇编的。它是一个可执行文件;当然可以拆卸了。按照这种逻辑,曾经编写的每个C / C ++程序实际上都是用汇编编写的。为了证明这是用汇编语言编写的,您需要实际证明Nintendo是用汇编语言编写的,而不是您可以反汇编可执行二进制文件。
Nicol Bolas 2012年

52

几乎所有的NES游戏都是以6502汇编语言手写的,与Commodore 64,Apple [e]等中所使用的相同。很少有用C编写的游戏因其NES仅为2Mhz而非常慢并具有2Kb的板载RAM(带有8Kb的窗口,可让盒带更多地插入)。精心设计的组装可以充分利用NES独特的架构,效率更高。

停下来想一想……《超级马里奥兄弟3》和《柯比冒险》等游戏的运行频率为2Mhz。比较它们吞噬了千兆赫兹和数百兆内存的当今游戏的丰富程度……


3
@Lohoris我刚刚登录以投票赞成该评论。令我惊讶的是,我已经做到了
NSAddict 2013年

5
用C语言编写的许可NES游戏的示例是什么?
tgies

1
[需要引用]
Almo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.