A common approach is to implement an emulator of the CPU and/or system which hosted the legacy game(s) and then to run the binaries of the game as-is (or only slightly altered).
This approach is certainly not as powerful as a true rewrite/port of the original work, for example it doesn't allow you to modify the game in any way, not even to fix existing bugs, but it is also very practical for by re-creating a single host system, one can run dozens of different games.
The tools to rewriting / porting an application in earnest are the common tools of reverse engineering of software:
- disassemblers (in particular for the Z80 CPU which was quite popular with arcade game producers)
- decompilers (if you have some insight into which higher language the game was written in)
- Google ;-) (I mean Internet Search Engines at large), as finding, even fragmentary source code or information related to the targeted game (or even to games produced on/for the same system) can provide a formidable jump-start to the project.
Before you get too advanced in any such project, I suggest you assert the legality of the project and that you seek formal permission fromthe relevant right owners etc.
I can't find it at the moment but I remember a story about someone who recently revived a long defunct game (!) running on now outdated hardware/system hosts, and yet who got in trouble when trying to market (or was it even for free?) the "revived" application...