forums.ps2dev.org Forum Index forums.ps2dev.org
Homebrew PS2, PSP & PS3 Development Discussions
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

retrostation demo released

 
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PS3 Linux Development
View previous topic :: View next topic  
Author Message
ouasse



Joined: 30 Jul 2007
Posts: 90
Location: Paris, France

PostPosted: Wed May 05, 2010 12:27 am    Post subject: retrostation demo released Reply with quote

Hi people,

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.

Download the binary from the pouët.net website.
Edit: You can now download the video using ftp.

enjoy !


Last edited by ouasse on Thu May 06, 2010 10:00 pm; edited 2 times in total
Back to top
View user's profile Send private message
rapso



Joined: 28 Mar 2005
Posts: 147

PostPosted: Wed May 05, 2010 9:42 pm    Post subject: Reply with quote

is it maybe possible to upload some movie of that? (youtube?).

can you tell us some more details about the implementation? drawing on spus? :)
_________________
Sony stole my linux|amazon stole my PS3 :(
Back to top
View user's profile Send private message
jimparis



Joined: 10 Jun 2005
Posts: 1179
Location: Boston

PostPosted: Thu May 06, 2010 5:18 am    Post subject: Reply with quote

He has a link to the movie...
Back to top
View user's profile Send private message
ouasse



Joined: 30 Jul 2007
Posts: 90
Location: Paris, France

PostPosted: Thu May 06, 2010 5:24 pm    Post subject: Reply with quote

rapso wrote:
can you tell us some more details about the implementation? drawing on spus? :)

Yes, almost all the drawing, rotation matrix stuff, 2D projection work is done by the spus. For the blob effect, I also use a marching cubes algorithm that runs on the spus aswell. The image post-treatment (motion blur, fade in/out) is also done by the spu's.

Basically, the spu engine proceeds in the following steps (on each spu) :
  • Retrieve a set of rotation matrices (basically, less than 5 or 6 are necessary).
  • Retrieve a subset (all if 1 spu only) of the triangles to be displayed. For procedural triangle generation (blobs), the triangles are generated directly by the routine working on the spes.
  • For each triangle, apply its rotation/translation matrix on it (according to a matrix id in triangle data). Perform 2D projection, and if the triangle is visible (back-face culling test), add a pre-computed flattened data structure (containing starting 2D coordinates and slopes, color data, Z buffer data ...) to a shared list in main memory.

When all triangles are processed by the spes, the screen memory is divided into horizontal stripes (typically, 4 or 8 pixels high). Then, for each stripe (parallelized among the spes):
  • Retrieve the 2D triangles data that intersect with the stripe
  • Draw all triangles on a buffer in local store, also using a z-buffer in local store.
  • When all triangles are drawn, send the local store buffer to the corresponding location of the stripe in main memory.

Then, simple motion blur/fade in/out is performed if required.

Everything is done in parallel in the spe's (rotation/projection, stripe drawing, procedural generation of the blobs). Wherever double buffering can be used, it's used. All my triangle (3D and 2D) data structures fit in 128-byte blocks and are 128-byte memory-aligned in both main memory and local store, which optimizes mfc data transfers.

If some of you people are interested, I can release the engine part in the form of a library under a LGPL license. Maybe some of cou can get involved it its development ;)
Back to top
View user's profile Send private message
ps2devman



Joined: 09 Oct 2006
Posts: 265

PostPosted: Thu May 06, 2010 9:39 pm    Post subject: Reply with quote

Well done Zerkman!
For sure, any sample source using spu's is helpful... or compiled flexible library, at least. But just knowing your strategies is helpful already. Thx!

(as for me, I'm still lacking free time, and still crying about my plasma+vgabox config that only renders well under 1080i... but got surprised that FF13 supported perfectly 1080i, playing it was great!)

(about the old .ogg torrent, just rename it to .ogm and mplayer should be able to play it if you have the codecs)
Back to top
View user's profile Send private message
mooriel



Joined: 29 May 2009
Posts: 6

PostPosted: Mon May 10, 2010 11:28 pm    Post subject: Re: retrostation demo released Reply with quote

Great!!!!!

You wrote a 3D engine for Cell/b.e. from scratch.

It's parallelized with many core.

It's SIMDized.

I know it is horribly hard work.

You are a real hacker!
Back to top
View user's profile Send private message
Ameen



Joined: 14 Jun 2009
Posts: 12
Location: Bahrain

PostPosted: Tue May 11, 2010 4:15 am    Post subject: Reply with quote

I salute you sir..
I really would like to see the source if you managed to release it later.

Thank you.
Back to top
View user's profile Send private message Visit poster's website
ouasse



Joined: 30 Jul 2007
Posts: 90
Location: Paris, France

PostPosted: Tue May 11, 2010 5:24 pm    Post subject: Reply with quote

I'm currently working on a release of the engine. Should be available under LGPL soon.
Back to top
View user's profile Send private message
ouasse



Joined: 30 Jul 2007
Posts: 90
Location: Paris, France

PostPosted: Tue May 25, 2010 7:22 am    Post subject: Reply with quote

Hi,

The source code of the engine is now released as the LGPL project "Freezer". I hope it will be of some use to some of you people.

http://github.com/fgalea/freezer
Back to top
View user's profile Send private message
ps2devman



Joined: 09 Oct 2006
Posts: 265

PostPosted: Tue May 25, 2010 7:12 pm    Post subject: Reply with quote

Magnifique!

(grab it with 'git clone http://github.com/fgalea/freezer.git freezer')
Back to top
View user's profile Send private message
mooriel



Joined: 29 May 2009
Posts: 6

PostPosted: Tue May 25, 2010 9:52 pm    Post subject: Reply with quote

Thank you for releasing the great project!
I'm looking into your source code.
It's very interesting and exciting!
Back to top
View user's profile Send private message
speedxl



Joined: 07 Aug 2008
Posts: 26

PostPosted: Wed May 26, 2010 6:15 am    Post subject: Reply with quote

Great use of SPUs, congratulations, heres the youtube link to the video of retrostation, http://www.youtube.com/watch?v=0CeDNaSmW4s
Back to top
View user's profile Send private message
ouasse



Joined: 30 Jul 2007
Posts: 90
Location: Paris, France

PostPosted: Thu May 27, 2010 5:17 pm    Post subject: Reply with quote

Thank you for your interest.

I'd like to know about your experience in setting up the library, and compiling (and running !) the example programs. If you get into any trouble, please tell which distro you're using and if it's 32-bit or 64-bit.

The documentation will be updated soon, but you can try and have a look at the examples, which are really straightforward.

Thanks.
Back to top
View user's profile Send private message
ps2devman



Joined: 09 Oct 2006
Posts: 265

PostPosted: Sun May 30, 2010 7:31 pm    Post subject: Reply with quote

I've installed ubuntu 10.04 but cell-sdk packages are currently broken for ubuntu.
I've retrieved 'libspe2' from sourceforge.net, do you think that may be enough?
Back to top
View user's profile Send private message
ouasse



Joined: 30 Jul 2007
Posts: 90
Location: Paris, France

PostPosted: Mon May 31, 2010 6:05 am    Post subject: Reply with quote

No, you need gcc for SPU.

You can just try and install the gcc-spu ubuntu package, maybe this one is not broken.
Back to top
View user's profile Send private message
ouasse



Joined: 30 Jul 2007
Posts: 90
Location: Paris, France

PostPosted: Wed Jun 02, 2010 5:55 pm    Post subject: Reply with quote

A preliminary and uncomplete Freezer API documentation is available on freezer.sector1.fr. Not consequent enough yet for writing your own programs though ;) I finish it as soon as possible.
Back to top
View user's profile Send private message
ouasse



Joined: 30 Jul 2007
Posts: 90
Location: Paris, France

PostPosted: Thu Jun 10, 2010 5:41 pm    Post subject: Reply with quote

The API documentation is now complete. Some installation indications still have to be written (there are some on the github wiki however), as well as a quick tutorial. But but reading the example files and the documentation, you should be able to do your own stuff in a quite straightforward way.
Back to top
View user's profile Send private message
ps2devman



Joined: 09 Oct 2006
Posts: 265

PostPosted: Sat Jun 12, 2010 3:39 pm    Post subject: Reply with quote

Many thanks!
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PS3 Linux Development All times are GMT + 10 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group