有一天发现一篇文章,就是如何用fpga实现NES的,正好那一阵子沉迷Turing Complete这款游戏,顿时来了兴趣,结果一看,X打头品牌的FPGA几百大洋,于是搜啊搜,终于发现个国产FPGA厂商高云(Gowin),一个现成的开发版就100块钱,巨便宜,于是想着能不能用FPGA实现一个NES游戏机,找回童年的快乐。说实话,NES游戏机淘宝上一大串一大串,也不贵,不到一百块钱就能买到,带HDMI,但是作为正宗理工男,最大的乐趣不在能买到,而在于能自己做到。Tang Nano 9k提供了9千个左右的逻辑单元,两个锁相环,最关键是提供了一个hdmi接口,可以直接连显示器或者电视机,音频也可以走HDMI,不需要再外挂DAC,功放这些设备了,提供了32Mbit的PSRAM,资料也很齐全(链接),于是在2月份折腾了一个月的FPGA,简单实现了NES模拟器。在学习了各种NES在FPGA各种实现后,从刚开始屏幕上什么都没有到点亮了屏幕。目前还有以下问题:

  • FPGA片上内存太小,目前支持16K游戏,且嵌在代码烧录进FPGA,后面考虑从SD卡读入或者COM口烧录
  • 声音输出有点问题,在研究APU的原理
  • 没有连接手柄,后面需要画接手柄的板子
  • 现在的FPGA默认100MHz工作频率,对一百钱的FPGA太高,降到50MHz运行,但是不知道运行起来有没有问题

总体来说,国产FPGA还是很给力的,等到后面再完善完善把代码还有外围电路发出来。有了这个便宜的FPGA,目测还能实现FM发射、接收、示波器等等应用。

参考代码如下:

1、Brian Bennett做到NES在FPGA上的实现,这一版好处占用资源少,按照nes标准实现,后期也加入了对HDMI的支持,主要参考这个版本来实现(https://github.com/brianbennett/fpga_nes

2、国人在Tang 20k实现的NES模拟器,但是需要DDR3内存支持,标准NES游戏卡是0x8000起内存地址,但是这个版本被调到0x0000,可以支持更大容量的游戏,功能更全,但是调试起来很麻烦,一个NES用DDR3内存感觉有点怪(https://github.com/nand2mario/nestang

3、VGA转HDMI模块,这是目前能找到的比较好的支持声音输出的VGA转HDMI的RTL(https://github.com/hdl-util/hdmi

4、仿真时将视频流转成bmp文件的rtl,这样就能确定能否模块正常工作(https://gitee.com/whik/vga_modelsim_bmp/

点亮内嵌Bomber Man游戏

最近家里收拾,翻出了好多了旧光盘,网友世界的盘就有3张。话说20年前,互联网还没有普及,上网得去拨163,用着56k的猫,下个2兆的小软件基本得半个小时,电话费用掉了四五块,什么东西都没下得到。所以那时候的网络基本用来qq、icq,看看新闻之类的,关键还得掐着时间来上网。

这样的速度下,电脑城各种5块钱的盗版碟反而是最划算的,各种奇奇怪怪的软件玩的开心的不亦乐乎。那个时候,电脑城的盗版碟不仅有软件,而且各种电影电视剧应有尽有,在那个没有互联网的时代,这些杂志和光碟成为了大多数人的信息来源,才得以看一看外面的世界。

在网友世界光盘发现一个巨好玩的皮卡丘排球小游戏,单人模式上下左右控制方向,回车键击打,玩了一天,右手玩了疼,终于发现了成功秘密。。。软件不大,500多k,分享一下(链接),嘿嘿。

最近入了矿卡RX580,蓝宝石2304sp版本的超白金OC版,觉着8+6pin供电来着比单8pin的显卡稳定一点。虽然号称黑苹果神卡,折腾起来还是费点时间的。

1、进系统不认,表现为可以进登录界面,但是进系统后黑屏。经过查找,发现在DP接口下才有这个问题,HDMI完全没问题。但是说实话HDMI有点偏色,跟DP比起来看着不舒服。可以在Clover中通过Inject ATI解决,此时DP是有显示的。但是说实话,为了达到接近原生黑苹果的效果,能少用Inject还是少用Inject吧,为了不Inject,声卡换成USB的,网卡用的额外插的82574L的卡(链接:82574L改苹果原生卡教程),显卡居然还要Inject,不能忍啊。翻了一大串资料,重要找到问题所在,我原来黑的是iMac Pro型号,需要改成Mac Pro 6,1才行。

https://www.tonymacx86.com/threads/displayport-not-working-after-mojave-update.264072/

蓝宝石RX580
继续阅读