Learning a bit of ASM for my ZX Spectrum clone that i bought a couple weeks ago got me thinking about this.
A programmer can learn many things on a limited system. For example, in an assembler program that runs on the Spectrum, you need to tabulate the listings by hand. If it's a label it must be on the first column, if it's an instruction it's absolutely gotta be on the second column, and so on. Comments can be put anywhere but doing so makes things messy so i just put them on the fourth column just like the manual says. An actual printed manual.
Writing straight machine code is pretty much the only way of doing anything useful on a Z80... and really, it does more cool things than i expected. I'll probably get started on PICs next (see my older topic about PSUs and microcontrollers). But back on topic.
When a new game comes out for your console, you betcha it looks better than the ones you already have. When a new game comes out for the PC... you find out you have to upgrade.
Even if the console is technically weaker than the PC (hey, the original Xbox was a Celeron and a Geforce 2), as the game developers get to know the system, they optimize their code better so they can do more stuff while keeping the same framerate. Whereas on the PC... hey, new hardware's gotta sell, ain't it? No optimizations for you. You start seeing a lot of games that are basically direct console ports, with GTAIV being the first example that pops into my mind here. Some may blame it on the myriad of configurations that a PC might have - but hey, code optimization for PC has been done in the past and CPU manufacturers still release extensive documentation so that's just an excuse for being lazy.
What sucks is that even simple software has started to suffer from this lack of optimization. You need the latest hardware to run the latest bloatware, er, excuse me, software, when the previous version of the same program does the same thing but runs twice faster. I found it surprising how easy and straightforward it is to code a little something in ZX Spectrum Basic that does something useful. Like SMPS math.
And it came with a programming manual too. Whereas Microsoft stopped including Basic with their OS a long time ago... it has to sell doesn't it.
As PCs become more and more "generic" from software developers' view, and the "one size fits all" approach is applied, with obvious consequences for the low end, consoles will gain more and more popularity. They can already play movies and use the Internet. It's only a matter of time till they do an office suite or a CAD program for the Playstation.
A programmer can learn many things on a limited system. For example, in an assembler program that runs on the Spectrum, you need to tabulate the listings by hand. If it's a label it must be on the first column, if it's an instruction it's absolutely gotta be on the second column, and so on. Comments can be put anywhere but doing so makes things messy so i just put them on the fourth column just like the manual says. An actual printed manual.

When a new game comes out for your console, you betcha it looks better than the ones you already have. When a new game comes out for the PC... you find out you have to upgrade.

What sucks is that even simple software has started to suffer from this lack of optimization. You need the latest hardware to run the latest bloatware, er, excuse me, software, when the previous version of the same program does the same thing but runs twice faster. I found it surprising how easy and straightforward it is to code a little something in ZX Spectrum Basic that does something useful. Like SMPS math.

As PCs become more and more "generic" from software developers' view, and the "one size fits all" approach is applied, with obvious consequences for the low end, consoles will gain more and more popularity. They can already play movies and use the Internet. It's only a matter of time till they do an office suite or a CAD program for the Playstation.

Comment