FC编程教程

2020-08-23 23:11

FC游戏编程教程

作者:维京猎人

FC就是任天堂出产的红白机的别称。在欧美的机型是灰白两色的,所以欧美称之为灰机或NES。

本教程目标:

弄明白FC编程的基础。

弄明白学FC编程的步骤,参考书有哪些。 弄明白FC编程用什么编程语言和工具。 弄明白FC游戏有什么要素。 弄明白FC游戏的流程如何。

弄明白一些简单的FC游戏是如何运行的。 弄明白一些简单的FC游戏是如何构成的。

第一关,数制,进制:

对于半路出家的人来说,电脑编程基本会了,进制当然也是早就会了,可以跳过,学下面的。 对于纯正的菜鸟,只会用QQ聊天,只会打字,或者会搞点图片这些与编程无关的功夫,进制是必修的。

要学哪几种进制呢?电脑编程就用到了2进制和16进制。 在分析程序,分析端口的时候就会用到2进制。

其实可以全部用2进制,但是非常麻烦,于是在编程上我们用更容易明白,更方便的16进制。

每4位2进制码就是1位16进制码。等于是缩短版。

参考书:这个太好找了,到处都有,自己找吧。

《数字逻辑》(第一章 基础知识),欧阳星明 著,华中科技大学出版社。 《数字电子技术》(第一章 数制与编码),江晓安 著,西安电子科技大学出版社。

名词,概念

2进制码,16进制码

第二关,简单的电脑编程:

现在,很多中学开始教学生BASIC了。甚至小学也会让优秀的学生学BASIC。我中学时,

学校让优秀的学生去学电脑,当时学的是LOGO和BASIC(我猜的)。我不是优秀学生,不能去学。

不管学什么编程语言,只要知道三个类型的命令就行了。1赋值,即”=”;2判断条件,即”if”;3跳转,即”goto”或”return”

这个要会变通的,会活学活用。不同的编程语言,文字上会有不同,现有的程序语言都是用这3种方式组合而成的。

初学者我建议用在电脑的DOS模式下编程,原因是这样比较纯粹。

DOS(或者说MSDOS)我推荐用Q-Basic。参考书《跟我学Quick BASIC》陈宗周,刘秉刚 著,云南大学出版社。

名词,概念

编程,命令,赋值,判断条件,跳转

学会了编程的朋友,我建议大家多用子程序,不要用goto。这对可读性有帮助,整个程序的结构会更好,方便以后修改。

如何来理解编程呢,我认为就是给电脑一序列的命令,电脑按步执行。

除非是写错了;电脑会一直执行下去。另一种情况是命令在文字上没错,可是编写不合理,造成电脑内部的硬件出错。

当然现在很多人学VB,拿VB作为入门也是可以的。只是个人认为在完全没有基础的情况下,接触视窗系统会令人沉迷于控件,而忘记了编程的核心-“算法”。

VB的参考书,非常的多,不用列举了,可是全部是入门级别的书,天下一大抄。不多说了,买两三本互补不足就是。 VB参考书《(译林)VisualBasic 6.0程序设计》[美]Scott Warner著,人民邮电出版社。

另外,很多人已经学会了C,(在学会basic的基础上学C,是比较快学懂的。C的精髓就是指针,会了指针,C也就会了。)那可以跳过本关了。

C语言的书,不光多,同时好多旧书写得非常深入。新版的C都不行。同时现在到了C这个级别,就有VC,VC++,JAVA等等了。

C参考书《C语言高级实用教程》尹彦芝 著,清华大学出版社。

高级语言学多了,对FC也不会有帮助的。因为FC更多的是用低级语言编写的。FC局限性非常大。

第三关,算法,数据结构

很多人会卡在这里,只有精通数学和编程的人才能过关。到达这关的人,在网络上已经不能算是菜的了。 算法

在学习编程的时候就会接触到算法。简单来说,就是计算的方法。不要看轻了计算,这里所说的计算是包括了集合论,代数系统,图论,逻辑命题理论在内的方法论。我的贪吃蛇就是用算法将一个得分的百,十,个位分离出来,一个一个显示。

参考书

《离散数学导论》徐洁磐 著 高等教育出版社。

深入研究算法的书: 《编译原理》,《形式语言、自动机和语法分析》

数据结构

在学习编程的时候会接触到数组,数组就是数据结构的基础。在C语言里还会有结构类型。那就完全可以实现多种数据结构。包括队,栈,树,堆,这些等等。算法总是依靠数据结构来实现的。我的贪吃蛇的蛇身就是用了“队”这个数据结构。

参考书

《数据结构》

第四关,硬件知识

前面说过FC是用低级语言编写的。那么就说我们要直接给硬件传数据,也就等于是操纵硬件了。

在BASIC语言和C语言里面,我们通过print指令来显示文字。可是用低级指令就是给一些特殊端口发送屏幕地址,再发送图形块的代号才能显示图形或文字。

呵呵,不要告诉我,你还想用C语言来写FC,也不是因为没有工具,工具可以用CC65,可是C用在FC里面实在是非常的有限。学下来你就知道什么了。

我们要知道有关FC的硬件的大部分。

V-Blank是什么,

Mapper和MMC是什么

如果有门电路和单片机的基础就最好了。

第五关,CPU和CPU的寄存器,CPU的汇编指令及对应的机器码

FC用的CPU是6502,

那么6502里面有什么寄存器呢,又有什么用呢。

CPU里面是必然有寄存器的,一般都会有几个寄存器的。

6502的寄存器,可以用来记录数据的有3个,就是A,X,Y。当然还有标志位等等。

6502的汇编指令用法(寻址)

汇编是最低级的语言了。汇编的指令分几类,

1传送数据指令,将数据在内存与寄存器之间传送。这个可以达到赋值的作用。 2比较指令、位检测跳转指令和无条件跳转指令。这个可以达到条件判断和跳转的作用。(循环是用条件判断和跳转来实现的)

3数据进栈出栈指令,和子程序跳转指令,这是在高级语言看到的子程序方法,(子程序跳转和返回也就是程序地址的进栈和出栈)。同时还有C里面见不到的中断。

4计算和移位运算指令。这个计算只有加减法,只能算0~255的整数。其它运算要靠自己编程实现。

汇编是不能不提寻址的。

寻址:就是得到数据所在的地址。寻址在FC中总共有十多种。传送数据可对应多达八个寻址方式。也就是对应8个机器码。一半的汇编指令只是一到两种寻址方式的。 C语言的指针就是靠多种的寻址来实现的。

6502的机器码

机器码:就是CPU直接读取并识别的代码。

有的汇编指令对应N个寻址,那么就有N个机器码与之对应;有的汇编指令只有一种寻址方式,那就只对应一个机器码。

另外某汇指令后机要带若干个操作数。识别出机器码之后,CPU就会知道后面有多少个操作数,那就接着读多少个数,读完之后,下一个读的码就会被认为是机器码了。

汇编工具

第六关,游戏的流程

如何才能达到游戏的效果? 流程大致分成两种:

1是好像BASIC或者C的编写方法。流水线式,一个工作到一个工作的做。

例如 清屏->显示图形->接收手柄信号->判断手柄操作->实现操作显示某图形->发出声效->然后判断结果->作出反应->又回到接手柄信号。

我的贪吃蛇就是用这个流程的,但我没有加声效。由于游戏简单,在手柄操作上不会的不适。 商业的游戏,正规的游戏都不是这样写的。可是如果游戏极简单,同时不带音乐。可以考虑用这个方式。作为练习也是可以的。

2是中断式。FC每隔约2毫秒调用一次中断。(这个间隔的时间由电视信号的制式而定。它跟vblank相关。 FC是电视游戏机,那自然与电视有关。很特技都是因此实现的。)在中断的程序里,实现音乐、读手柄、显示图形。在主程中要与中断的程序交流,协同运行。中断的开头和结尾我们会用到现场保护和现场恢复。在主程序和中断之间要建立公共变量,实现互锁,才能协同远行。参考书《计算机组成原理》(中断部分)

第七关,实施

嘴巴上说得动听不如真刀真枪干一番!

关于游戏里的一些操作的实现方式,这个才真正接触到游戏的本身。

提示:多看一些不同的理论,不同领域的,不同题材的。

例如多种操作变换的实现用上了最早出现的“图灵机”模式,或离散数学里叫同步时序,编译原理里面叫有穷自动机或有限状态机,硬件的书里面叫移位寄存器。

例如一个字符串的识别,用到了编译原理来实现,用上了硬件的优化方法来简化算法。 例如迷宫的AI,用到了数学上的迷宫解题的经典方法,右手贴墙法。或者用水漫迷城的方法来解。

以上说的方法就真的要靠创造力了。

我介绍几本古老的游戏书。我这有,可是以后都找不到了。

《IBM个人计算机的智力游戏》[美]罗伯特J。乔斯特 著 新时代出版社 1986

这本书是讲通用baisc上的,用ASCII码作为图形,设计游戏的书。这个趣味性好强。 《BASIC游戏程序选集》周正明 编 电子工业了版社 1985

这本书也是讲通用basic上的,用ASCII码作为图形,设计游戏的书。这本书的程序虽然是BASIC,可是后面的程序用上了AI。

《趣味电脑游戏程序》王颂赞 费德宝 著 科学技术文献出版社 1992

这本书是讲在中华机或AppleII上用basic编游戏的书。这本书不光说BASIC,还调用了机器码。

我看90年代的电脑杂志,国内的牛人都是basic和机器码混用的。FC听说也是那个年代的。呵呵。

第八关,音乐引擎

制作完美音效和背景音乐。

别说原创音乐,就是移值人家的音乐也是不容易的。要了解硬件音频发生器,要了解这些硬件的端口用法。

第九关,容量不足,

切页,有程序切页和字模切页两种。

Mapper主要就是扩容用的。就是切页。应用Mapper。Mapper总共有256个不同的号,就有256种方式。但常用的就是几种。每个游戏只挑一个mapper用。没有mapper功能就是0号。

程序要配合切页而要改写大部分地址。

本教程不断补充,扩展。待续……

更多关注 http://nicotine.knight.blog.163.com/blog/static/2692611220095703420602/


FC编程教程.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:控制公立医院特需服务规模措施与动态管理机制

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: