PS3 Homebrew Developments ?

Should it only be called homebrew only when it is optimised or completely programed for CELL?
Homebrew covers any software written at home, but we're not interested here with existing PPC Linux apps. I want to know about PS3 specific apps, which use the SPEs.

A Mandlebrot 'flier' that zooms and pans around in realtime would be cool for starters. I remember that as a common performance application for comparing machines. Step 1 would be have it on one SPE. Step 2 would be spread across multiple SPEs. Step 3 would be a 3D traced Mandlebrot!

Dang, I wish I had a PS3 to play with, just to satisfy my curiosity!
 
:LOL: I have a looser definitions. Any software that extends PS3 capability and written "at home" count.

I'm interested in making something useful (or partially useful) even for the PS3 web browser.
e.g., Whether it's possible to write a local web proxy (running on Windows/MacOS X/Linux) to allow PS3 to browse PC directories and also download files such as firmware update from the Internet asynchronously.

I also did some simple testing earlier today:

* Playstation Store seems to be hosted on a Java app server (probably using SSL/TLS or other ports), but does not go through web proxy... even if you set it up in "Internet Connection".

* Web browser "User Agent" field is Mozilla 5 (Playstation 3, 1.0).

* PS3 Flash seems to be version 8 and supports Flash Remoting (using some Flash Remoting tests on the net). I will bring up my old Flash Remoting chat server later to see if the PS3 Flash client can connect to it.

My YDL download has just completed... Will install it tonight or tomorrow.
 
I also did some simple testing earlier today:

* Playstation Store seems to be hosted on a Java app server (probably using SSL/TLS or other ports), but does not go through web proxy... even if you set it up in "Internet Connection".

* Web browser "User Agent" field is Mozilla 5 (Playstation 3, 1.0).

* PS3 Flash seems to be version 8 and supports Flash Remoting (using some Flash Remoting tests on the net). I will bring up my old Flash Remoting chat server later to see if the PS3 Flash client can connect to it.

Just to keep my own posts up-to-date. My old Flash chat client didn't work out on PS3 (It used another communication extension, not Flash remoting).

However Flash Remoting works well in this example page (includes sample code):
http://www.themidnightcoders.com/examples/
It should be possible to build a complex app or community site for PS3 web browser.


AJAX is not supported. DHTML support is basic (e.g., layer positioning and resizing). More advanced techniques like DOM manipulation (e.g., drag and drop) may fail on PS3.


The web browser still have some rough edges in usability:

* Data entry brings up a small on-screen keyboard and you type your data in a small edit field (even for say forum posting). They should *at least* make the edit box resizable based on the text length.... if not in-place editing.

* The annoying "Display plugin on this page" dialog box that cannot be turned off. There should be an option to turn it off (just like the Browser Close dialog).

* <TAB> doesn't work in the web browser.

Also just a minor correction, the User Agent field should be Mozilla/5.0 (PLAYSTATION 3, 1.00).
 
Last edited by a moderator:
OK, besides a Mandelbrot viewer - I am curious what you guys would like to see as far as PS3 homebrew tutorials go.

What are your ideas?
 
For me... any of the following is fine.
* Rendering using SPUs (I have not read the vsync sample yet).
* Optimizing an emulator (e.g., LUA), although there may be conflict of interests :p
* Any A/V processing on ffmpeg for Cell

I also toyed around with the idea of using PS3 to collect live data stream and process them. I thought this would provide a good problem for Cell: large dataset (at low cost) and also near real-time requirements.

On the low-level front, I'm most interested in enabling Bluetooh in PS3 Linux.
 
OK, besides a Mandelbrot viewer - I am curious what you guys would like to see as far as PS3 homebrew tutorials go.
I don't have a PS3 to play with :( so I'm not sure what's happening so far. What I think would be good would be...

1) Some visual high performance application - The fractal viewer was one. It's always good to get something running with tangible results. The fractal viewer might not be ideal as a Cell wow factor application because it fits conventional CPUs well too. Perhaps something that makes use of larger data sets to leverage the LS capacity? Maybe a raytraced renderer of a fractal, which should still fit into LS but look more impressive than the typical 2D variety?

2) Useful basics - There's really a division here between two fields; games and applications. I think providing the back-bone basics for people to build off is necessary to kick-start homebrew. For the games, some form of rasterizing engine would be nice to see. Showing how such could be developed on one SPE, and then multithreaded across several, would be great. For applications, perhaps a real-time movie player with effects, showing decompression and applying some 2D effects, or even 3D transformations. That could be scaled to handling multiple video feeds and blending between them. Another application that would be quite unique would be a software synthesizer.

What I'm thinking would be ideal is a longer term project, covered in a step by step development. eg. Perhaps pick a 3D Pong game and cover rasterization of vectors, then lighting, then texturing. Or pick a movie player on a SPE, multithread it, and in part 3 add some effects. Don't run these as a tutorial either. By that, I mean don't have a multithreaded 6 channel movie player with effects finsihed and then show how it works. Give everyone the work in practice. Show them how the job is tackled with a blank page beginning that coders are faced with, and include all the bugs and workarounds and redesigns that include the thought processes. As people have to learn Cell, they would be helped by seeing how others are learning Cell and adapting their designs.

I think keeping the results very visual (or audible!) is important to generate interest. It's all very well having numbers to show, but people are more impressed by fancy visuals! Hence the original Cell demos at E3 '05. Things like the above I think would have lots of scope for the community to embelish and develop their own techniques. In my case, I wouldn't care to develop a multithreaded video player, but I would be very interested in creation special FX. Given a basic engine, I'd be sure to spend many an hour coding effects and trying out different techniques. Likewise you'll get others more interested in developing audio or animation techniques, and giving them a test platform to work from means the community isn't wasting time with individuals all creating their own basic application before they get to play.
 
Another application that would be quite unique would be a software synthesizer.

Been there, done that ;-D

A fractal generator is useful for learning but wont get any use of the Cell's real best part, it's memory system.
A softsynth on the other hand will be able to do this very well, it's an almost perfect application for Cell.

Given a basic engine, I'd be sure to spend many an hour coding effects and trying out different techniques. Likewise you'll get others more interested in developing audio or animation techniques, and giving them a test platform to work from means the community isn't wasting time with individuals all creating their own basic application before they get to play.

Interesting idea, Linux could be useful for this as you may even be able to use an existing app as a framework on which to build an engine. The only negative is that if you want to learn basic programming you should be building the basic app first. However a simpler entry point would allow people to chose that option later.
 
The only negative is that if you want to learn basic programming you should be building the basic app first. However a simpler entry point would allow people to chose that option later.
If you want to learn basic programming, you shouldn't be programming Cell! I think the experience base required for the architecture has to cover a wider area than generic application development. I think specialists will have a role to play, kinda like a GPU shader programmer not getting bogged down learning the ropes to create a basic application to render a model that his shaders are applied to.

For the audio synthesizer idea, there'd be exploration of accoustic modelling and audio effects like sample morphing. I know of people who'd like to work on such algorithms who couldn't care one jot about creating a Windowed frontend with loading of settings etc. That's where a skeleton application would be useful, loading datasets and providing experimental developers the means to access them. They'd then work on SPU code and algorithms to work with that data, building onthe interface as needed with the old 'duplicate existing code' technique ;)
 
I agree with:

...giving them a test platform to work from means the community isn't wasting time with individuals all creating their own basic application before they get to play.

Also posted something similar but higher level to cellperformance.com.

I also agree that tying it to something visual, audible, useful or fun is important too to generate more interests.

I have other ideas I want to explore, but these basics will help to get me up to speed quickly.
 
I know of people who'd like to work on such algorithms who couldn't care one jot about creating a Windowed frontend with loading of settings etc.

I know exactly how they feel! Doing the basic stuff takes forever and is a pain in the arse - well, was last time I wrote full GUI apps which was quite a while ago... The audio stuff is soooo much more interesting.

It might be of interest to know that someone is working on a version of Python for Cell which includes SPE intrinsics. That'll make the grunt work a *lot* quicker and easier and let you concentrate on the interesting stuff.
 
Hi guys,

I was reading the RSX thread. DeanA's post (http://www.beyond3d.com/forum/showpost.php?p=900094&postcount=149) talks about an SPU job management system.

Is there something similar on PS3 Linux front ? I saw some hints (e.g., for SPUFS)
* http://patchwork.ozlabs.org/linuxppc64/patch?id=3611
* http://ozlabs.org/pipermail/cbe-oss-dev/2006-February/000000.html
* http://ozlabs.org/pipermail/cbe-oss-dev/2006-December/000688.html
but have not dug enough to uncover details or something more general yet.

It seems that a pre-emptive scheduler was done (only for SPUFS ?) last year, but turned off because it was buggy. It's supposed to make a come back soon ?

EDIT: Just to clarify, the SPU job management system for the GameOS may be cooperative (I don't know but I suspect so due to games' timing requirements). But I'm wondering if something general exist on the Linux front, cooperative or pre-emptive... so that there is a consistent way to extract performance from SPUs for non-SIMD and non-vectorized approaches. (e.g., Is there a form of SPU pthreads on PS3 Linux ?)
 
Last edited by a moderator:
Graphical Bootloader for PS3

Just a small utility:
http://ozlabs.org/pipermail/cbe-oss-dev/2007-April/001501.html

Hi all,

Benjamin Herrenschmidt and I are proud to announce the first release of
petitboot - a graphical bootloader for the PS3, based on twin and
kboot.

Details (including screenshots) are available at the petitboot homepage:

http://ozlabs.org/~jk/projects/petitboot/

Petitboot is still in early development, but we'd be interested in any
feedback from this beta. There's a TODO list in the tarball if you're
interested in helping out.

Feel free to contact Benjamin and/or myself with comments, bugs, or (our
favourite:) patches.

Cheers,


Jeremy

Screenshot: (1024 x 768)
http://ozlabs.org/~jk/projects/petitboot/petitboot-screenshot-1.png
 
Last edited by a moderator:
Pardon my ignroance but what is a graphical bootloader? :cool:

Is it something you run from the PS3's XMB or do you run it on your PC?

I sort of "get" that selecting the linux penguin thing runs PS3 linux but what are the other options? More homegrown PS3 apps or...?

I am sorry. I seem to need a manual for that screenshot! :cool:



Peace.
 
When completed and installed, it runs on your PS3 when booting into Linux (You'll have a graphical view and control of the booting process instead of a pure text interface). As an end user, you should be able to load different (custom) Linux environments easily.

Petitboot is based on kboot (boot loader) and twin (windowing toolkit and runtime). A few manuals is what you'll get. :cool:

Kboot:

"kboot—A Boot Loader Based on Kexec" https://ols2006.108.redhat.com/reprints/almesberger-reprint.pdf

http://www.bestechvideos.com/2007/03/22/linuxconfau-kboot-a-boot-loader-based-on-kexec/ (includes a video which I did not try)


Twin:

http://en.wikipedia.org/wiki/Twin_(computing)
 
Is anyone working on getting Flash working on the PS3 via it's web browser(not using Linux) or getting internet radio to work?
 
Youtube (FLV) and Flash (8 ?) are working on PS3 web browser.

Oh ok I have used Youtube but other sights I've gone to ask me to install a flash player but when I click to get it installed an error mesage comes up saying they couldn't find a compatible player.
Sometimes the Macromedia flash symbol comes up but it sometimes say's it's looking for Adobe flash player .Is there a difference?
 
Back
Top