old kernels, reverse-engineering, new kernels...
the key rule to reverse-engineering is to only have one thing to change at any one time in order to find out its effect. or to have the minimum number of things.
at the moment, i have a particularly difficult task with the blueangel: the sound infrastructure for soc devices is undergoing a rewrite, and unfortunately it was never entirely completed for the blueangel back for 2.6.12.
however, if sound was played from wince at the time that haret booted into linux, sound _did_ at least work. so there was a 'known' state to test things.