GameLad – Gameboy emulator written in C++
1–10 of 11 posts
Re: GameLad – Gameboy emulator written in C++
#2For me the most interesting GB emulation project is Mooneye due to being written in Rust and its emphasis on accuracy and documentation of GB hardware: https://github.com/Gekkio/mooneye-gb
Re: GameLad – Gameboy emulator written in C++
#3Re: GameLad – Gameboy emulator written in C++
#4I wrote a gameboy emulator a few years ago now in Go (https://github.com/djhworld/gomeboycolor), it was a personal project that had a lot of highs but crippling lows.
Very rewarding, but frustrating. I don't think it builds anymore due to library conflicts.
Re: GameLad – Gameboy emulator written in C++
#5Writing Gameboy emulator is fun, just like writing a raytracer. And it can be nice way to learn a new language. Is there something special/different in this project compared to many others? For me the most interesting GB emulation project is Mooneye due to being written in Rust and its emphasis on accuracy and documentation of GB hardware: https://github.com/Gekkio/mooneye-gb
What about the implementation is interesting? Does it make heavy use of some new feature like coroutines, or something? It is supposed to be very elegant? What?
Re: GameLad – Gameboy emulator written in C++
#6Writing Gameboy emulator is fun, just like writing a raytracer. And it can be nice way to learn a new language. Is there something special/different in this project compared to many others? For me the most interesting GB emulation project is Mooneye due to being written in Rust and its emphasis on accuracy and documentation of GB hardware: https://github.com/Gekkio/mooneye-gb
My thoughts exactly. Being written in C++ isn't interesting enough on its own. What about the implementation is interesting? Does it make heavy use of some new feature like coroutines, or something? It is supposed to be very elegant? What?
Re: GameLad – Gameboy emulator written in C++
#7Re: GameLad – Gameboy emulator written in C++
#8Writing Gameboy emulator is fun, just like writing a raytracer. And it can be nice way to learn a new language. Is there something special/different in this project compared to many others? For me the most interesting GB emulation project is Mooneye due to being written in Rust and its emphasis on accuracy and documentation of GB hardware: https://github.com/Gekkio/mooneye-gb
My thoughts exactly. Being written in C++ isn't interesting enough on its own. What about the implementation is interesting? Does it make heavy use of some new feature like coroutines, or something? It is supposed to be very elegant? What?
Re: GameLad – Gameboy emulator written in C++
#9Writing Gameboy emulator is fun, just like writing a raytracer. And it can be nice way to learn a new language. Is there something special/different in this project compared to many others? For me the most interesting GB emulation project is Mooneye due to being written in Rust and its emphasis on accuracy and documentation of GB hardware: https://github.com/Gekkio/mooneye-gb
My thoughts exactly. Being written in C++ isn't interesting enough on its own. What about the implementation is interesting? Does it make heavy use of some new feature like coroutines, or something? It is supposed to be very elegant? What?
Re: GameLad – Gameboy emulator written in C++
#10It was my second major emulation project, and took roughly 3 months to write. Years ago, I started work on an NES emulator and worked on it on+off for...well, probably about 5-7 years. Despite the time investment, khednes is a much uglier chunk of code than khedgb. I like to think of it as evidence that I've learned some things in the meantime.
Game Boy's fun; the CPU's a little nicer than the NES's, the memory controllers in the cartridges are less numerous and more regular, and the video controller is built in such a way that most games use less cycle-counting than they did on NES, so timing isn't as finicky.
I'm moving on to Game Boy Advance now. Figuring out ARM instruction decoding and reading up on the architecture has taken about the amount of time that it took to write my initial GBZ80 implementation.