As the FINAL version of Suicide Barbie is roaming the world for some time already, it is a time to send HUGE thanks to the whole PSPDEV community for great SDK and toolchain which made this demo possible, Chip for the libGU and TyRaNiD for the psplink which were essential in development of this demo.
If you have not heard about Suicide Barbie - it is a PSP demo by TBL which won Breakpoint'2007 Wild Demo competition (console and handheld compo).
Some new features you might find interesting in the final version:
. much smaller downloadable archive
. packed music
. new visuals
. improved framerate
. wider PSP firmware support - tested on 1.00, 1.50 and 3.x OE
. proper readme.txt
. also photos of TBL finishing the demo in Bingen are included
For rumours and comments go to Pouet:
http://www.pouet.net/prod.php?which=30284
Final version (24Mb):
ftp://mirror.support.nl/pub/tbl/psp/...rbie-Final.zip
Some technical rumblings you might find interesting as well:
. all run-time and back-end code was written almost completely from scratch for this demo
. rendering loop of the demo had to be organized differently than in GU samples in order to achieve better parallelism between main CPU and GU
. probably the biggest challenge of the demo was memory and content streaming. Music and textures are streamed. Might have been a smarter move to write a better compression for animations, but we had no time for that
. all scenes were created and animated in Maya. Scenes were exported first as an FBX - we had an idea of 'interoperability' with Lightwave first (not a great idea after all, FBX has tons of special cases and documentation is somewhat sparse), then processed with out custom tools to extract scene information, animations, meshes etc. and convert them into PSP friendly formats
. all resources were zlib compressed to decrease loading times (if you noticed demo starts almost immediately with virtually no loading time)
. lua was used (during export step, not at run-time) to add additional attributes for objects, setup materials and filter scenes
. originally we had an idea to define timeline in lua for faster iterations, however Louie did a great job with planning and direction, so minimum changes had to be done - as a result timeline was kept in the code
. bulk of textures are 8bit palette based, while some are 4bit
. most of the scenes exhibit no texture reuse - no texture caching in the video memory was required
. we did a DirectX9 backend to help development and debugging. Single ShaderModel2 über-shader was used to simulate GU behaviour
. VFPU was used for some special effects and skinning, mostly to spread workload across CPU and GU more evenly
. although post-process blur in production is done on GU, we experimented a bit with CPU implementation which looked quite promising if well optimized, but at some expense of video memory