龙凤北斗
生命!绽放光芒
级别: 火花会员
编号: 59321
精华: 1
发帖: 133
威望: 5 点
配偶: 单身
火 花 币: 0 HHB
注册时间:2006-08-18
最后登陆:2022-02-26
|
最近翻了下UCG 2004年3A期关于ps2修改的相关资料 连续4期
修改ps游戏需掌握R3000指令(最初好象是这样应该算是最正面的修改) 而熟识R3000指令的能很快掌握ps2的R5900指令 R5900指令有可以分成几种不同指令 掌握最常用的就行 修改ps2游戏 首先要一台有DVD—ROM的电脑 ps2金手指制作工具:PS2DIS (跟UE作用差不多) PS2DIS打开ELF,分析
因为现在PS2模拟器开发度达到一个相当高的水平了可顺畅运行FF10 (本人的ps2机在过FF10的CG画面时都有点卡 SQUARE的CG技术果然是业界最高的) http://www.gz139.com.cn/Html/game_zixun/2006-7/6/09035245429.html 也就是说现在可以使用修改器进行ps2修改了 而且EC2007已经有对应ps2模拟器 PCSX2 的最新版 电脑上使用cep 对代码行数是无限制 的 而且cep本身支持的金手指码比EC多 现在电脑模拟ps2成为可能 估计未来的cep0.2.5就会加入 PCSX2 模拟器的修改 只是时间问题
大家可以到网上去查具体用法 高级hack需掌握高精度浮点转换 和一门汇编语言
R5900简易指令表:
ADD -- Add 含义:两个存储地址数值($s)和并储存到该地址中 $d = $s + $t 后缀表现形式为(以下省略):add $d, $s, $t ADDI -- Add immediate 含义:一个储存地址数值($s以下省略)加一个即时读取值(imm以下省略) $t = $s + imm addi $t, $s, imm ADDIU -- Add immediate unsigned 含义:一个储存地址数值加一个无符号即时读取值 $t = $s + imm addiu $t, $s, imm ADDU -- Add unsigned 含义:两个存储地址数值的和并存到第一个存储地址中 $d = $s + $t addu $d, $s, $t AND -- Bitwise and 含义:逻辑与两个存储地址数值的值并存到第一个存储地址中 $d = $s & $t and $d, $s, $t ANDI -- Bitwise and immediate 含义:逻辑与一个存储地址数值和一个立即数的值并存到第一个存储地址中 $t = $s & imm andi $t, $s, imm BEQ -- Branch on equal 含义:比较两个存储地址数值相等,若相等则偏移地址逻辑左移两位 if $s == $t offset BGEZ -- Branch on greater than or equal to zero 含义:比较如果存储地址数值的值大于或等于零,则偏移地址逻辑左移两位 if $s >= 0 offset BGEZAL -- Branch on greater than or equal to zero and link 含义:比较如果存储地址数值的值大于或等于零,则把返回的地址存入ar存储地址中 if $s >= 0 offset BGTZ -- Branch on greater than zero 含义:比较如果存储地址数值大于零,则偏移地址逻辑左移两位 if $s > 0 offset BLEZ -- Branch on less than or equal to zero 含义:比较如果存储地址数值小于或等于零,则偏移地址逻辑左移两位 if $s BLTZ -- Branch on less than zero 含义:比较如果存储地址数值小于零,则偏移地址逻辑左移两位 if $s BLTZAL -- Branch on less than zero and link 含义:比较如果存储地址数值小于零,则把返回的地址存入ar存储地址中 if $s BNE -- Branch on not equal 含义:比较两个存储地址数值不相等,则偏移地址逻辑左移两位 if $s != $t offset DIV -- Divide 含义:除法运算,商存入LO,余数存入HI $LO = $s / $t $HI = $s % $t div $s, $t DIVU -- Divide unsigned 含义:无符号除法,商存入LO,余数存入HI $LO = $s / $t $HI = $s % $t divu $s, $t J -- Jump 含义:跳到计算所得地址 PC = nPC nPC = (PC & 0xf0000000) target JAL -- Jump and link 含义:跳到计算所得地址,并存入ar中 $31 = PC + 8(or nPC + 4); PC = nPC; nPC = (PC & 0xf0000000) | (target JR -- Jump register 含义:跳到存储地址数值中 PC = nPC; nPC = $s; jr $s LB -- Load byte 含义:从叙述地址载入一个字节到存储地址数值中 $t = MEM[$s + offset] lb $t, offset($s) LUI -- Load upper immediate 含义:立即数值取左十六位,并存入存储地址($t)。低位补零 $t = (imm LW -- Load word 含义:从叙述地址载入一个字(从某MEM中,提取offest后面的值+入$s)到存储地址中 $t = MEM[$s + offset]; lw $t, offset($s) MFHI -- Move from HI 含义:把HI存储地址数值的值放到叙述存储地址中 $d = $HI mfhi $d MFLO -- Move from LO 含义:把LO存储地址数值的值放到叙述存储地址中 $d = $LO mflo $d MULT -- Multiply 含义:两个存储地址数值相乘结果存入LO中 $LO = $s * $t mult $s, $t MULTU -- Multiply unsigned 含义:无符号两个存储地址数值相乘结果存入LO中 $LO = $s * $t multu $s, $t NOOP -- no operation 含义:不做任何操作 OR -- Bitwise or 含义:逻辑或两个存储地址数值结果存入一个存储地址中 $d = $s | $t or $d, $s, $t ORI -- Bitwise or immediate 含义:逻辑或一个存储地址数值和一个立即数的值结果存入一个存储地址中 $t = $s | imm ori $t, $s, imm SB -- Store byte 含义:存储一个字节 MEM[$s + offset] = (0xff & $t); sb $t, offset($s) SLL -- Shift left logical 含义:逻辑左移 $d = $t SLLV -- Shift left logical variable 含义:指定循环次数的逻辑左移 $d = $t SLT -- Set on less than (signed) 含义:比较 if $s SLTI -- Set on less than immediate (signed) 含义:比较,与立即数 if $s SLTIU -- Set on less than immediate unsigned 含义:比较,与无符号立即数 if $s SLTU -- Set on less than unsigned 含义:比较,与无符号数 if $s SRA -- Shift right arithmetic 含义:算术左移 $d = $t >> h sra $d, $t, h SRL -- Shift right logical 含义:逻辑右移 $d = $t >> h srl $d, $t, h SRLV -- Shift right logical variable 含义:指定循环次数的逻辑右移 $d = $t >> $s srlv $d, $t, $s SUB -- Subtract 含义:两个存储地址数值相减结果存入一个存储地址中 $d = $s - $t sub $d, $s, $t SUBU -- Subtract unsigned 含义:两个无符号存储地址数值相减结果存入一个存储地址中 $d = $s - $t subu $d, $s, $t SW -- Store word 含义:存储一个字 MEM[$s + offset] = $t sw $t, offset($s) SYSCALL -- System call(默认为系统储存) 含义:产生一个软中断 syscall XOR -- Bitwise exclusive or 含义:异或两个存储地址数值结果存入一个存储地址中 $d = $s ^ $t xor $d, $s, $t XORI -- Bitwise exclusive or immediate 含义:异或一个存储地址数值和一个立即数的值结果存入一个存储地址中 $t = $s ^ imm xori $t, $s, imm
天覇 D010B926 006D 8010B966 0000 D010B926 006D 8010B968 00FF D010B926 006D D010BA90 8F70 D310C31E 0003 80110500 0001 D0110500 0001 8010BA92 8011 D0110500 0001 8010BA90 02FF D010BA90 02FF 8010D2A0 0340 原来的8010D2DE 7FCF 可以变成这样 8010D2DE是不断减少的量(后来搜索到了 发现8010B926也可以搜索到) D0110500 0001 D010BA90 02FF D010BA92 8011 80110500 0002 D0110500 0002 8010C30C 0001 D010B926 00AA D210D2A0 0348 8010B924 0002 D010B926 00AA D210D2DE 0348 8010B926 002C D010B926 002C
[ 此贴被龙凤北斗在2008-01-06 18:13重新编辑 ]
|
|
[3 楼]
|
Posted:2008-01-03 22:12| |
顶端
| |