Hardware emulation in the computer

I have developed for PICs, in fact it was what I learnt microcontrollers on. The PIC ide has a built in simulator and quite frankly it is worthless because of a total lack of external stimuli.

Now, as for a in circuit debugger, the atmega chips have built in support for a ICD, but the actual ICD devices tend to be quite expensive, although support for them within the arduino IDE would be nice. ICD and ICE is rather complicated though, so I can't see it happening.