| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2396 人关注过本帖, 1 人收藏
标题:闲来没事搞了个开源项目 ffnes 希望有兴趣有实力的朋友参与
取消只看楼主 加入收藏
RockCarry
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
结帖率:95.65%
收藏(1)
 问题点数:0 回复次数:13 
闲来没事搞了个开源项目 ffnes 希望有兴趣有实力的朋友参与
ffnes 是我正在做的一个 nes 模拟器(小霸王游戏机),代码陆陆续续写了半年多了,目前已经可以运行魂斗罗、超级玛丽等。我把项目放到了 github 上了。
 
https://
 
编译好的二进制:
ffnes-v0.5.rar (234.88 KB)

 
更新日志:

2015-01-16
----------
1. 增加游戏录像和回放功能
2. 实现 ALT 按键切换菜单隐藏和显示
3. 代码优化和多个 bug 修正

2015-01-14
----------
1. 增加模拟器主菜单和相关功能快捷键
2. 实现游戏即时存档和读档功能
3. 优化代码解决在低档 PC 上运行不流畅问题

2015-01-10
----------
1. 优化 apu 和 ppu 代码
2. 采用 D3D 进行视频渲染,画面更流畅
3. 解决多种错误异常,增强稳定性

2014-10-31
----------
1. ppu bug 修复
2. 实现 apu 的方波、三角波、噪声通道


[ 本帖最后由 RockCarry 于 2015-1-16 10:20 编辑 ]
搜索更多相关主题的帖子: 小霸王 超级玛丽 魂斗罗 游戏机 模拟器 
2014-10-17 11:15
RockCarry
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
up
2014-10-21 15:18
RockCarry
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
游戏服务器程序没写过,我这个 ffnes 是任天堂游戏机的模拟器,就是小时候玩的小霸王游戏机那种。比较有名的比如 VirtualNES。
2014-10-22 10:18
RockCarry
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
项目托管在 github 上,不熟悉 git 可以直接下载源码压缩包,然后在 vs2005 中就可以编译运行看到效果了。目前超级玛丽、魂斗罗之类的游戏可以正常玩了。当然还有很多 bug 要改,还有很多功能要实现。
2014-10-22 10:20
RockCarry
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
我的工作就是纯属打杂的,所以有点空闲搞搞。
2014-10-22 13:44
RockCarry
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
服务器暂时不考虑,先把这个做好再说
2014-10-24 09:06
RockCarry
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
.:
total 41
-rw-r--r-- 1 ck ck 35147 2014-10-24 15:33 COPYING
drwxr-xr-x 2 ck ck   416 2014-10-24 15:33 docs
drwxr-xr-x 5 ck ck   168 2014-10-24 15:33 pthreads-win32
-rwxr-xr-x 1 ck ck  1283 2014-10-24 15:33 README
drwxr-xr-x 2 ck ck   904 2014-10-24 15:33 src
drwxr-xr-x 4 ck ck   168 2014-10-24 15:33 vs2005
./docs:
total 1197
-rwxr-xr-x 1 ck ck  51477 2014-10-24 15:33 2A03 technical reference.txt
-rwxr-xr-x 1 ck ck  40135 2014-10-24 15:33 2C02 technical reference.TXT
-rwxr-xr-x 1 ck ck  79817 2014-10-24 15:33 6502_cn.txt
-rwxr-xr-x 1 ck ck  68336 2014-10-24 15:33 6502_cpu.txt
-rwxr-xr-x 1 ck ck  82296 2014-10-24 15:33 6502.txt
-rwxr-xr-x 1 ck ck  27185 2014-10-24 15:33 apu_ref.txt
-rwxr-xr-x 1 ck ck 683746 2014-10-24 15:33 NESDoc.pdf
-rwxr-xr-x 1 ck ck  82455 2014-10-24 15:33 NES emulator development guide.txt
-rwxr-xr-x 1 ck ck  56681 2014-10-24 15:33 nestech_cn.txt
-rwxr-xr-x 1 ck ck  36418 2014-10-24 15:33 NinTech.txt
./pthreads-win32:
total 44
drwxr-xr-x 2 ck ck   240 2014-10-24 15:33 dll
-rwxr-xr-x 1 ck ck 18075 2014-10-24 15:33 FAQ
drwxr-xr-x 2 ck ck   136 2014-10-24 15:33 include
drwxr-xr-x 2 ck ck   208 2014-10-24 15:33 lib
-rwxr-xr-x 1 ck ck 22891 2014-10-24 15:33 README
./pthreads-win32/dll:
total 416
-rw-r--r-- 1 ck ck 119888 2014-10-24 15:33 pthreadGC2.dll
-rw-r--r-- 1 ck ck 121953 2014-10-24 15:33 pthreadGCE2.dll
-rw-r--r-- 1 ck ck  55808 2014-10-24 15:33 pthreadVC2.dll
-rw-r--r-- 1 ck ck  61952 2014-10-24 15:33 pthreadVCE2.dll
-rw-r--r-- 1 ck ck  57344 2014-10-24 15:33 pthreadVSE2.dll
./pthreads-win32/include:
total 60
-rwxr-xr-x 1 ck ck 43867 2014-10-24 15:33 pthread.h
-rwxr-xr-x 1 ck ck  4995 2014-10-24 15:33 sched.h
-rwxr-xr-x 1 ck ck  4563 2014-10-24 15:33 semaphore.h
./pthreads-win32/lib:
total 280
-rwxr-xr-x 1 ck ck 93480 2014-10-24 15:33 libpthreadGC2.a
-rwxr-xr-x 1 ck ck 93486 2014-10-24 15:33 libpthreadGCE2.a
-rwxr-xr-x 1 ck ck 30334 2014-10-24 15:33 pthreadVC2.lib
-rwxr-xr-x 1 ck ck 30460 2014-10-24 15:33 pthreadVCE2.lib
-rwxr-xr-x 1 ck ck 30460 2014-10-24 15:33 pthreadVSE2.lib
./src:
total 244
-rwxr-xr-x 1 ck ck  2918 2014-10-24 15:33 adev.c
-rwxr-xr-x 1 ck ck   393 2014-10-24 15:33 adev.h
-rwxr-xr-x 1 ck ck 11555 2014-10-24 15:33 apu.c
-rwxr-xr-x 1 ck ck  1101 2014-10-24 15:33 apu.h
-rwxr-xr-x 1 ck ck  2048 2014-10-24 15:33 bus.c
-rwxr-xr-x 1 ck ck   793 2014-10-24 15:33 bus.h
-rwxr-xr-x 1 ck ck  4449 2014-10-24 15:33 cartridge.c
-rwxr-xr-x 1 ck ck  1106 2014-10-24 15:33 cartridge.h
-rwxr-xr-x 1 ck ck 31267 2014-10-24 15:33 cpu.c
-rwxr-xr-x 1 ck ck   787 2014-10-24 15:33 cpu.h
-rwxr-xr-x 1 ck ck  4415 2014-10-24 15:33 emulator.c
-rwxr-xr-x 1 ck ck   210 2014-10-24 15:33 emulator.h
-rwxr-xr-x 1 ck ck  3704 2014-10-24 15:33 joypad.c
-rwxr-xr-x 1 ck ck  1197 2014-10-24 15:33 joypad.h
-rwxr-xr-x 1 ck ck  1352 2014-10-24 15:33 log.c
-rwxr-xr-x 1 ck ck   201 2014-10-24 15:33 log.h
-rwxr-xr-x 1 ck ck  9715 2014-10-24 15:33 lzw.c
-rwxr-xr-x 1 ck ck   292 2014-10-24 15:33 lzw.h
-rwxr-xr-x 1 ck ck  1344 2014-10-24 15:33 makefile
-rwxr-xr-x 1 ck ck  1507 2014-10-24 15:33 mem.c
-rwxr-xr-x 1 ck ck   674 2014-10-24 15:33 mem.h
-rwxr-xr-x 1 ck ck 11357 2014-10-24 15:33 mmc.c
-rwxr-xr-x 1 ck ck   650 2014-10-24 15:33 mmc.h
-rwxr-xr-x 1 ck ck 23971 2014-10-24 15:33 ndb.c
-rwxr-xr-x 1 ck ck  3328 2014-10-24 15:33 ndb.h
-rwxr-xr-x 1 ck ck  7447 2014-10-24 15:33 nes.c
-rwxr-xr-x 1 ck ck  2649 2014-10-24 15:33 nes.h
-rwxr-xr-x 1 ck ck 20871 2014-10-24 15:33 ppu.c
-rwxr-xr-x 1 ck ck  1843 2014-10-24 15:33 ppu.h
-rwxr-xr-x 1 ck ck  1105 2014-10-24 15:33 replay.c
-rwxr-xr-x 1 ck ck   504 2014-10-24 15:33 replay.h
-rwxr-xr-x 1 ck ck   786 2014-10-24 15:33 stdefine.h
-rwxr-xr-x 1 ck ck  4308 2014-10-24 15:33 vdev.c
-rwxr-xr-x 1 ck ck   408 2014-10-24 15:33 vdev.h
./vs2005:
total 4
drwxr-xr-x 3 ck ck  440 2014-10-24 15:33 ffemulator
drwxr-xr-x 2 ck ck  112 2014-10-24 15:33 ffnesdll
-rwxr-xr-x 1 ck ck 1512 2014-10-24 15:33 ffnes.sln
./vs2005/ffemulator:
total 92
-rwxr-xr-x 1 ck ck  2248 2014-10-24 15:33 ffemulator.cpp
-rwxr-xr-x 1 ck ck  6835 2014-10-24 15:33 ffemulatorDlg.cpp
-rwxr-xr-x 1 ck ck   899 2014-10-24 15:33 ffemulatorDlg.h
-rwxr-xr-x 1 ck ck   543 2014-10-24 15:33 ffemulator.h
-rwxr-xr-x 1 ck ck  6655 2014-10-24 15:33 ffemulator.rc
-rwxr-xr-x 1 ck ck  6115 2014-10-24 15:33 ffemulator.vcproj
-rwxr-xr-x 1 ck ck 38257 2014-10-24 15:33 ffndbdebugDlg.cpp
-rwxr-xr-x 1 ck ck  3581 2014-10-24 15:33 ffndbdebugDlg.h
drwxr-xr-x 2 ck ck   112 2014-10-24 15:33 res
-rwxr-xr-x 1 ck ck  2019 2014-10-24 15:33 resource.h
-rwxr-xr-x 1 ck ck   210 2014-10-24 15:33 stdafx.cpp
-rwxr-xr-x 1 ck ck  2940 2014-10-24 15:33 stdafx.h
./vs2005/ffemulator/res:
total 28
-rwxr-xr-x 1 ck ck 21630 2014-10-24 15:33 ffemulator.ico
-rwxr-xr-x 1 ck ck   401 2014-10-24 15:33 ffemulator.rc2
./vs2005/ffnesdll:
total 12
-rwxr-xr-x 1 ck ck  366 2014-10-24 15:33 ffnes.def
-rwxr-xr-x 1 ck ck 6250 2014-10-24 15:33 ffnesdll.vcproj
2014-10-24 15:27
RockCarry
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
楼上是全部的代码清单

建议直接从 github clong 仓库
git clone https://

目前代码都是基于 win32 平台的,可以用 vs2005 或者 mingw32 进行编译。我自己 debug 都是在 vs2005 下进行的。
基础函数只用到了标准 C 语言及标准 C 库,线程是用的 pthread,只创建了一个线程,render 部分抽象出了 adev 和 vdev 分别对应音频和视频设备。在 win32 上对 adev 和 vdev 的实现目前是用的 WaveOut 和 GDI。窗口部分 vs2005 的 project 使用了 MFC,mingw32 使用的 Win32API。项目采用全部轻量级的设计,不依赖于任何第三方库。
2014-10-24 15:36
RockCarry
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
回复 12 楼 SunshineGirl
我这个 ffnes 模拟器也是打算做网络联机对战功能的,有没有兴趣帮我来做这个。需要设计到网络编程,主要用到 UDP 相关的。
2014-10-24 15:43
RockCarry
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
更新了下,实现了 apu 的四个通道,现在玩超级玛丽和魂斗罗声音基本上都正常了。
2014-10-31 21:40
快速回复:闲来没事搞了个开源项目 ffnes 希望有兴趣有实力的朋友参与
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031215 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved