Open dustpg opened 6 years ago
这一次继续吧: Mapper02.
UxROM这就比较厉害了, 能够用到最高用到4MB的RPG-ROM.
但是没有CHR-ROM, 需要自己写入CHR-RAM.
根据数据库,UxROM(在自己看来)比较有名的游戏, 比如:
CPU $C000-$FFFF: 16 KB PRG ROM bank, fixed to the last bank
这个设计就很暴力了, 我喜欢
7 bit 0 ---- ---- xxxx pPPP |||| ++++- Select 16 KB PRG ROM bank for CPU $8000-$BFFF (UNROM uses bits 2-0; UOROM uses bits 3-0)
完全可以实现为使用全部的8bit.
要使用全部8bit, 即4MB, 需要 NES 2.0的文件头, 为此自己特地更新了文件头让其支持4MB. 之前有一个搞事的就是用的4MB的Mapper002(自制ROM, 没有物理板子)
有些会有总线冲突, 需要使用副-Mapper来解决, 这里就不讨论了
这个Mapper简单暴力. 避免溢出, 可以膜一下: value % count_prgrom16kb
value % count_prgrom16kb
这次感觉是Mapper上最简单的: STEP9-MAPPER002.c
STEP⑨: 实现部分Mapper
这一次继续吧: Mapper02.
Mapper002: UxROM
UxROM这就比较厉害了, 能够用到最高用到4MB的RPG-ROM.
但是没有CHR-ROM, 需要自己写入CHR-RAM.
根据数据库,UxROM(在自己看来)比较有名的游戏, 比如:
Banks
CPU $C000-$FFFF: 16 KB PRG ROM bank, fixed to the last bank
这个设计就很暴力了, 我喜欢
Bank select ($8000-$FFFF)
完全可以实现为使用全部的8bit.
要使用全部8bit, 即4MB, 需要 NES 2.0的文件头, 为此自己特地更新了文件头让其支持4MB. 之前有一个搞事的就是用的4MB的Mapper002(自制ROM, 没有物理板子)
有些会有总线冲突, 需要使用副-Mapper来解决, 这里就不讨论了
这个Mapper简单暴力. 避免溢出, 可以膜一下:
value % count_prgrom16kb
实现
这次感觉是Mapper上最简单的: STEP9-MAPPER002.c
魂斗罗模拟出现的问题
我才不会告诉你即时存档需要保存CHR-RAM呢REF