The following warnings occurred:
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 795 - File: showthread.php PHP 7.4.33 (Linux)
File Line Function
/showthread.php 795 errorHandler->error





Post Reply 
 
Thread Rating:
  • 1 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
求官方修正及补充CW金手指的全部功能,帖内有缺失功能的总结
07-24-2013, 04:28 AM (This post was last modified: 07-25-2013 06:27 PM by 王动字别情.)
Post: #1
求官方修正及补充CW金手指的全部功能,帖内有缺失功能的总结
金手指的功能不只是把游戏变得更简单,灵活运用代码的话可以使游戏发生很神奇的变化,有时候可以增加很多很多游戏性。
比如:某金手指效果视频

目前PPSSPP的金手指功能还不完善,很多效果没法达成,希望官方能够补完

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~​~~~~~~
目前缺失功能总结(以2013年7月23日更新v0.8.1-749-g3139c5f的32bit windows版为基准 ):
1.拷贝码:
_L 0x5aaaaaaa 0xnnnnnnnn
_L 0xbbbbbbbb 0x00000000
将aaaaaaa地址上的数据拷贝nnnnnnnn个字节到bbbbbbbb地址上
**代码无效**
~~~~~~~~~~~~~~
2.指针码
_L 0x6aaaaaa 0x000000 bb
_L 0xqqqDnnnn 0xcccccccc
_L 0xSssssss 0x000000dd
从aaaaaaa地址开始读取四字节的数值后减去08800000再(加上D = 0/减去D = 3)cccccccc,把此数值当作实际地址,把此实际地址上的数值修改成 bb 。 aaaaaaa 的尾数必须是0、4、8或C。
如果想用指针压缩码的话需要9开头的那行附加行,共压缩 nnnn 组有规律的普通的指针码,每次 aaaaaaa 递增 qqq ×4, cccccccc 递增 sssssss , bb 递增 dd 。
_L 0x6aaaaaaa 0xbbbbbbbb
_L 0xqqq00002 0xcccccccc
_L 0x1sssssss 0x00000000
nnnn 必须等于0002,作用是从地址A复制 bbbbbbbb 个字节到地址B。
地址A= aaaaaaa 上的值减08800000加 cccccccc
地址B= ( aaaaaaa + qqq ×4)上的值减08800000加 sssssss
**如果内存地址上没有指针的话,无法跳过代码继续运行,会出错,只有指针存在的情况下才能运行**
**所有指针码中只有指针直写码有效,指针压缩码和指针拷贝码全都会忽略附加行,被强制认成指针直写码**
~~~~~~~~~~~~~
3.单字节条件码
_L 0xE1nn00dd 0xXaaaaaaa
当地址aaaaaaa数据(0 等于;1 不等于;2 小于; 3 大于)dd时下面nn条代码起效,否则代码不执行。
**运行出错**
~~~~~~~~~~~~~
4.嵌套条件码
_L 0xE1nn00dd 0xXaaaaaaa
当地址aaaaaaa数据(0 等于;1 不等于;2 小于; 3 大于)dd时下面nn条代码起效,否则代码不执行。
_L 0xE0nndddd 0xXaaaaaaa
当地址aaaaaaa数据(0 等于;1 不等于;2 小于; 3 大于)dddd时下面nn条代码起效,否则代码不执行。
**条件码里的数量值多于该组中被条件限制的代码数量就出错**
例:
//NPJH-50107
//GVSG_NEXT_PLUS
_C1 copy
_L 0xE001000A 0x009B6020
_L 0x01700000 0x00000001
_C1 copy
_L 0xE001000B 0x009B6020
_L 0x01700000 0x00000002
这种代码就不会出错,但是把条件码里的01改成1E就会出错
//NPJH-50107
//GVSG_NEXT_PLUS
_C1 copy
_L 0xE01E000A 0x009B6020
_L 0x01700000 0x00000001
_C1 copy
_L 0xE01E000B 0x009B6020
_L 0x01700000 0x00000002
这样就会出错
因为PSP上的CW插件每组代码最多支持30行,因此有时候想限制整组代码时通常会在该组的第一行写出条件,如:_L 0xE11E000A 0x009B6020
这个已经是绝大部分金手指写手的习惯了,网路上效果复杂的金手指也基本上都是这么写的,自动识别条件限制的代码行数还是很必要的
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
求官方修正及补充CW金手指的全部功能,帖内有缺失功能的总结 - 王动字别情 - 07-24-2013 04:28 AM

Forum Jump: