硬件准备

ADSP-EDU-BF533:BF533开发板
AD-HP530ICE:ADI DSP仿真器

软件准备

Visual DSP++软件

硬件链接

代码实现功能

代码实现了 NES 游戏模拟器在 BF53x 平台上的运行。运行代码后,会通过文件系统打开工程目录下 ROM 内 的 NES 游戏 ROM,然后运行游戏,在液晶屏上显示出游戏内容。通过开发板上的按键可进行游戏娱乐。目前代码
解码支持 128K 及以下的 ROM 文件,大于 128K 的 ROM 文件不支持运行。

注意:模拟器音频部分还没有做,有兴趣的朋友可以补上。

代码使用说明

代码通过文件系统打开 ROM:
fp = fopen(“…/rom/hundouluo.nes”, “rb”);
lenth = fread(rom_file, 1, 0x200000, fp);
fclose(fp);

打开液晶屏驱动:
LCDBK_Disable();
InitDMA();
InitPPI();
InitTimer();
PPI_TMR_DMA_Enable();
LCD_Enable();
Init_Timers0(1999);//1~1999 控制背光亮度
Enable_Timers0();
LCDBK_Enable();

运行模拟器:
InfoNES_ReadRom();
InfoNES_Reset();
InfoNES_Main();

液晶屏数据更新:
void InfoNES_LoadFrame(void)
{
int x,y;
u16 color_data;
u8 color_r,color_g,color_b;
for(x = 0;x < 240;x++)
{
for(y = 0;y < 256;y++)
{
color_data = ChColor(WorkFrame[x*256+y]);
color_r = (color_data>>11)& 0x1f;
color_g = (color_data>>5)& 0x2f;
color_b = (color_data)& 0x1f;

color_data = (color_r) | (color_g<<5) | (color_b<<11);

DisplayBuffer_565[x][y2+220] = (color_data & 0xff) ;
DisplayBuffer_565[x][y
2+221] = ((color_data>>8) & 0xff);
}
}
}

模拟器按键操作:
u8 ReadKey(u8 KeyCodeLast)
{
u8 KeyCode,i;
u8 temp_code = 0;
static u8 KeyDly[10]={3,3,3,3,3,3,3,3,3,3};

temp_code = ~*pKEY_DAT;
KeyCode = ((temp_code>>0)&0x1)<<4 ;
KeyCode |= ((temp_code>>1)&0x1)<<6;
KeyCode |= ((temp_code>>2)&0x1)<<5 ;
KeyCode |= ((temp_code>>3)&0x1)<<7;
KeyCode |= ((temp_code>>4)&0x1)<<3;
KeyCode |= ((temp_code>>5)&0x1)<<1;
KeyCode |= ((temp_code>>6)&0x1)<<0;
KeyCode |= ((temp_code>>7)&0x1)<<2;
for (i = 0; i < 7; i++)
{
if ((board_input&(1<<i))!=(KeyCode&(1<<i)))
{
KeyDly[i] = 3;
}
else
{
if ((KeyCode&(1<<i)))
{
if (KeyDly[i] < 6)
{
KeyDly[i]++;
}
else
return (KeyCode);
}
else
{
if (KeyDly[i] > 0)
{
KeyDly[i]–;
}
else
return (KeyCode);
}
}
}
return(KeyCodeLast);
}

按键设置说明:

代码实验步骤

  1. 编译运行代码
  2. 待屏幕出现魂斗罗画面,通过按键输入:上上下下左右左右 BABA,按 START,开始游戏。
  3. 30 条命,祝游戏愉快。

代码实验结果

在液晶屏上出现魂斗罗画面,通过按键控制可进行游戏。

ADI Blackfin DSP处理器-BF533的开发详解70:NES 红白机模拟器(含源码)相关推荐

  1. ADI Blackfin DSP处理器-BF533的开发详解64:电子相册的设计(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 代码实现功能 代码实现了将 SD 卡根目录下的 ...

  2. ADI Blackfin DSP处理器-BF533的开发详解67:PCM的播放(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 代码实现功能 代码实现了打开代码工程目录下的& ...

  3. ADI Blackfin DSP处理器-BF533的开发详解25:USB接口设计(含源代码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 硬件设计原理图 功能介绍 跟网口一样,USB这 ...

  4. ADI Blackfin DSP处理器-BF533的开发详解14:LED跑马灯(含源代码)

    接口讲完了,下面写点应用程序,GPIO最典型的应用,LED跑马灯. 硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DS ...

  5. ADI Blackfin DSP处理器-BF533的开发详解1:软件和硬件的准备

    BF533是ADI Blackfin系列DSP处理器里的最经典型号,这个DSP我用了20年,单就这一颗DSP来讲,我相信国内应该没有比我更资深的了,下面就来说一说这颗DSP. 这颗IC是Blackfi ...

  6. ADI Blackfin DSP处理器-BF533的开发详解3:GPIO(含源代码)

    我们从最基础的GPIO开始,先讲外设,这玩意不管是单片机,还是ARM,又或是FPGA,甚至SOC的芯片,都有GPIO,有共性,就好理解,让我们看看在ADI的DSP里头,GPIO是怎么一回事吧. 硬件准 ...

  7. ADI Blackfin DSP处理器-BF533的开发详解58:DSP控制ADXL345三轴加速度传感器的应用(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 MEMS三轴加速度传感器 我做了一个三轴加速度 ...

  8. ADI Blackfin DSP处理器-BF533的开发详解60:DSP控制ADXL345三轴加速度传感器-电子水平仪(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 MEMS三轴加速度传感器 我做了一个三轴加速度 ...

  9. ADI Blackfin DSP处理器-BF533的开发详解21:RTC实时时钟的原理及应用(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 硬件设计原理图 功能介绍 ADSP-BF53x ...

最新文章

  1. spring in action 4 第5章
  2. .exe已停止工作_这几天我遇到了前所未有的问题windows10 1809 explorer.exe资源管理器频繁崩溃...
  3. 开工大吉,先送一波福利~
  4. 《廖雪峰 . Git 教程》学习总结
  5. 创建一个dynamics 365 CRM online plugin (四) - PreValidation
  6. HTML+CSS+JS实现 ❤️九宫格图片悬停遮罩层特效❤️
  7. 小米商城抢购脚本_四季度注意了!茅台酒抢购发生了变化
  8. 本地访问网站好使外网不好用 可能是防火墙端口
  9. RHEL6.2上使用 libvirt创建和管理KVM虚拟机
  10. diy操作系统 0:万事开头难
  11. sql server代理无法启动_DungProxy代理资源服务系统,
  12. 最简单DIY的51蓝牙遥控小车设计方案
  13. Python词频统计的3种方法
  14. 【Go】blockchain-tutorial 区块链技术教程
  15. 亚马逊速卖通tro律所禁令冻结资金的解决方法
  16. 基于腾讯地图+Ant-Design-Vue封装省市区联动查询组件
  17. Kafka的灵魂伴侣Logi-KafkaManger(3)之运维管控--集群列表
  18. lopa分析_AQ/T 3054-2015保护层分析(LOPA)方法应用导则
  19. 蚁群算法ACO求解TSP问题
  20. 深度学习中mAP的含义

热门文章

  1. 蓝桥杯 算法训练 自行车停放(Java)
  2. 网站安全性评估内容要求
  3. 小话设计模式:Builder模式
  4. axios 上传图片|文件
  5. 不需要任何插件,纯 CSS 就能打造炫酷文字特效
  6. 最大流算法的Matlab实现
  7. codeforces 解题报告 978B. File Name strings greedy
  8. rearm 命令_网友:用rearm命令免费用Windows7一年
  9. 初中数学老师计算机培训反思,初中数学教师教学反思精选3篇
  10. 计算机高新技术考试题百度云,全国计算机高新技术考试,office2010高级-试题1