Where do I start?

This forum is for discussion pertaining to homebrew and indie software for the Dreamcast, such as homebrew games, emulators/interpreters, and other homebrew software/applications. Porting requests and developmental ideas are not to be made here; you can make those here. If you need any help burning discs for homebrew software, this is the place to ask as well.
Post Reply
User avatar
GyroVorbis
Elysian Shadows Developer
Elysian Shadows Developer
Posts: 1874
https://www.artistsworkshop.eu/meble-kuchenne-na-wymiar-warszawa-gdzie-zamowic/
Joined: Mon Mar 22, 2004 4:55 pm
Location: #%^&*!!!11one Super Sonic
Has thanked: 80 times
Been thanked: 62 times
Contact:

Where do I start?

Post by GyroVorbis »

I'm fourteen. I've been scanning this whole site and forums for weeks. I want to make games and apps for the Dreamcast. I'd be willing to sacrifice every spare second I have. I'm not just some idiot kid who wants to make games. I know that it'll take hard work, time and dedication. You guys blow me away. I don't know where to start. I have understanding of programming and can program in plently of languages (except C++, DOH!).

I can't find a clear starting point. How would I start. I'm buying a coder's cable from Lik-Sang, so I got that. Would I learn C++ next? Also, I am getting Cygwin (no Linux for my poor self). Next I'm getting BlackAura's build script.

Is this right? What is BlackAura's build script. Sounds kool. What exactly do I need to know to work with it? Will somebody just take a few seconds to answer these few questions. I'll be greatly appreciated. Learning to do this will be the highlight of my life! You have to send me on the right path. PLEASE?
BlackAura
DC Developer
DC Developer
Posts: 9951
Joined: Sun Dec 30, 2001 9:02 am
Has thanked: 0
Been thanked: 1 time

Post by BlackAura »

All Dreamcast development is done with C and C++. Generally, everything's in C, although you can use C++ if you wish.

You need to compile your programs into a form the Dreamcast can use. To do that, you need a cross compiler, which will run on your PC and compile programs for the Dreamcast.

The cross compiler toolchain consists of three parts. The first part is binutils, which contains an assembler, linker, and other tools which take the output of the compiler, and turn it into an ELF or BIN file.

And ELF file is kinda like an EXE. It contains a program, the program's built-in data, and a load of information that an operating system uses to load the program. The Dreamcast itself can't read these, but all of the remote debugging tools we have can. To get the Dreamcast itself to read it, you need to convert it to a BIN file, which is just a block of data stored exactly as it's loaded into memory on the Dreamcast.

Next part is GCC, the C compiler, which compiles the C/C++ source code, and sends it along to binutils.

Next part is newlib. It's a C runtime library, and we need it so we can have C++ support in GCC and KOS (see below).

These parts allow us to actually compile programs, but we'd still have to do everything ourselves. That's where KallistiOS (KOS) comes it. It's kinda like an operating system - it manages all the Dreamcast's hardware, and provides you with easier access to it's capabilities (like 3D rendering, controller input, sound, reading from the CD).

A build script is a script which downloads the source code for the entire toolchain (including KOS) and builds/installs it. Typically, they build binutils first, then a C only version of GCC, then newlib, then a C/C++ version of GCC, and finally they build KOS and the examples that come with it. It saves you from having to do it all yourself, although it's not as simple as downloading pre-compiled toolchains.
OneThirty8
Damn Dirty Ape
Damn Dirty Ape
Posts: 5031
Joined: Thu Nov 07, 2002 11:11 pm
Location: Saugerties, NY
Has thanked: 0
Been thanked: 0

Post by OneThirty8 »

BlackAura answered your main question here. BlackAura's build script isn't actually used to make your games. It's a shell script which will download the compiler and libraries and stuff that we use, compile those tools, and then clean up after itself. I haven't tested it out on Cygwin, but it worked very nicely for me on Linux.

Once you've installed Cygwin, start up Cygwin (should be an icon for it) and type

Code: Select all

./dc_build.sh all
if you've got wget installed, it should start downloading stuff. If not, then go back to the Cygwin installer and look for wget, install it, and try again as above. I think wget is down near the bottom of the list somewhere, but I don't remember for sure.

*edit- eh, BlackAura posted while I was typing. :)
User avatar
GyroVorbis
Elysian Shadows Developer
Elysian Shadows Developer
Posts: 1874
Joined: Mon Mar 22, 2004 4:55 pm
Location: #%^&*!!!11one Super Sonic
Has thanked: 80 times
Been thanked: 62 times
Contact:

Post by GyroVorbis »

This Cygwin isn't very friendly. I really don't know what I'm doing. Looking through trillions of files for a select few that I hope are right. Should I just install them all OR

I have TurboLinux Workstation 6.0 should I go with that Operating System?

AND I have Mandrake Linux 7.1.

Cygwin
OR
Turbrolinux VS Mandrake

What do you guys think?
Storminator16
DCEmu Veteran
DCEmu Veteran
Posts: 850
Joined: Mon Sep 01, 2003 11:12 am
Location: NC/Iraq
Has thanked: 0
Been thanked: 0
Contact:

Post by Storminator16 »

If you are running Linux or able to run Linux > Cygwin
User avatar
GyroVorbis
Elysian Shadows Developer
Elysian Shadows Developer
Posts: 1874
Joined: Mon Mar 22, 2004 4:55 pm
Location: #%^&*!!!11one Super Sonic
Has thanked: 80 times
Been thanked: 62 times
Contact:

Post by GyroVorbis »

Sounds good. I just don't know what kind of crap I'm going to get into while trying to partition my hard drive and install it. I'm just a simple 14 year old. I hope I don't get killed or worse, kill my computer in the process!
OneThirty8
Damn Dirty Ape
Damn Dirty Ape
Posts: 5031
Joined: Thu Nov 07, 2002 11:11 pm
Location: Saugerties, NY
Has thanked: 0
Been thanked: 0

Post by OneThirty8 »

Linux is better than Cygwin, but Cygwin works once you've got it set up. If you're unsatisfied with Cygwin and are nervous about partitioning to install Linux, you might try MinGW. BlueCrab wrote up a tutorial on setting that up. I've not not it myself, but judging by his post history BlueCrab tends to know his stuff.
BlackAura
DC Developer
DC Developer
Posts: 9951
Joined: Sun Dec 30, 2001 9:02 am
Has thanked: 0
Been thanked: 1 time

Post by BlackAura »

These tools work much better (and faster) on Linux than Cygwin or MinGW. Knoppix is pretty good - it runs off a CD, so you don't need to do any partitioning. You might be able to set up a DC development environment in there.

(Adds DC Development Linux CD to ever expanding ToDo list)

Oh, and my build script is (kinda) based on the instructions and script BlueCrab has. They should both work on Cygwin and MinGW. I know mine works on Linux too, and I don't see anything in BlueCrab's script that'd stop it working on Linux.
User avatar
elefas
DC Developer
DC Developer
Posts: 75
Joined: Thu Jan 22, 2004 2:16 pm
Location: Greece
Has thanked: 0
Been thanked: 0
Contact:

Post by elefas »

Why don't you take a look at Dev-Cpp modified to compile into Dreamcast executable? There is some discussion in the Programming forum, check it. For me is the only devkit that managed to get it working :wink:
__.:/|D|C|___eLef@s___|S|E|G|A|\:.__
Post Reply