shaolin 发表于 2010-10-8 08:45:41

在RT-Thread/GUI上移植了NES游戏模拟器

国庆旅游期间移植了个NES模拟器,在QEMU/mini2440上运行,除声音外,其他功能都正常,游戏速度和可玩性都还不错,先上些截图。

http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_588189E2W8Q6.JPG
(原文件名:nes.JPG)

http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_588190GYWGT3.JPG
(原文件名:hdl.JPG)

http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_588191PNY9BL.JPG
(原文件名:hdl2.JPG)

http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_588192BPLNKE.JPG
(原文件名:tanke.JPG)

http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_588193AW50IM.JPG
(原文件名:tanke2.JPG)

http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_588194JH5XAY.JPG
(原文件名:rz.JPG)

http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_588195UDS5EF.JPG
(原文件名:rz2.JPG)

http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_588196W9B4AR.JPG
(原文件名:rz3.JPG)

http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_588197HE8OO7.JPG
(原文件名:mali.JPG)

http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_588198E7Z298.JPG
(原文件名:mali2.JPG)

vipcff 发表于 2010-10-8 09:27:36

顶啊

jordonwu 发表于 2010-10-8 09:40:28

mark

fsmcu 发表于 2010-10-8 09:46:55

小时最喜欢玩的魂斗罗,3条命打通关,可以介绍一下移植过程吗,希望在自己的7寸屏上玩起来,再回味一下童时的乐趣

loopzhong 发表于 2010-10-8 09:54:41

RTT也可以做这么多的事情啊。

liujun6037 发表于 2010-10-8 10:11:52

回复【楼主位】shaolin
-----------------------------------------------------------------------

这个是在电脑上运行的吧?
另外向楼主请教下,你移植的NES,消耗了多大的SRAM?
我移植到STM32上,得需要1.2M的SRAM,太大了。。。

lvhaian 发表于 2010-10-8 10:44:50

楼上你的 1.2M SRAM

一部分可以使用 外部的 Nor flash。

info NES 就是先从文件系统中把 Rom 整个文件 copy 到 SRAM 中处理的。

shaolin 发表于 2010-10-8 12:17:39

回复【6楼】liujun6037
回复【楼主位】shaolin
-----------------------------------------------------------------------
这个是在电脑上运行的吧?
另外向楼主请教下,你移植的nes,消耗了多大的sram?
我移植到stm32上,得需要1.2m的sram,太大了。。。
-----------------------------------------------------------------------

这个是可以在mini2440开发板上运行的,因为mini2440本身没有键盘,操作起来不方便,因此在QEMU/mini2440模拟器上加入了虚拟的键盘来控制游戏,具体的RAM大小没有统计过,晚上回去看下。

billtian 发表于 2010-10-8 12:22:13

stm32能跑起来不?

shaolin 发表于 2010-10-8 12:22:52

在QEMU/mini2440模拟器上运行的另外一个好处是可以模拟任意大小的LCD屏幕,像上面图片的屏幕大小就是根据NES游戏屏幕调整成的256X320。

shaolin 发表于 2010-10-8 12:25:51

回复【9楼】billtian mcu杀手
-----------------------------------------------------------------------

stm32上没有试过,估计比较悬。

lvhaian 发表于 2010-10-8 12:29:54

stm32 移植的时候就是 RAM 不够没有能够跑起来。

抽空把部分代码放到 flash 中, 继续试试看。

shaolin 发表于 2010-10-8 12:36:36

回复【12楼】lvhaian 安哥
stm32 移植的时候就是 ram 不够没有能够跑起来。
抽空把部分代码放到 flash 中, 继续试试看。
-----------------------------------------------------------------------

stm32上速度估计也够呛。
info NES有Iphone的版本,但速度也是挺慢的。

lanshuitianxia 发表于 2010-10-8 12:36:56

希望能在STM32上移植成功

niba 发表于 2010-10-8 12:38:47

不错呀。。。

gwb721123 发表于 2010-10-8 12:55:41

楼主太有才了,能不能把共享资源呀!

shaolin 发表于 2010-10-8 13:02:13

回复【16楼】gwb721123
楼主太有才了,能不能把共享资源呀!
-----------------------------------------------------------------------

多顶一把,如果有需要可以考虑将源码发布出来。

zzm24 发表于 2010-10-8 13:17:38

一起顶 把源码顶出来

gwb721123 发表于 2010-10-8 13:18:44

“mini2440,是shaolin和阿干主导开发的 ”,本来就是开源的,不好意思刚看到。

gwb721123 发表于 2010-10-8 13:21:08

这个开发板是自己做的吗?有没相关资料?

niba 发表于 2010-10-8 13:37:53

超级玛丽好玩。。能移植到STM32上就爽了

aozima 发表于 2010-10-8 13:41:59

"国庆旅游期间移植了个NES模拟器"这个...../emotion/em192.gif

youki1234 发表于 2010-10-8 14:24:06

移植到STM32上有点困难,我一直在做,都没有成功。。。

roy2002 发表于 2010-10-8 14:37:44

顶一下先

lvhaian 发表于 2010-10-8 14:44:05

【23楼】 youki1234
移植到STM32上有点困难,我一直在做,都没有成功。。。
==========================

做的人多了就成功了, 我们要解决的最后地方就是 RAM 问题。

ljt8015 发表于 2010-10-8 15:17:52

楼主开源咯!~~

lgnq 发表于 2010-10-8 15:36:43

强的,不顶不行

ilovezeno2 发表于 2010-10-8 15:53:02

只见过人在AVR32上移植GB模拟器的,似乎速度不错.....

shaolin 发表于 2010-10-8 21:10:17

回复【25楼】lvhaian 安哥
【23楼】 youki1234
移植到stm32上有点困难,我一直在做,都没有成功。。。
==========================
做的人多了就成功了, 我们要解决的最后地方就是 ram 问题。
-----------------------------------------------------------------------

看了下,较大的NES ROM文件大小为256K,需要被读入SRAM,如果只计算NES模拟器消耗的RAM资源,需要的RAM应该也至少在几百K 这个级别。

rainyss 发表于 2010-10-9 06:35:48

不用全部读入.

nibia 发表于 2010-10-11 10:47:32

求代码,测试

shaolin 发表于 2010-10-11 12:29:30

回复【31楼】nibia
求代码,测试
-----------------------------------------------------------------------

你直接给我发邮件吧 qiuyiuestc@gmail.com

wyoujtg 发表于 2010-10-11 22:25:24

哈哈,我也移植过,

有个叫gpsp的东西,还可以模拟gba,建议试试

shaolin 发表于 2010-10-11 22:48:11

回复【33楼】wyoujtg
哈哈,我也移植过,
有个叫gpsp的东西,还可以模拟gba,建议试试
-----------------------------------------------------------------------

gpsp在很早前也移植过的,在官方论坛上还有截图,只是移植效果不是太好,没有继续下去了。

dgtg 发表于 2010-10-14 13:11:27

mask~!

lugang_2920213 发表于 2010-10-14 16:15:33

使劲顶啊,把少林高手的秘籍顶出来!!!!!

obit 发表于 2010-10-14 19:51:48

这东西关键是ppu和apu的算法

hyz_avr 发表于 2010-10-14 20:10:19

强人..顶一下

zlyny 发表于 2010-10-15 10:26:45

很感兴趣,希望楼主开源```

shaolin 发表于 2010-10-18 12:23:36

回复【39楼】zlyny
很感兴趣,希望楼主开源```
-----------------------------------------------------------------------

肯定会的,这段时间太忙,抽空我会整理一下,将源码发布出来。

niba 发表于 2010-10-18 18:02:19

呵呵。。不错呀,都是经典的游戏

hyz_avr 发表于 2010-10-22 19:48:58

是从哪移植过来的?

shaolin 发表于 2010-10-23 10:03:29

InfoNES回复【42楼】hyz_avr 红尘
是从哪移植过来的?
-----------------------------------------------------------------------

InfoNES

shaolin 发表于 2010-10-25 20:54:15

运行程序及源代码
在RT-Thread实时线程操作系统上运行NES模拟器的demo

使用说明
1-将SDCARD.rar解压到当前文件夹
2-双击run-mini2440-sdcard.bat即可运行NES模拟器

加载NES游戏
SDCARD文件为虚拟的SD卡,其中放置了三个默认NES游戏,分别是魂斗罗,超级玛丽和冒险岛,如果需要加载其他NES游戏,可以用winimage工具打开虚拟SDCARD卡,然后将需要加载的游戏放入。

源代码
nes文件夹为在RT-Thread实时线程操作系统上运行NES模拟器的源代码,从RT-Thread的SVN服务器中取得最新源码后,将nes放入bsp目录下,然后可以用MDK打开nes目录下的project工程文件进行编译,生成rtthread-mini2440.axf文件。

键盘和游戏手柄的对应关系
键盘A == select
键盘S == start
键盘Z == A键
键盘X == B键
键盘Q == 退出当前游戏
键盘的四个方向键对应游戏杆的四个方向键。

点击此处下载 ourdev_592767YPSLPC.rar(文件大小:3.89M) (原文件名:RT-Thread_NES_Demo.rar)

aozima 发表于 2010-10-25 20:59:01

抽空试下 <<饿狼传说>>FC版.

lvhaian 发表于 2010-10-28 11:32:11

顶下, 裤子, 天气冷了。

liujun6037 发表于 2010-11-1 09:38:50

回复【44楼】shaolin
-----------------------------------------------------------------------

速度还是不行啊.
玩起来很卡...

ffxz 发表于 2010-11-1 09:40:42

昨天移植到一款MIPS处理器上了,速度还行,不知道如果用STM32来跑的话,速度是否跟得上。

sunchao151 发表于 2010-11-1 11:36:27

mark

shaolin 发表于 2010-11-1 12:00:59

回复【47楼】liujun6037
回复【44楼】shaolin
-----------------------------------------------------------------------
速度还是不行啊.
玩起来很卡...
-----------------------------------------------------------------------

如果觉得速度太慢,修改下源码中的SkipFrame参数吧,这个参数改得越大,速度相应会快些。

haigerl 发表于 2011-8-24 12:31:14

mark

kiney1980 发表于 2011-10-30 20:52:19

高手啊!
页: [1]
查看完整版本: 在RT-Thread/GUI上移植了NES游戏模拟器