首页
社区
课程
招聘
[讨论]关于游戏模拟器的即时存档
发表于: 2007-1-26 10:38 7210

[讨论]关于游戏模拟器的即时存档

2007-1-26 10:38
7210
最近玩一个模拟器,不支持即时存档,于是有了下面的想法.
即时存档是不是就是把所有寄存器的值保存到文件,然后读档的时候从文件恢复所有寄存器的值?如果是这样的话能不能做一个外挂程序插入dll来控制模拟器的寄存器?不知道是不是可行.

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 117
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
理论上可以,不过实现起来很难.

不只是保存寄存器的值就可以的,还有很多需要考虑的东西。程序中的所有变量的值都需要保存。

还有,你得加一个读取存档文件的功能。
2007-1-26 15:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
怎么可能只是寄存器的值,要不你跟踪分析一下?呵呵
2007-1-26 16:07
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
即时存档文件的内容不是那么简单的,我玩的GBA模拟器的即时存档文件近100K
2007-1-26 16:09
0
雪    币: 0
活跃值: (116)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我是楼主

我看了另一个模拟器SSF, 它可以即时存档,存档大小有4.92m
我对windows进程的内存分配一点不了解,就听说过4g寻址什么的,请教下如果把整个内存全部记录到文件的话可行吗? 如果可行的话我开始研究了.
2007-1-26 18:18
0
雪    币: 101
活跃值: (12)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
6
游戏模拟器的即时存档, 是保存了一份他模拟的“游戏进程”的快照, 因为这个进程是虚拟的, 完全是他模拟的, 他当然知道应该
保存一些什么东东。
但你做不到。 你说的即时存档, 应该是把游戏模拟器这个进程做
一个快照。
一般来说, 你需要把整个有效内存都dump出来。
还有线程上下文(如果有多个话)。
dump出来不难, 但难的是, 你恢复的时候很麻烦。

当然跟这个模拟器有关, 如果你分析出了他是怎么解释“游戏进程”的, 你把这个解释数据全部保存并且恢复。 应该可以实现。
不过难度很大。
2007-1-26 18:47
0
雪    币: 0
活跃值: (116)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
最初由 jjnet 发布
游戏模拟器的即时存档, 是保存了一份他模拟的“游戏进程”的快照, 因为这个进程是虚拟的, 完全是他模拟的, 他当然知道应该
保存一些什么东东。
但你做不到。 你说的即时存档, 应该是把游戏模拟器这个进程做
一个快照。
一般来说, 你需要把整个有效内存都dump出来。
........

模拟器要模拟很多游戏,不只针对一个,不可能知道所有游戏需要保存什么吧.
如果用vc向导做一个hello world程序,然后在这个程序运行时候,把它进程的所有内存内容保存到文件的话 会有多大?
2007-1-26 19:20
0
雪    币: 101
活跃值: (12)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
8
最初由 aj3423 发布
模拟器要模拟很多游戏,不只针对一个,不可能知道所有游戏需要保存什么吧.
如果用vc向导做一个hello world程序,然后在这个程序运行时候,把它进程的所有内存内容保存到文件的话 会有多大?


看来你对模拟器原理不熟. 估计难度会很大.
2007-1-26 23:30
0
游客
登录 | 注册 方可回帖
返回
//