Sega console programming(homebrew?).

Started by
15 comments, last by 6677 11 years, 5 months ago
My old dreamcast certainly ran homebrew without a boot disk but it was one of the first off the line ones I reckon. Need to get that back, lent it to someone years ago and its ended up in their attic.




As for homebrew. I tend to roll with: if its not using copyrighted code and your not mucking around with hacking the console (ie like my dreamcast, burn CD>put it in>it works) then its probably not going to get you in trouble in any way. Infact I can't find a law outside of the console EULA that says otherwise.

Your alternative is to develop your game and then run it in an emulator. Similar to homebrew, emulation of a console is in a legal grey area but once again I roll with: if the emulator isn't using copyrighted code (such as console bios etc) then its not really a problem. The roms are another matter as many are of course pirated versions of commercial games but most homebrew was written as free (sometimes open source) software in the first place so is indeed legal (until the issue of running it above). So IMO: emulator + homebrew probably legal.
Advertisement
Many thanks 6677.

Looking at the idea of developing for a dead console, I weighed up whether it was a waste of time or not...and I've decided to go ahead with developing a demo or two for the DreamCast. At the end of the day, its a personal project that gives me an excuse to ditch Java for a while and go back to C/C++. At least from that angle I'm getting more experience in that language... ^_^

Once again, thanks to all who have taken time out to reply here.

Languages; C, Java. Platforms: Android, Oculus Go, ZX Spectrum, Megadrive.

Website: Mega-Gen Garage

Most Dreamcasts will play burnt CDs just fine, no modification required. Mine is one of the last ones and I've run homebrews and ISOs of unreleased games on it just fine with no tinkering. Some Dreamcasts require the laser power to be turned up in order to read CD-Rs, which is just a matter of popping the hood and turning a small potentiometer screw.

If you want and audience and a fixed (or mostly-so) platform, iOS, Android, Windows Phone, Windows RT, Xbox Live Indie Games, or the Playstation Suite are your best bets.

If instead you're after a more bare-metal programming experience, then you want to look at the Dreamcast, GBA, Nintendo DS, or Older consoles like the Genesis, Master-System, NES, or Gameboy, depending on how retro/limited you want to go. You could also pick up a modern microcontroller board like an arduino or Stellaris board if you want the bare-metal experience and can live without the games focus, or other kits (like the Uzebox, or Andre' LaMothe's kits) if you can't.

In all cases, emulators are what you'd use for most of your development, as burning ROMs or compact discs gets rather tedious and expensive after a time, and debugging facilities are rather limited. You need to test real hardware early and often to ensure that you can run on the genuine article (if you care), but it's not your main development target.

throw table_exception("(? ???)? ? ???");

Yeah, I will most likely end up doing something like Android or XBox live eventually, but thats in my primary focus of Java/C# and C++.

I was looking at, Ravyne, the Raspberry Pi for some assembly programming as it seems perfect for learning programming(not that I need to, but its experience all the same). It runs an ARM processor similar to the ones in the GBA and DS, so I might give that shot if the DreamCast thing falls flat on its face.

But yes, thanks for the input! ^_^

Languages; C, Java. Platforms: Android, Oculus Go, ZX Spectrum, Megadrive.

Website: Mega-Gen Garage

So, something interesting happened with the Raspberry Pi this week, which was that the CPU-side "drivers" for the GPU were released. Now, half the internet is up in arms over the fact that the really interesting GPU stuff is over in the GPU firmware still, and that has not been released (not likely), but what it does mean is that it's now relatively conceivable for a bare-metal program on Raspberry Pi to be able to call into the GPU hardware using an OpenGL-like interface (Including the GLSL compiler).

So, for like $40 bucks you can have that bare-metal, console-like experience, on a very well-documented, powerful platform. It's got an ARM11 processor which I believe supports the vector instruction set, which runs at up to 1ghz, has 512MB of ram, 10/100 ethernet, USB, HDMI and composite out, and some GPIO to boot.

It would be a good bit of work to get it up and running from bare metal, but there's an educational course on building an OS for the Pi to start, but its doable now. That's why I didn't mention the Pi before, because up until now the only way to get at the GPU was through linux.

The Pi is every bit as capable as an Xbox, PS2, Gamecube, or Wii, but with a more flexible GPU.

throw table_exception("(? ???)? ? ???");

the PI is certainly a nice device that sings to me. Something that is down right sexy about the PI is how some people are quite easily making their own custom PCs with it - some in the style of the old 8-Bit home computers where the computer was "in the keyboard", so to speak. Some even build their casings out of Lego! You can't really get much cooler than that! o_O

Whilst I certainly don't hold my breath for it, it would be interesting if they could get a games market set up for the PI. Not sure if one could use SD cards or even just a download service similar to Steam. I reckon the Foundation should make a third model with a DVD-drive and an additional USB for a joypad...that would be so perfect! ^_^

Languages; C, Java. Platforms: Android, Oculus Go, ZX Spectrum, Megadrive.

Website: Mega-Gen Garage

it already has 2 USB's, if your using it as a console you only need the gamepad connected. Power on, boots into game.


But sure, ultimately the pi will attempt to boot any valid code on that card. If you write your game entirely bare metal for the pi, whack it on an SD card, it will boot assuming there are no bugs anywhere. Getting gamepad input might be a little tricky though seeming as you would be writing drivers yourself.

This topic is closed to new replies.

Advertisement