火球法师
精华
|
战斗力 鹅
|
回帖 0
注册时间 2015-1-9
|
本帖最后由 phorcys02 于 2023-11-27 12:17 编辑
FC没有图形库轮子....
FC 的 PPU(显卡)逻辑都是硬编码的
FC支持的分辨率是 256x240,单个显示单元最小为8x8
一共 32x30个, 每个8x8像素的 图元作为一个单位,所有图元拼起来存在rom里
PPU有 2kB的vram(显存),用来存两页图元索引
人物(精灵(sprite))由额外的图元数据绘制,最大支持8个还是16个图元,可以每帧更新
滚屏方法是指定每帧在绘制时 屏幕坐标(0,0)点在 图元表里位置
PPU控制靠寄存器,cpu ppu是在统一内存地址里,
也不存在“绘制接口调用”,在下一帧绘制开始前,往 PPU 寄存器(映射到了物理地址)和vram里直接写数据就行
FC上游戏其实很简单,基本不涉及中断(FC三种中断,irq(负责处理卡带>32kb 映射)NMI(垂直同步(vblank处理,一般用来更新图元表数据),reset(重启))
FC游戏本体就是个死循环
因为实在是比较简单,甚至大部分厂商都不用高级语言,都是直接汇编语言撸的
loop:
处理输入
更新滚屏位置
更新精灵
播放音效/音乐
goto:loop
不要用现代游戏逻辑套古代轮子。。。
古代轮子大部分比独轮车还离谱
|
|