Andre Lamothe Launches XGameStation 173
TheAdventurer writes "Andre Lamothe, author of many popular video game programming books, has released his XGameStation. The initial offering, the XGameStation Micro Edition, is a retro level hardware platform, similar to the old Atari and NES systems, designed to teach enthusiasts and students the elements of console hardware design and effective low level programming skills. The unit comes with an e-book written by Andre on how to develop on the platform using its assembly language IDE (included) and how to make your own extensions to the device. It is priced at $199."
It's an interesting idea.... (Score:3, Interesting)
Cheers,
Erick
Re:It's an interesting idea.... (Score:1)
Re:It's an interesting idea.... (Score:2)
Pretty cool (Score:4, Insightful)
A new device such as this with eduction in mind from the start surely sounds like a nice hobby experience.
Buy your tech gear for much less. [retailretreat.com]
Re:Pretty cool (Score:4, Insightful)
Re:Pretty cool (Score:5, Informative)
Blup?
As someone who started out on 0.25 MIPS CISC processors, I can comfortably say that you don't have the faintest idea what you are talking about. Abstraction layers appeared shortly after the stored-program architecture. 80 MIPS is serious, serious luxury.
Re:Pretty cool (Score:3, Funny)
<grumpy old man>
0.25 MIPS CISC? Luxury! Why, back in my day, we had to do the calculations in our heads and push the bits back and forth manually, uphill both ways too! And we liked it!
Kids these days....
</grumpy old man>
Re:Pretty cool (Score:3, Interesting)
We all start somewhere, y'know. I knew every peek and poke and hack and crack on my beloved C-64. Not a single hour I spent on it could be considered "useful", but I did walk away with the confidence that I could master any machine.
Re:Pretty cool (Score:1)
True, most geeks won't gravitate toward learning code, but ASM isn't the best starting point either.
Games are okay, but when I was first starting out I felt more comfortable with simpler code, the tricks involved in detecting colisions and modelling physics fed to me as "you must do this". I didn't like not knowing how it worked and how to edit it, and expiraments lead to compile errors. As long as this specific teaching tool/toy/whatever have you doesn't have that problem it might do some good, but there
Re:Pretty cool (Score:1)
Re:Pretty cool (Score:2)
Also, the only package that's impossible to solder with a $5 soldering iron is BGA, which are not that popular. I have successfully soldered 0.5mm spacing SMD chips (about the finest they make) with a cheap soldering iron, a homemade PCB, regular solder, and a roll o
Re:Pretty cool (Score:2)
The problem, of course, is that you pretty much are going to have to get your board professionally fabricated because I can't see that being too happy of a situation without mini vias.
Re:Pretty cool (Score:2)
Re:Pretty cool (Score:2)
This is an interesting device, and looks fine for teaching purposes, but the price tag combined with the uniquene
Re:Pretty cool (Score:3, Informative)
I've been a game programmer (PC/XBOX/NGC/PS2) for around 4 years and I have used assembly language approximately
Yes for some roles in game programming, there is a need for low-level assembly knowledge. But the biggest challenges nowdays on mu
interesting (Score:1, Interesting)
Don't get me wrong, I do embedded development, and use of ASM is frequent, but modern consoles don't need such low level programming, the API's handle almost everything... I doubt that this is so much about learning to program consoles, as it is learning to develop f
Re:interesting (Score:5, Informative)
You haven't done much PS2 programming, have you? I have, and yes they do.
I'm calling b.s. (Score:3, Interesting)
Very little is actually coded in assembly. The main things coded in asm relate to graphics: VU's on PS2, the shitty microcode for GC, and the shaders for xbox. I
Re:I'm calling b.s. (Score:2)
Re:interesting (Score:2, Informative)
Re:interesting (Score:2)
Re:interesting (Score:2)
True, but it depends what your goal is: designing a great game or learning to bum cycles and bytes from assembly code. I would humbly suggest that the latter is significantly more valuable than the latter.
Re:interesting (Score:2)
Re:interesting (Score:2, Informative)
Re:interesting (Score:3, Insightful)
Re:interesting (Score:3, Insightful)
Look at titles for portables, the smaller handhelds (e.g. a gameboy), a great many of the uprights in the arcade...
The fact is that a lot of code is still being written for devices/systems where your app will be seriously starved for resources. This is where "game code still uses alot[sic] of assembly". And you can bet that even though the bulk of the codebase ma
Re:interesting (Score:2)
Even C is a bit too low-level for many things. Many types of games (such as MMORPGs) are much easier to write in higher-level l
Re:interesting (Score:2)
Oh. I see! You're going to pay to have the arcade uprights upgraded to your insanely bloated spec out of pocket? You're the man who's going to go out and solder new procs into every gameboy currently in the user's hands? Wait, no, I've got it! You didn't happen to read my post! Yes, that's it!
Even C is a bit too low-level for many things. Many types of games (such as MMORPGs)
The fuck?!? The last time you saw a MMORPG running on an a
Re:interesting (Score:2)
As for my "insanely bloated spec": I'd rather spend an extra $10 per arcade machine on hardware than spend millions fixing bugs and completely rewriting the software when I decide to switch to a different hardware platform. I'll probably end up with a better game, too (since I can concentrate on making a great game instead of writing math libraries in machine code and
Re:interesting (Score:2)
Sir, please reflect: I was illustrating some cases where assembly is used, quite heavily: uprights and handhelds. Why that should equate to me not knowing about modern consoles is beyond me.
Check it out - that pretty much is not an option! Your ROM is going into a cabinet that already exists, you don'
Re:interesting (Score:4, Insightful)
First they want a space ninja, then they want a caveman lawyer. The game you start programming the first month of the project is almost guaranteed to be an entirely different game from the one that you finish.
Frustrated with all of the changes, I asked my boss once for the design document, and he pulled out a barely legible scrap of paper.
That goes for the low-level hardware stuff too. Even the hardware might change mid-project! My sprite code stopped working one day after we got new boards from the hardware people. I called them up, and sure enough, they changed around the hardware! (Thanks for telling me beforehand!)
Long story short; assembly programming is a skill that every serious game programmer should know, but you never know where you're code is going to end up, so it only makes sense to write well-documented C/C++ instead of the complicated ASM equilavent. (yes, I know you want to prove how clever you are with your 100% ASM programs, but in a professional environment you need to make sure that your code is understandable and modifiable by everyone on the project.)
Even on the low-level system I described in my previous post, we still use C.
Shaders are basically assembly language (Score:1)
Point? (Score:2, Interesting)
Re:Point? (Score:4, Interesting)
You just can't do the stuff the xgamestation does with modern hardware. Modern hardware has a framebuffer, but this thing has a directly controlled raster stream allowing pixel level timing and color control via software loops, so essentially you have to calculate and update the color of each and every pixel you want to display on the fly. With modern Hardware you're hard pressed to even get notified of the vertical retrace. What you learn with this thing is useless for programming modern games on modern hardware, but It may be a fun way to learn assembler (that's just an 8 bit CPU in there - they planned to use an ARM but found it "too complex") and realtime programming similar to what you would have to do on DSPs.
Re:Point? (Score:5, Interesting)
Thanks,
Leabre
Re:Point? (Score:2)
This isn't fun, it's a royal pain in the ass (even if you are programming Pong). That's why everyone uses framebuffers these days. If you want fun, get an 8-bit PIC microcontroller and play around with that. At least what you will learn might come in useful someday. I really fail to see the point in learning to program obsolete video chips. Lots of work, zero payoff.
Re:Point? (Score:2)
Unfortunately, acquiring that knowledge takes quite a bit of effort and it's completely irrelevant today. There are many cool things that are being made today (FPGAs, DSPs, all sorts of microcont
Re:Point? (Score:1)
I would like to see something like this but on the order of a modern game console.
Take this with a grain of salt (Score:5, Interesting)
I'm posting this AC because I know this will get modded down as flamebait.
I've been working in the game industry as a programmer for 15 years, and have never regretting purchasing a single technical book (and I've bought hundreds) until, one day when I was at Barnes & Noble, buying six by Andre Lamothe thinking they might be useful.
Not only are his books terribly tied to specific platforms (he wouldn't know how to program if sample code wasn't handed to him on a platter by Microsoft--most of his sample code is taken STRAIGHT out of Microsoft's examples), but he can't write a paragraph without factual errors to save his life.
I remember a whole section where he was talking about 56 Kbps modems having a total of 56 Kbps of bandwidth split between incoming and outgoing data, and if you sent more, you could receive less. And another where he dismissed NAT because IP addresses on the internal network would conflict with those on the Internet and the idea would never catch on (he'd never heard of reserved netblocks, apparently).
He has become just a name and a marketing tool; do NOT rely on him for actual game programming tips and information.
Re:Take this with a grain of salt (Score:2)
The exact specs are:
These chips DEFINITELY have their place (eg. are compact enough to build the retro Atari-games-completely-inside-controller things), but aren't to be confused with a $200 X-Box, which you can learn game development on, but which would be much more powerful.
There are plenty of SX52 development boards [massmind.org] available to play with, many cheaper than this. Personally, for hardware hobbyi
Re:Take this with a grain of salt (Score:2)
Secondly how many games has this guy actually published?
And, as predicted... (Score:1, Flamebait)
Re:Take this with a grain of salt (Score:5, Funny)
Re:Take this with a grain of salt (Score:1)
Re:Take this with a grain of salt (Score:1, Informative)
unsigned short lookupTable[320 * 256];
#define offset(x,y) lookupTable[((x) << 8) + (y)]
Not that it's a GOOD idea (it's not--it's dumb, especially in the days of Mode 13h) but since the Y values range 0-199, that fits in 8 bits. So if you transpose the lookup table like this, you can avoid multiplying by 320 and instead shift left by 8, which will be faster, and look up the
Re:Take this with a grain of salt (Score:2)
Andre LaMothe, 56K, and noisy phone lines (Score:1)
I remember a whole section where he was talking about 56 Kbps modems having a total of 56 Kbps of bandwidth split between incoming and outgoing data, and if you sent more, you could receive less.
This is true of some of the phone lines I've encountered.
Re:No it is not. (Score:1)
That how you get 4 pots lines out of CAT3+ cable.
Erm, Yes it is... (Score:2, Informative)
There are "complete and total morons," and then there is you. Phone lines do not have "send and receive pairs". There are just two wires (one pair) in most telephone systems in the world. Some European systems may carrry a high voltage ring signal on an additional wire, bur that's not necessary.
May I suggest you take a quick google before you "spew" yourself:
http://electronics.howstuffworks.com/telephone2
-S
Re:Erm, Yes it is... (Score:1)
And, thank you.
-S
Re:Take this with a grain of salt (Score:2, Informative)
A Dreamcast is cheaper. (Score:3, Insightful)
Around $25 for the system on ebay, then a quick search for a bootdisk.
Plus, it can be made bootable, so other people can play your game without any modifications to the DC.
Would have made a cool college course (Score:1, Interesting)
Evidently his server is an XGameStation... (Score:2)
Maybe he should have gone with something more powerful than an 80 MIP RISC processor. I mean, they give those away in CrackerJacks now, don't they?
Re:Evidently his server is an XGameStation... (Score:3, Informative)
Re:Evidently his server is an XGameStation... (Score:2)
They changed it (Score:2, Informative)
The XGS was changed beyond recognition. Before, it had a Super NES style GPU. Now it has one more similar to that of the Atari 2600, where the CPU has to output each pixel one by one.
Re:They changed it (Score:1)
I'm sticking with my GBA (Score:1)
It was supposed to be 10 times more powerful than a SNES and the controllers were those of the PS2. I don't know what happened.
They just outsourced it to Nintendo and changed its name to "GameCube with a Game Boy Player accessory, a nYko Play Cube controller adapter, and an MBV2 cable". And that's [jk0.org] what I'm sticking with for the foreseeable future.
Good for pros too... (Score:5, Interesting)
This little bit of hardware might seem to be underpowered, but I can tell you from experience that this is the kind of stuff that a lot of professional game developers are using today.
With the arcade business being what it is today, the challenge is to fit the most amount of game into the smallest (meaning cheapest) hardware. The game I'm working on right now runs on hardware (similar to the xgamestation) that only costs about $40 for each unit. It's basically a 66mhz Z80 cpu, 4mb of texture memory, and an fpga that is really good at moving around memory, and it's a childrens redemption piece (ticket spitter) that's going to sell like hotcakes.
When I applied for my current job, I was one of the only guys who had any non-pc game development experience (through the sony net yaroze). This little box should open the door for a lot of aspiring game programmers.
Between Torque and the XGameStation, young programmers have no excuse for not having a kick-ass game for their demo reels.
Re:Good for pros too... (Score:1)
That's actually one of the things I most hate of PS2 programming, plus all textures have to be aligned and need to use sizes that are powers of two, and blah blah. You have to squeeze every little byte of VRAM. Indeed, there is even a mode where you store x-R-G-B pixels and I-x-x-x (I=palette index for indexed textures) together in a single 4 bytes as I-R-G-B (i.e. 2 tex
Re:Good for pros too... (Score:5, Interesting)
Perhaps the point of this device is being missed.. (Score:3, Insightful)
Built in Programmer? (Score:4, Funny)
I knew the Japanese people were small, but this is ridiculous.
Want to learn to programs for "retro" systems? (Score:5, Insightful)
Re:Want to learn to programs for "retro" systems? (Score:3, Interesting)
Is it that easy? (Score:2)
Re:Is it that easy? (Score:2)
You should stick with MESS, which emulates various home video game systems. Many of these have been documented very well. If you choose one of the really significant ones (like 2600, Colecovision or NES), you can even release the game on a cartridge playable in an actual system.
Step 1, choose a game system
Step 2, write game
Step 3, profit!
Its great to (Score:1, Informative)
I really consider the main problem with America in whole to be that we stress the point of our exsistance to 'live for whatever we want to' for our own desires etc, instead of living for the better of humanity, society, earth as a whole, or anything... I myself enjoy learning, as most
Re:Its great to (Score:5, Interesting)
Too bad parent is erroneously marked offtopic... I think it's spot on.
I've actually met André LaMothe. I was 14 or 15 at the time and living in Milpitas. I sent an email to the CompuServe account listed in the back of his book and he not only was kind enough to reply promptly, but explained several of the concepts I was having trouble with to me over the phone in more detail. He gave me a copy of what was at the time his newer book [amazon.com], as well as an older version of Watcom C/C++ that he wasn't using any more.
I was used to always writing to an API (I wrote, as an exercise, my own mini-OS in assembly, but it still used the BIOS for everything) and coding to bare metal was a new thing to me. I knew of the dangers of C macros (multiple evaluation, etc) and so avoided them entirely, but he gave examples of where they could be used to great effect and how to avoid those dangers. I learned about how to implement preemptive multitasking from his books, about effective use of lookup tables, about how knowledge of higher math can be leveraged to write much more efficient code.
His newer books ended up focusing on DirectX, and I lost my interest in game programming when I realized that without a full studio and millions of $ it would be near-impossible to compete with the Quakes and other established models that continually raised the bar. I now program in a business context (amusingly enough, using Lisp macros heavily, which put anything C macros can do to shame) but I'm grateful for everything I learned from his books.
I think this XGameStation is a great idea. I may buy one. Something which can show inexperienced programmers through experience the difference between an effecient algorithm and an inefficient one is an idea I fully support, and this looks like it could end up being lots of fun besides.
Dreamcast Programming (Score:5, Informative)
There are plenty of resources for it and some good examples of homebrewed games and applications already out there.
Not to mention it's a lot more modern and you can use some nice rendering hardware.
Linkage:
Dreamcast Programming [mc.pp.se]
Dreamcast Homebrew [dcemu.co.uk]
Dreamcast Emulation [dcemulation.com]
Re:Dreamcast Programming (Score:1)
Re:Dreamcast Programming (Score:3, Interesting)
You couldn't base a college class on Dreamcasts because you couldn't order them in reliable quantities, or get them repaired easily, and you have to burn CD-Rs all the time. Well, okay, you could, but you'd eventually come to a point where it was more trouble finding units at non-fixed prices off of ebay than it was worth. And DC serial cables are too hard to find and DC BBAs
Re:Dreamcast Programming (Score:2)
Could this run doom? (Score:1)
XGS = FPGA? (Score:1)
Cue Sony lawsuit over the name in... (Score:2)
Re:Cue Sony lawsuit over the name in... (Score:1)
Has definite possiblities (Score:3, Interesting)
The only thing that really gets me on the thing is this price. Would it be cheaper to homebrew your own console? I mean you can still get 65C02s and memory in such small amounts shouldn't be that expensive, right?
Anyway this thing is off to the right start I think. It even has a demoscene, which to me shows how interested people are in this thing. I might get one of these in the near future and mess around with it.
Re:Has definite possiblities (Score:2)
GP32 (Score:1)
Re:GP32 (Score:1)
Re:GP32 (Score:1)
Products Aim ? (Score:1)
no thanks (Score:1)
cool, but too expensive (Score:5, Insightful)
Re:cool, but too expensive (Score:2)
No I disagree. Sure your hacker come programmer [gc-linux.org] could put together a gamecube solution but first theres the problem of gamecube SDK [gc-linux.org] (if your not an official developer you break license) Here's the gnu toolkit [sourceforge.net], but that's it. There are enthusiasts that want to try their hand at consoles closer to the metal than gamecube, ps2 or xbox. I can think of a lot of good AUS, NZ and UK programmers who cut their teeth as ankle biters on (expensive) Acorns, Sinclairs, Apple][ etc, hooked up to tv's. This is simply the
Why not PPC? (Score:2)
Its quite funny to read the technical prospectus on this thing. " 4-Deep instruction pipeline (Fetch, Decode, Execute, Write)". Wow.
xgamestation vs. 2600 (Score:3, Insightful)
Also, the CPU is much faster -- it's probably inaccurate to say 80 times faster because I don't know whether the instruction set is more or less primitive than that of the 6507, but I doubt it could be much more primitive.
That's probably the reason why there is no sprite hardware (*): you can program your raster-on-the-fly graphics fast enough without it. (Yes, even the 2600 had one-dimensional sprites which you could reposition or alter between scanlines.)
(*) If something they would have burned into an FPGA should really be called hardware. Firmware, I guess. For programmer purposes it certainly is part of the hardware.
So this is sort of a super Atari 2600 on steroids, if you ignore the easy way out of simply using the static RAM as a framebuffer or using somebody else's prewritten subroutine for doing so. Apply the same freaky scanline by scanline tricks the 2600 programmers did, but accomplish more with them! In that sense, it's a really neat machine, and I wish him luck with this.
Still, I think writing new games for the 2600 appeals to me more. Not that I'll never do it. Hell no. When it comes to assembly, I'm strictly a voyeur and a dilettante.
"Oh look, Geoffrey. The 6507 programmers are sweating as they seek to save a single clock cyle with a cleverly placed jump instruction. Oh my yes, that is quite admirable. I do work up a thirst watching another man work. Another martini? Why thank you..."
Intentions (Score:1)
I wonder though if there are cheaper ways to learn about console design. And once you have any basic console you can learn a tonne about the programming.
Graphing Calculators... (Score:3, Insightful)
Sure, calculators aren't as cool or powerful as what Lamothe is putting out there, but they do force you to be creative and do a lot with a little. Besides, making something happen on a little box just seems cooler - you tend to take having complex software for granted with PC's.
Re:Graphing Calculators... (Score:2)
Thanks for the compliment on my game!
Why not just get a GBA? (Score:3, Interesting)
As for documentation, the GBA is only rivaled by the Dreamcast in terms of how well documented it is and how large the homebrew development community is. And much like the DC, you can use the standard GNU toolchain for development. And, of course, you can still run regular ol' games on it, so it doesn't *have* to be just a development platform.
So, why would anyone bother with this thing?
Re:Lamothe gets big points for this (Score:1, Interesting)
Re:Very Cool indeed, I may buy one.. (Score:1)
Re:News Flash (Score:5, Insightful)
It would appear you have completly missed the point here. First they do plan on making compilers for C and basic.
second on of the main ideas here is to learn how to be a GOOD programmer, the limitations of the system will force you to code well. this wont be like a desktop where you can have super sloppy code, but Ghz of power to force it to run.
Third, one of the things this is designed to teach is the hardware side of things. Its designed to be a completly open system to let you hack, tinker, and create. It comes with a book that teaches you the entire EE side of designing such a system. The idea being that if you dont like this system (or just think it might be fun) you can build your own system, and make it do whatever you want.
Re:News Flash (Score:1)
I guess it all depends on what you mean by a "good programmer". Is a good programmer someone who writes efficient code, or one who writes readable, easily understandable code? Usually the two are mutually exclusive, unless you have an excellent programmer.
Re:News Flash (Score:3, Insightful)
To get the best performance out of limited hardware you are going to have to be a very BAD programmer. Out of code ram for that special effect loop? just change a couple of bytes in a similar one and call it. Need to make sure to update the sound DAC every 100 cycles? put in a call to the DAC check between every other call and in long loops.
The system is great for learning what ha
Re:News Flash (Score:2)
Actually, you got it backwards. On a 2GHz machine, you can write simple, elegant code. On a small microprocessor, you will have to create kludges on top of kludges to get it to run. Your code will be buggy and unmaintainable, with hidden bugs that will take weeks to find
Re:News Flash (Score:3, Insightful)
Thanks,
Leabre