pouët.net

PHAT by Condense [web]
screenshot added by Grimmy on 2008-07-20 22:03:14
platform :
type :
release date : july 2008
  • rulez 10
  • is ok 3
  • sucks 0
popularity : 0%
 0%
  • rulez 0.77
alltime top: #8252
added on the 2008-07-20 22:03:14 by Grimmy Grimmy

popularity helper

increase the popularity of this prod by spreading this URL:

comments

Jaw, I command thee to close. MALAAAKKAAAAA

When I have read that it's written in C and the screenshot didn't said much I thought it would suck. But it has so much impressed me, more than several assembly coded CPC demos before. I thought at best there would be just good design with gfx, but there were effects. Maybe not the optimal asm could reach but there were many of them in 8*8 blocks that were smooth enough, transitions with blocks, motion captured bob man and some clever writer, cool fades and gfx, great square tunnel effect and an awesome tune all in a package that has really shocked me.

C? Is it btw all C or are there some small assembly routines for rendering a block or a bob gfx element and most of the non trivial in C? I would like to learn more technical info about this demo (how is the square tunnel achieved?)

It's impossible to believe it.
rulezadded on the 2008-07-20 23:07:04 by Optimus Optimus
Great
rulezadded on the 2008-07-20 23:31:03 by Buckethead Buckethead
Thank you Optimus for your comment.

About the tunnel effect, all is done in C. The only ASM code here is the rectangle rasterization.

This is the source-code of the squared tunnel effect's main loop :

Code: for ( iSquare = 0; iSquare < SQUARECOUNT - 1; iSquare++ ) { if ( s_sizes[ iSquare ] > 1 ) { { addX = s_cosX[ s_iSinX ]; addY = s_cosY[ s_iSinY ]; X1 = s_sizeX1[ iSquare ] + addX; Y1 = s_sizeY1[ iSquare ] + addY; X2 = s_sizeX2[ iSquare ] + addX; Y2 = s_sizeY2[ iSquare ] + addY; } { s_iSinX += TUNNEL_CURVEX; if ( s_iSinX >= MAXSINCOS ) { s_iSinX -= MAXSINCOS; } s_iSinY += TUNNEL_CURVEY; if ( s_iSinY >= MAXSINCOS ) { s_iSinY -= MAXSINCOS; } } { if ( X1 < s_prevX1 ) { X1 = s_prevX1; } if ( X1 > s_prevX2 ) { X1 = s_prevX2; } if ( X2 < s_prevX1 ) { X2 = s_prevX1; } if ( X2 > s_prevX2 ) { X2 = s_prevX2; } if ( Y1 < s_prevY1 ) { Y1 = s_prevY1; } if ( Y1 > s_prevY2 ) { Y1 = s_prevY2; } if ( Y2 < s_prevY1 ) { Y2 = s_prevY1; } if ( Y2 > s_prevY2 ) { Y2 = s_prevY2; } } { if ( Y1 > Y2 ) { s_tempValue = Y2; Y1 = Y2; Y2 = s_tempValue; } if ( X1 > X2 ) { s_tempValue = X2; X1 = X2; X2 = s_tempValue; } } s_pen = s_pens[ iSquare ]; if ( s_prevX2 > s_prevX1 ) { width = s_prevX2 - s_prevX1; if ( Y1 > s_prevY1 ) { crGFXDrawRectFast( s_scanlineBuffer + s_prevY1, s_prevX1 + width, width, Y1 - s_prevY1, s_pen ); } if ( s_prevY2 > Y2 ) { crGFXDrawRectFast( s_scanlineBuffer + Y2, s_prevX1 + width, width, s_prevY2 - Y2, s_pen ); } } if ( Y2 > Y1 ) { if ( X1 > s_prevX1 ) { width = X1 - s_prevX1; crGFXDrawRectFast( s_scanlineBuffer + Y1, s_prevX1 + width, width, Y2 - Y1, s_pen ); } if ( s_prevX2 > X2 ) { width = s_prevX2 - X2; crGFXDrawRectFast( s_scanlineBuffer + Y1, X2 + width, width, Y2 - Y1, s_pen ); } } s_prevX1 = X1; s_prevY1 = Y1; s_prevX2 = X2; s_prevY2 = Y2; } }


If you want to know more about source-code, you can get the whole C framework I created for the demo, as also the demo itself. In a way, this is the first open-source CPC demo ;)

This is the Subversion repository :
https://crocolib.svn.sourceforge.net/svnroot/crocolib/trunk

Finally, thank you for your comments ! Let's say I'm waiting your next production now :-) and don't rush it hehe!
added on the 2008-07-21 00:18:42 by norecess norecess
(sorry for huge code sample!)
added on the 2008-07-21 00:19:34 by norecess norecess
video http://fr.youtube.com/watch?v=HIaVST3ycCY
added on the 2008-07-21 17:54:50 by norecess norecess
It's interesting but what about memory? Will at least be easy to know which portion of memory the C code and data occupies? Because it's CPC and memory is already limited. I have tried the Z88 compiler on CPC already but abandoned it because I thought 1) it would take some time to get used (although I know C) 2) Maybe in the middle in the project C would eat so much memory that I won't be able to use any more.
added on the 2008-07-22 08:45:43 by Optimus Optimus
great
rulezadded on the 2008-07-22 09:11:14 by ٩๏̯͡๏۶ ٩๏̯͡๏۶
Cool "vieuxcons" stuff :)
rulezadded on the 2008-07-22 14:34:10 by keops keops
@Optimus : more information about C on CPC here : http://arnaud.storq.googlepages.com/cforamstradcpc
Expect a x2 / x3 size versus ASM, but it packs very well.
1) Yes it takes times to be used to z88dk.
2) Each parts are unpacked at run-time so memory is not a problem here
And as a general rule : experiment by yourself ! Dont stop work because of presumptions or people without knowledge ! :o)
added on the 2008-07-22 15:13:03 by norecess norecess
Thanks. It's getting interesting. I would be motivated to code a little demo or game framework to experiment (even though our next demo as we plan it will be in asm as usual because I will spent a lot of vram and have tiny pieces of soft code and hw tricks there and code would be delicate)
added on the 2008-07-23 17:47:50 by Optimus Optimus
It's really sad, that it don't work on an amstrad old :(

But, nice come back ! I'm looking forward other demos of this kind
added on the 2008-08-13 10:07:03 by krusty krusty
Not bad. Finally blocky effecs also for CPC.

To bad it doesn use any specific features except for the pictures...
rulezadded on the 2008-08-20 17:26:29 by Exin Exin
Nice stuff Norecess!
rulezadded on the 2009-01-24 04:33:12 by Cleaner Cleaner
yep
rulezadded on the 2010-02-10 09:54:22 by kyv kyv
stylish, and great piccy. but the charmode effects are very very basic. why not use some ditherpatterns?
added on the 2010-02-10 10:52:40 by earx earx
Nice performance for C.

I wish the C compiler we have on the Oric was as good.
rulezadded on the 2010-02-10 19:36:24 by Dbug Dbug
Nice !
rulezadded on the 2010-02-10 19:42:31 by lsl lsl
imo, this was the first serious demo of NoRecess... It's good try for a comeback!
rulezadded on the 2011-08-31 15:43:45 by voXfReaX voXfReaX

submit changes

if this prod is a fake, some info is false or the download link is broken,

do not post about it in the comments, it will get lost.

instead, click here !

[previous edits]

add a comment