NES(FC) FPGA游戏卡开发笔记(4)---- mapper,board type,mmc的概念

基本概念介绍

要做mapper功能的FPGA开发,需要明白mapper,board type,mmc的基本概念和功能。

mapper就是memory map。

为什么要memory map?因为红白机是8位机,16bit地址总线,CPU的最大访问空间是64K,CPU内存空间的一半0-0x7FFF作为寄存器等其他功能使用。从0x8000-0xFFFF就是PRG-ROM空间了。ROM大小是32KB。

一开始游戏比较小,这些空间够用,后来越来越大,怎么使用呢?任天堂就开发了mmc芯片(内存管理控制)。把ROM分成各个bank,用的时候切换到0x8000-0xFFFF中,让CPU可以访问。任天堂即卖游戏,又卖mmc芯片给第三方游戏制作商(根据功能,mmc芯片有很多版本,常见的有mmc1,mmc3,mmc5)。其他厂商为了降低成本,自己又制作了类似mmc功能的芯片,如VRC系列,FME系列,Sunsoft系列 。盗版卡厂商拿不到任天堂的mmc芯片,所以就破解了芯片功能之后,用74系列逻辑器件去实现相同的功能。或者直接制作一样功能的mmc芯片,比如在盗版卡上常见的MMC3盗版芯片AX5202。台湾芯片厂商的早年发家史。在FC后期,更强大的mmc芯片,比如FME-7等。盗版厂商没有那个实力,另外FC很快被SFC替代,都没有相应的盗版。所以有些大作没有盗版实体卡。

 board(board type/board name):看下面图片,PCB上有SLROM字样。任天堂的制作的正版卡上有board name,下面这块卡是飞狼游戏卡。左上角是MMC芯片(型号:MMC1A)

 

mapper number,board name, mmc芯片这三者的关系

FC模拟器开发者(NES社区)需要在PC上运行模拟器加载游戏。这些游戏文件都是.nes后缀名。

都是通过游戏读卡器从游戏卡的rom中读出来存档的。

如何让模拟器识别是哪个游戏,如何仿真游戏机的加载rom机制呢?为了满足这样需求,nes文件的开始加了个NES文件头(16个字节)。下图的软件就可以分析nes文件头。吞食天地2是mapper 3。

下面的链接详细说明了iNES file format。

 INES - NESdev Wiki

文件头Byte6的高4为就是存放游戏的mapper号。最多255个。

mapper号怎么来的呢?

 这个号就是模拟器社区根据游戏卡的board name编的号(有些多个board用一个号是因为mapper一致),见下图(mapper 0-255)。图标显示了相应的信息,比如游戏卡制作厂商,盗版卡上扒下rom。

由于正版卡有很多board,盗版卡也有很多board,这些号不够怎么办呢?又有了iNES 2.0来增加mapper号。

所以要让FPGA实现所有的mapper号,工作量太大,一是多,二是资料(盗版卡)不全。

能制作一个支持正版卡厂商的mapper号,或者国内厂商(包括台湾)的几款常见的游戏卡就可以了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值