Apr 062008

Hi all…

There seems to be a little confusion as to whether the PS2 is supported by Gentoo. To clarify, it isn’t. There was never any effort to officially support the PS2. Some unofficial work did begin some years ago, however that work ceased fairly early on, and there has been no interest in continuing it.

There are a number of technical reasons why the PS2 is not supported.

First and foremost, the CPU is a real bastardised piece of work. It implements a custom instruction set, which is a hodge podge of MIPS I, MIPS II, MIPS III and MIPS IV, with some special instructions thrown in. It doesn’t fully implement any of the aforementioned instruction sets. So binaries such as my mipsel1 stages, will not work — you’ll hit illegal instruction errors fairly early on.

Secondly, the patches necessary for the kernel, and toolchain, are based on a really ancient set of packages. The kernel released with the PlayStation II Linux kit (2.2.1), was a year old when the first PS2 hit the shelves. Not so bad then, but the kernel was never properly maintained. Even today, unofficial efforts have only gotten as far as 2.4.3x-series. The toolchain is still quite ancient, at best, gcc-3.3 from what I recall, is the best they’ve got. Maybe they’ve got as far as 3.4… who knows…

Thirdly, the memory on the PS2 is restricted to 32MB. This is soldered on-board, can’t be upgraded. Gentoo/MIPS will not build most packages with 32MB RAM. Once upon a time, I could just build stages with 64MB on my Qube2, if I shut down things like MySQL — not anymore, I need 128MB to do this today. uClibc could be feasible, but you’d still have problems with the “special” CPU. Virtual memory doesn’t help — even if you had 2YB of swap, it wouldn’t stop builds dying.

Other MIPS-based consoles, such as the original PlayStation (MIPS R3000-based) and the PlayStation Pocket (MMU-less MIPS32r2) are also not supported for similar reasons.  And we (MIPS team) don’t support the PlayStation 3 either — for that, you should talk to the PowerPC team.

Now… I have no complaints about answering questions about what we support/don’t support… but a few points… (this is where my rant starts by the way)

  1. Write properly when in the IRC channel. If it’s one thing that’ll quickly get my back up, it’s SMS-like chat on IRC. I’m tolerant of spelling errors and grammatical mistakes, but I won’t tolerate laziness. If a word has vowels in it, include them! It’s not like it’s significantly more effort to press an additional button on a keyboard. If you’re using morse to drive the computer, or have a physical disability that makes typing difficult, fine, declare this up front, and all will be okay, but otherwise, there’s no excuse.
  2. Read the documentation! It tells you what we support, and what we don’t. It’s likely your question is answered there already.
  3. If we can’t help you with some non-supported platform, we mean it… don’t pester us about it, we’re not going to start supporting a new platform in 5 minutes flat.

  2 Responses to “Gentoo/MIPS: A note about the PlayStation, PS2 and PSP”

  1. We (PPC team) support ps3 =)

    Luckily the CELL is quite well supported by upstream ^^

  2. Heh who was asking about it? I think many people have considered me to be the last bastion of hope for getting it working and even though I don’t post in the Gentoo thread much anymore (mainly to avoid annoying people asking about it), I have continued to work on it all this time. gcc 3.0.4 is the latest on Linux and 3.2.2 is the latest for homebrew. My work for the past year has been on gcc 4 and believe it or not, I have had positive results from 4.3. I’ve only been using it with homebrew stuff so far but it runs a couple of small graphical demos and madplay can even play some short MP3s. Something is still not quite right but it could be a little as one line and that’s why I’ve perservered. I am currently battling with 128-bit support, whilst debating with myself whether it’s even really needed for homebrew stuff. I know it isn’t needed for Linux. The problem is that gcc assumes that the word size (and by that, I mean the commonly-available set of instructions) is the same as the GPR size. Just one of the many of those bastardisations! 😀

    Unfortunately I have less time to spend on it now because I’ve now switched focus to writing a games demo with a view to getting into the games industry. However, I’d still like to keep working on it, especially since Codeplay is very interested in me as a result of my work. Their first product was a PS2 compiler. I’d go and work for them right now if I lived a little closer. If I did go to work for them, the skills I’d pick up would probably enable me to finish.