童年的红白机(又叫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/
这里有更多你想要的内容
童年的红白机(又叫FC,美国叫NES)开发语言,早期的码农们用的是6502的CPU上的汇编语言ASM(其实跟单片机差不多)简单的说不同的芯片提供了一堆指令让用户编程调用,但其实都是单调的地址引用赋值,还有各种寄存器(虽说学过51单片机的汇编,但当时的东西都还给老师了)对于现在的我们来说,也许或多或少还是能懂C语音的东西现在有了COCOS U3D 虚幻 等各种各样的引擎让我们能做游戏...
/** * 给出n个数字,代表直方图的条高,直方图每一条的宽度为1,请计算直方图中最大矩形的面积 * * 上图是每条宽度为1, 高度 =[2,1,5,6,2,3].的直方图 * * 图中的阴影
部分
是该直方图中面积最大的矩形,面积为10个单位 * 例如: * 给出的高度 =[2,1,5,6,2,3], * 返回10. */
* 给出n个数字,代表直方图的条高,直方图每一条...
现在最新版本已经是2.18了,所以我打算从下载开始讲起,并讲解编译,nmi的配置等
内容
,将
开发
环境
基本部署到位,以后不再赘述。
首先,官网地址https://www.
cc
65.org/
可以看到老的版本和资源还有,不过最新的在github上https://github.com/
cc
65/
cc
65
打开ftserver,看到只有2.13的版本提供下载,那就转去github
以后若网友有什么要长篇解答的问题,也在这儿作答。
作为第一波原创文章,我打算做一次小白示范。那就是一步一步的展示某个汇编编译器的用法。
*/========================================================================
有不明白,欢迎来向我提问。请加入我的Q群“兴趣” (790224822) 或者另一个我管理的Q群"学堂" (43371391)
=========================..
gpl
-
3.0
-
c64
这里包含的是GNU公共许可证3.0版的副本,该副本可以直接在可通过
CC
65 6502交叉编译器( )定位的计算机上显示。 默认情况下,Makefile使用soft80 conio驱动程序生成Commodore 64二进制文件,并且假定输出为80列。
分页显示80x25的输出。
希望可以将其用
CC
65编译的项目使用,以便可以按照上述许可证将许可证的副本放置在任何分发媒体上。 希望大家都觉得有用。
Thom Cherryhomes
翻译日期从2018年11月底开始逐步翻译,基于浏览器的翻译,重要地方逐句对比原和译文,有时候会加入些个人见解,让文字变得能像是句人话。
作者github地址:https://github.com/
nes
doug
作者的网站:
nes
doug
粘贴到CSDN格式没调,想看格式好的点下面
https://happysoul.github.io/
nes
/
nes
...
FC
模拟器
开发
之旅规约定义什么是
NES
?
NES
格式结构I
NES
I
NES
2.0
NES
ROM 图像解码TileCHR
-
BANK附录解析参考
什么是
NES
?
NES
(Nintendo Entertainment System的缩写),是Nintendo在20世纪80年代和20世纪90年代发售的一种家庭主机,俗称红白机,也是此类
游戏
机在日本以外的地区发行版本的缩写,在日本发行的
游戏
机型缩写为...
明纬
NES
350
-
24是一种开关电源,其原理图如下:
1. 输入电路:输入电压为AC 100
-
240V,通过漏电保护器、开关、线路滤波器等组件进行保护和滤波处理,确保稳定的输入电源。
2. 整流电路:输入电压经过整流桥整流,转换成直流电压,通过电容进行滤波,以去除电源中的纹波。
3. 高频开关电路:经过滤波后的直流电压进入高频开关电路,由开关管、变压器和二次电路组成。开关管控制开关频率,并通过变压器将输入电压变换为所需的输出电压。
4. 输出电路:经过变压器变换后的电压经过二次整流滤波处理,以得到稳定的输出电压。输出电路还包括过载保护电路、过压保护电路、短路保护电路等,以保护设备和电源的安全。
5. 控制电路:控制电路对开关管的驱动进行控制,以保持稳定的开关频率和输出电压。控制电路还包括反馈电路,通过对输出电压进行采样和比较,将反馈信号传递给控制电路以调整开关管的导通时间,实现输出电压的稳定控制。
总结:明纬
NES
350
-
24开关电源原理图主要包括输入电路、整流电路、高频开关电路、输出电路和控制电路等
部分
。通过这些不同的功能模块,输入电压经过滤波、变换和调节之后,可以得到稳定的输出电压,以满足设备的电源需求。
### 回答2:
明纬
NES
350
-
24是一款开关电源,它的原理图可以概括为以下几个
部分
组成。
1. 输入滤波器:该
部分
由电容、电感和滤波电阻组成,用于过滤输入电源的高频噪声和干扰,确保电源输入的稳定性和可靠性。
2. 整流电路:开关电源采用主动整流桥式整流电路,由四个二极管和两个三极管组成。具体原理是通过三极管的开关控制,将交流输入电压转换为脉冲状的直流电压。
3. 直流滤波电路:该
部分
主要由电容和电感组成,用于进一步滤波直流电压,去除残留的脉动电压,使输出电压更加稳定。
4. 开关控制电路:由主控芯片、反馈电路和驱动电路等组成。主控芯片负责控制开关管的开关频率和占空比,使之符合输出电压的需求。反馈电路用于检测输出电压,将其与设定值进行比较,通过反馈控制,调整开关管的工作状态,以维持输出电压稳定。驱动电路则负责提供适当的驱动信号,控制开关管的导通和关断。
5. 输出调节电路:该
部分
通过对开关管的开关频率和占空比进行调节,控制输出电压的稳定性和准确性,以满足用户的需求。
总之,明纬
NES
350
-
24开关电源原理图包括输入滤波器、整流电路、直流滤波电路、开关控制电路和输出调节电路等几个主要
部分
。通过这些
部分
的协同工作,实现对输入电源的转换和输出电压的稳定调节。
### 回答3:
明纬
NES
350
-
24是一款开关电源,其主要功能是将输入电压转换为输出电压,并通过控制电路实现电源的稳定性和可靠性。下面是明纬
NES
350
-
24开关电源的原理图解析。
明纬
NES
350
-
24的原理图主要包括以下几个
部分
:
1. 输入滤波电路:该
部分
主要由输入端的电感、电容和斩波二极管等组成,用于滤除输入电源中的高频噪声和干扰。
2. 整流电路:该
部分
主要由桥式整流电路构成,通过四个二极管将交流输入电压转换为直流电压,并经过滤波电容平滑输出。
3. P
FC
电路:功率因数校正(P
FC
)电路用于纠正输入电源的功率因数以提高电源的利用率。这
部分
通常包括一个P
FC
控制IC和相关元件,通过控制开关管的导通和关断时间来实现输入电流的调整,从而达到功率因数校正的目的。
4. 主变压器:主变压器是开关电源中的核心部件之一,通过变换电压和电流来实现高效率的电源转换。
5. 开关电源控制电路:该
部分
主要由PWM控制芯片、反馈电路和保护电路组成。PWM控制芯片负责产生开关管的驱动信号,反馈电路用于检测输出电压并通过反馈控制保持稳定,保护电路用于检测故障和异常情况,并及时切断输出以保护电源和负载设备安全。
6. 输出端电路:该
部分
用于输出稳定的直流电压,并通过输出滤波电感和输出电容来降低输出电压的波动和噪声。
以上是明纬
NES
350
-
24开关电源原理图的主要组成
部分
,通过这些组件的相互配合和控制,能够实现输入电压到输出电压的高效率转换,并具备稳定可靠的性能。