Starting Console Game Programming


dontspam

Still Fresh
Joined
Feb 24, 2006
Messages
79
Hi,
I already know some c and c++ and I'd like to start programming on a lower level, better said for an older console.

Now I don't really know where to start. I'm running a Mac and don't know any assembler. My goal is, to write small homebrew games for the nes or the gameboy and later for the snes.
I'm looking for any advice on how to start, some links, the best compiler, some tutorials etc.

Thanks!
 
Hi,
I already know some c and c++ and I'd like to start programming on a lower level, better said for an older console.

Now I don't really know where to start. I'm running a Mac and don't know any assembler. My goal is, to write small homebrew games for the nes or the gameboy and later for the snes.
I'm looking for any advice on how to start, some links, the best compiler, some tutorials etc.

Thanks!

Without assembly those consoles you listed won't be viable. I'd suggest the GP2X as a nice console to code for for learning purposes. Otherwise you could code for ant of the consoles that devkitpro has a devkit for, as long as you have a way to run the code (be it emulator or flash cards/homebrew booting hacks)
 
Last edited by a moderator:
Google isn't broken, but it's always nice to get different opinions. Googling for this also won't return the desired results.

And I know that I can't do anything without assembly, I just wrote that to get some advice on starting to learn it, like 'don't start with the 6510 assembler, better start with this or this' etc.
 
Last edited by a moderator:
Ok, I don't normally do this (my response is usually "just fuckin google it") but I have some SNES programming links for you. And yes, you'll basically have to learn 65816 assembly to do anything useful on the SNES. As a result, this pdf is probably the first thing you'll want to look at. You can also find a bunch of SNES technical documents at Zophar's Domain. You'll probably also be interested in the tutorials that you can find here. Drunken Coders also have some good links to check out. And finally, there's info on SNES programming at Wikibooks.

I also did a bit of quick googling for NES stuff. Again, you'll probably need to learn assembly to do anything (this time it's 6502 assembly), though you can probably use this too. There's some info at Wikibooks, and again Zophar has a bunch of technical documentation. Here's a quick FAQ about a few NES programming issues. There's also a bunch of stuff at NESDev, and there's a NES specific assembly tutorial here.

For Game Boy, I didn't dig around as much, but you can find a bunch of stuff here. There's more if you're willing to google a bit, but to really get the most out of the original Game Boy, you'll probably want to know a bit of Z80 assembly.

I haven't actually read a lot of this stuff since I don't have a ton of interest in SNES programming and whatnot, but the info is there if you're after it and yes it was easy to find with google. If you're not into the low-level programming, though, then I'd definitely recommend programming for the GP2X. It's easy to get into and easy to actually get it running on hardware.
 
I'd recommend the original black and white Gameboy. Use z80 asm and learn how to use the hardware, you can get sprites and tiles going really quick.

I wrote a bomberman clone in 1k, there is a lot of example code.
 
If you don't want to learn any ASM, you can code in C, but when it compiles to machine code it won't be as fast. You might like coding for the Dreamcast which has a full "Katana" devkit you can download, or the GBA or DS which have nice libraries that make it easier to get off the ground, and plenty of tutorials available. You can code with C, I'm sure C++ will be just fine as well. Once you get the fundamentals down, you can work closer to the metal, reverse-engineer how the libs do things, maybe pick up some bits of ASM for the SH-4, ARM7 or ARM9 and start slipping that into your C/C++ source to accelerate slower functions once you've profiled your programs and found out just what is the most sluggish .. so on and so forth.

I would advise against using the GP2X as a starting platform because the code you write for the major devkits and libs will be extremely high-level, and the means by which you interact with the hardware (generally, giant pixmaps for graphics, big audio streams for audio..) won't be even remotely similar to how most classic and portable consoles do things (tiles, FM realtime generated audio, etc.)

I'd HIGHLY advise you code for the real hardware, not an emulator-- there are flash cartridges available for the MD/Genesis for about $100 you can pick up that will make that simple (that's another good console to start on, BTW, simple and well documented hardware!), a flash kit for the GBA won't be much more than $50 most places (for a size reasonable for development, not loading it up with ROMs) .. and a DS adapter to run homebrew programs won't run you much more than $80 for a decent dev setup.
 
I want to learn assembly, I already know c and c++ and compiling the same code just for an older hardware isn't too much fun. And the DS, GBA or the dreamcast aren't retro enough. I also coded some gp2x things, but my target isn't to learn better coding, it's to do some retro stuff on a retro console.

Thanks for all your help, I'll have a look into the links and the advice you gave me. :)
 
Even if you are using C/C++, learning to write to the correct memory addresses, operate proprietary VDPs and audio hardware will keep you busy for some time. Consoles always require lots of custom code. Just because you don't use ASM doesn't mean your code isn't going to be VERY platform-specific. :)
 
So what, I hate signing up for a forum just to ask a question, and then have it go months without an answer. Especially when I have to do email validation. I imagine the poster is the same way.

edit: the Hando one is sort of 'WTF Mate' and might explain some of the 'hacker attacks'
 
I second the GBA from Epicenter, it was my first console experience. Great fun to code for, good community at gbadev.org and plenty of tools available for it. Use ASM, C, C++ or even BASIC, whatever takes your fancy.
 
So what, I hate signing up for a forum just to ask a question, and then have it go months without an answer. Especially when I have to do email validation. I imagine the poster is the same way.

edit: the Hando one is sort of 'WTF Mate' and might explain some of the 'hacker attacks'
The Hando one is a joke. Obviously.
 
Last edited by a moderator:
Back
Top