There is a project called MAME (Multiple Arcade Machine Emulator) and another project called MESS (Multi Emulator Super System).
The purpose of these systems is to document the technical history of the arcade machines (MAME) and of all other kinds of computer devices (MESS). And it is done by documenting the technical details of all these machines in the shape of emulator source code. So, you end up being able to replicate the behaviour of these old machines by emulating them.
By looking at the source code of these thousands of emulators in MAME and MESS one can learn about how these devices operate and also gain some insight on what where the design decisions taken by their respective designers decades ago.