I think software is rather easy to archive. Emulators are they key. Nearly every platform from the past can be emulated on a modern arm/x86 Linux/windows system. Arm/x86/linux/windows are ubiquitous, even if they might fade away there will be emulators around for a long time. With future compute power it should be no problem to just use nested emulation, to run old emulators on an emulated x86/linux.
The reality is, that someone else already spent a tremendous effort of building emulators. Or do you know any older platform that can't be emulated? 100% accuracy is not needed, that's not possible. Even current hardware is not 100% accurate and has bugs/flaws.