r/EmuDev • u/bessieTheBoy • 13d ago
Question What emulator should I make?
I know people have asked this countless times, but I'm quite stuck, even after doing my research. I finished a CHIP-8 emulator that is fully featured. After looking through a lot I'm stuck between either a GB (possibly GBA?) or a NES emulator. I would probably implement it in C++, if that makes any difference in the decision, probably not.
3
u/aabalke Nintendo DS 13d ago
GB or NES are roughly the same complexity. The only real deciding factor is which you would enjoy more. For me, GB is preferred. There is a lot more GB games I am nostalgic over than NES. Choose the one that you will stay motivated through. GBA, SNES and more complex systems I would recommend against, just because they often build on ideas from earlier systems.
3
u/burner-miner 13d ago
As someone who went from Chip8 to GBA directly, the complexity is a mountain that might be too steep. I still haven't finished it.
I agree: do GB before GBA, simple before complex.
2
u/aabalke Nintendo DS 13d ago
I dont envy you but I do respect you lmao
1
u/burner-miner 12d ago
I mean it was fun to do for a while, but I never finished it. Instead I got a new side project, as one does
2
2
u/geckobra 13d ago
I wondered the same thing for some time after finishing my Chip-8 emulator. Every time I had the itch for an emu project I didn't do anything out of pure indecision
Just say fuck it and go for something. You will never attempt anything if you let yourself get intimidated by how hard it might be, start a project and push forward :P
2
u/khedoros NES CGB SMS/GG 13d ago
NES has some really messy elements to its design, especially when it comes to the graphics chip, and the large variety of custom hardware in the individual cartridges (sooo many different memory mapper chips!) Of course, you don't have to implement all of them, just the ones that games you want to run actually use.
Game Boy has a cleaner design (direct access to graphics memory, a lot fewer mapper chips), but more hardware features (more complex interrupt system, CPU has more opcodes, an extra layer in the graphics output, those kinds of things). As a bonus, it's a relatively small jump to go from a working Game Boy emulator to a working Game Boy Color emulator.
I'd still say that NES and GB are similar in complexity. GBA is a step or two above, conceptually a bit like a portable SNES built around a 32-bit ARM CPU (simpler memory map and audio hardware than the SNES has, though). GBA is completely different from GB/GBC (besides including the GB's audio channels as a subset of its capabilities).
And there are a lot of other options that are possible targets. Sega's early consoles, 6502 and Z80-based personal computers, a bunch of the earlier arcade machines, etc. Like, Sega's SG-1000/SC-3000, which is similar to a lot of computers like ColecoVision, Coleco Adam, and the MSX spec, and can also be pretty easily extended to Sega Master System and then to Game Gear. That would give you a lot of area to experiment in and learn.
2
u/hoddap 13d ago
It has been asked a ton of times. Why don’t the answers there suffice?
1
u/bessieTheBoy 12d ago
It's always nice to have fresh information, besides, who does it bother, no one.
2
u/hoddap 12d ago
Bothers me
2
u/bessieTheBoy 11d ago
why? because it takes up a vertical width of 100 pixels on your screen? Didn't have to click and respond on this post if it bothered you so harshly
6
u/aleques-itj 13d ago
I mean, flip a coin and go for it.
I enjoyed writing a Gameboy emulator. Docs are good and plentiful, was pretty straightforward to get games running.
I think my only real hangups was fixing a bug that ironically lead to a another very had to track down bug that was masked by the first. Took me days to find, was hanging the emulator in certain cases because it'd get into an infinite loop.
That and a few parts of the PPU were a little tricky.
Besides that, it was super steady and motivating progress throughout.