Discussion about software development for the old-school Gameboys, ranging from the "Gray brick" to Gameboy Color
(Launched in 2008)
You are not logged in.
Hi,
I want to make an emulator which can emulate the Game Boy line (besides Advance).
I have no prior coding knowledge and I discussed this at the emulator-zone forums, where C++ was a good programming language to learn.
Discuss below.
(I already know where I'm trying to head with this project: an emulator which is highly accurate, fast and will be mostly aimed at the general gamer. C++ is apparantly used for a lot of emulators, too.)
Obviously I'm going to spend some time reading up on GB* documentation and ASM/etc, and I also have many roms to test it with (an entire set, including a bunch of HB games as well).
I'm not sure this is the right forum for me, though - but this is about GB stuff isn't it?
Offline
Hey bud!
Before worrying about creating an emulator, you should probably learn how to write code. Which will mean spending some time learning to write things that probably aren't an emulator.
I don't know of any good C++ tutorials (I'm partial to C myself, but haven't written any C in over a year), but you should find a good tutorial, and stick to it beginning to end.
Also, are you doing this on Windows, Mac or Linux? That'd be good information to have - the development environment is different for all 3.
After you have some coding knowledge under your belt, you can scour Github and look at how other people have implemented emulators.
Good luck! It's a long road ahead. =]
Offline
you should definitely try to learn a programming language first
i have been programming for about 3 years(not professionally) and still cant write a emulator!
but programming and emulator making are very good skills to have!
i recommend learning c first if you can learn c you can learn any programming language
seriously after i learned c i could learn everything else so much easier
its also a very good language for making emulators in (and well just about anything)!
here are some very good c tutorials:
https://www.youtube.com/playlist?list=P … E7DD6D8810
if you get stuck feel free to ask me questions!
once you get the hang of programming here is a good tutorial that shows you how to make a chip-8 emulator
which is meant to be the easiest computer for beginners to try to emulate
http://www.multigesture.net/articles/ho … terpreter/
it uses c++ but c/c++ are very very very similair so you should understand all of it if you can understand c
the c tutorial shows you how to compile c for windows but i highly recommend using gnu/linux for any programming
it is a excellent programming enviroment and you have just about any dev tool you could every dream of available and easily installable
this is not essential but advised
my gnu/linux distro of choice:
https://trisquel.info/
Last edited by a cat (2015-09-21 15:49:35)
Offline
I think it's pretty obvious I want to learn coding or else how do I do it?
Yeah, I'll learn C, and maybe move to some parts of assembly and C++ so I can make a good emu.
I'm using XP SP3 to program, however I do have Xubuntu 15.04 as well, actually, I'll probably make a Windows edition first and then move into Linux side topics.
I hope I can make this emulator, this is mainly just a hobby project for me to get better at code and to make a GB emulator with a mixture of good accuracy and speed.
Offline
"I'll probably make a Windows edition first and then move into Linux side topics."
if your doing this make sure to use a cross platform graphics library like SDL, GTK or QT (i would recommend SDL)
so for example don’t use windows.h or Direct X
what programming projects have you done before?
as a gameboy emulator may (or who knows may not!) be too difficult to create
i would at least first have a look at this CHIP-8 emulator tutorial which is a much easier system to emulate than the gameboy and will give you some experience in making emulators
http://www.multigesture.net/articles/ho … terpreter/
also one thing to note about using assembler is you have have to rewrite the assembler if you try to port the emulator to a different CPU architecture
Last edited by a cat (2015-09-30 04:14:39)
Offline
I haven't done any coding projects before, I plan to make a few things before moving into emulation.
I wouldn't use DirectX in the first place anyway, because OpenGL is fine for me.
Offline
ok great!
also SDL is much easier to learn than OpenGL
and very good for emulators
Last edited by a cat (2015-09-30 18:09:29)
Offline
Thanks for the tip. I'll get around to it, this will be a co-development along with an NES emulator which I'm also discussing on the nesdev board.
Also, what's the good starting point, is it same as NES (like this: http://forums.nesdev.com/viewtopic.php? … 05#p156341)
Offline
"Also, what's the good starting point, is it same as NES (like this"
Basically yes
Offline
can it be made in visual basic.Net ?
Offline
I have developped a Chip 8 Emulator and i work on a Gameboy Emulator Now, i recommand to all people who want to program emulator to look 4 steps in the good order :
-Learn C (or C++), Assembler and SDL .
-Choose the hardware to Emulate(I hardly recommand the CHIP8 Interpreter because it's one of the first hardware easy to emulate, for example begin with Gameboy or Nes it's not good solution because it's really difficult to emulate).
-Search Doc on the Hardware (WikiPage, PDF about the processor, and opcode list).
-And let's go for 2~3 months of work for Chip8 emulator or 7~8 months for Gameboy( yeah it's really hard to program a software like an emulator, but fill with determination ! ^^).
Sorry, i'm a young french, my english is not very good.
Last edited by MS-DOS1999 (2017-03-01 04:59:05)
Offline