I had a 95% accurate emulator for GG/SMS running in one night. The only bit I took off-the-shelf was some C code for the Z80. I promise you it is pretty easy - if you've coded some assembler before then you'll pick it up really quickly. You don't even need to know Z80 opcodes or anything - it is more about mapping all the memory addresses and setting up an onscreen bitmap to blit all the sprites to.