CC65 开发FC/NES 游戏(一)环境搭建(2021-04-27更新部分内容和修改部分错误介绍)
童年的红白机(又叫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/ 这里有更多你想要的内容
CC65 开发FC/NES 游戏(一)环境搭建(2021-04-27更新部分内容和修改部分错误介绍)相关推荐
- CC65 开发FC/NES 游戏(三)使用摇杆
CC65在我的文章(一)中可以获取到 或者直接去github下载cc65 这次的代码来自cc65的samples目录下的hello.c 并做了修改和注释 通过查看源码可以看到里面支持的机器类型 # ...
- 很久很久以前写的FC/NES 游戏ROM文件管理程序,许久没更新,用得着的试试吧
那是在很久很久以前了, 那时候才刚刚学习Win32 SDK编程,恰恰又学了Sqlite3数据库的使用,所以就写 了这么一个程序, 没什么特殊的功能, 就是把NES文件保存到数据库中, 支持搜索, 要查 ...
- FC(nes)游戏开发资源
美国的网站,所有NES模拟器(程序设计)方面的资料 http://nesdev.parodius.com 各种NES模拟器源代码 http://www.zophar.net/nes.html FCNE ...
- 最大的幻术-游戏开发-我的游戏构思-环境
最大的幻术-游戏开发-我的游戏构思-环境 游戏,具体而言是游戏软件.那么,通过软件来作为载体,通过软件实现内容.一款软件能不能称为游戏在于这款软件所提供的功能是不是游戏体验. 什么是游戏,我无法给出定 ...
- IOS开发基础之网易新闻环境搭建异步请求json,AFN网络封装第1天
IOS开发基础之网易新闻环境搭建异步请求json,AFN网络封装第1天 视频资料是2015年的,但是AFN是导入框架的关键文件,我尝试使用cocoapods安装最新的AFN,虽然成功了,但是版本太高, ...
- 2019-安卓开发环境搭建-经验分享-Eclipse(主要内容)+Android Studio
2019-安卓开发环境搭建-经验分享-Eclipse(主要内容)+Android Studio 0. 引言 1. 常见问题 2. 配置安卓开发环境 2.1 准备 JDK 环境 2.1.1 下载 JDK ...
- 强化学习——蛇棋游戏gym环境搭建
强化学习--蛇棋游戏gym环境搭建 学习强化学习精要核心算法与Tensorflow实现这本书中,关于蛇棋游戏利用gym搭建.游戏的规则非常简单,详细请参考冯超的书<<强化学习精要核心算 ...
- JSP开发的工具下载与环境搭建(Windows开发环境)
一.JSP开发的工具下载与环境搭建 JSP技术的强势: (1)一次编写,到处运行.在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改. (2)系统的多平台支持.基本上可以在所有平台上的 ...
- Neovim开发环境搭建(2021.07.01)
Neovim开发环境搭建(2021.07.01) 一.搭建环境 Ubuntu 21.04 Neovim 0.4.4 二.Neovim安装 # 下载 neovim,如遇网络问题可以采用 https:// ...
最新文章
- 【研究院】浅析小米与它的AI生态
- HDU 4883 Best Coder Round 2 TIANKENG’s restaurant 解读
- java aop注解拦截_Spring AOP 拦截指定注解标识的类或方法
- nginx应用总结(1)--基础认识和应用配置
- Statefulset:部署有状态的多副本应用
- VScode 环境 配置
- 上下文无关问法cfg
- python 服务器_使用 Python 开发 EMQ X MQTT 服务器插件
- php move函数,php – 在null上调用成员函数move()
- keepalived实现双机互备
- html中文本框角度旋转,如何设置Word文本框旋转,任意角度调整文本框的方向?...
- 牛客网暑期ACM多校训练营(第二场)
- [北京活动]Ruby网站架构案例分享──财帮子FreeWheel(10.19 北京)
- Win10开始菜单打不开怎么办?
- solidworks宏按钮的制作
- selenium click点击无反应问题解析
- 城 市 名 经 度 纬 度
- Oracle、Mysql数据库编程开发基本操作命令语法脚本_基础篇(入门级)
- Ubuntu 挂载U盘
- 【Java学习0331】多线程