ubuntu fceux成功运行吞食天地2中文版。
来源:互联网 发布:淘宝网秧歌服 编辑:程序博客网 时间:2024/04/30 03:58
星期天基本原理掌握后,星期一一下班冲回家开始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中文版。
- 三国志吞食天地2(街机)的全人物通关研究
- ubuntu下以root身份成功运行chromium
- Ubuntu下第一个C程序的成功运行
- 2、成功运行pcl allinone的demo
- ubuntu 9.10 中文版体验
- ubuntu 9.10变成中文版
- ubuntu安装wordpress中文版
- ubuntu中文版改为英文
- Ubuntu安装中文版WordPress
- ubuntu 10.04安装plone4.2成功
- Tuscany Sample 运行成功
- 运行heritrix成功!
- 成功运行SQL Sever
- jre运行成功
- mysql 成功 运行。
- 成功安装 cactiez version 9.1 中文版
- LG E900 成功升级中文版7720
- 从单片机程序员到软件工程师
- 获取java资源的方法
- poj3253
- 超长短信的处理办法
- 这是一个开始
- ubuntu fceux成功运行吞食天地2中文版。
- ado.net快速上手实践篇(一)
- 停下来整理blog记录脚印
- C++指针探讨 (一)数据指针
- ado.net快速上手实践篇(二)
- vector中sort排序(解决char类型数据无法排序的问题)
- C++指针探讨 (二) 函数指针
- Autotools
- Oracle数据库管理脚本说明