Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Hardware

Building Consoles For Fun 128

tierra writes "Indiviuals writing their own games is one thing, but try building your own console. Russ Christensen, and his team put together in class, dive into the fun of using an old Nintendo system to house their customized XSA-50 Board. They also uses a XSA Extender to hook their personal console up to a monitor instead of a TV. They programmed Tetris and Space Invaders for their console using a system they call CASM."
This discussion has been archived. No new comments can be posted.

Building Consoles For Fun

Comments Filter:
  • by Uller-RM ( 65231 ) on Thursday December 12, 2002 @06:30PM (#4875561) Homepage
    1) Unified memory architecture.
    2) Close to Win32, but not quite.
    3) Liberal use of hashing and checksumming.

    The XBE executable format is actually pretty interesting - it's similar to Win32's PE, but with many more flags and tables - for example, bitfields for what mediums are acceptable to run the game off of (DVD, hard drive, CD-RW, etc.) Each section and the relocation address tables have a SHA-1 hash taken of it, the header containing the section offsets and hashes of each is itself hashed, digitally signed using PKE, and then encrypted.

    The hard drive also uses the ATA spec's password protection, although that's already been bypassed and the drive dumped. In any case, most people with homebrew code are using the neXgen or EvoX dashboards to run an FTP server on the XBox for uploading and downloading files to the HDD, so you don't have to muck about with IDE cables.

    Most of the modchips out there right now work by tying the chip enable pin on the on-board BIOS to to ground, and emulating the BIOS directly on the LPC bus to allow execution of unsigned code and ignore mismatched media flags. (BTW, kudos to MSFT for complicating things with a floating ground... more than a few early modchips were responsible for fried PCs while doing in-circuit programming.)
  • Question (Score:3, Interesting)

    by KeatonMill ( 566621 ) on Thursday December 12, 2002 @06:33PM (#4875591)
    How exactly does CASM differ from C? I don't see any ASM type code in there, it just looks like C. I realize that it isn't quite C, but hmmm... I'm interested in more details about the compiler/processor.
  • by VoidEngineer ( 633446 ) on Thursday December 12, 2002 @06:56PM (#4875777)
    Remember back in the day when Sun was trying to push their JavaStation box? It was suppose to run a JavaOS on an Intel processor. It wasn't all that successfull.

    Well, the lab I used to work at let some of the undergraduates take home the stacks of spare JavaStations we had laying around. =) The theory was that if you could install Linux and Quake on the OS, you would have a fully functioning console box, open sourced, that could run Quake. For those of you who are interested in mass producing console boxes, here are the lessons learned:

    1. You need to be able to store the console operating system on an image server.

    2. You need a serial port connector, or a LapLink connector, or a BOOTP enabled network card in the console box.

    3. You need to install your OS on a testing machine, and strip down all of the extra functionallity (notepad, emacs, vi, and everything else). This is the process of optimizing your open source operating system. Set up the console box as you would a normal gaming system.

    4. Take an image of the machine with some product, such as Altiris LabExpert.

    5. Push the basic OS onto new machines, as needed.

    6. Write documentation, develop games, etc.

    7. Get a CD burner and burn games onto the CDs.

    8. Package machines and CDs (seperately, probably).

    9. Sell machines at cost plus a markup for time and effort.

    10. Attempt to do a few things well and specialize.
  • ColecoVision... (Score:3, Interesting)

    by dark_panda ( 177006 ) on Thursday December 12, 2002 @07:28PM (#4876058)
    As I recall, the ColecoVision was made with completely off-the-shelf parts. Wouldn't be too difficult to re-build one of those things. It was probably one of the few video game consoles that you could actually rebuild from scratch.

    I think. My memory is pretty hazy and I haven't openned mine up in years.

    J
  • Systems Engineer (Score:2, Interesting)

    by VoidEngineer ( 633446 ) on Thursday December 12, 2002 @07:30PM (#4876072)
    Way back when, I had the mixed blessing of working in sufficiently advanced enough laboratories, that I got certified as a systems engineer on Windows NT operating systems. So, I happen to be certified in this area of work, and know something about the process by which one makes console machines. Work I was doing included overhauling Windows to make thin client email stations at our university, which were actually quite similar to console gaming machines. One of the major differences is that thin clients email stations typically use network protocols and network file systems, whereas consoles use compact disk protocols and compact disk file systems. (Ethernet versus Sneakernet)

    Anyhow, you have to realize that 'mod' is perhaps a poor choice of words in regards to how one would probably go about making a homebrew X-Box. I would suggest using the term 'lockdown'. In priciple, and in practice, the only thing that really needs to be done is the following:

    1. Set up a gaming machine at home. Try using a pizza box or laptop.

    2. Install drivers for your gaming controls. Control pads, voice recognition, video drivers, compact disk drivers, et al. Some good links to get started:

    Sense8 [sense8.com] - The WorldToolKit has the best device driver support that I've seen.
    Immersion [immersion.com] - Good starting point for haptics, game controllers, etc.
    Voip-Calculator [voip-calculator.com] gets you started on voice over internet protocol.
    Nero [nero.com] - gets you started on CD File System layouts.
    Altiris [altiris.com] - gets you started on image pushing.

    3. Design your filesystem.

    4. Get the basic configuration working such that it plays an off-the-shelf XBox game.

    5. Make a backup image of your gaming station.

    6. Delete all unnecessary files, remove all unnecessary subsystems. Lockdown the system until it does nothing other than run the game on the CD when you put it into the tray.

    6. Make backup images of your station as needed.

    7. When done, remove unnecessary hardware (floppy drive, keyboard, etc).

    8. Push image from server onto new consoles with similar configuration as (7).

    Now then, you may be asking 'Homebrew'? This sounds like a major operation! This is a going to cost a fortune! Well, yes and no. Yes, M$ is a for-profit company, which seeks to make money. Yes, if you went through this process, you could probably start-up a company which makes it's own console boxes which are XBox compatible. No, this isn't open-source and freeware technology. Yes, you could probably assemble a homebrew XBox by using these links, this process, a Windows 2000 operating system, and PC parts.

    The benefit: You know enough to design games and accessories for the XBox market. Do something like make a stereoscopic VR hack of Halo, utilizing Immersion gloves, and CrystalEyes goggles. Submit the concept to M$, become a business partner, and sell immersive visualization systems to XBox consumers, or something.
  • Wonderful! (Score:5, Interesting)

    by Junks Jerzey ( 54586 ) on Thursday December 12, 2002 @07:36PM (#4876117)
    I love projects like this. May just the fact that they succeeded inspire others to try the same thing.

    On a tangent, this is the kind of thing that's been very possible for some time, but most people blindly assume that it's much too difficult. Similarly, writing a compiler for a high level language is a relatively easy project. You could do it in a semester course, or a month of spare time, but mention "writing a compiler" to the great majority of programmers, even those with lots of experience, and they run away in terror.

    Personal chip design reached critical mass back around 1994.
  • It is more difficult than you think, primarily because the XBOX uses a unified memory architecture (CPU and video memory share the same memory), which is quite different than the set up on PCs.

    Yeah and so does every console. I once heard someone say the N64 was "practically unemulatable" because of the high bandwidth of the cpu to gpu and the RAMBUS memory. Well... Been there done that...

    Since the system is MS's own design, I'm sure it is using standard DirectX calls. So you just have to intercept and re-route. The memory bottleneck won't be as bad as you think.

    I'm sure you'll see "XBOX Emulators" for PCs, but don't expect one to actually run games well for about 2 years.

    Now that does sound about right. Judging from most consoles, it takes about 3 years before a really good one comes out.
  • by MisterFancypants ( 615129 ) on Friday December 13, 2002 @12:21AM (#4877852)
    Yeah and so does every console. I once heard someone say the N64 was "practically unemulatable" because of the high bandwidth of the cpu to gpu and the RAMBUS memory. Well... Been there done that...

    The N64 is STILL practically unemulatable. The N64 emulators out there don't actually emulate the hardware, for the most part, they simple have rewritten many of the API routines from Nintendo's dev tools to x86 code. That's why there's still no N64 "emulator" with anywhere near full compatibility with all games. Most play a few key games well, like Zelda, Mario, etc, but fail with the majority of 3rd party games. So why don't you try learning about what you're talking about before you talk, bitch?

"If it ain't broke, don't fix it." - Bert Lantz

Working...