header
[[stellae:wiki]] 
 

Linux on my Playstation 2

Running linux on a Playstation 2 ? What a strange idea... Absoulutlely not, it’s a very good and cheap way to try coding games and graphic demos on a real graphics oriented architecture (and also try a MIPS based computer...).

You will not find any incredible hardware or software PS2 hacking here since I run linux on my gaming machine by using the official Sony’s PS2 Linux distribution. It’s only an elegant way to thanks the Linux for PS2 community and add a few words about my own experience on this hardware.

My PS2 is plugged on a nice Sony MFM-HT95 which accept VGA signals with Sync-On-Green (SOG) (this simply means that the signal coming out the Multi-AV connector at the rear of the Sony’s machine does not have separate H-Sync an V-sync signals as usual : the synchronization information is carried inside the green color component). Your monitor must accept SOG (it’s not a trivial caracteristic) or you’ll never be able to get a PS2 picture (I recommend that you read the Linux (for PlayStation®2) Version 1.0 FAQ for all these technical information).

Yes, the PS2 can generate CVBS (composite PAL/NTSC), S-Video, VGA (up to 1280×1024 60/75 Hz) and even HD (with analog YCrCb connection : 780p, 720p & 1080i) signals (usable with the linux kit). Why games do not use these high resolutions ? I clearly think that the mains limitations come from the 4Mbytes of VRAM (double buffering at high res. is impossible) : just compare it to the specifications of the modern PC world graphic cards.

Note that you will find some precompiled binaries for PS2 on this website. (mainly my own programs).

It’s now time to start an overview of the hardware.

(Brief) Hardware specifications

Base PS2 Hardware

  • CPU Emotion Engine (MIPS R5900 core at ~300Mhz / 16k I-Cache / 8k D-Cache + extra peripherals)
  • Vectorial Unit 0 with 4k Data / 4k Instruction
  • Vectorial Unit 1 with 16k Data / 16k Instruction
  • Internal bus size 128bits
  • RAM 32MB
  • VRAM 4MB (Graphic Synthesizer / 8k Frame / 8k Textures)
  • USB x 2 / ieee1394 / controllers I/F...

Linux Kit “Add-ons”

  • 40GB Maxtor IDE HDD (more details...)
  • 10/100 Ethernet I/F
  • USB keyboad (QWERTY) & mouse

When you write code for the PS2 (eg. a graphic app.) you have to consider the entire architecture, not only think CPU + Graphic Memory. For more details, please read through the links at the end of this page. The linux kit also comes with a complete set of PS2 hardware documentation.

/proc/cpuinfo

The famous one...

cpu                     : MIPS
cpu model               : R5900 V3.1
system type             : EE PS2
BogoMIPS                : 392.40
byteorder               : little endian
unaligned accesses      : 0
wait instruction        : no
microsecond timers      : no
extra interrupt vector  : yes
hardware watchpoint     : no
VCED exceptions         : not available
VCEI exceptions         : not available

and the /proc/interrupts file

 9:   872859   Ch-0 timer/counter
16:        0 + VIF0 DMA
17:        0 + VIF1 DMA
18:    55657 + GIF DMA
19:        0 + fromIPU DMA
20:        0 + toIPU DMA
21:     2841 + SIF0 DMA
24:        0 + fromSPR DMA
25:        0 + toSPR DMA
33:        0 + GS FINISH
41:    61991 + ide0, + PlayStation 2 Ethernet
42:      144   usb-ohci

Screenshots

Some pictures of the PS2 running ctetris in an old KDE 1.x and gnuboy (a game boy emulator which compile perfectly “right out the box”) in wmaker.

Additional links

SCEE's presentations

Introduction to PS2 (SCEE's document)

Inside Playstation 2 (SCEE's document)

Sony Computer Entertainment US / Research and Development


Article by Stellae (N. Lemouël) November, 5th 2006 website@stellae.fr

PlayStation & PlayStation 2 are registered trademarks of Sony Computer Entertainment Inc.

 
linux/ps2_en.txt · Dernière modification: 2006/11/05 19:14
 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki