NES(FC) FPGA游戏卡开发笔记(1)---- 开始篇

这篇具有很好参考价值的文章主要介绍了NES(FC) FPGA游戏卡开发笔记(1)---- 开始篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

简介

技术要求

参考

1) 国内玩家自制游戏卡

2)N8 N8pro

3)powerpak

4)FC模拟器软件

N8 pro的实现方案的信息收集

先了解一下各个芯片的功能

N8开发者提供的资源信息

Powerpak

 Nesdev wiki和forum


简介

整个开发的目的就是做一个FPGA实现的,可以支持多种FC游戏(多种mapper)的游戏卡。

这个开发思路国内外都有实现,包括:

1)90年代的盗版卡,用逻辑器件实现mapper(mmc)功能,包括盗版mmc控制芯片,如AX5202P等。

2)FPGA实现方案,如著名的乌克兰人制作的N8,N8 Pro游戏卡,powerpak等。

3)现在淘宝上卖的多合1或单卡的游戏卡,一般是支持一种mmc,比如mmc1,mmc3,vrc4等。有用FPGA实现的。

4)NES FPGA游戏机实现。这种一般输出是用RGB,满足FC游戏爱好者的高清显示。

5)软件模拟器,无论是用树莓派(高性能嵌入式6052指令模拟),PC端的各种FC模拟器,都是一种思路,软件模拟指令,软件模拟各种mapper实现。

技术要求

本人的技术基础是自动化专业转嵌入式软件开发,大学学了点数字的皮毛。整个笔记也是学习流程的笔记。

从N8或者N8 Pro的实现看,需要的技术大致如下:

1)N8 Pro上有一块STM32F401芯片,需要有ARM开发技术,usb固件更新(windows驱动开发,windows的固件管理软件开发),SD卡(fatfs文件系统支持),Atmelu TINY13A(avr的CIC芯片功能实现,这个可以不用管,是美版卡的功能)。

2)FPGA设计(目前不会)

3)PCB画板,布线(只能看懂PCB图)

4)6052(任天堂的2A03)架构学习,了解CPU的基本功能。汇编编程,需要做一个游戏菜单(或者称为N8pro那样的nesos)。

参考

1) 国内玩家自制游戏卡

干一票大的!用FPGA制作红白机游戏烧录卡 - 创意DIY 数码之家

具体思路和他一样,这个是最简系统的实现,提供了开发环境的搭建。

2)N8 N8pro

EverDrive N8 PRO

这个是完全态的实现。先做一个基础功能的,其他的慢慢实现。

3)powerpak

https://www.retrousb.com/product_info.php?products_id=34

也是FPGA实现,也实现了多种mapper,功能要比N8简单很多,但作者提供了比较多的资料可以作为参考。早年做到了,应该也不维护了。

4)FC模拟器软件

virtuanessrc097,fceux-2.6.5。里面的代码实现可以参考,比如mapper实现,存档,sound。

机制都差不多,具体软件还是硬件实现有区别。

N8 pro的实现方案的信息收集

开发者:The Everdrive N8 is a Flash Cartridge made by Krikzz(乌克兰人)

N8Pro的PCB板fpga开发游戏,FPGA FC游戏卡开发,fpga开发,游戏

N8 PCB板fpga开发游戏,FPGA FC游戏卡开发,fpga开发,游戏

先了解一下各个芯片的功能

 Everdrive N8 - NESdev Wiki

上面链接提供了N8各个芯片的简单功能说明(N8 pro也有信息,但说明比较少),总结如下:

1)LVCH162245A:5v-3.3v电源转换,因为FC卡带管脚电平是5V的,如果直接接FPGA管脚,有可能会损坏芯片(目前淘宝上的多合1卡省掉了这块,有些flash芯片是3.3v的,直接接5v,有些风险,不过可以节省成本)。N8是三块,N8 pro四块(这种设计比较适合我,懒的思考为什么有些控制管脚可以用电阻降压连接)。

2)Cyclone II EP2C5T114:mapper实现功能。4608个逻辑单元,每次从游戏 菜单加载游戏的时候,把对应的mapper文件加载到该芯片。(为什么不先全部加载呢:所有mapper的实现在一个芯片对FPGA资源要求比较高,增加了芯片成本,用一个小的芯片可以实现同样的功能,只是牺牲一点性能)。

3)CY7C1049CV33T:N8的两块512KB的SRAM。通过游戏菜单选择游戏之后,sd卡读取的文件,把文件中的PRG-rom和CHR-ROM内容分别存放在这两个芯片。CHR-ROM也可以作为CHR-RAM(游戏游戏卡作为RAM)。

4)IS52LV1024:128KB,游戏存档SRAM芯片。

5)29W160 (2MB): Flash (BIOS)

5)Altera Max II CPLD (EPM240T100C5):glue logic(原文)。

那做了哪些事呢(我的分析)?SD(SPI)接口实现TF卡读写(读游戏,写存档),从Flash加载FPGA配置文件,加载BIOS(游戏菜单),向FPGA芯片加载mapper。

N8 Pro提供了更多功能:

1)STM32F401:提供一个SDIO接口,可以比N8更快的读取游戏文件。usb接口,os更新管理,也可以在调试阶段下载mapper文件。CPU还提供了RTC,可以在存档文件名中加入保存日期。

2)更换了两块FPGA,提供更高的性能和资源。因N8 CPLD的部分功能由STM32接管,但游戏卡提供了更多的功能,比如实时存档,cheat,游戏保存和游戏存档加载。

3)CIC芯片的实现(美版要求)。可以支持更多的美版游戏ROM。

4)三块SRAM都比N8大,满足所有游戏大小需求,存档空间更多,可以有100个slot。

N8开发者提供的资源信息

1)首先就是N8和N8的用户使用手册,相当于一个功能需求说明文档。里面介绍了游戏卡支持的功能,菜单说明。

2)os文件,提供用户下载更新新的mapper或者nesos文件。

N8 os文件包有什么内容呢:解开文件包有下面的内容,maps文件夹存放支持的fpga mapper(rbf)文件,mapprout.bin是个mapper号和mapper文件的索引映射文件。详细的说明见

EDN8-PRO/mappers at master · krikzz/EDN8-PRO · GitHub

 的readme.txt。os.bin就是更新到bios芯片加载的n8菜单功能的?(包括CPLD的bin吗?)

fpga开发游戏,FPGA FC游戏卡开发,fpga开发,游戏

 N8 pro os文件包内容:类似N8.

fpga开发游戏,FPGA FC游戏卡开发,fpga开发,游戏

N8 pro还有个usb tool(edlink),可以下载更新mapper,os,设置rtc时间,写板上flash芯片。

3) githut项目

EDN8-PRO/mappers at master · krikzz/EDN8-PRO · GitHub

作者开源了mapper部分的FPGA实现(只有mapper0,2,255,255可能是nesos使用),edlink(usb工具,c#实现)。 nsf(从游戏卡加载之后可以播放nsf格式的游戏音乐)。

4)nesos分析

可以用nesmapperprogrammer20工具(分析nes文件格式和分离pgr和chr文件的工具)分析nesos信息。

nfs.nes可以用模拟器直接加载运行,显示播放nsf的菜单。

nesos.nes用模拟器加载之后没反应,用winhex打开之后,在NES头之后8KB空间没有内容(全是0,为什么?这部分是从哪儿填充的)。用nesmapperprogrammer20分析之后显示是mapper15,但用老版本的模拟器弹出mapper255,不支持该mapper。

Powerpak

PowerPak - NESdev Wiki

上面链接是Powerpak的wiki,介绍了boot rom信息

Index of / 

上面的链接是开发者提供了源代码:包括启动菜单的是nes汇编实现,fpga mapper的实现,比较简单但可以很有用。

 Nesdev wiki和forum

FC(NES)黑客玩家的集中地,提供了海量资源。文章来源地址https://www.toymoban.com/news/detail-732635.html

到了这里,关于NES(FC) FPGA游戏卡开发笔记(1)---- 开始篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA 开发必备:从零开始学习 FPGA 设计

    FPGA 开发必备:从零开始学习 FPGA 设计 FPGA 是一种可编程逻辑器件,可以在不用重新设计硬件电路的情况下修改其功能。它是数字电路设计中最重要的组成部分之一。FPGA 的广泛应用领域包括通信、计算机、图像处理、音频处理等。 要想成为一名合格的 FPGA 工程师,你需要了

    2024年02月07日
    浏览(60)
  • 从零开始学ZYNQ(FPGA)笔记二 | 认识学习内容

    目录 1. 认识FPGA 什么是FPGA FPGA的编程过程  2. 认识ARM 什么是ARM ARM与FPGA的区别 ARM与Linux 3. 认识ZYNQ ZYNQ与FPGA的区别 ZYNQ的\\\"ARM\\\"和\\\"FPGA\\\" 关于PL 关于PS 4. 学习用板载资源 5. 总结         FPGA是一种集成电路,它可以在制造后由客户或设计者根据需要配置电路功能 。FPGA的内部由可

    2024年02月08日
    浏览(53)
  • 一款剧情特别优秀的ARPG 游戏《FC魔神英雄传》

    《魔神英雄传》是一款由FC游戏机平台发行的经典角色扮演游戏。该游戏最初于1992年发布,由日本游戏开发公司Hudson Soft开发,并由日本电子游戏公司Konami发行。 《魔神英雄传》的故事背景设定在一个幻想的世界中,玩家扮演一位年轻的英雄,旅行于各种地点,与各种敌人战

    2024年02月16日
    浏览(43)
  • 从零开始的种田生活-Unity游戏开发

    大家好,这里是暴躁老哥酒九。最近了我们的童年记忆《摩尔庄园》在手机上面复活了,不知道大家有没有沉迷于种菜无法自拔呢(反正我是累了)。 种田才是这个游戏本质吧~ 在《摩尔庄园》中了为我们玩家提供了很多的玩法比如:钓鱼,烹饪,开餐厅,庄园和玩家自身装

    2024年02月02日
    浏览(46)
  • 1.17 从0开始学习Unity游戏开发--场景切换

    前面的所有文章我们都在一个固定的游戏场景内进行开发,在最开始介绍场景这个概念的时候就已经提及,这个场景可以是一张地图,或者是一个对战房间等等,所以显然这个场景可以有多个,并且可以从一个场景切换到另外一个场景,那么在Unity中如何进行场景切换,以及

    2024年02月04日
    浏览(46)
  • 从零开始的PICO教程(1)Pico游戏开发项目配置

    1、大纲 经过该教程你将学会 配置好Pico游戏开发需要的环境 只有成为Pico开发者才可以发布可以在Pico上运行的游戏,所以这也是我们开始Pico开发生涯的第一步了。 1、注册 PICO 开发者帐号 你需要注册一个 PICO 开发者帐号,以便在 PICO 开发者平台管理应用。对于中国大陆地区

    2024年02月09日
    浏览(56)
  • 单片机开发---ESP32S3移植NES模拟器(二)

    《单片机开发—ESP32-S3模块上手》 《单片机开发—ESP32S3移植lvgl+触摸屏》 《单片机开发—ESP32S3移植NES模拟器(一)》 暖场视频,小时候称这个为—超级曲线射门!!!!!!!!!! ESP32上天使之翼游戏 看门狗 源码中有两处看门狗的喂狗操作,前期都被注释掉了。 因为开

    2023年04月09日
    浏览(146)
  • 单片机开发---ESP32S3移植NES模拟器(一)

    《单片机开发—ESP32-S3模块上手》 《单片机开发—ESP32S3移植lvgl+触摸屏》 依旧是参考韦东山老师的作品来移植的 《ESP32|爷青回!ESP32(单片机) NES模拟器_NES游戏机掌机教程(开源+详细讲解实现代码!)》 韦老师已经将代码开源,喜欢的朋友当然是可以去支持一波。 另外还有gi

    2023年04月16日
    浏览(45)
  • [游戏开发][Unity]Assetbundle下载篇(4)检查断点续传以及开始下载AB包

    打包与资源加载框架目录 下 载 AB包之前,要检查该AB包是否下载中断过,例如用户杀程序,卡死等情况。 前文有讲解过,下载AB包会先下载到临时文件夹,全部下载成功后,全部剪切到persistentDataPath沙盒目录中。 回顾一下之前的筛选机制,哪些AB包可以加入下载列表,其中并

    2024年02月09日
    浏览(47)
  • [游戏开发][Unity]Assetbundle加载篇(4)检查断点续传以及开始下载AB包

    打包与资源加载框架目录 下 载 AB包之前,要检查该AB包是否下载中断过,例如用户杀程序,卡死等情况。 前文有讲解过,下载AB包会先下载到临时文件夹,全部下载成功后,全部剪切到persistentDataPath沙盒目录中。 回顾一下之前的筛选机制,哪些AB包可以加入下载列表,其中并

    2024年02月08日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包