Reverse Engineering is how they create most emulation software for games. It's a time consuming and rigorous process, but the final product can be worth wild.