红白机的游戏是怎样开发出来的?
FC游戏也有类似于今天的主机游戏的开发环境,但并不唯一。
简而言之,就是一台用于开发的电脑主机以及若干仿真外设。当然80年代的电脑主机和现在差别很大。代码图形也都是在这台主机上完成。编写语言为ASM(汇编语言)。卡带机时代主要的开发语言就是汇编,那时候不会用C语言。
下图是一些开发环境的例子,80年代初期用的是HP 64000,上面安装的PASCAL,但并不唯一。不同厂商所使用的环境有所差异。编写好的程序通过Emulation Probe上仿真测试,由于Emulation Probe代价很昂贵,并不是所有厂商都能有。没有该设备的情况下,就直接通过ROM仿真器插在FC实机卡槽上测试。
关于HP 64000的介绍,可以参考维基页面HP 64000
80年代后期标准开发环境是由INTELLIGENT SYSTEMS开发制定。由一块FC仿真板连接到富士通FMR系列电脑上进行开发调试。
富士通FMR系列维基介绍FMRシリーズ
IS是任天堂旗下所属公司,作为硬件和软件的开发支援公司,同时IS也有自己的知名游戏(火焰纹章,纸片马里奥,高级战争,瓦里奥制造等)
=============分隔线
日本FC的官方授权游戏最后一款是1994年的冒险岛4。在那之前或者之后,无论是中国国内还是国外,制作盗版的FC游戏卡带,都会有各自的开发硬件和仿真器。
图上这个就是个简易的仿真板,国外FC游戏爱好者自己做的。
改造过的NES主机(美版红白机),连接到仿真板用于调试测试。
用于烧录测试的卡带。
==============分隔线
在电脑技术发达的今天,仍然会有很多怀旧爱好者会HACK或者制作新的FC游戏。现今开发FC游戏,基本上全部都能在windows电脑上完成了。用于仿真开发的软件也非常齐全。比如NESASM,CC65,VirtuaNES模拟器等。当然,制作出来的游戏,可以在模拟器上运行,但并不表示做成卡带能在实机上玩。这时候仍然需要烧录卡或者其他卡带仿真设备来测试了。
下图为2010年和2012年由Sivak Games(国外民间爱好者)制作发行的战地小子1和2的实体卡带。(这个是美版红白机游戏卡带,造型外观都要比日版的大一圈)
下图是现在有售的通用FC烧录卡,对于怀旧玩家来说可以在实机上玩到大部分游戏。对于开发爱好者来说,则可以用来进行实机调试。
对nes的学习和研究我也有快十年的历史。
刚开始是阅读模拟器代码,期间查漏补缺,学习硬件知识,直到最后还是从最简单最基础的做起,写nes的测试程序。简而言之,当时我连程序都不会写,就想到写模拟器,这是本末倒置。
去年在几个大神的指点下,已经开始用fpga对ppu进行时序上的复刻(其实已经有国人完成这一壮举,从芯片版图分析电路,分析出门电路,仿真,最后用FPGA实现)。其实有很多开源的nes fpga代码,几乎都是功能上的仿真,不能达到时序上的一致。
回到问题上来:
NES的CPU是6502,NES代码都是用6502的汇编语言编写的。
为何不用C,理由很简单,那时候C刚刚发明。此外就算现在有了C编译器(cc65),但是效率低,占用资源高,总之缺点很多。
笔者有幸刚工作(2007年)的时候,就参与了很多汇编语言的项目,那时汇编也早就是个老古董了,当时我也是很抗拒使用,但是后来发现真的是很奇妙,能显著优化代码的空间和执行时间,对处理器有了进一步的理解。
NES游戏的开发环境:
软件就是汇编器了
硬件的话,那个年代我不太了解。看资料说是APPLE II(基于6502)和其他的一些仿真设备等。当然现在都是先在模拟器上测试的。
怎么才算是掌握了NES开发:
笔者以前看过一些爱好者做过的一些NES游戏,从游戏角度来说,可以算个游戏了。但是从NES硬件来说,根本没有利用NES的机能。
能明白以下几点,可以算是了解NES部分机能
1. SMB(超级玛丽)中横屏滚动,魂斗罗的竖屏滚动是如何实现的?
还记得小时候,玩SMB时,MARIO走过一段后,背景往左移动(在资源匮乏的年代,这个真的是太神奇了),一直想知道,之前的背景到哪里去了
2. SMB的分屏处理
小伙伴有没有注意到,SMB 人物移动时候,屏幕分上下2屏,上屏的分数金币那一栏是固定的,而下屏背景和人物是滚动的,这里面涉及到了sprite 0 hit检测,奥秘就在那个金币上
3. 切BANK技术
最简单的NES卡带,以SMB为例,代码/ROM占用32K, 图像/VROM占用8K
但是魂斗罗的卡带,代码/ROM 128K,没有图像数据。 其中就涉及到了BANK技术,此外图像数据也放在代码空间中
关于1和2点
网上有SMB汇编代码的注释和解析,可以搜索关键字SMBDIS ,好复杂的系统,没有耐心坚持下去。
后来我找到一个大神做的mario往前移动的,背景就滚动的简单DEMO(Advanced Nerdy Nights #4 (Sprite 0 Hit for a Status Bar) ), 一下子就明白了。
关3点
利用硬件来实现的,那些硬件就是我们现在都嫌弃的74系列的TTL芯片,看大家兴趣,我再写吧。
此外我发现,写verilog代码如果没有数字电路的基础,等于白搭,我现在又重新翻数字电路)
有错误的地方,请指正吧
目前就写这么多,有需要在更新吧
只知道CPU是6502,用的汇编开发的,别的真不清楚。之前有想法做个FC模拟器,可惜开个头就没时间弄了。
80年代的电脑主机和现在差别很大。代码图形也都是在这台主机上完成。编写语言为ASM(汇编语言)。卡带机时代主要的开发语言就是汇编,那时候不会用C语言。80年代后期标准开发环境是由INTELLIGENT SYSTEMS开发制定。由一块FC仿真板连接到富士通FMR系列电脑上进行开发调试。IS是任天堂旗下所属公司,作为硬件和软件的开发支援公司,同时IS也有自己的知名游戏(火焰纹章,纸片马里奥,高级战争,瓦里奥制造等)
日本FC的官方授权游戏最后一款是1994年的冒险岛4。在那之前或者之后,无论是中国国内还是国外,制作盗版的FC游戏卡带,都会有各自的开发硬件和仿真器。
游族旗下少年三国志竟存在用户服务问题CEO陈芳知情吗运营商财经吴碧慧文日前,上海游族信息技术有限公司旗下的少年三国志APP因用户投诉处理及时率低被点名整改,不知公司CEO陈芳是否知情?据了解,少年三国志是游族网络研发的一款三国题材的
寂然用貂蝉打野,还能冲上105段,法师打野成主流了?王者荣耀S25赛季快要结束了,下个月即将开启S26赛季,在新赛季中也有很多值得期待的内容。当然了,王者荣耀每次更新版本都会加入对英雄的调整,现在也是野核版本,打野才是核心,娜可露露
手游每日榜单(2022年1月13日)每日更新游戏榜单和新鲜资讯,关注我不迷路。关注我的都棒棒哒!今天是2022年1月13日,首先来看看今天的畅销榜单变化今天具体的榜单如下腾讯火影忍者排名第10。这是一款同名动漫改编的
方舟生存进化手游最强的造粪机器,有了渐新象肥料不愁方舟生存进化手游是一款很出色的生存沙盒手游,在这款手游里,玩家们可以体验到驯服远古恐龙,然后借助它们的力量统治世界的滋味。可实际上除了这些恐龙以外,还有一些生物也能发挥出巨大的作用
原神荒泷一斗流水曝光,比神里首日还高,有些出乎意料派蒙二次元游戏少见的人物设定,没想到还挺吃香的?冻梨人设有趣配音给力强度到位,不火很难啊这是冻梨截取了原神近半年,稻妻开启至今的流水数据,从左至右分别是神里绫华宵宫雷电将军心海达达
天堂W更新不了更新不动解决办法天堂w也已经上线了好长一段时间了,相信许多小伙伴们都已经爱了上了这款游戏,在这个黑暗的幻想世界中我们可以一起合作并且竞争,还有智能的人工翻译,但是最近在天堂w更新的时候有的小伙伴们
吃鸡上线11新地图度假岛,30人自带复活,新增滑索和图腾大家好,欢迎来到由小鱼干开讲的吃鸡新鲜事速报。众所周知,光子已经连续好几个版本,只更新花里胡哨的联动玩法。而这回千呼万唤,经典模式的更新终于来了!这天体验服进行了大更新,用旧版的客
幻塔手游海胆在哪刷新幻塔手游海胆在哪刷新?幻塔手游中,海胆是制作海胆蒸蛋必不可缺少的食材,很多玩家想要获取,但是不知道海胆在哪刷新,那就赶紧来看看下面小编的介绍吧!幻塔手游海胆刷新地点图文介绍1。海胆
特逗杯S7八强对阵出炉DOTA兄弟再续前缘昨晚,特逗杯S7结束了最后一个小组的争夺,最终15岁先输后赢淘汰Sok,与Chaemiko一起携手晋级八强。不过考虑到C组第二是Happy,所以比起D组第一,15岁D组第二的排名堪
魔兽9。2安度因召唤巫妖王,两堕落王子同台嘲讽乌瑟尔初诞者圣墓团本在测试服已经开始安度因的战斗,就PTR的情况来看,这确实称得上是史诗级的战斗!安度因作为联盟的至高王,经过典狱长的统御黑化,实力大增,而战斗过程也会出现神秘角色,吉安
织梦剧本杀复盘真相凶手是谁谋杀之谜需要复盘请私信小编,小编看到后第一时间回复您哦。故事类型情感欢乐治愈标准人数玩家6人DM1人测评时间45h测评分数情感欢乐推理故事背景你,上一次做梦是多久?还记得梦到什么了吗?又为