Media Bridge PS2
I really wish my entry was something as cool as http://wiki.kegbot.org/Main_Page Regrettably it's not that obscure, but I think some of you will find it useful all the same. My project allows you play your movies and music stored on your Kuro Box through your Playstation 2.
The setup requires, of course, a networked Playstation 2 (PS2). For the purpose of the competition, I'm using the PS2 Linux kit. Don't have the Linux kit? OK, how about an original PS2? (Not the redesigned slim PS Two) Got one, great! I will describe the requirements on the PS2 side later; first let's get the Kuro Box configured.
Kuro Box configuration
For the PS2 to connect with the Kuro Box we need to compile an application called ps2client. This application allows the PS2 to connect to your Kuro Box. You can download the original source code from here This code has been updated to allow for applications to traverse through subdirectories on Linux systems and is available on this post here (registration required or just PM me, husky99)
To compile ps2client you will need the following packages installed:
Gcc Binutils Toolchain-source-newlib
I downloaded these through the Debian package application apt-get and/or Aptitude. Your distro should have similar packages available as well. If you cannot locate those packages you can also use the tool chain available here. This download includes the original ps2client code.
Once you have the requirements you can compile the ps2client code with the line:
make clean; make PREFIX=$PS2DEV/bin install
This will create two executables in the bin directory: ps2client and fsclient. The ps2client app is used to execute network commands with the PS2 and the fsclient app is used to move files between the two systems.
To listen for connections to a PS2 just run the command
./ps2client –h 192.168.0.10 listen
Be sure to customize the IP address of your PS2 after the –h parameter. One small issue is that you have to start the ps2client after you start the application on the PS2. I have written a python script checkPS2.py (see below) to make this startup automatically when the PS2 is started.
You should copy the ps2client and checkPS2.py script to a location where your media files will reside in subdirectories, or create symbolic links in the subdirectory from where you run the application. The functionality to use a file called elflist.txt that contains the paths to your media files is not currently working. However you are able to traverse subdirectories now as noted above.
There may also be an alternative client program called RadHostClient. This is a GUI based tool that uses the same connection protocol. The binary available for Linux does not support the PPC architecture. So I’m looking to see if the code can be made available to compile as an alternative.
The application that will run the media files on the PS2 is called SMS. It supports DivX/XviD and MP3 files. You can download the latest version here http://sms.ps2-scene.com To run this .elf file on a PS2 with the Linux kit is no problem. Just FTP the elf file over to the memory card and start the app. Without the Linux kit you can still run the SMS app legally on your PS2 without any modifications.
How to run custom applications on a PS2?
To run custom applications you will need to set up your memory card with an exploit of the PS2 boot process. Triggering he exploit requires an original Playstation 1 game to work. When the PS2 boots PS1 games it will check the PS2 memory card just before it boots for a file called TITLE.DB and if the SLUS # for that specific PS1 game is mentioned in the altered TITLE.DB, the PS2 will boot a file from the memory card. The file it will boot is whatever file is named BOOT.ELF in the BADATA folder on the Memory card (BEDATA folder for a PAL PS2). TITLE.DB is also kept in the same folder. The difficulty is getting the files on the memory card since the PS2 is a closed system.
Installing the PS2 Exploit
According to Wikipedia: "Installation is accomplished either from a console (modified or with the exploit already installed), a Memory Card reader/writer, a disc swapping technique or through the use of some commercial programs allowing USB flash drive to Memory Card transferences, such as Code Breaker (versions 8 and higher) or Action Replay MAX, by transferring a modified System Settings save file." For more info see Wikipedia.
Code Breaker 8.1 is available at Walmart for under $18 for those in the U.S., but I’ll leave it to you to determine the best method for you. There are several tutorials out on the net. If you need help I can also provide assistance.
Installing SMS The SMS manual available at http://sms.ps2-scene.org/eng/manual.html has a very detailed process of installing the sms.elf application on your PS2. In essence once you get an FTP server on your PS2 you are all set.
Python Code To use the Python script posted below you will need to install the Python package to your system:
apt-get python install (on debian for example)
Here is the code to automate the connection of ps2client to the PS2.
#! /usr/bin/env python import commands import time import os serverrunning = 0 while 1: # Check for connectivity to PS2 (rc, output) = commands.getstatusoutput("ping -c 3 192.168.0.10") #if the ping returned 0, we can see the PS2 if rc == 0: # If the server isn't running, start it. if serverrunning == 0: serverrunning = 1 # start server app os.system("./ps2client -h 192.168.0.10 listen &") print "server started" # If the server is running and we're no longer connected, close it. else: if serverrunning == 1: serverrunning = 0 # close server app output = commands.getoutput("killall ps2client") print "server closed" time.sleep(10)
There is another application called PS2 Reality Media Player. The most recent version is 1.50 PRO. It uses a JAVA based client on the Kuro Box side called ps2vfs. There was also a commercial product called Qcast Media Player produced by BroadQ available as well, although neither has been updated for a while.