FC游戏修改ROM 用什么修改器!!

已举报 回答 关注
FC游戏修改ROM 用什么修改器!!
问在线客服
扫码问在线客服
  • 回答数

    4

  • 浏览数

    3,215

4个回答 默认排序
  • 默认排序
  • 按时间排序

已采纳
游戏存档文件大多使用二进制格式,这样对于读取和保存数据都比较方便。可使用Windows的“计算器” 来看看10进制和16进制的区别:采用“科学性”模式,在10进制模式下输入数据,然后切换到16进制就行了。

  不过就算这样转换,看起来还是不很直观,因为在游戏存档中并不是如此显示的。

  那么用C++如何表达的呢?下面这个小程序演示了如何读写二进制整数。

#include <iostream>
#include <fstream>
using namespace std;//标准库所在的空间
int main()
{
 fstream BinFile("test.txt",ios::in | ios::out | ios::binary);//读+写+二进制模式
 int i=1234;
 BinFile.write(reinterpret_cast<const char*>(&i),sizeof(int));
 //reinterpret_cast是C++的强制转换,这里把整数的地址强制转换为const char*,
 //与C 的(const char*)&i 作用相同,但是reinterpret_cast更加含义明确。
 i=0;
 BinFile.seekg(0,ios::beg);//重新指向文件开头准备读取
 BinFile.read(reinterpret_cast<char*>(&i),sizeof(int));
 cout<<"i="<<i<<’\n’;
}

  用UE打开test.txt切换到二进制模式,是这样子的:

  在计算器中看到的是04D2,在UE 中看到的是D204,这就是笔者所谓的不直观性。因此,如果你要在某个游戏存档文件中间(扩充开来就是二进制文件)寻找04D2这个数值,找到上图显示的地方就对了。笔者初期手工修改存档也是这样的,比较麻烦。

  下面这个小程序表明了模拟UE在二进制文件中寻

  找整数的原理:

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
 fstream BinFile("test.txt",ios::in | ios::out | ios::binary);//读+写+二进制模式
 const int i=87654;
 BinFile.write(reinterpret_cast<const char*>(&i),
 sizeof(int));//强制转换,把i用二进制方式写入文件
 BinFile.seekg(0,ios::beg);
 //重新指向文件开头,准备读取

 char ch;
 while(BinFile.read(&ch,sizeof(char)))//读取所有字符
  cout<<static_cast<int>(ch)<<"\t";//显示
  //static_cast是C++的静态转换,与C的(int)ch作用相
  //同,但是static_cast意思表达更清楚。
  cout<<’\n’;
  //下面把i的地址转换为字符串地址,并用char方式依次读取,主要是比较两者读取的结果是否相同.
 const char* P=reinterpret_cast<const char*>(&i);
 for(int i=0;i<sizeof(int);++i)
  cout<<static_cast<int>(P[i])<<"\t";
取消 评论
吞食天地论坛
取消 评论
去LAILOOK
取消 评论
你可以上网找金手指,可以用!!修改器好像没有!
取消 评论
ZOL问答 > 键盘 > 系统 > 手机rom > FC游戏修改ROM 用什么修改器!!

相关产品

  • LG 游戏键盘

    LG 游戏键盘

    参考价:停产    评分:8.0

    热门排行榜:未上榜

  • 京东搜一搜

举报

感谢您为社区的和谐贡献力量请选择举报类型

举报成功

经过核实后将会做出处理
感谢您为社区和谐做出贡献

扫码参与新品0元试用
晒单、顶楼豪礼等你拿

扫一扫,关注我们
提示

确定要取消此次报名,退出该活动?