Saturday, December 20, 2008

PS3 doing Java - Sexy, and almost there

The promise of what I have been investigating is that Java applications can be run directly inside the normal PS3 GUI, as well as other Blu-Ray players, without requiring any kind of hacks on behalf of the end user. It may not be the ultimate base for writing applications, but it should not be too hard to port applications, games and so on from other J2ME applications that exist for mobile phones and so on. Shoutcast player or Opera Mini on PS3 anyone? :)

This is a summary of developing Java applications on PS3 and Blu-Ray, in hope that someone else will pick up the loose ends.

Building from source


The HDCookBook project is a fair starting point for setting up a development environment. Mainly, this project is about setting up the required surrounding files required for creating the Blu-Ray disk, as well as a couple of examples. The files can be run directly from your hard drive and tested by some DVD-players. The project uses ant for building, which could be helped alot if it were easier to read and getting started, by for example using the maven assembly plugin for packaging the project.

The nasty bit is that it requires that you manually find three stub files, like bdj.jar, which requires you sending a mails to ask for them. More info here. Someone with guts should put those files in a public repository somewhere, since this hinders adoptations enourmosly.

Running from Memory-Stick on PS3


A PS3 can run the application directly from a memory stick instead of through a Blu-Ray disk. This can possibly increase the adoptation of Java application enourmosly. silenoz made a running demo based on the HDCookBook project by changing the file names. Setting up the rig is as easy as unzipping.

What are we working with?


Rumor has it that the PS3 has the better Java Virtual Machine (JVM) performance compared to other Blu-Ray players. From what I have gathered, it doesn't sound like Sony has put much effort into creating a Cell-specific JVM (Citation needed), and it is running interpreted mode of a PowerPC variant. The JVM "distro" is called BD-J, which is based on Java-TV and J2ME, and must be compiled to Java 1.3. The API is based around XLets, which handles the life-cycle.
I have seen some comments that getting the input from the PS3-controller is not as good as one would hope.

Conclusion


Java has a major chance at beeing the less complex, second-citizen programming language for GUI applications on PS3 and Blu-Ray set-top-boxes, which already have a good penetration. The market may not have the same potential as mobile devices, but porting applications may be possible without too much fuss. I believe there are large numbers of developers who would wish to write small applications for this plattform, but the main obstacle for getting started with developing is setting up the development environment. Beeing able to deploy and test applications via Memory Sticks on PS3's could mean a lot of difference.

No comments:

Post a Comment

Spam will be pruned