![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
NES/红白机
文章平均质量分 84
Rand_CS
程序员路上的一名潜修者。
展开
-
童年神机小霸王(七) Mapper
首发公号:Rand_cs,求关注支持Mappermapper,这个概念来源于 memory mapping,又叫做 Memory Management Circuit,它是解决地址映射的一种电路,简单来说就是决定物理内存如何映射到 CPU 或者 PPU 的地址空间。mapper 可以用来支持增加卡带的 RAM 甚至支持额外的音频通道,但更一般的目的就是控制物理内存到地址空间的映射,突破游戏 40KB 的限制。为什么说是 40KB 的限制,因为早期一般的游戏最大就是 16×2=32KB16 \ti.原创 2022-02-12 00:00:59 · 2358 阅读 · 0 评论 -
童年神机小霸王(六) 手柄
首发公号:Rand_cs,求关注支持Controller&FormatController本文讲述 NES 的输入设备,最为常见的就是手柄 joypad:一般支持两个手柄,手柄 1 和手柄 2 分别映射到 CPU 的地址空间 0x4016 和 0x4017,我们可以从这两个寄存器读出手柄按键的状态,1 代表按下,0 表示弹起状态。手柄的内部有个移位寄存器来存放这些键的状态,每次从 0x4016 读取的数据只表示一个键的状态,需要连续读取 8 次才能读取所有键的状态,8 个键的读取顺序.原创 2022-02-11 23:59:19 · 4174 阅读 · 1 评论 -
童年神机小霸王(五) 滚屏渲染 2
首发公号:Rand_cs,求关注支持Render&Scroll本文继续来说滚屏渲染,讲述每条 Scanline 每个周期具体干些什么事情以及一些高级玩法,屏幕分割技术,看看前面所说的大片级效果是如何制作的。还是先来看渲染部分,PPU (NTSC TV)每一帧渲染 262 条 scanlines,每条 scanline 又持续 341 个时钟周期,对此,wiki 上有一张很详细的图,看懂了,就大致明白了:上面一排数字表示周期,左边一列数字表示第几条 Scanline,也可以当作坐标来看.原创 2022-02-11 23:57:32 · 565 阅读 · 0 评论 -
童年神机小霸王(四) 滚屏渲染 1
首发公众号:Rand_cs,求关注支持滚屏渲染(基础部分)本文继续 PPU 的话题来讲述滚屏,从我们小时候玩游戏的经验知道 NES 是支持像素级滚屏的,这在当时那个年代是个创举,这也是为什么 FC/NES 那么火热的原因之一那 PPU 是如何支持像素级的滚屏?这就要先来看看 PPU 的一些硬件部分。内存映射寄存器首先来看看映射到 CPU 地址空间的一些寄存器,也是 CPU 与 PPU 通信的端口。从本文开始十六进制数我还是用 0x 表示,用 $ 有太多的格式问题,前文我每个 $ 前面加上了 \.原创 2022-02-11 23:55:50 · 753 阅读 · 0 评论 -
红白机原理(零)前言
今天来聊聊 FC 游戏机,FC 的意思就是 Family Computer,虽然如今渐渐落寞被淘汰,但在当年的确是风靡全球,不负 Family Computer 这名字。FC 大家应该基本知道吧,emmm 应该还是有不知道的,就比如我那和蔼可亲爱看热血中二少年加后宫番的舍友就不知道,简单说一下,FC 就是打超级玛丽,魂斗罗的那个机器,现下基本很少见到这个东西了,现在的 PC 上也有相应的模拟器,较为成熟出名的有 Virtual NES 还有 FCEUX,可能还有其他的,不过我就了解这两个。一般来说 FC原创 2022-01-20 12:33:16 · 1615 阅读 · 0 评论