done by Devlin
logo done by Devlin :: pouët.net is hosted on the huge scene.org servers




PHAT by Condense [web]

platform :

  Amstrad Plus
type :

  demo
release date : july 2008
10
3
0
popularity :
0 %
0
0
average rating 0.77
alltime top: #7740
[download]
[youtube]
[mirrors...]
added on the 2008-07-20 by 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.
  added on the 2008-07-20 23:07:04 by Bugo the Cat  
Great
  added on the 2008-07-20 23:31:03 by 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  
(sorry for huge code sample!)
  added on the 2008-07-21 00:19:34 by norecess  
video http://fr.youtube.com/watch?v=HIaVST3ycCY
  added on the 2008-07-21 17:54:50 by 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 Bugo the Cat  
great
  added on the 2008-07-22 09:11:14 by g.  
Cool "vieuxcons" stuff :)
  added on the 2008-07-22 14:34:10 by 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  
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 Bugo the Cat  
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  
Not bad. Finally blocky effecs also for CPC.

To bad it doesn use any specific features except for the pictures...
  added on the 2008-08-20 17:26:29 by Exin  
Nice stuff Norecess!
  added on the 2009-01-24 04:33:12 by Cleaner  
yep
  added on the 2010-02-10 09:54:22 by 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  
Nice performance for C.

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

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, post about it.

add a comment
You need to be logged in to add a comment :: register here







pouët.net 0.9-3d89cb1 © 2000-2013 mandarine - hosted on scene.org
send comments and bug reports to webmaster@pouet.net - contribute on GitHub
page created in 0.027031 seconds.