Hello. I've written an NES emulator, and was able to do so because of the vast amount of information about the NES I was able to find online. All of the hardware details were very well documented, and there is a specification for the ROM file format(sorry it wouldn't let me post a link, google...