FPGA FC游戏卡开发
文章平均质量分 85
dire_777
这个作者很懒,什么都没留下…
展开
-
NES(FC) FPGA游戏卡开发笔记(12)---- 雅特力AT32F407VGT7开发板和rt-thread移植
使用rt-thread studio开发最方便了,另外项目编译优化选择-O3和-O,-O2编译的大小一样,不知道为什么,使用keil编译器应该可以少一些。rt-thread C库配置那块也需要时间理清一些。不同编译器的c库,内核带的c库,如何在不同编译环境下进行配置选择。下一步就是等SD卡模块到手之后试试sd卡读写是否没有问题。另外开发板上有个uart1 4pin接口,用4pin转DB9(usb转串口),串口调试助手没有输出。不知是4pin接口连接不对。(uart1同时连接AT-Link接口)原创 2023-06-29 13:12:39 · 1094 阅读 · 2 评论 -
NES(FC) FPGA游戏卡开发笔记(11)---- N8 Pro Mapper代码分析SPI-to-RAM
SPI接口只是定义了一套数据传输的方式,并没有定义通信协议或者应答机制,slave也无法知道到底要收发多少数据。所以用户需要根据实际应用预先定义一套应答机制和传输数据的格式,方便对数据的处理。命令字读写地址数据8bit32bit8bit的倍数命令字有两种,读命令和写命令读写地址中的bit[24:23]定义是读写哪片内存(PRG-RAM/CHR-RAM/SRAM/System Registers)原创 2023-06-16 02:28:50 · 751 阅读 · 0 评论 -
NES(FC) FPGA游戏卡开发笔记(10)---- CPLD部分硬件管脚资源整理
MCU通过CPLD是控制存档和loader程序的SRAM。MCU暂时确定为雅特力的AT32F403AVG7芯片(cortex-m4核),CPLD选择为AG256S100。SRAM是IS62LV256AL(32KB)。整理一下各个芯片的管脚资源,方便画PCB图,并且确定MCU使用的SPI,SDIO,USB,UART的接口管脚。原创 2023-06-14 11:56:39 · 578 阅读 · 0 评论 -
NES(FC) FPGA游戏卡开发笔记(9)---- 游戏rom加载方案的初步设计和系统架构
这样整个系统控制流程就设计好了,具体模块与模块之间地址线和数据线,控制的连接,需要哪些线,需要做哪些逻辑完成地址映射,传递什么信息,通过什么方式传统,这些详细的设计在之后一个一个进行细化。其他的考虑:SAVE_RAM暂时考虑32KB,8KB作为存档,其他作为loader代码区。另外也可以利用CPLD的RAM资源实现。CPU的选择,雅特力AT32F403ARCT7虽然有两个外接片选,但因为一共64个管脚封装的原因,总线地址只能是访问512KB,不能满足1MB的要求,所以还是用SPI的数据传输方式。原创 2023-06-08 18:01:04 · 1344 阅读 · 0 评论 -
NES(FC) FPGA游戏卡开发笔记(8)---- AD学习和器件库收集,platformio(arm开发环境),6502 CPU架构学习
为了减少自己画器件图的时间,时间都花在搜寻现成的原理图和PCB图库了。用platformio的代码check功能对at32的bsp和sdio代码静态分析了一下,一堆的警告。与AGM的MCU芯片比,AGM提供的代码质量不错,文档垃圾。以后sdio和fatfs的实现还是从STM32的官方或者platformio提供的package中找,这样bug会少点。,kicad软件画的,另外这个项目是用FPGA实现的rom存储方式,类似于多合一卡的方案,项目提供了全套源代码,包括FPGA和菜单汇编代码。原创 2023-06-08 10:18:08 · 323 阅读 · 0 评论 -
NES(FC) FPGA游戏卡开发笔记(3)---- AGM AG32VF407开发环境的使用
集成在platfomio开发环境中进行芯片固件开发还是不错的。同时提供了logic和固件编译下载调试。提供了好几种常用的framework bsp包,sdk也很完整,python脚本和c代码写得都很清晰,方便使用。芯片手册真的没法详细些吗?memory mapping详细说明,寄存器定义和使用这些对开发者这么重要的东西需要那么保密吗?原创 2023-05-31 19:31:03 · 3413 阅读 · 3 评论 -
NES(FC) FPGA游戏卡开发笔记(2)---- 开发环境搭建(FPGA/CPU选型篇)
可能能满足我的需求,但开发难度有些大,很多资源接口需要自己去实现。CPU片内资源比较少。原创 2023-05-31 17:53:13 · 2572 阅读 · 1 评论 -
NES(FC) FPGA游戏卡开发笔记(5)---- mmc1芯片的FPGA实现分析
要用FPGA实现mmc芯片的,肯定需要阅读各个mmc芯片的功能分析文档。类似于需要分析。首先以MMC1芯片为例。(MMC1芯片有多个版本,暂时不考虑区别)。通过分析弄明白MMC1芯片的工作机制,如何切换bank。让CPU访问存放在ROM中的代码。所有的内容都是从分析整理。at romhacking.net(链接中可以下载上百个mapper的说明)原创 2023-06-01 01:28:33 · 701 阅读 · 0 评论 -
NES(FC) FPGA游戏卡开发笔记(6)---- 再整理下思路和具体工作(包括N8 Pro mapper部分的FPGA代码简单分析)
1)N8是CPLD+FPGA,N8 Pro是两个FPGA(其实也是类似CPLD+FPGA)。ICE40芯片的配置文件也是固化在芯片内的。N8的CPLD的任务是扩展SPI接口可以访问SDIO卡,另外可以向mapper FPGA下载mapper文件进行配置操作。而N8 Pro的这些功能可以让STM32 CPU完成,N8 Pro强化了其他功能,比如cheat,在游戏内调出菜单做即时保存,这些是ICE40去完成的?另外用CPLD可以增加盗版的难度。原创 2023-06-02 16:00:12 · 1105 阅读 · 0 评论 -
NES(FC) FPGA游戏卡开发笔记(7)---- 开始使用AD
PCB制图软件直接用了AD,也没有做各种制图软件的比较,也不知道适不适合我这样的新手。原创 2023-06-02 17:26:59 · 312 阅读 · 0 评论 -
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芯片(内存管理控制)。原创 2023-06-01 00:12:55 · 1345 阅读 · 0 评论 -
NES(FC) FPGA游戏卡开发笔记(1)---- 开始篇
整个开发的目的就是做一个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游戏机实现。原创 2023-05-31 15:50:56 · 3291 阅读 · 1 评论