Bubbletune
Neophitic Presence
Posts: 8.4763 Threads: 0
Joined: 1st Sep 2008
Reputation: 0
E-Pigs: 0.4182
|
RE: 5.00 VSH Module Descrambler.
ZiNgA BuRgA Wrote: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 :)
Wee read the file backwards, and once wee find a co-processor instruction on the $at register, wee go further up till wee see either a 'lui $at' or an 'ori $at, $at'. Once wee find a 'lui' (which wee'll find last seeing wee're reading backwards), wee mix it with the value in the 'ori' just before that (if any), store the float, and start searching for another co-processor instruction. Note how 'lui' clears the entire register before it fills the upper bits ;)
As far as wee are concerned, this method should be able to find all floats without any trouble, and so it has been confirmed by several theme developers.
(This post was last modified: 18/10/2008 01:09 AM by Bubbletune.)
|
|
18/10/2008 01:07 AM |
|