Maybe you should do it the other way around by starting with the Neo-Geo Pocket. You need excellent knowlege of computer languages (mainly C, C++ and/or Assembly), as much technical documents as possible about the system you are trying to emulate (how the CPU works, memory maps, input handling, BIOS calls, how the system displays something on the screen, how sound is produced, etc. etc.)