- 精华
- 0
- 帖子
- 51
- 威望
- 0 点
- 积分
- 55 点
- 种子
- 0 点
- 注册时间
- 2006-1-13
- 最后登录
- 2011-1-25
|
本帖最后由 woshicainiao 于 2011-1-11 14:36 编辑
就是为了女神买的小P(和女朋友叙述当年PE2里aya女神洗澡的CG,并让她看第三个生日,然后她说就是个大屁股扭来扭去,有什么好的,然后把我狠狠地教育了一顿。我是否再让她看看泳装破损后的情况捏???........)。
目前PSP累计通关游戏1个,对PSP不怎么了解,下面内容可能有的地方说的不太对,请谅解一下。
修改目的:别的都不动,就是单纯的修改需要联动的奶挺装和OD装,最后武器也和奶挺一块出现。本来期待别人做个金手指,我copy一下多省事,但这么长时间都没有,看来还是自己动手好一点。
环境:6.20美版破解,记录情况:normal,hard通关,正在deadly难度纠结。
修改服装参考帖子:http://www.cngba.com/thread-19053123-1-1.html
修改器用的CMF,反正改内存差不多都一样,服装一共用了两个字节的内存来表示。
0x014AB75C
1 1 1 1 1 1 1 1
奶挺 旗袍 兔子 泳装 OL 女仆 初始羽绒 初始牛仔
0x014AB75D
高4位为0 0 1 1 1
骑士 OD 圣诞
(和游戏中服装显示的顺序从上到下一致)
单独修改奶挺装和OD装方法:用修改器读出这两个字节的16进制数,0x014AB75C应该是个大于0x3(11)的数,0x014AB75D应该是高4位为0,低4位不大于0x7(111)的数,然后变成2进制(Windows计算器可以实现),把对应奶挺和OD位的0变成1,再转换为16进制,用CMF把内存动态修改一下就可以了。
测试数据:
16位数据格式:0x0□□□,从右到左为:最低位为0x014AB75C低4位,然后为0x014AB75C高4位,然后为0x014AB75D低4位,最高位为常值0。
0x0000:自动变成OL装和圣诞装,内存自动变为:0x0108(1,0000,1000)
0x010F:原始2套,女仆,OL,圣诞,(1,0000,1111)
0x010E: 羽绒服,女仆,OL,圣诞,(1,0000,1110)
0x010D: 原始牛仔,女仆,OL,圣诞(1,0000,1101)
0x0107:自动变成原始两套,女仆,OL,圣诞,内存自动变为:0x010F(1,0000,1111)
0x011F: 原始2套,女仆,OL,圣诞,泳装,(1,0001,1111)
0x012F: 原始2套,女仆,OL,圣诞,兔子装,(1,0010,1111)
0x01FF:原始两套,女仆,OL,泳装,兔子,旗袍,奶挺,圣诞(1,1111,1111)
0x03FF: 原始两套,女仆,OL,泳装,兔子,旗袍,奶挺,圣诞,OD, (11,1111,1111)
0x07FF: 原始两套,女仆,OL,泳装,兔子,旗袍,奶挺,圣诞,OD,骑士,(111,1111,1111)
单机全部取得应该是0x57F(101,0111,1111)
修改为0x7FF(111,1111,1111)就可以实现全装。
有一个问题,我自己测试过程中,圣诞装对应位始终会自动变1,当我修改为0,切换到游戏里就显示获得新服装,然后自动变为1,说明这两个字节的数据并非完全独立,可能与我通关情况有关。所以个人决定,先单机获得全部能获得的服装,然后再改最后的两套,保险一点。
我测试全0是为了看看,是不是这样可以直接看到不穿衣服的模型,看来我太天真了。
=================女神的分割线==========================
CMF地址图片:
这两个字节的地址对应表格:
(图片能看到最好,看不到下载一下附件。)
用CMF(CMF使用就自己找去吧,我这里不说了)找到0x014AB75C的地址,第一个图片对应的红色标记处,因为内存一个地址对应一个字节,是8位,而一共有11套服装,如果用每个独立的位表示是否取得服装(0:没有取得;1:已经取得),一个字节是不够的,所以0x014AB75D用了最低的3位。图中红笔圈起来的C就是0x014AB75C,圈起来的D就是0x014AB75D
这两个字节的内存每位对应哪个服装在第二幅图给出。0x014AB75D的高4位和第4位没用,没改动前都是0,建议不要动。我试了一下,全置1,游戏没什么变化,而且系统没有自动置0,但还是建议不要动。按道理程序读取这两个字节做比较的时候,应该按位做个运算,把0x014AB75D的数和0x7按位“与”一下,就是前3位有变化的时候也能通过这个操作屏蔽掉。
修改方法:先用CMF找到0x014AB75C和0x014AB75D地址(0x是16进制的表示,后面就是具体地址,都是16进制),把0x014AB75D对应的数字(两个数字,前面一个是0)和0x014AB75C对应的数字拼接到一起,0x014AB75D的放到前面,0x014AB75C的放到后面,样子就是:0x0□□□(0x表示16进制,后面的是拼起来的数)。
然后用windows自带的计算器,选择程序员型(我系统是windows7是这么写的,xp的我忘了,反正能找出带有16进制、2进制的那个模式就行),选择16进制,把0x0□□□输进去(0x不用输,只输最后4位,最后3位非0的也行),点击2进制,可以变成一串0和1的数,4个16进制最多是16位的二进制,但由于前面的0是不显示的,所以可能少几位。这样可以和那个表格的图片对应起来。看哪一位是0,哪一位是1就可以看出哪些服装没有获得。
单独修改奶挺和OD装,把这串二进制的数,从低位到高位(从右往左)第8位和第10位改成1(单机没修改前一定是0),记下这串二进制的数,然后在计算器里选择二进制输入,然后点16进制就可以变成16进制的数了,对应0x0□□□里面的3个方块,倒数第3个方块最大可能就是7。
然后用CMF,找到0x014AB75C和0x014AB75D地址,把后两个方块的数输入到0x014AB75C对应位置(第一个图中5F的位置);把倒数第三个方块的数,前面加个0输入到0x014AB75D位置(第一个图中01的位置)(每个位置都需要输入2个数字)。然后返回游戏,就OK了。
由于CMF读取金手指的最小修改单位是字节(第一次用,不知道这句话说的对不对,如果读文件能按位修改,就告诉我一下,我懒得去研究了),所以没办法做成文件,只能根据每个人实际情况作动态修改。
我就能写这么详细了,上大学的理科的同学应该没问题,我记得C语言和计算机原理都有这些;上高中的同学就上网查查进制转换,应该没什么问题。
修改前存档备份是个好习惯。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|