Slashdot Mirror


Building Consoles For Fun

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."

20 of 128 comments (clear)

  1. Bah by RaboKrabekian · · Score: 5, Funny

    If you're going to make the games yourself, and the console yourself - dammit, build the TV yourself too, you lazy bastard!

    --
    "Moderate drinking can help prevent amputated limbs" -- Abigail Zuger, NYTimes, 12/31/02
  2. Feeling the pain by jhawkins · · Score: 5, Funny
    The Tetris Game I wrote. To see the game in action here is an 18MB Windows Media File. Or a 78MB MPEG File.

    For the love of God, what does he think he's doing?

    1. Re:Feeling the pain by Angry+White+Guy · · Score: 3, Funny

      Well the graphics suck, but it's god Dolby Digital 5.1! Turn the speakers up!

      --
      You think that I'm crazy, you should see this guy!
    2. Re:Feeling the pain by Professor_Quail · · Score: 5, Funny

      The next day:
      Russ: I'm sorry sir, I couldn't finish the paper.
      Professor: You better have a good excuse this time.
      Russ: Well, I put up a website about our project, but I ran a server for the 78mb MPEGs off my own computer, and then it got slashdotted.

  3. At school? by Dragon213 · · Score: 3, Funny

    Wow, I wish I had the kind of classes that would let me build stuff like this in them....but noooo, all we could do is sit there, read the books, and take the tests. Never actually applying the knowledge that we just learned.......

    --
    --CypherDragon
  4. At $150? by yerricde · · Score: 3, Insightful

    take the little Cappuciono PC and fill it with top notch hardware

    But will you be able to get it down to $150 to compete with the Nintendo GameCube?

    --
    Will I retire or break 10K?
    1. Re:At $150? by MisterFancypants · · Score: 5, Insightful
      But will you be able to get it down to $150 to compete with the Nintendo GameCube?

      Even if you could get it below $100 it would never compete with the GameCube unless it had a similar sized/similar quality game library. In other words, not going to happen. Not to mention a huge marketing push.

      A few people, including the Linux-Indrema team, have had thoughts such as this before. Neat idea from a tech-head view, but business-wise its nothing but a disaster waiting to happen.

  5. In Related News... by Strange+Ranger · · Score: 5, Funny

    [flame off][humor on]
    "Our professor allowed us to take a different approach, using an ICDS Enhanced Hot Water Drill, a cage full of GM hamsters and some pantyhose we have created our own version of the worlds very first Wheel. We carved it straight of a rock wall! We call it Wheel Revolution. The wheel was a revolution, and it revolves, so we're getting double-usage out of the name. Bob is able to put his hands on the axis of the wheel while Pete holds his ankles and runs. We'll be holding a public demo for a few days so stop on over and try it out!"

    " Our engineering professor liked the idea of us really getting back to the basics."

    --

    Operator, give me the number for 911!
  6. Re:I'm waiting for someone to build a homebrew X-B by Jace+of+Fuse! · · Score: 5, Informative

    From what I've read, the X-box is nothing more than a PIII PC with some mods to make it "different".

    Some very serious mods to make it different. For starters, it has little to no OS overhead, it's memory structure is unified and more efficient than a PC's and it doesn't waste memory managing memory since all of it's ram is dedicated to the single application (game) that is running.

    If this has already been done, please post links.

    Just do a search for XBox emulation. It hasn't been done, and the primary reason is that the XBox game discs are written in reverse order from regular DVDs. This gives the advantage of speeding up read access because the data is read from the outside in, but also it prevents piracy.

    There are a whole slew of other reasons why the XBos isn't just a PC, and why a PC can't really just magically be turned into an Xbox without some serious software trickery. I once thought it would be possible, but after looking into it I realized it's going to be a little harder than anybody initially thought. ...

    Now -- what I -- WOULD -- love to see is a project very closely resembling the Indreama, put together by someone who really knows a whole lot about video game consoles, and willing to take a risk on a different business model than has traditionally been used by the video game industry.

    Hmm. Maybe I should post my ideas in my journal....

    --

    "Everything you know is wrong. (And stupid.)"

    Moderation Totals: Wrong=2, Stupid=3, Total=5.
  7. Re:I'm waiting for someone to build a homebrew X-B by Uller-RM · · Score: 4, Interesting

    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.)

  8. Question by KeatonMill · · Score: 3, Interesting

    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.

    1. Re:Question by Russ+Christensen · · Score: 3, Informative
      >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

      The question should actually be how does CASM differ from C++. The way it works is you write a CASM program and you compile the program using a C++ compiler and you include the CASM library files. And then when you execute the compiled program it emmits ASCII 1's and 0's that is then passed through another tool that traslates it into a format that the XESS loading program wants.

      So CASM the programming language is a series of C++ functions and classes. The functions maintain state, like the cr16_while(expression expr) function. so when they are called they can emit the correct machine code. And we overload the operators so things like "a+b" will then in turn call the function add which will in turn emit machine code to do the add.

      We do actually have ASM functions for adding and moving and the rest of our instruction set. Except I don't use those functions much in tetris. There is a couple of times that I do call the lshi function for left shift.

      Does that help explain CASM better? If not then let me know.

  9. Too Much Code by nns6561 · · Score: 3, Insightful

    Anybody else surprised by the fact that it took 9000 lines of code. Having done similar projects in VHDL, it should take less than 1000. Looking at their code, I understand why. They did not use any of the more complex VHDL features. No generics or loops. The entire project was just poorly thought through.

    Cool idea though.

    1. Re:Too Much Code by Russ+Christensen · · Score: 4, Informative
      To respond to why it took 9000 lines of VHDL code. One of our key design goals was to have this run on hardware. VHDL is a very complicated language that is very powerful, and then comes the part of VHDL that is an IEEE standard for going to hardware. That part of VHDL is only the simple features and so that was our reason for only using the very simple features of VHDL. We wanted to know for sure that the design would be able to drop down onto an FPGA. We didn't want a processor that would only work in simulation or would only compile down with one tool.

      This wasn't a project to show off that we know how to program VHDL in a fancy way. Rather it was to show that we can quickly design a computer. This was the first time that we had used VHDL and when we started the project we did not have the FPGA's to test our design on. So we decided that we would only use the simplest subset of VHDL. Our goal was to go from nothing to a finished project in two months. We viewed using complex VHDL features that might not compile to hardware.

      We succeded in getting the project done in two months as a part-time school project. Including hardware design. A complete test framework, two games, and a final report. I think when you say "The entire project was just poorly thought though" you are not judging the project according to our design goals.

  10. Re:I'm waiting for someone to build a homebrew X-B by Jace+of+Fuse! · · Score: 3, Informative

    Actually, being written in Reverse Order does not automatically mean that the drive "Spins in reverse".

    It is true that the data is written from the outside in. This is done for the said reasons of giving the XBox a speed advantage.

    The Gamecube doesn't need such advantages since the proprietary DVD based mini-disc of the Gamecube has a fairly fast seek time AND transfer rate. Of the three systems (I have all three) the Gamecube load times are the fastest by a considerable amount.

    As for the XBox's unified memory architecture, it's not something games have to "make use of". It's just the way the system works. I'll agree, a huge percentage of XBox games are shovelware from either the PC or the PS2, but I promise you that Halo on a PC of equal system specs to that of an Xbox is going to run like shit even if it's a PC specific port.

    I'm aware of the work being done in XBox emulation, and I follow it very closely. That's why I know it's been harder than anybody initially thought. I never claimed it was impossible or that it wouldn't be done. It will, however, take more than just a little bit of software trickery.

    Whether or not the DVD's can be force-read off of a standard PC DVD rom drive through direct hardware hitting is yet to be determined, but things aren't looking good.

    On a side note, it is nice to see XBox controllers finally being used on the PC. See this link if interested.

    --

    "Everything you know is wrong. (And stupid.)"

    Moderation Totals: Wrong=2, Stupid=3, Total=5.
  11. Re:I'm waiting for someone to build a homebrew X-B by stratjakt · · Score: 3, Informative
    --
    I don't need no instructions to know how to rock!!!!
  12. Re:JavaStation & Linux! by VoidEngineer · · Score: 3, Interesting

    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.

  13. credibility by imAck · · Score: 3, Funny

    The graphics: impressive.
    The nintendo for a case: most impressive.

    The fact that they use the word 'foo' in the tetris source code: pure credibility

    --

    It's hard to tell the cool to chill, my favorite hotel room has a view to an ill.

  14. ColecoVision... by dark_panda · · Score: 3, Interesting

    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

  15. Wonderful! by Junks+Jerzey · · Score: 5, Interesting

    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.