Having checked off most of the list, I would agree the Game Boy emulator is far easier than the OS.
I guess with the emulator it depends how much you want to do. You'd be foolish to write a console emulator and not import someone else's CPU code. When I wrote a Game Gear emulator 26 years ago I used off-the-shelf CPU code and just mapped all the in/out and did the graphics bits. Took me and a friend a single evening to get it happily playing games.
And OS is harder. Well, it was last time I wrote one, again about 26 or 27 years ago. Getting something to boot at all was tricky. I used this book as my main source of inspiration:
Let's agree to disagree. Something being done before is hardly relevant when you're using a project to learn. "Optimized to hell" I don't know about; it's a CPU emulator, there isn't that much you should be doing with it anyway. If you're doing accurate emulation speed doesn't seem like your primary factor as long as you're not implementing it in something ridiculous that will involve a GC.
Also, I don't get the point about research: It's a learning project... Doing research and learning is the actual point. Sure, maybe you slice off one part right now if you're not interested in learning how the CPU works, but to say that you'd be foolish to not use someone else's implementation seems to me to be missing the point by quite a margin.
Isn't that most of the point of making an emulator? If you are just gonna focus on the graphics you might as well just make your own game in SDL or whatever.
I guess with the emulator it depends how much you want to do. You'd be foolish to write a console emulator and not import someone else's CPU code. When I wrote a Game Gear emulator 26 years ago I used off-the-shelf CPU code and just mapped all the in/out and did the graphics bits. Took me and a friend a single evening to get it happily playing games.
And OS is harder. Well, it was last time I wrote one, again about 26 or 27 years ago. Getting something to boot at all was tricky. I used this book as my main source of inspiration:
https://www.amazon.com/Developing-32-Bit-Operating-System-Cd...