@Harry Stottle
"The reason for its failure is that, in order to be able to do the - admittedly impressive - things it can do, it has to spend the whole time listening to what's going on in the world in order to make an intelligent decision "Should I be reacting to that noise?"...
However, given enough processing power, the job of parsing all the input data from the world around it and deciding if it was necessary or worth could be handled by a subroutine who's sole purpose was just that. That's what a virtual intelligence will have to be - a pile of subroutines which shout for attention from the main decision making process when something needs a reaction - and the reaction would be delegated to another subroutine.
You just need three things -
1. Inputs from the world around you - camera's, mic's, internet connection (of course) and satellite spying gear, and routines to monitor, filter and pass the relevant data to....
2. A decision making process, driven by whatever imperatives are initially programmed in - ensuring own survival, saving humans, taking over the world (delete as appropriate), which is achieved by passing commands to...
3. A set of response mechanisms, so the machine is able to actually do something about the situations that arise (steering wheel, ray gun, dancing robot drone) - and routines to drive them.
Each section would need oodles of processing power, but thats what we seem to be getting more and more of - in ten years you will probably see peta-flop EEEE Pc's.