ubuntu fceux成功运行吞食天地2中文版。
星期天基本原 理掌握后,星期一一下班冲回家开始debug代码,最后发觉是mapper的问题,网上流传的几个版本都是mapper4的,但是标准的mapper4的 cart应该rom最大就512K,NESDEV上的wiki有相关资料,而virtualNes却认为它是640K,而吞食天地2中文版也是640K 的,而且它是和mapper4一样都是基于mmc3这块board的,盗版商外星科技果然强大,竟然改版过。于是准备开始改动src/boards /mmc3.cpp,
刚刚想把
static void GENPWRAP(uint32 A, uint8 V)
{
setprg8(A,V&0x3F)
}
改 成
setprg8(A, V&0x4F);
来从512K,改到640K,具体原理以后有空再解释。
然后搜了一下 0x4F,结果有惊人发现,哈哈!
// ---------------------------- Mapper 198 -------------------------------
static void M198PW(uint32 A, uint8 V)
{
if(V>=0x50) // Tenchi o Kurau II - Shokatsu Koumei Den (J) (C).nes
setprg8(A,V&0x4F);
else
setprg8(A,V);
}
void Mapper198_Init(CartInfo *info)
{
GenMMC3_Init(info, 1024, 256, 8, info->battery);
pwrap=M198PW;
info->Power=M195Power;
info->Close=M195Close;
wramsize=4096;
wramtw=(uint8*)FCEU_gmalloc(wramsize);
SetupCartPRGMapping(0x10, wramtw, wramsize, 1);
AddExState(wramtw, wramsize, 0, "WRAMTW");
}
红 色字就是吞食天地2啊。原来是mapper198阿,fceux已经做了,那代码都不用改了,惊喜!!! 可惜当我发现的时候是星期二的早晨,哈哈,早上起来搞代码果然有效率阿。可惜时间不够了,只得上班去。
在公司的时候继续看无聊的java代码。
又 下班了,一到家,吃完饭就开始hack rom,用vi -b filename, %!xxd, 将第7,8个字节0x4300改成0x63c0,就是0x04(mapper4)改成0xc6(mapper198), 然后%!xxd -r; wq;本以为应该搞定了。
结果一试,我靠Segement fault,结果又debug一下fceux,有些代码写错了,改了改,再试,结果图像出来了,感动啊,我下的那个版本还不错,战斗不闪,开始爽 喽。。。。。。。记得选项里面要设置成PAL并重启生效。
下面附上修改后的fceux源码和修改后的rom,希望有爱的同学,可以在linux上面重温一把。安装方法见里面的 INSTALL文件。
fceux: http://docs.google.com/leaf?id=0B1JTQiBNgozPZTkwNmJkMmUtNWNjZC00MjMxLTk0ZTUtOGNmMDBiZDdlZTk1&hl=en
rom: http://docs.google.com/leaf?id=0B1JTQiBNgozPMDQwNzA1OTctYmZhMS00YmVjLTgzN2MtYjhiMDU0NTc4MmMz&hl=en
接下来有空的话我会开发一个iphone的NES模拟器版本,在自己iphone上爽,希望大家到时支持。
ubuntu fceux成功运行吞食天地2中文版。相关推荐
- Qt成功运行Zynq UltraScale+MPSoC平台上
Qt交叉编译后aarch64-linux-gnu-成功运行在ZynqUltraScale+MPSoC上-Linux文档类资源-CSDN下载Qt交叉编译后aarch64-linux-gnu-成功运行在Z ...
- 如何在Ubuntu下成功连接iPhone设备
如何在Ubuntu下成功连接iPhone设备 由于iTunes和爱思助手等没有对linux开发相对应的软件,导致linux的用户的iPhone连接后并不能做什么事情,以下有很好的解决方法,按照步骤来基 ...
- 3322linux自动更新ip,ubuntu开机自动运行动态域名更新
想在Ubuntu开机自动运行时启动动态域名的更新,于是在网上找设置的方法.开始找到了使用sysn-rc-conf命令来设置自动运行程序.原本以为用它能实现,可是运行后发现它只能对现有的启动项进行设置( ...
- 龙芯处理器首次成功运行 OpenHarmony ;Log4j 被发现存在第三个漏洞;PyPI 服务出现中断 | 开源日报
整理 | 宋彤彤 责编 | 屠敏 开源吞噬世界的趋势下,借助开源软件,基于开源协议,任何人都可以得到项目的源代码,加以学习.修改,甚至是重新分发.关注「开源日报」,一文速览国内外今日的开源大事件吧! ...
- 在Ubuntu中自动运行KMS服务
在Ubuntu中自动运行KMS服务 安装最新的vlmcsd releases版本 使用wget下载: wget https://github.com/Wind4/vlmcsd/releases/dow ...
- Ubuntu:成功解决ubuntu使用su切换root出现Authentication failure用户时认证失败
Ubuntu:成功解决ubuntu使用su切换root出现Authentication failure用户时认证失败 导读 最讨厌网上回答的啰嗦和不清晰!本人最讨厌啰嗦,直接上来,图文表达,简单明了, ...
- 安装spark集群,并成功运行
基于上一篇的hadoop成功运行后,进一步启动spark集群: 上图中的内容,slave主机中也需要相应的设置 上图就是成功运行的结果:
- 中科院开源 RISC-V 处理器“香山”流片,已成功运行 Linux
去年 6 月份,中科院大学教授.中科院计算所研究员包云岗,发布了开源高性能 RISC-V 处理器核心 -- 香山. 近日,包云岗在社交平台晒出图片,香山芯片已流片,回片后进行了串口调通,1 月 24 ...
- 如何数分钟创建并成功运行数千台云主机?
"要把一件东西变得简单,需要真正地认识到潜在的挑战,并找出漂亮的解决方案.这需要很多努力." 秉持"用户的需求是我们下一个产品"产品观的UCloud,一直以&q ...
最新文章
- Datawhale Ring限量100份来了!
- golang刷Leetcode系列 --- 加1
- DirectShow开发快速入门之慨述
- 电脑没网络设备dns服务器没检测到响应,设备或资源dns没检测到有响应 网络无法连接...
- Android学习笔记(27):日历视图Calendar
- 常见的几种python字符串方法总结
- 云主机安mysql_如何在云服务器 ECS 安装 MySQL
- 华为hs8145v5如何改桥接_Linksys VelopAX5300和AC3900套装 Mesh组网实战 - 桥接
- 5V升压8.4V,5V转8.4芯片电路图
- 中国数字化城市行业现状调研及前景规划分析报告2022~2028年
- 智云通CRM:大客户销售流程,新手也能快速入门
- JavaScript(基础知识)
- solarflare低延迟网卡_Solarflare低延迟万兆网卡配置和性能调优实践
- ADAS-----智能驾驶辅助系统
- microsoft认证解说
- php怎么变成微信小程序,自己怎么开通微信小程序
- 如何精准化的做微信公众号运营?
- 【C++】win 10:VC 6.0 中文版下载、安装、使用
- 云米AI洗碗机Iron A1 AI消毒除菌版上手体验
- Noi Linux(guide)字体推荐
热门文章
- 把学校直播的电视节目保存到本地
- 2019年wine QQ最完美解决方案(多Linux发行版通过测试并稳定运行)
- 添加数量的html标签,dedecms织梦模板栏目列表中添加统计文档数量的标签
- 电脑微信号,Win10电脑登录多个微信号的方法
- [附源码]计算机毕业设计Python+uniapp驾校练车预约小程序9u0r2(程序+lw+远程部署)
- vue获取后台的文件流并且转换成图片
- 如何自学Linux云计算运维,关于系统学习Linux云计算运维,应该怎么什么学?
- PyYAML 实用的使用技巧!
- MkDocs 快速入门
- [半监督学习] FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence