Well, you had
alot of troubles with Chip8, and I think alot of it stemmed from not understanding the core components of the language you were using. So I would say get yourself a good book or ebook (like
this one), and try to learn C++ a little better. I pesonally have read probably 30-40 books on programming and various programming languages, and each one has helped me grasp the language better in some way, one of those books being
Thinking in C++ (First and Second Editions) Also, I would try looking at and working on some larger projects, as your code seemed to show a lack of any organizational strategy, which helps immensely during debugging. The end result did have an organizational pattern, but it seems very familiar after look at the sources of other Chip8 emulators. Anyway, Once you've done that, I'd say try rewriting your Chip8 emulator with what you've learned and see if you can't make it even better. Then move on to something like Gameboy. I hope that this will help you and the best of luck to you.