ZiNgA BuRgA
Smart Alternative
Posts: 17,022.2988 Threads: 1,174
Joined: 19th Jan 2007
Reputation: -1.71391
E-Pigs: 446.1294
|
RE: 5.00 VSH Module Descrambler.
Super Sheep Wrote:ZiNgA BuRgA Wrote:Hmm, so Sony decided to just split up the float into 2 16-bit chunks? Would like to see what they did to the compiler to achieve that :P
Anyways, nice work Super Sheep! :)
Not quite. They changed from storing in words (0xFFFFFFFF) to using opcodes.
for example:
lui 0xABCD
instead of:
0xABCD0000
Wee approached it much differently from theme developers. Wee read through assembly code of the vsh and Bubbletune found the floats.
As for splitting into 2 16-bit chuncks, yes, they did, sometimes.
lui 0xABCD
ori 0xEF12
that is the same as 0xABCDEF12
(lui = Load Upper Immediate, ORI = OR Immediate ( 0xABCD0000 | 0xEF12))
So those which are only lui's cannot pass 0xFFFF in size, or wee would need to add some voodoo haxx to add on ori into the equation.
Oh okay - I only just took a quick look at your source.
The problem with loading upper immediates would be that you can't really determine if something's been loaded before that. Checking immediates gets hard coded values, but with code execution, anything could really happen...
Probably impossible to get the lower 16 bits without writing some hell complex algorithm (which probably still won't work most of the time). Only real way would be to disassemble in each case.
But still, nice work you guys did :)
|
|
17/10/2008 07:34 PM |
|