粘贴到CSDN格式没调,想看格式好的点下面

https://happysoul.github.io/nes/

简介:

作者nesdoug,作者重写了他的代码并发布到了github https://github.com/nesdoug

作者的目的是让所有的开发者尽量不去学习6502汇编,通过C语音就能开发出来NES游戏

作者的过时教程:https://nesdoug.com/2018/07/11/backup-pdf-archive/ (作者留档用不希望读者看这些代码了,作者是不会再看了)

可能几乎所有原创的NES游戏都是用汇编写的。(1985年几乎没有人使用过C)。如果您更喜欢这条路线,那么您可以像作者一样从Nerdy Nights教程开始。

http://nintendoage.com/forum/messageview.cfm?catid=22&threadid=7155

我们来谈谈NES。

1983年在日本发布(Famicom),1985年在美国发行。1986年在欧洲

发行。1987年在澳大利亚发布。1993年作为顶级装载机重新发布,没有麻烦的锁定芯片。

日本有替代磁盘驱动器系统。FDS。

CPU,Ricoh 2A03,1.79 MHz,是带有音频电路的6502(缺少十进制模式)

256×240像素,可显示53种颜色中的25种。

64个精灵(8×8或8×16),精灵限制为每条水平线8个。

60 fps(50 fps欧洲)

这是CPU的内存映射

PPU(产生视频图像)是一个独立的芯片,具有自己的存储器。它只能通过一次缓慢的1字节从CPU访问,使用硬件寄存器。

这是PPU的内存映射

Nametable是一个技术词,基本上是指tilemap或背景屏幕。

另外还有另外256字节(0-FF)内存专用于Sprite(OAM)。这个内存特别不稳定,需要每帧重写一次。

看起来有4个可用的名称表(背景屏幕),但实际上只有2个内部VRAM。磁带硬连线要么处于“水平镜像”或“垂直镜像”。更高级的映射器可以在这些选项之间切换。

垂直镜像(或水平排列)用于横向滚动游戏,低2个名称表只是上面两个名称表的镜像,像这样...

水平镜像(或垂直排列)用于垂直滚动游戏,右侧2个名称表只是一个镜像或左侧2个名称表,如下所示...

有关更多详细信息,请查看nesdev wiki。

http://wiki.nesdev.com/w/index.php/Nesdev_Wiki

最后,游戏盒通常内部有2个ROM芯片。一个PRG-ROM(可执行代码)和一个CHR-ROM(图形块)。但有些游戏,而不是CHR-ROM芯片,有一个CHR-RAM芯片。图形位于PRG-ROM中的某个位置,程序必须将字节从那里传输到CHR-RAM芯片。

我的教程将专门处理CHR-ROM风格的游戏。这更容易。

您可能想要读取十六进制数字。以十六进制格式更容易阅读和理解8位数字。我通常使用$表示十六进制,但有时我使用0x。$用于汇编语言,0x用于C语言。你不需要成为一名数学专家,但如果你知道我在说什么,它会有所帮助。

用C语言开发NES游戏(CC65) 简介相关推荐

  1. 用C语言开发NES游戏(CC65) 前言

    作者网站更新日期 2018年9月 翻译日期从2018年11月底开始逐步翻译,基于浏览器的翻译,重要地方逐句对比原和译文,有时候会加入些个人见解,让文字变得能像是句人话. 作者github地址: htt ...

  2. 用C语言开发NES游戏(CC65)15、音乐

    粘贴到CSDN格式没调,想看格式好的点下面 https://happysoul.github.io/nes/nesdoug/ 我前段时间写了一篇关于NES Audio文章. https://nesdo ...

  3. 用C语言开发NES游戏(CC65)04、完整的背景

    粘贴到CSDN格式没调,想看格式好的点下面 https://happysoul.github.io/nes/nesdoug/ 制作一张全屏显示的背景图 (备注:这里的RLE是作者将图片变成NES可以识 ...

  4. 用C语言开发NES游戏(CC65)21、完成一个游戏

    粘贴到CSDN格式没调,想看格式好的点下面 https://happysoul.github.io/nes/nesdoug/ 我要做的第一件事是标题屏幕.这部分快速搞定,毕竟只是为了展示一下.我用 N ...

  5. 用C语言开发NES游戏(CC65)06、精灵

    粘贴到CSDN格式没调,想看格式好的点下面 https://happysoul.github.io/nes/nesdoug/ 什么是精灵?精灵是一种可以在整个屏幕上自由移动的贴图.精灵通常是8×8,但 ...

  6. 用C语言开发NES游戏(CC65)14、游戏平台

    粘贴到CSDN格式没调,想看格式好的点下面 https://happysoul.github.io/nes/nesdoug/ 我们要做的是向右滚动显示. 游戏吸引人的地方在哪里呢?重力. 我们需要16 ...

  7. 用C语言开发NES游戏(CC65)11、Metatiles

    粘贴到CSDN格式没调,想看格式好的点下面 https://happysoul.github.io/nes/nesdoug/ 什么是metatile,对于贴图来说这是个特殊的词.在我的工程里有2x2的 ...

  8. 用C语言开发NES游戏(CC65)03、VRAM缓冲区

    粘贴到CSDN格式没调,想看格式好的点下面 https://happysoul.github.io/nes/nesdoug/ 我写了一些支持函数来填充VRAM缓冲区. 我使用了一些后台场景的代码,在c ...

  9. 聊聊在博客园写博客的这两年《Unity 3D脚本编程:使用C#语言开发跨平台游戏》正式出版...

    版本状态: 2016.9 第一次印刷 (2016.11 输出到台湾) 2017.1 第二次印刷 2017.5 第三次印刷 2017.5 电子书上线:Unity 3D脚本编程--使用C#语言开发跨平台游 ...

最新文章

  1. 创建多级目录函数MakeSureDirectoryPathExists()所需头文件
  2. CxImage图像处理类库说明3(转载)
  3. 26个音序的正确写法和占格_别让瞎练毁了健康,26个健身动作正误对比图,让我们正确健身...
  4. Android Studio安装应用时报错 installation failed with message Failed to finalize session......
  5. 构建自己的npm包 简单实现
  6. 黑猿大叔-译文 | TensorFlow实现Batch Normalization
  7. AOP jdk动态代理
  8. [透析] 卷积神经网络CNN究竟是怎样一步一步工作的?
  9. sql server数据库《音乐网站》项目歌曲管理模块
  10. Win10删除需要trustedinstaller权限的文件的方法
  11. android手机拍照软件,安卓手机拍照软件哪个好(五款手机拍摄软件深度横评)...
  12. YB5212A充电IC充电芯片sop8
  13. 金仓数据库KingbaseES V8R3使用Gorm指南
  14. 前端处理后端返回的二进制流文件
  15. 论人类思考时的贝叶斯过程
  16. 016 799打印错误_富士施乐2420打印指定故障“016-799”是什么意思?
  17. python导入mysqldb_Python导入MySQLdb
  18. 2016年6月,我们毕业了~~~
  19. 动态设置根节点字体大小
  20. vue3结合ts,导入vue项目文件,代码出现红色波浪线

热门文章

  1. 【Matlab学习手记】csv和xlsx格式互转
  2. Bottom-Up和Top-Down
  3. jquery点击添加样式
  4. Python——循环嵌套
  5. WARN ThreadPoolAsynchronousRunner:608问题解决
  6. 美通企业日报 | 微软和宝马推出开放式制造平台;爱彼迎Plus在中国发展势头强劲...
  7. 计算机操作系统(第四版)第四章存储器管理—课后习题答案
  8. 创业需要宽广的心胸吗--leo看赢在中国第三季 6
  9. 被陆奇文章刷屏了,细思极恐
  10. js原型链,继承和promis的基本理解