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:
  • Re:Feeling the pain (Score:2, Informative)

    by Drunken Coward ( 574991 ) on Thursday December 12, 2002 @05:50PM (#4875159)
    Links to the files:

    Tetris- WMV (18 MB) [utah.edu] - MPG (78 MB) [utah.edu]
    Space Invaders- WMV (21 MB) [utah.edu] - MPG (89 MB) [utah.edu]

    Click away.
  • by MisterFancypants ( 615129 ) on Thursday December 12, 2002 @05:51PM (#4875172)
    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. Most XBOX games rely on this architecture for rendering (one example..a vertex-shader assisted particle engine). If this code were to run on a PC, even a very fast one, the memory bottleneck would destroy its performance making the game unplayable.

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

  • by Jace of Fuse! ( 72042 ) on Thursday December 12, 2002 @05:56PM (#4875218) Homepage
    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....
  • by stratjakt ( 596332 ) on Thursday December 12, 2002 @06:28PM (#4875545) Journal
    >> 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

    This is not true, but is a common rumor based on some early speculation by PS2 fanboys mostly (ie; "Don't get an xbox - you cant mod it - its games ar backwards. It is TEH SUCK").

    Likewise untrue is the rumor that GameCube discs spin 'backwards' (I have one, I watched it spin, and they spin CW like any other).

    IIRC, It uses a tweaked version of the UDF filesystem, and a non-standard packet format which is embedded into the firmware of its DVD-reader. A PC-DVD reader 'could' theoretically read an XBOX disk, but it would require some heavy-duty rewrite of the drives firmware.

    The unified memory architecture could hurt emulation of certain titles, but I'm convinced few if any will make any sort of use of it. Most XBOX games are just half-assed ports, or cross developed for other systems (including PC).

    There's some work being done - an XBE (xbox executable) can be translated to an EXE and some rudimentary linkage to appropriate kernel functions is happening.

    At the very least, the PC will soon be a cool testbed for xbox hacking, if not playing warezed copies of Halo.
  • by Jace of Fuse! ( 72042 ) on Thursday December 12, 2002 @06:43PM (#4875680) Homepage
    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 [codeunderground.com] if interested.
  • by Anonymous Coward on Thursday December 12, 2002 @07:13PM (#4875938)
    Being written closer to the outter edges of a disc is an old trick even some PC games do. It's done normally by padding the innermost portion of the disc with empty contents, and then writing the real (relevent) content in files closer to the outside.

    It is not new, and it is not special.
  • Re:Question (Score:3, Informative)

    by Russ Christensen ( 633700 ) on Thursday December 12, 2002 @10:00PM (#4877174) Homepage
    >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.

  • Re:Too Much Code (Score:4, Informative)

    by Russ Christensen ( 633700 ) on Thursday December 12, 2002 @10:19PM (#4877268) Homepage
    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.

  • Re:The horror... (Score:2, Informative)

    by Russ Christensen ( 633700 ) on Friday December 13, 2002 @03:58AM (#4878668) Homepage
    Because of specs given to us, when our processer does a shift left and shift right it can only shift by one. So on our hardware doing the add instruction or doing a shift left to impliment the multiplication is actually the exact same speed.

"Engineering without management is art." -- Jeff Johnson

Working...