What's new

why GB?

gunder

New member
Hello everyone. I'm not new to emulation or programming but emulator programming is a whole new beast to me. I've always been fascinated with emulators and I've wanted to write one forever. I would like to write an SNES emulator eventually but I'm going to start simple.

After scouring google I came across this message board and have done quite a bit of reading. I've decided to start off by doing a chip8 emulator/simulator. It seems that everyone moves directly to a GB emulator after doing a chip8. Is there a particular reason for this? Is it a fairly easy system to emulate or is there just a lot more documentation out there then say NES or SMS?

Anyway, hello hello everyone, I'm glad I found this board. I hope you can all stand one more n00b :).

-gunder
 

refraction

PCSX2 Coder
hello, welcome to the boards :)

Well the reason most people go to GB is because its pretty much THE next step into emulation after chip8, out of all the older systems it is probably because it is one of the best documented, altho not necesseraly the easiest.

It also gives you a good aspect of things you will encounter in later projects like interrupts and counters/timers which many emulation projects rely on, altho the GB one is reasonably simple, its still very tricky and crucial to compatability (in quite a few cases)!!

good luck with your Chip8 emu, im sure if there are any problems, have a look through the Chip8 thread, it should hold your answer, if not, post in there and somebody will help you :)
 

BGNG

New member
Logically, one would think that older systems are easier to start with because their archetecture is simpler. That's not necessarily true. The older systems, particularly the first few, tend to be guinea pigs in terms of how videogame technologies tend to work.

The NES, albeit incredibly simple from a hardware standpoint, uses every trick in the book (and then some) just to get past a few fundamental drawbacks. Intuitive on behalf of the developers, but that makes for a somewhat garbled emulator.

Game Boy doesn't so much rely on these third-party innovations because it was invented after the NES used such techniques. GB carts by default had a PRG-ROM Bank Swapping functionality, and the Game Boy itself was constructed to incorporate the idea.

While you will certainly have a better understanding of WHY things are the way they are by writing emulators chronologically according to their system history, you'll have more immediate and satisfying results if you jump into the middle; like in this case, going to GB instead of NES.
 
OP
gunder

gunder

New member
I had never even heard of Chip8 until I found these forums. I've played a couple emulators for it to get a feel for the games. It seems like it should be super simple and teach me the absolute basics. Hopefully I can do it without spamming that chip8 thread like crazy. I read the whole chip8 thread and the GB thread as well, there is a lot of interesting stuff, quite a bit I don't fully understand yet but a lot of good info.

After doing some more reading I see what you mean about NES being more difficult to emulate. It seems like figuring out a ton of different mappers could be a pain in the butt. I had thought about trying an Atari emulator after chip8 but I can't really play Atari games any more and have fun with them. I don't know from experiance (yet) but I'm sure there is a great amount of satisfaction when your emulator boots up and plays a game that you loved playing in your childhood.

-gunder
 

refraction

PCSX2 Coder
good luck with it, if you do have problems, search through the chip8 thread, if its not answered leave a post there and one of us will answer you :)
 
OP
gunder

gunder

New member
Cool cool, I'm really starting to get excited about this. I've already read the whole chip8, GB and NES threads but I'm going to start studying everything in the chip8 thread to see if I can find some common problems. What should I start out with. a debugger/disassembler or should I just go straight for the interpreter?

-gunder
 

BGNG

New member
Personally, I would set up placeholders for the emulation architecture. Use bunches of "To Do" things... Set one part aside for CPU execution, one part for RAM, one part for ROM, one thing for sound, one thing for video, one thing for input, and one part to incorporate all of that into the memory map...... I can't think of anything else Chip8 has off the top of my head other than what I mentioned.
 

refraction

PCSX2 Coder
do your basic gui then start with laying out the memory and registers and rom loading functions, then do the cpu, then work on graphics, sound and controls last
 
OP
gunder

gunder

New member
Thanks for your help and suggestions. I'm going to hopefully start working on it this weekend. I'll do my best not to post stupid questions/requests for help :). wish me luck!

-gunder
 

Top