CC65 开发FC/NES 游戏(一)环境搭建(2021-04-27更新部分内容和修改部分错误介绍)

15 篇文章 3 订阅
5 篇文章 0 订阅

童年的红白机(又叫FC,美国叫NES) 
开发语言,早期的码农们用的是6502的CPU上的汇编语言ASM(其实跟单片机差不多) 
简单的说不同的芯片提供了一堆指令让用户编程调用,但其实都是单调的地址引用赋值,还有各种寄存器(虽说学过51单片机的汇编,但当时的东西都还给老师了) 
对于现在的我们来说,也许或多或少还是能懂C语音的东西 
现在有了COCOS U3D 虚幻 等各种各样的引擎让我们能做游戏,不仅是电脑,还有手机,各大游戏主机 
但是对于童年的怀念还是想试着写一个FC的游戏 

下面是纯干货 不扯乱七八糟的了 

首先项目的主站(刚才看的时候这个项目还有在维护和代码的提交) 
主站 https://cc65.github.io/ 
项目 https://github.com/cc65/cc65 (这里仅有源码,如果用win环境,下载sourceforge里面的zip包)

文档地址 https://cc65.github.io/doc/

nes相关文档地址 https://cc65.github.io/doc/nes.html

win环境的代码 https://sourceforge.net/projects/cc65/files/cc65-snapshot-win32.zip (后面要用的也是这个) 
我用的时候某些放在amazon的下载墙里可能不是很好下到,放在最下面了 

特别注意: 
网上很多资料都是 cc65-2.13.x 
目前github上的版本是 cc65-2.17.x 区别还是有些的 (翻到最下面,我只写了几个
也就是说你网上看到的很多资料都只能用 2.13才能编译通过,我目前用的是 2.17
 

目前看到github网站最新的版本是 2.19 (实际使用 cc65 -V 显示的还是 2.18,github里面有提示这个)

我使用的环境是win7 x64所以后面的图片都是基于win7的截图 

首先是环境的搭建 
1.下载win环境的cc65 
2.解压缩到c盘 c:\cc65\ (也就是说打开这个目录要能看到bin文件) 
  你也可以放到其他地方,不过对应的配置需要你自己去修改了 
3.修改环境变量(看截图) 
  CC65_HOME=c:\cc65 
  CC65_INC=c:\cc65\include 
  CC65_LIB=c:\cc65\lib 
  path的结尾加上 %CC65_HOME%\bin 注意分号分隔(这个我没截图) 



4.测试 
  开始-运行 打开cmd 
  输入 cc65 -V 就是查看当前版本(2018-10-24的时候版本号是 cc65 V2.17 - Git f11ae87) 
  cc65 -h 查看帮助命令(不截图了,自己配好了试试) 
 

ok 
以上就是基础环境的搭建 
下一篇是程序猿期待的 hello world 
PS:关于IDE或者说用什么开发? 随便了,我懒得装vs,凑合用普通的编辑器或者记事本吧 


写在最后 
网上虽然罕见的能找到些 CC65的资料但是都比较旧了,有些东西在默默的改变着 
比如:waitvblank() 改名为 waitvsync()  等待到消隐,对于老电视来说电子管扫描枪是逐行逐点扫描,一个画面绘制完成之后需要回到屏幕左上角从新绘制,这个扫描从右下角回到左上角的时间就是 v-blank,在这个时间屏幕已经绘制完一帧画面,要开始绘制新的一帧画面,这时候对显示内容进行更新,我们就能看到一帧完整的画面。如果绘制一半就更新就会出现画面显示腰斩等问题。

单行:电子扫描枪从最右边回到下一行的最左边叫行消隐或水平消隐。

一屏:扫描从右下角回到左上角叫场消隐或垂直消隐。

但是git上对这个改变很奇怪,明明是没有合并进来,最后又改了,我也就没细看这部分代码何时改变的 

另外一个更新是,代码中加入了 joystick库调用手柄按键,这样就不需要我们再为了fc按键去写函数读取按键,但是判断按键还需要我们自己写。对应的使用方法后面的文章中已经写了。

再就是 get_tv 的函数来判断 N P制式,N是一秒60帧,P是50帧


文件到 http://happysoul.iteye.com/blog/2432717 这里下载  

万恶的csdn下载还要挣钱。。。

更多内容访问我的github https://happysoul.github.io/nes/ 这里有更多你想要的内容

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值