A realtime Mandelbrot fractal zoomer for PS3

I made a fractal zoomer on the mandelbrot set for the jailbroken Playstation 3. All the computations are done using the SPU's of the Cell processor. The generator is able to render more than 10 frames per second, and for some parts of the Mandelbrot set the framerate can achieve 60 fps ;)

It works as an installable package, to be installed from USB storage via the "Install Package" game menu option of jailbroken PS3's.

Use the analog sticks to scroll and zoom, then you can make a screenshot using the "square" button. Screenshot images are stored to USB storage. Use the "start" button to reset the original settings, and hit "cross" to exit. Enjoy !

A realtime Mandelbrot fractal zoomer for PS3

A realtime Mandelbrot fractal zoomer for PS3

Visit the prod page on pouët.net

See a demonstration video on YouTube

Browse the source code on GitHub

"retrostation" demo released !

I am very proud to announce the release of my PS3 demo called retrostation.

I know it is a bit late compared to sony's decision to completely remove the Install Other OS functionality from the new firmware release of latest April 1st. However, I started this project more than two years ago, so I definitely wouldn't stop this until it is done. I also know about people who still haven't updated their system, because they are aware of what they will lose, so this is a way to show them what they can do with a ps3 system, even without hardware 3D acceleration.

The demo is an animation of different kinds of 3D objects. Some of these have been designed by Mic of Dune, who did a really good job. Others are coming from old Atari ST demos. I let you try and find out from which demos they come from ! Objects of the last kind are algorithmically generated: blobs and text in separately-animated pieces.

The music has been composed by Dma-Sc of Sector One, who also did a great job in the final design of the whole animation. I personally also use my own demoscene nickname in the demo, which is Zerkman of Sector One.

The demo runs on any PS3 system with a linux OS installed on it. It runs in framebuffer mode. Ensure you set the screen mode to 720p 1280*720, and disabled the Xorg server before running the demo.

I hope you'll like the demo as much as I liked making it.

The entry on the pouët.net website is here. From there, you can download a binary version of the demo, as well as a video of the demo (HD 720p, 60 fps).

Cross compile a Debian kernel for PlayStation 3

A previous article in this blog was dealing with building an optimized Linux kernel for Debian GNU/Linux on a PlayStation 3. This however required to build the kernel on the PS3 itself, while you may also have a powerful multi-core PC which should be able to do the job a lot faster.

This article deals with compiling a kernel Debian package on a PC running Debian GNU/Linux, through the use of a cross compiler.

Continue reading...

A PlayStation 3 firmware update file extractor

Official PlayStation 3 firmware update files basically are uncompressed archives containing different subparts.

The pupextract program I wrote basically is a one-hour project which just takes a firmware update file as input, and separate the different subparts into different files. One of these output files, which I called update.tar, is a simple GNU tar archive, containing the (encrypted) files for the firmware update. Another one contains the end-user licence agreement (EULA), while some contain basic information such as the release version number, and others contain empty or unknown data.

Not sure it will be useful for many people, but I decided to release it under the GPLv3 free software licence.

Download source code of pupextract v0.01

Build PS3-optimized kernel for Debian GNU/Linux

I present the different required steps to get an up-and-running kernel for Debian GNU/Linux running on the Playstation 3.

This method requires a fully working Debian GNU/Linux system on a powerpc platform, which means it does not cover cross-compilation issues. It has been tested on the PS3 itself.

Note: This method was working at the time it was written. The method should always be correct, even though file names may change with different version updates. I will try to keep this page as up-to-date as possible, but things may not work from one time to another. In this case, you will have to find out about the file names by yourself. In the rest of this article I will always use the most recent file names at the date of latest update.

Continue reading...