Why would you avoid tutorials? If you have no idea what emulation involves, how are you going to start from scratch? If things like "program counter", "CPU registers", "conditional flags", and "fetch-decode-execute" mean diddly squat to you, how are you going to jump right in? You can read all the documentation you want about a game console, but if you have no clue about the concepts behind emulation, I don't think you'll be getting very far.
A good tutorial explains to the reader "Hey, this is what it means to emulate a CPU," in general terms. They may also delve into a section that reads "This is how I would do it." Yes, you shouldn't freely copy code left and right with reckless abandon if you don't understand what that code does. But when you're beginning and you need guidance, it's a very good idea to look at other people's code. The key here is comprehension. Look at the code to say "Oh, so that's what it means when you pop values from the stack!" The code is there to show you how its done, but you should also be looking at it to better understand why it's being done. There's a difference between going in blindfolded and blindly copy+pasting random code.
Trust me, I started on Imran Nazar's GB tutorials, and that gave me the experience I needed to tackle other systems without any hand-holding. I basically jumped into GBA emulation with only GBATEK as a reference. I've only looked at VBA-M to verify some of my HLE BIOS calls (although I did recently copy their sine look-up table, clean it up, gave it some comments, and got rid of redundant type-casting).
So yes, I would start with CHIP-8 if you have absolutely no understanding on emulation, or just a little. That's something you could easily do with Python, and as long as you can draw pixels (nothing fancy, just black and white) graphics should be easy to implement. Sound is just a beep, which shouldn't be hard either. I'm going to leave this here for you. Yes, it's a tutorial, but as long as you read it to understand what CHIP-8 games are how someone needs to go about emulating them, you'll learn plenty about emulation -> http://www.multigesture.net/articles/how-to-write-an-emulator-chip-8-interpreter/
A good tutorial explains to the reader "Hey, this is what it means to emulate a CPU," in general terms. They may also delve into a section that reads "This is how I would do it." Yes, you shouldn't freely copy code left and right with reckless abandon if you don't understand what that code does. But when you're beginning and you need guidance, it's a very good idea to look at other people's code. The key here is comprehension. Look at the code to say "Oh, so that's what it means when you pop values from the stack!" The code is there to show you how its done, but you should also be looking at it to better understand why it's being done. There's a difference between going in blindfolded and blindly copy+pasting random code.
Trust me, I started on Imran Nazar's GB tutorials, and that gave me the experience I needed to tackle other systems without any hand-holding. I basically jumped into GBA emulation with only GBATEK as a reference. I've only looked at VBA-M to verify some of my HLE BIOS calls (although I did recently copy their sine look-up table, clean it up, gave it some comments, and got rid of redundant type-casting).
So yes, I would start with CHIP-8 if you have absolutely no understanding on emulation, or just a little. That's something you could easily do with Python, and as long as you can draw pixels (nothing fancy, just black and white) graphics should be easy to implement. Sound is just a beep, which shouldn't be hard either. I'm going to leave this here for you. Yes, it's a tutorial, but as long as you read it to understand what CHIP-8 games are how someone needs to go about emulating them, you'll learn plenty about emulation -> http://www.multigesture.net/articles/how-to-write-an-emulator-chip-8-interpreter/
