Where do I start?
- GyroVorbis
- 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?
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?
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?
-
- DC Developer
- Posts: 9951
- Joined: Sun Dec 30, 2001 9:02 am
- Has thanked: 0
- Been thanked: 1 time
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.
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.
-
- Damn Dirty Ape
- Posts: 5031
- Joined: Thu Nov 07, 2002 11:11 pm
- Location: Saugerties, NY
- Has thanked: 0
- Been thanked: 0
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
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.
Once you've installed Cygwin, start up Cygwin (should be an icon for it) and type
Code: Select all
./dc_build.sh all
*edit- eh, BlackAura posted while I was typing.
- GyroVorbis
- 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:
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?
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?
-
- DCEmu Veteran
- Posts: 850
- Joined: Mon Sep 01, 2003 11:12 am
- Location: NC/Iraq
- Has thanked: 0
- Been thanked: 0
- Contact:
- GyroVorbis
- 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:
-
- Damn Dirty Ape
- Posts: 5031
- Joined: Thu Nov 07, 2002 11:11 pm
- Location: Saugerties, NY
- Has thanked: 0
- Been thanked: 0
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.
-
- DC Developer
- Posts: 9951
- Joined: Sun Dec 30, 2001 9:02 am
- Has thanked: 0
- Been thanked: 1 time
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.
(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.