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."
Bah (Score:5, Funny)
Feeling the pain (Score:5, Funny)
For the love of God, what does he think he's doing?
Re:Feeling the pain (Score:2, Funny)
Space Invaders game play footage. To see the game in action here is a 21MB Windows Media File. Or an 89MB MPEG File.
Seriously, this is pretty cool, even if the resolution is only 64x30 with 2 bit color. Better than I can do.
And no I won't provide you with a link to these ungodly sized mpegs!
Re:Feeling the pain (Score:2, Informative)
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.
Re:Feeling the pain (Score:1)
Re:Feeling the pain (Score:3, Funny)
Re:Feeling the pain (Score:1)
Re:Feeling the pain (Score:5, Funny)
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.
someone (Score:1)
go on please, just for me..
I'm waiting for someone to build a homebrew X-Box (Score:1)
After reading this, I'm wondering when someone will either (a) mod a PC to play X-Box discs, or (b) build their own X-Box out of PC parts and mod chips.
If this has already been done, please post links.
Re:I'm waiting for someone to build a homebrew X-B (Score:2, Informative)
I'm sure you'll see "XBOX Emulators" for PCs, but don't expect one to actually run games well for about 2 years.
Re:I'm waiting for someone to build a homebrew X-B (Score:2, Interesting)
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.
Re:I'm waiting for someone to build a homebrew X-B (Score:2, Interesting)
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?
Re:I'm waiting for someone to build a homebrew X-B (Score:5, Informative)
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....
Re:I'm waiting for someone to build a homebrew X-B (Score:2, Informative)
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.
Re:I'm waiting for someone to build a homebrew X-B (Score:3, Informative)
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.
Re:I'm waiting for someone to build a homebrew X-B (Score:3, Informative)
Re:I'm waiting for someone to build a homebrew X-B (Score:1, Informative)
It is not new, and it is not special.
Re:I'm waiting for someone to build a homebrew X-B (Score:1)
And it's a less relevant kludge on a DVD, seek time is lower on the inner edge, and throughput blows CDs away no matter where on the disk you are.. (The old CAV 8x at the inside, 48x at the outside doesnt apply nearly as much)
Re:I'm waiting for someone to build a homebrew X-B (Score:2)
STRATJAKT: but the xbox doesn't read inside out
Am I missing something here?
If it's NOT reading from the outer edges, and it's not reading form the inner edge, where DOES it read the data from? I've seen printed material that says it reads from the outer most edges for speed advantages. It may have been in err, I won't argue with that possibility.
Even the link you provided clearly says the TOC is written in such a way that it misleads the drive about the amount of data on the disc. If I remember correctly the Lead-In is on the inner most edge. The lead-in contains the Table of Contents which extends to 50 mm from center on a regular CD (as per the redbook spec). After the lead in, is the data area, but it doesn't have to extend immediately.
I have read both in print and online that the data area was stored outside of the area laid out by the TOC to make copying harder as it makes it appear as if there is less data on the disc than there really is.
Re:I'm waiting for someone to build a homebrew X-B (Score:1)
Re:I'm waiting for someone to build a homebrew X-B (Score:1)
Re:I'm waiting for someone to build a homebrew X-B (Score:2)
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.
Woah. What? The unified memory architecture isn't a benefit of the XBox - it's a drawback - a limitation. The graphics chipset has to access main memory along with the processor. All other modern consoles have segmented memory.
Also, the GC also reads outside in. Main reason is for copy protection, not for speed.
Re:I'm waiting for someone to build a homebrew X-B (Score:2)
I want to see the controller from Steel Battalion on the PC. It would be great with MW4. The regular XBox controllers are only so-so, IMHO.
Re:I'm waiting for someone to build a homebrew X-B (Score:2)
**
xbox games are 'easy' to get from the net already.
it's not like everyone uses stuff from liksang to play imports.. so the data is readable all right.
as for the os overhead.. that's just the os. linux runs on this puppy without _that_ much tinkering away from regular pc, the memory architechture afaik isn't 'magically special','unified' or anything like that.. sure the barebones os might lack decent memory management but.. it's ms anyways.
bottom line is that it should be easier than dc, psx, ps2 or gc. and no need to waste cycles on emulating a different cpu.
though, it might be easier to do vmware of sorts of the hw and run it os data dumped from genuine xbox.. might take year(s) to happen but it will happen.
Re:I'm waiting for someone to build a homebrew X-B (Score:2)
I've heard some people working on making XBox games work under Wine/Linux. As the XBox has a much smaller/stable subset of Windows OS this might be fairly easy to accomplish. I see some work being done on emulation under Windows also. Given the average time it takes to develop a good emulator it's really not taking that long to develop one for the Xbox.
I don't really see the point of emulating the XBox and I'd like to see an open sourced console that can run Linux-based games. I've thought of using a hdd-free Mini-ITX system for such a system. It wouldn't push the envelope but it'd be decently powerful while remaining affordable, low power, and cool. Could use USB-based joysticks with it and it supports both vga and tv output and has a built-in ethernet port.
Re:I'm waiting for someone to build a homebrew X-B (Score:1)
It's funny. Laugh.
Re:I'm waiting for someone to build a homebrew X-B (Score:1)
If you believe that, then you'll also believe that the Nintendo GameCube is nothing more than a PowerPC computer with some mods to make it "different".
A console is more than the sum of its parts. The PS2 uses Rambus memory. The Dreamcast used an SH4 (I think -- or was it SH3?) processor. Even the original NES used a standard Motorola processor. The XBox uses a Pentium 3. The GameCube uses a PowerPC. And so on. All of these consoles use standard, commodity hardware that has also been used in other computers and embedded hardware. Big deal.
Re:I'm waiting for someone to build a homebrew X-B (Score:4, Interesting)
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.)
Systems Engineer (Score:2, Interesting)
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.
Re:Systems Engineer (Score:2)
> Immersion [immersion.com] - Good starting point for haptics, game controllers, etc.
I've used products from both companies. Let me say that I'm not impressed with either. WorldToolKit (WTK) is fairly easy to use, and it does have a lot of support for things like Polhemus fast tracks, etc, but a lot of these devices aren't that hard to write drivers for, and WTK's abilities are really limited. For instance, there isn't any support that I can see for multipass texturing, let alone vertex or pixel shaders. It does let you drop to OpenGL in places, but that is tricky. I'd recommend either using a free tool kit (Crystal Space looks good, but I haven't had a chance to try it, OpenScenegraph is decent) or roll your own (which really isn't very hard to do). WTK is really expensive by the way.
As to Immersion, well, I'm under NDA for some of it. However, but their APIs suck. For one device, I had to chuck their high level API (the one that allow you to do things like GetPosition) and write my own reading from the low level API (the one that retrieves raw encoder values from the PCI card). On another device, I was able to use the high level API, but the values matrices I got back were wacked out and require much code to fix them. But, maybe Immersion's APIs for joysticks and such is nicer.
CrystalEyes at least I have no problem with. Not as cool as a HMD with Polhemus Fast Track position tracker though.
Re:Systems Engineer (Score:1)
As far as WorldToolkit goes, I like it mostly for its device driver support. Frees up my time to be worrying about other problems. Its much, much easier to simply write an eigenfunction, than it is to write device drivers. But I agree, writing device drivers really isn't all that difficult for most of this stuff.
PlaneShift, Quake, and Unreal could all be possible avenues of investigation, if you were willing to limit all of your Xbox games to being derivatives of 3D engines.
HMDs? Head Mounted Displays? Nah. Weight is clunky. Maybe you've got some really light weight version, but I never got to work with a HMD that made me 'see the light.' I'd rather just have a backlit wall, but then the applications I've worked on tended to be in the scientific and medical communities... not so much need for 360 degree rotation, but rather for a dozen folks to stand around with their coffee discussing strategies for further research and operations.
Re:Systems Engineer (Score:1, Insightful)
Re:Systems Engineer (Score:1)
Well, all I can say is that I was hired by our university's department of networking services & information technologies to design and install computing clusters. Designing, building, and producing console boxes is merely a problem of building a computing cluster, which you then 'uncluster' and distribute the nodes to buyers.
I didn't say you had to use Sense8's WorldToolKit or any of the other proprietary software products. I was merely pointing in directions of additional information of equipment and materials which may be pertinent to the project at hand.
As far as designing a filesystem... well, if you have to ask that question, I am going to have to suggest a book for you, written by Donald Knuth, entitled The Art of Programming [stanford.edu]. The file system is going to be central to the entire machines memory usage, both RAM, ROM, CD, and NFS. Optimization and funtionality are going to be based upon it.
And then 'magically configuring' the system to play XBox games ?! Laf. Well, I suppose so. The 'magical configuration' was done during the installation of the device drivers and the file system layout. Disk imaging can be more tricky than one may imagine. When we were at work in the laboratories, a majority of our time was spent imaging builds rather than coding. But then, we were working at a tier-1 research university, and we didn't like to loose the work we had done to a disk error.
Left.
At school? (Score:3, Funny)
Re:At school? (Score:2)
and good with ketchup, you insensitive clod!
Someone should.... (Score:2)
At $150? (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?
Re:At $150? (Score:1)
Re:At $150? (Score:5, Insightful)
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.
Re:At $150? (Score:2)
All that would be needed is a way to hook it up to a TV (but still leave it capable of being connected to a monitor and run at resolutions higher than 640x480), and include a console-style controller that uses a USB port.
In Related News... (Score:5, Funny)
"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."
Re:In Related News... (Score:2)
Reinventing the wheel is something you do quite often in school. Only by reinventing something do you truely realize both how things work and why they are built they way they are.
Re:In Related News... (Score:2)
Only by actually using the MFC did I start to realise why people like starting out with Windows programming and also realise why people don't write 'good' programs using the MFC (easily).
Re:In Related News... (Score:1)
Re:Space Invaders? (Score:1)
Re:Cool idea! (Score:1)
Been done... (Score:1)
How about a Lin-Box? Stick a lot of expensive hardware in it, strip the kernel, and lose money selling it, too! Wait, I see why this hasn't been done yet..
Re:JavaStation & Linux! (Score:3, Interesting)
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.
Re:JavaStation & Linux! (Score:2)
The MrCoffee JavaStation (the one that looked like a Sun 611 drive case) was essentially a diskless SS5 in a smaller case, and a tweaked PROM.
Re:JavaStation & Linux! (Score:1)
And perhaps the difficulty in running linux on it was that one had to compile a sparc linux. Which makes sense, because I didn't have an extra sparc workstation laying around to build the linux build on for the java station. And hence, I went onto other projects.
Thanks for the correction. It's been awhile since I worked on that project.
Re:JavaStation & Linux! (Score:2)
Second, there was rumored to be an internal port of Solaris to the Javastation. It probably wouldn't have been hard.
Third, I'm told that if you want to run Java on a Javastation, you will get better performance by netbooting Linux and running your Java there that you would have on JavaOS. However, I still would have liked to have been able to get a copy of JavaOS to try. It sounded neat.
Anyway, by now there are precompiled Linux's for the Javastation floating around. I just never got around to finishing setting up my boot server (got BOOTP and something else running to boot the OS loader that allows more boot options, but never got the rest of the stuff installed on the server), then, as I said, I needed the cash.
I now have a Sun ELC that I'm trying to get netbooting. However, I'm being held up because I gave away what turned out to be my last spare tranceiver (I thought I had another spare around). Someday.
I love old Sun gear. I have a 3/160, a 3/280, and a 3/80. Plus an IPX, SS Classic, and Ultra1. I used to have a SS2, but I gave it to someone more needing of it. I still want to get a SS10 with the ZX board, which was the setup of the first 3D workstation I ever used. Ahh, good times.
Re:JavaStation & Linux! (Score:1)
Honestly, Ultra1 is as far back as my memory goes. Got to set up a quad processor Ultra80, which was pretty darn cool. Sounds like you've been in the industry longer than I have.
Feh. (Score:2)
For those that are old enough to remember, I'm sure that you are already having fond memories of Pong. For those that are a bit younger, take a look at this [pong-story.com].
Re:Feh. (Score:2)
Re:Feh. (Score:1)
Will it be fun? (Score:1)
wow (Score:2)
Re:wow (Score:2)
My favourite part:
They say "yes, game copying devices are illegal" by defining the illegal acts you can do with one. That's like saying "yes, car's are illegal based on the functional capabilities it provides to run down school children."
Metroid Prime still rox tho
Re:wow (Score:2)
Question (Score:3, Interesting)
Re:Question (Score:2)
Re:Question (Score:3, Informative)
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:Question (Score:2)
Portable would be sweet (Score:1)
The best part is that the portable console would run nes and snes and gameboy rom files. This wouldn't be a project to market, but something to learn the intricacies of low-level programming. It would also be a fun toy for boring lectures.
Unfortunately the group I assembled to build the device voted it down and we ended up building something completely useless...
Too Much Code (Score:3, Insightful)
Cool idea though.
Re:Too Much Code (Score:2)
What about time? This was a class project. With this project and projects for other classes, they probably didn't have the time to make it better.
Re:Too Much Code (Score:4, Informative)
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:Too Much Code (Score:1)
credibility (Score:3, Funny)
The nintendo for a case: most impressive.
The fact that they use the word 'foo' in the tetris source code: pure credibility
ColecoVision... (Score:3, Interesting)
I think. My memory is pretty hazy and I haven't openned mine up in years.
J
Wonderful! (Score:5, Interesting)
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.
Re:Wonderful! (Score:1)
It's not a full compiler, though - we generated 3-address code which was then given to an assembler our professor and TA wrote. This way, we didn't have to generate code to manipulate the run-time environment, or deal with the OS at all.
However, given what I've learned in that course, I would know how to approach those things now.
Re:Wonderful! (Score:2, Funny)
Re:Wonderful! (Score:1)
OUT=`echo $1 | sed "s/\.src$//"`
echo "#!
cat $1 >> $OUT
chmod +x $OUT
compile with ". sc.src" the first time, after that you can compile your programs with "sc
Cheers!
Awful lot of trouble... (Score:1)
In the mean time, I'll just use an emulator (see sig)
MegaTouch? (Score:2)
Re:MegaTouch? (Score:1)
Final Report... :( (Score:1)
The horror... (Score:1)
Even a newbie knows you do this with right shift!
#define MULT_2(value) ((value) > 1)
I suppose his method has the advantage of working with floating point...
Re:The horror... (Score:1)
#define MULT_2(value) ((value) << 1)
#define MULT_4(value) ((value) << 2)
#define MULT_8(value) ((value) << 3)
#define DIV_2(value) ((value) >> 1)
Re:The horror... (Score:1)
And you are making an assumption that this core is optimized for bit shifting. Who knows, it may not even have the hardware for it. This is a synthesized core written in VHDL, there are no assumptions.
Personally, I think this sounds like a lot of fun. I tried to convince my professors to allow myself and a partner construct a fully-functional MIPS core on FPGA for my EE senior project, but sadly they had other ideas. It's nice to see some folks having fun out there...it's COLLEGE, you're SUPPOSED to have fun! Not care about super optimization.
Re:The horror... (Score:2, Informative)
Re:The horror... (Score:1)
Hey dude, I don't mean to be rude or anything, but for someone laughing about other's people code, you should check what you post...
#define MULT_2(value) ((value) > 1)???
Looks like your macro just checks if the number is greater than one... Besides, it would be a left shift...
For all you ancients that were in the "club" (Score:1)
Let me remind you old folks with the Altair (still in the basement) about something. Computer Engineering is not just a hobby or a club which you are qualified to join if you built a computer from the transistors up (or trio-tubes as the case may be). It is a legitamate industry and profession, as you well know.
Russ may not have designed the IC with VLSI, but he and his team designed the ALU, Registers, Datapath, Control, Memory Interface, VGA controller, DAC (if he used one), and gamepad controller, not to mention writing their own assembly that would translate to IntelMCS format, oh...and the code itself. I am sure it took more than 2 weeks to do this. Besides how many of you started by building a transistor radio? That doesn't seem to be anything cool by today's standards. Are you afraid that us younguns' are gonna pass you by?
On a redeeming note, THANK YOU ancient ones! Were it not for your tenacity and ingenuity (some a result of quick fixes ie. 8086->8088) we young wippersnappers would not be where we are today. Were it not for your concrete and cement, we greenies would have to travel in muddy rut-filled roads!
By the way, for an outlined plan of what Russ did, check out this site Computer Design [utah.edu] It may not be up much longer since the semester is over. Maybe you guys could get an XESS board and do it too, instead of stamping out the creativity in this poor undergraduate's mind! Oh yeah, nobody's going to pay you to do it either!
Re:For all you ancients that were in the "club" (Score:1)
MESS (Score:2)
TETRIS SUES YOU (Score:1)
They programmed Tetris and Space Invaders for their console using a system they call CASM.
In Soviet Russia, Alexey Pajitnov invented Tetris.
In the United States of America, The Tetris Company [everything2.com] will sue you if your game's name is too similar to "Tetris".
Re:TETRIS SUES YOU (Score:2, Insightful)
And they don't sue all of the people who make and sell cheap clones of it and call it "Wibble" or something?
Strange.
Re:TETRIS SUES YOU (Score:1)
they don't sue all of the people who make and sell cheap clones of it and call it "Wibble" or something?
They can't. They don't have a patent. It's the same reason Adobe can't sue the GIMP developers, because they didn't call it "GPhotoshop".
Re:TETRIS SUES YOU (Score:1)
Re:TETRIS SUES YOU (Score:1)
The article didn't respect the TETRIS trademark (Score:1)
And they have every right to.
Which is why when I refer to the tetramino game in the generic, I call it the tetramino game. In the same way, the game played on a Hasbro(R) SORRY!(R) board is called "slide pursuit", a variation of the earlier game "ludo" [wikipedia.org] played on a Popomatic Trouble(R) board. I was in a way responding to the fact that this article called the game "Tetris(R)".
That's why smart inventors are very careful with what they name their inventions
Of course, Google makes it much easier nowadays to do a search for possible trademark collisions.
and are sure to get the trademark before going to market.
Actually, to get a trademark registration in the United States, you must have already used the mark in interstate commerce, or you must be able to prove a "good faith intent" (the details of which I do not know because I am not a lawyer) to use the mark in interstate commerce.
Re:IN SOVIET RUSSIA (Score:1)
Re:IN SOVIET RUSSIA (Score:1)