Dreamcast Development

Whether you're a newbie or an experienced programmer, any questions, help, or just talk of any language will be welcomed here.

Moderator: Coders of Rage

User avatar
Lord Pingas
Chaos Rift Regular
Chaos Rift Regular
Posts: 178
Joined: Thu Dec 31, 2009 9:33 am
Favorite Gaming Platforms: NES, SNES, Nintendo 64, Dreamcast, Wii
Programming Language of Choice: C++
Location: Hiding In My Mum's Basement With My Pokemon Cards

Re: Dreamcast Development

Post by Lord Pingas »

Hey thanks, Falco! :)

I think I understand much better now.

I'll be sure to give you an update as to when I get a working Dreamcast application working.

One more question, and I hope I'm not wasting you time with these questions, but where did you learn KallistiOS?

I have searched but I couldn't find anything. :(
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
Posts: 10294
Joined: Thu May 20, 2004 2:04 pm
Current Project: Elysian Shadows
Favorite Gaming Platforms: Dreamcast, SNES, NES
Programming Language of Choice: C/++
Location: Studio Vorbis, AL
Contact:

Re: Dreamcast Development

Post by Falco Girgis »

You "learn" it after you install it and start digging through the directories. The source code of everything is there along with fairly well documented/obvious example code.
User avatar
Lord Pingas
Chaos Rift Regular
Chaos Rift Regular
Posts: 178
Joined: Thu Dec 31, 2009 9:33 am
Favorite Gaming Platforms: NES, SNES, Nintendo 64, Dreamcast, Wii
Programming Language of Choice: C++
Location: Hiding In My Mum's Basement With My Pokemon Cards

Re: Dreamcast Development

Post by Lord Pingas »

Oh ok. :)

I will download it now for later use, then start learning it from looking at the source codes.

Also, I think I know what you was talking about in the Makefile hell part of Elysian Shadows Revolution episode 1. Just saying...

Thanks again.
User avatar
Trask
ES Beta Backer
ES Beta Backer
Posts: 738
Joined: Wed Oct 29, 2008 8:17 pm
Current Project: Building a 2D Engine
Favorite Gaming Platforms: Sega Genesis and Xbox 360
Programming Language of Choice: C/C++
Location: Pittsburgh, PA
Contact:

Re: Dreamcast Development

Post by Trask »

Oh lord, don't feel bad Lord Pingas... I remember when I had my assembly class back in the day which had my first brush with make files. I was so confused and pined for VS again ;D

Falco's right though, you have to get your hands dirty. Googling error messages can help, but if experienced devs like Falco are willing to get you started, by all means use them. When I was 18-20 and trying to get this stuff working, I could find a soul to help me. But GET YOUR HANDS DIRTY, just reading about this stuff really makes no sense until you get in there and it bites your hand a few times. Then you'll make it your bitch and have yourself a good time.
MarauderIIC wrote:You know those people that are like "CHECK IT OUT I just made Linux run on this piece of celery [or other random object]!!"? Yeah, that's Falco, but with ES.
Dear god, they actually ported ES to a piece of celery!
Martin Golding wrote: "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
Posts: 10294
Joined: Thu May 20, 2004 2:04 pm
Current Project: Elysian Shadows
Favorite Gaming Platforms: Dreamcast, SNES, NES
Programming Language of Choice: C/++
Location: Studio Vorbis, AL
Contact:

Re: Dreamcast Development

Post by Falco Girgis »

Lord Pingas wrote:Oh ok. :)

I will download it now for later use, then start learning it from looking at the source codes.

Also, I think I know what you was talking about in the Makefile hell part of Elysian Shadows Revolution episode 1. Just saying...

Thanks again.
That was a bitch, because I was trying to make a single makefile compile a project for either a Dreamcast or PSP--both of which have completely different makefiles.

I wound up creating two separate makefiles with the same "libGyro.rules" that allowed me to simply specify a folder with DC source code, and a folder with PSP source code then invoke either "makefile.dc" for Dreamcast or "makefile.psp" for PSP.
User avatar
Lord Pingas
Chaos Rift Regular
Chaos Rift Regular
Posts: 178
Joined: Thu Dec 31, 2009 9:33 am
Favorite Gaming Platforms: NES, SNES, Nintendo 64, Dreamcast, Wii
Programming Language of Choice: C++
Location: Hiding In My Mum's Basement With My Pokemon Cards

Re: Dreamcast Development

Post by Lord Pingas »

Trask wrote:Oh lord, don't feel bad Lord Pingas... I remember when I had my assembly class back in the day which had my first brush with make files. I was so confused and pined for VS again ;D

Falco's right though, you have to get your hands dirty. Googling error messages can help, but if experienced devs like Falco are willing to get you started, by all means use them. When I was 18-20 and trying to get this stuff working, I could find a soul to help me. But GET YOUR HANDS DIRTY, just reading about this stuff really makes no sense until you get in there and it bites your hand a few times. Then you'll make it your bitch and have yourself a good time.
Thanks. :)

Your words have inspired me and yes, I will get my hands dirty.

Thanks for all your help guys. :)
User avatar
Lord Pingas
Chaos Rift Regular
Chaos Rift Regular
Posts: 178
Joined: Thu Dec 31, 2009 9:33 am
Favorite Gaming Platforms: NES, SNES, Nintendo 64, Dreamcast, Wii
Programming Language of Choice: C++
Location: Hiding In My Mum's Basement With My Pokemon Cards

Re: Dreamcast Development

Post by Lord Pingas »

GyroVorbis wrote:
Lord Pingas wrote:Oh ok. :)

I will download it now for later use, then start learning it from looking at the source codes.

Also, I think I know what you was talking about in the Makefile hell part of Elysian Shadows Revolution episode 1. Just saying...

Thanks again.
That was a bitch, because I was trying to make a single makefile compile a project for either a Dreamcast or PSP--both of which have completely different makefiles.

I wound up creating two separate makefiles with the same "libGyro.rules" that allowed me to simply specify a folder with DC source code, and a folder with PSP source code then invoke either "makefile.dc" for Dreamcast or "makefile.psp" for PSP.
Good thing you made libGyro to make things much easier. :bow:
User avatar
Trask
ES Beta Backer
ES Beta Backer
Posts: 738
Joined: Wed Oct 29, 2008 8:17 pm
Current Project: Building a 2D Engine
Favorite Gaming Platforms: Sega Genesis and Xbox 360
Programming Language of Choice: C/C++
Location: Pittsburgh, PA
Contact:

Re: Dreamcast Development

Post by Trask »

Gyro, this popped in my mind, perhaps you wouldn't mind sharing some details....

I remember an older video that you had somebody help you who wrote up something in ASM for a certain part of your engine, which I think you've since rewritten yourself, but I honestly don't remember why you needed it and its purpose may have changed since then.

What have you had to do with ASM with Dreamcast and would the casual DC developer need to do something similar as well?

Just curious in case any of us hits a stopping point where this may become relevant.
MarauderIIC wrote:You know those people that are like "CHECK IT OUT I just made Linux run on this piece of celery [or other random object]!!"? Yeah, that's Falco, but with ES.
Dear god, they actually ported ES to a piece of celery!
Martin Golding wrote: "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
Posts: 10294
Joined: Thu May 20, 2004 2:04 pm
Current Project: Elysian Shadows
Favorite Gaming Platforms: Dreamcast, SNES, NES
Programming Language of Choice: C/++
Location: Studio Vorbis, AL
Contact:

Re: Dreamcast Development

Post by Falco Girgis »

No, a casual DC developer should be safely abstracted away from anything that low level (same with PSP).

The problem is that the KallistiOS toolkit is also homebrew. My friend (Tvspelsfreak) and I have stumbled upon some absolutely insane Dreamcast documentation that covers pretty much EVERYTHING about the hardware. I honestly don't even know if it's legal that we have these. Could be some secret proprietary Sega documents.

Well, there are things in there that haven't been figured out or implemented in the KallistiOS library. For the two of us to screw with this kind of stuff, we have to drop down to the inline assembly level. For anything that the casual developer would need, you will be programming in C/++ with an API that's pretty friendly and similar to SDL/OpenGL.
User avatar
Trask
ES Beta Backer
ES Beta Backer
Posts: 738
Joined: Wed Oct 29, 2008 8:17 pm
Current Project: Building a 2D Engine
Favorite Gaming Platforms: Sega Genesis and Xbox 360
Programming Language of Choice: C/C++
Location: Pittsburgh, PA
Contact:

Re: Dreamcast Development

Post by Trask »

Sweet, that's what I figured, but I wanted to be sure.
MarauderIIC wrote:You know those people that are like "CHECK IT OUT I just made Linux run on this piece of celery [or other random object]!!"? Yeah, that's Falco, but with ES.
Dear god, they actually ported ES to a piece of celery!
Martin Golding wrote: "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
Posts: 10294
Joined: Thu May 20, 2004 2:04 pm
Current Project: Elysian Shadows
Favorite Gaming Platforms: Dreamcast, SNES, NES
Programming Language of Choice: C/++
Location: Studio Vorbis, AL
Contact:

Re: Dreamcast Development

Post by Falco Girgis »

And honestly, for whatever you guys are going to be doing, you aren't going to be doing anything different on the Dreamcast. I'm pretty damn amazed how far that 200mhz processor goes. Consider it a slightly slower PC, and you're good to go. If you even have to do any optimization of your code, I would be surprised. As long as you're using hardware acceleration and rendering things with the GPU, rather than CPU, the Dreamcast has some pretty damn kickass performance.

The only real thing you have to worry about is 8MB of VRAM and 16MB of RAM. Other than that, you're fine pretending that you're coding on a PC.
User avatar
Lord Pingas
Chaos Rift Regular
Chaos Rift Regular
Posts: 178
Joined: Thu Dec 31, 2009 9:33 am
Favorite Gaming Platforms: NES, SNES, Nintendo 64, Dreamcast, Wii
Programming Language of Choice: C++
Location: Hiding In My Mum's Basement With My Pokemon Cards

Re: Dreamcast Development

Post by Lord Pingas »

Do you need Unix based command lines like Cygwin to develop on other consoles as well as the Dreamcast?
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
Posts: 10294
Joined: Thu May 20, 2004 2:04 pm
Current Project: Elysian Shadows
Favorite Gaming Platforms: Dreamcast, SNES, NES
Programming Language of Choice: C/++
Location: Studio Vorbis, AL
Contact:

Re: Dreamcast Development

Post by Falco Girgis »

Lord Pingas wrote:Do you need Unix based command lines like Cygwin to develop on other consoles as well as the Dreamcast?
Yeah. Pretty much every homebrew compiler is based on GCC and GNU Tools.
User avatar
Lord Pingas
Chaos Rift Regular
Chaos Rift Regular
Posts: 178
Joined: Thu Dec 31, 2009 9:33 am
Favorite Gaming Platforms: NES, SNES, Nintendo 64, Dreamcast, Wii
Programming Language of Choice: C++
Location: Hiding In My Mum's Basement With My Pokemon Cards

Re: Dreamcast Development

Post by Lord Pingas »

Oh ok. :)

Sorry, got a lot of questions by I'll keep it to the minimum of 300 an hour. :mrgreen:
User avatar
MrDeathNote
ES Beta Backer
ES Beta Backer
Posts: 594
Joined: Sun Oct 11, 2009 9:57 am
Current Project: cocos2d-x project
Favorite Gaming Platforms: SNES, Sega Megadrive, XBox 360
Programming Language of Choice: C/++
Location: Belfast, Ireland
Contact:

Re: Dreamcast Development

Post by MrDeathNote »

Lord Pingas wrote:Do you need Unix based command lines like Cygwin to develop on other consoles as well as the Dreamcast?
It's the same with the psp, i've just recently started developing for it (by recently i mean a few days ago). So far ive done a hello world and rendered a sprite, but i have plans for the psp in the near future.....
http://www.youtube.com/user/MrDeathNote1988

Image
Image

"C makes it easy to shoot yourself in the foot. C++ makes it
harder, but when you do, it blows away your whole leg." - Bjarne Stroustrup
Post Reply