The Playstation 2 was not one of the most powerful consoles of its generation, yet it managed to achieve a level of popularity unthinkable for other companies.
This machine is nowhere near as simple as the original Playstation was, but we will see why it didn’t share the same fate of previous complicated consoles.
Excellent deep dive into the Playstation 2.
I can’t tell you enough how much I’m enjoying reading all the information about the different consoles on that site! Thank you for posting the link. 🙂
I’m especially interested as I recently started studying Game Boy assembly language programming, in order to fulfill a childhood dream and make my very own Game Boy game. It’s been a pretty steep learning curve. Haha
drcouzelis,
I agree, the article is exceptionally well written.
A lot of these console architectures are interesting, the cell architecture in the PS3 was very cool.
Unfortunately I’m not a fan of how closed the hardware and platforms are designed to be. While there are privilege escalating jailbreaks that can work sometimes, I’d rather not develop for platforms that would have me locked out of my own hardware.
Is the learning curve due to it being assembly or due to the particularities of the game boy? I did some basic assembly using TI-86, which was officially supported at one point, although TI has since regressed and is blocking homebrew. A lot of the architectures back then were extremely primitive, which on the one hand made them very easy to program using assembly, but on the other hand the limited address space was often very frustrating, like segmented/banked memory and outputting graphics buffers via clumsy apertures.
I think the last time I did assembly was writing a DOS TSR about a decade ago. Yes you heard that right, haha. A client was still using a DOS application.
> Is the learning curve due to it being assembly or due to the particularities of the game boy?
Yeah, assembly language is hard for me for sure, but as I read and practice it’s slowly coming back to me. 🙂
I think it’s more the quirks of the Game Boy. The different memory sections to deal with (ROM, Video RAM, Working RAM…) and the way graphics are updated (you have to wait until a screen refresh to updated VRAM or you’ll break the Game Boy…). It’s probably not that different from programming for other consoles at the time, but it’s all new to me!
> basic assembly using TI-86, which was officially supported at one point, although TI has since regressed and is blocking home brew
That’s very sad, especially since TI’s apparent raison-d’être for the TI line anymore is the education market. Don’t they know that “encouraging kids in STEM education” is *the* thing these days??
What better way to do this than to *let them* program their own TI’s/etc.! Hell, they might actually sell a few extra calculators (the kids buy one specifically for hacking, or buy their own instead of just using a classroom one.)
I remember that I thought that all the various PEEKS and POKES you could do with the Apple 2 was SO cool.. And that you could actually do 6502 assembly directly from the terminal. (“Ah, when things were *SIMPLE*! Only *3* registers! And WOW – *UNDER* 4,000 transistors!)
I never quite got around to designing my own game-port-controllers/expansion boards based on the ability to actually set/reset of various lines directly from Basic, or counting loops from Asm.
I wonder if the companies that produce these locked-down platforms recognize what they are doing? To (maybe) twist a Harry Potter quote, “old men are guilty if they forget what it was to be young.” The people who head tech companies today have forgotten that – what it’s like to program in assembly for the first time. I *especially* fault Apple, as their company was *started* by a person inspired by this – with Steve and Woz making strange things and messing around with electronics.
Tech CEOs have forgot what it’s like to be young.
Jimw338,
I’m in agreement. Junior hackers were always a small group of the overall market, but at least in the past anyone with the inclination could learn the ropes of low level programming without having to deal with corporations putting artificial roadblocks in they way. The reality is that as corporations increasingly lock down platforms and take owners out of the driver’s seat, new generations are not getting the same exposure and learning opportunities that we had growing up.
While most users don’t have an interest in computer internals, it’s a disservice to society to impede those who do. Sure, as a professional, I have experience in sourcing what I need, but my younger self did not. My parents were not tech-savvy, I was largely educated in tech thanks to the relative openness of off-the-shelf commodity technology. The truth is I would not have been able to learn nearly as much about system programming given today’s leading platforms.
https://www.theverge.com/2020/5/27/21271625/texas-instruments-programming-support-assembly-ti-84-plus-ce-t-premium
And as you mentioned it isn’t just things like TI calculators, much of the tech industry is guilty of limiting what owners are allowed to do with their own hardware 🙁
Come on, this is silly. What exactly is preventing any kid from programming in assembly nowadays?
Now you can buy a raspberry pi for a few bucks and have a great environment for tinkering, lots of kids are doing super cool projects.
I think maybe is some of you who have forgotten what it is to be young?
javiercero1,
Low level programming isn’t ideal on ARM given how proprietary and fragmented it is, but even if we ignore this most children are not going to have a raspberry pi+monitor+periferals laying around to play with and don’t have a mentor to get them started. Older generations were rather fortunate that the technology that households were buying often came ready to program out of the box and I don’t think it’s an exaggeration to say millions of us benefited from it. It’s something we are loosing as corporations increasingly lock owners out.
Most of us here implicitly already have experience, but we are atypical. Normal households end up with restricted devices and do not expose their children to devices with unlocked programming. A child who only ever plays with restricted platforms may never experience the benefits that only unlocked platforms can offer. We are headed towards social acceptance of locked platforms where it’s not just phones and tablets that are restricted, that sh*t’s creeping into computers now too. I don’t blame the parents because frankly they don’t know any better, but we should!
The locking down of bootloader/bios is a completely tangential issue to low level programming, You can program in assembler on a Raspberry Pi just fine, and so can you on any x86 machine for that matter.
I think you have a very selective memory of those “old” days. First off, most households didn’t get computers until the 90s. And before that it was just very few kids who had access to one at home, and ever fewer the ones who cared enough to program in assembly. I grew up in the Amiga scene, and it was all just piracy and lots of weird loops and hoops to get the tools and knowledge.
A crappy BASIC interpreter with even crappier documentation really pales in comparison to the kinds of resources, tools, and platforms kids have access to today.
javiercero1,
It isn’t tangential at all. It’s disingenuous to suggest that locking down the system isn’t a problem for low level programmers. Seriously, assembly and low level access, and even bare metal, go hand in hand. Technically you can create high level executables in assembly, but even back in the day that’s not what I used assembly for. Assembly is used when you don’t want to be confined by high level facilities.
I didn’t start til the 90s with a 486 and back then there were tons of technical books if you wanted to learn how to program them. Moreover in the early years the hardware itself would come with detailed documentation of how to program the ports, etc. It really was a great innovative time for PCs…how far we’ve regressed. Also I never claimed many kids were learning to program, only that these system lock downs today are a impediment to those who would otherwise give it a shot on the commodity hardware that their parents buy. Owner restrictions are an obstacle I never had to face growing up, but children today do.
I was doing more than basic as a kid, but regardless of that apple still has a history of crippling educational tools. And you can mostly forget about low level programming.
https://stackoverflow.com/questions/4891642/interpreter-for-the-iphone
You can argue it doesn’t matter to you, and I think it’s unfortunate that you don’t sympathize, but I accept that’s your opinion. I still think it’s fair to point out the fact that our technology was way less restricted back in the day. Just think that as a kid, I had the same access to the hardware as the mainstream OS & software companies did. Everything they could do, I could do on the same hardware by learning how and applying myself. That was simultaneously amazing and encouraging! These days there are many more barriers and handcuffs on our popular platforms, which is discouraging. Again, many people won’t care, but for those like me who liked to tinker as kids and didn’t have a mentor showing us how, it’s a lost opportunity. Kids will use the family computers/phones/tablets that their parents buy, which are likely to be restricted by the manufacturer. For me it was much later in life that I started buying stuff for myself.
I have never denied that only a small percentage take an interest, but for this percentage owner restrictions are counterproductive for educating kids about computer hardware.
Nah man. You’re just getting old and want to believe that back in the day it was “better.”
I remember back in the day when it was a PITA to get linux/BSD going on many PCs because there was not enough low level info about some chipsets/devices. Even back in the 90s a PC was starting to be a fairly complex platform, so you most definitively did not have the same access to the low level workings of your 486 as the commercial OS/device manufacturer.
Computing has been a commodity for a while. Sure some devices are locked down, as they should. An iPhone is a device that sells by the millions that goes into a public cell network, for example. Leaving those devices fully open is a security nightmare.
Kids who want to tinker have plenty of access to other platforms to do so. They can spend a few dollars and get a Raspberri Pi, with a very nice developer stack, and infinitely more information about it’s low level workings that 486 you bought in the 90s ever had.
Back in the 90s, a 486 class machine would set you back a few thousands of dollars. So there was only 1 computer in that household. Now the situation is completely different, you have multiple computers in a single household. Some are locked down, and others don’t.
There’s never been a lower barrier of entry for people to tinker than right now. It’s just that not everything has to be open for tinkering.
Many people just think the way they were introduced into a filed is THE way everybody should be introduced into it, and they lament how the newer generations are missing out. Trust me, the kids are going to be alright.
You have no idea the level of resources that people have access now. You can watch a video tutorial, download a full blown development stack, and start hacking away in just one afternoon. Back in the day it would take weeks, just to track down someone with the hook up for an assembler.
javiercero1,
You don’t speak for me.
Frankly linus didn’t have such a great OS back then. Things did become more complex as more hardware was added and more manufacturers targeted windows exclusively. However I stand by my statements, in the days of DOS prior to windows becoming the norm, a lot of hardware was easy to program and even bundled programming documentation like I said. They needed to be compatible with the OS rather than the other way around and they wanted users to be able to easily program applications for it. In other words, they had strong incentives to make the hardware easy for 3rd parties to support in order to maximize sales. This continued until around windows 95 when DOS put to bed. The existing defacto hardware standards would continue to work, but new peripherals would generally be limited to windows specific drivers, and that’s when things became difficult to support due to all the fragmentation.
As far understanding low level workings, you’re totally underestimating the value of an open platform. Information is one thing, but your still ignoring the pragmatic reality that most kids today are only going to have an IOS device, which does not offer nearly as rich an environment for low level DIY tinkering. There’s still a lot to learn of course, but it is still an obvious disadvantage compared to the past when the bare metal was at our fingertips. I don’t see any reason to deny this.
@javiercero1
People need to realise discussions like this cover a range of factors. There are similarities between yesterday and today but things have also changed.
I think the gist if what you are saying is true that “bare metal” is available if you want it although some notable popular plaftorms have become more locked down. there’s microcontrollers, things like the Raspberry PI (whose project lead is of a similar generation to myself and who set out to create a modern “BBC Microcomputer” which was affordable for even the poorest), and various other avenues for bare metal work. Systems have become insanely complex today while other things have become more simple. There’s also the fact that the number of people working to the bare metal has always been a miniscule fraction. For some classes of devices as you note lockout is simply a fact of life for public policy and technical safety reasons. Things are also no longer a rarity seen only in academic or business or wealthy household scenarios. which is a form of lockout itself. There are also millions more devices all over the place. The world is also more global. No longer is an initiative or disaster or knowledge confined to one place. Technology moves fast while society moves slow. The public policy and politics and investment context has changed too.
The project which brought Android 4.4 to my Galaxy Nexus was led by school and college kids. I thought 6502 assembler was the bees knees when I was at school and these kids are doing kernel level and driver level programming and reverse engineering! The thread on XDA-Developers is very long and tortuous but is an amazing story to read from its inception to breakthroughs to a working product with optimisations if you have a few *hours* to plough through it.
Sigh. I’m glad I don’t code anymore. lol
Exactly! A lot of kids will naturally learn the ins and outs of the devices they have access to, just as I did. I see this curiosity in my kids, poking through every nook and cranny of the OS not because they’re instructed to but just because they’re naturally curious to see what it does. However today’s popular platforms have become more locked down, including TI calculators of all things, haha.
The existence of things like raspberry pi is great, for about $100 and change you can get a pi, cheap monitor and peripherals to get started with it, but realistically most parents have never heard of a PI and may not even be aware of the manufacturer restrictions built into the devices they’re buying their kids. Speaking for myself, even as a kid, I would not have known to ask for unrestricted hardware and my parents would not have known to get it for me. We were just fortunate that commodity hardware my family bought at the time was unlocked because artificial owner restrictions were not yet prevalent in consumer products. Had they been in retrospect, I can plainly see that my early education at home would have been stunted.
This is why I think it’s dangerous to simply assume that restrictions have no negative side effects on kids ability to learn early on, especially given how much of a difference unlocked hardware made for my own childhood. Unfortunately many children today may be deprived of that especially if their parents aren’t informed about artificial restrictions. Let’s be honest here, chances are they won’t be.
Yeah, it can be the weirdest thing listening to someone else’s experience growing up in a parallel ecosystem. I strived to do low level dev on x86, but had I grown up with a mac, commodore, atari, or heck even a nintendo as a child it might have changed my skillsets and opinions about technology all these years later. Life is interesting 🙂
You’re proving my point.
You’re basically writing the cybernetic equivalent of how back in the day you had to go to school barefoot on the snow… uphill both ways. You are stuck into thinking the way to were introduced into computing as the “proper” way, because it somehow worked out for you.
I grew up without a computer at home, and I ended up with a PhD in computer architecture, so from my perspective… I’d argue that not having a DOS PC was a far superior way towards competence in the field.
A kid with a locked device, has probably access to a web browser that will give them infinitely more access to educational resources on how to program than a shitty DOS 486 PC siting on a corner doing nothing.
Computing has been commoditized for a very long time, not every computer is supposed to be a low level development platform. Locked down computers are not discouraging kids into the field in the least. Also, since when is low level programming supposed to be the proper introductory way into computing? I’d argue it’s probably one of the worst ways to learn to program.
I though I was the bee’s knees because I did a couple of shitty demos, in 68K assembler, back in the day in the Amiga scene. And last year I was judging a robotics competition where high school kids were doing stuff that I could have never even dream of. And somehow those locked down iPads they were using as consoles hadn’t stopped them from figuring out how to program the microcontrollers they were using to control the servos…
The kids are going to be alright, trust me.
javiercero1,
We’ll have to agree to disagree then.
That may be your opinion. but it doesn’t change my opinion that manufactures imposing restrictions are ultimately limiting and harmful.
There are certainly ways to communicate with an IPAD, such as via network to use it as a front end UI. It’s no doubt cool to use a tablet as a front end…
https://www.instructables.com/Control-Arduino-Board-Wirelessly-With-iPhone-iPad/
But usually you still need another device to do things that are too restricted on IOS.
http://www.arduinocode.info/
Are you programming it from the ipad? Well kind of, in a manor of speaking, but you’re still dependent on additional hardware to do the programming because IOS itself is too restricted. It’s a shame really because the hardware that makes up an ipad truly has a ton of potential, if only apple didn’t block the low level access that would open up its power. This is one reason android is somewhat better in terms of giving owners control over their own devices:
https://www.instructables.com/Program-your-Arduino-with-a-Android-device/
(I have gripes about google too, but that’s a different topic)
We simply have two different views on what a computer is.
You see all computers as that DOS PC you hacked on, no matter what, because that’s how you learned about computers. I took an academic route and learned to design them, and now work on making them.
There’s always going to be an endless debate between the people who think every computer should be a programming workstation and those who see a computer as a component of an end user product, which may not necessarily involve software development on it.
I don’t agree that all computers should be open, just like I don’t agree all computer systems should be locked down. There will always be the push pull between the Stallmans and Gates of the world.
javiercero1,
They’re one and the same. There’s not a difference between a locked iphone and an unlocked one beyond the rather mundane question of who’s holding the keys. It’s not just that manufacturer restrictions are harmful for DIY innovation, it’s harmful to free markets and has causes issues of censorship in some countries. Most of us who believe in openness aren’t asking for drastic changes, mostly that owners should be entitled to the keys for their own hardware on request.
I realize you will always disagree, but I strongly believe that it should be an owner’s right to use their hardware however they want. So again, lets agree to disagree.
Drcouzelis – Maybe check this out – https://developer.analogue.co/ . And why does @drocouzelis do nothing ??
There are a few differences in C/C++ compilers between various consoles, as there are variations between C/C++ compilers on various PC OS (and versions therof) but by and large the portability issues are fairly minor at this level. As long as you take care of this in your portability layer and your code is abstracted well enough 99.9% of generic code should run unchanged between platforms.
If your design is good or you are lucky porting to novel architecures can be relatively straightforward. (For definitions of “relatively straightforward”.)
Reading through this there are some interesting pipeline optimisations. As well as having a “workstation” like architecture more so than the generic beige box school of modern console design, there was old school microcomputer style use of some of the ICs to produce very tailored solutions to problems.
It’s interesting the dev tools ran on Linux, Solaris and Windows.
The “Emotion Engine” branding was also very clever. I remember they put it in a robo dog and I assumed the chip had some special functionality for modeling emotions and behaviors. And of course most of the features were wasted in a dog with no screen. Like “Blast Mode” all over again :-).
Therapeutics, I can tell you. For many people, finding a suitable therapist is a very common problem. I recall how I searched for myself. Fortunately then I was told where to go for help and recommended that everyone should think about getting acquainted without any problems with the calmerry.com . I’m very happy I could help. Moreover, I had panic attacks, because of this virus, and so on, I was under constant stress. And now I’m optimistic and forward-looking.