If you don't care about 1:1 accuracy, then many other projects went the other route, recreating the engine from scratch as closely to the original as possible, but using all new code. They went for making 1:1 'identical' source code (not actually identical, but functions identically and compiles to an identical ROM)
That is not the only way to reverse engineer a game though. These are huge projects, taking a skilled team years of work to complete. (oot mostly complete, others in various stages of completion) Have a look at some recent reverse engineering projects: Click to expand.That is not an easy task.