producción

Phat

Descargar 2008_condense_phat1.zip

Créditos

  • Código — NoRecess

Créditos tal como aparecen en Pouet.

Phat es mi demo del «comeback». Todo empezó en 2008, cuando me hice con la última versión de WinApe y la probé con el compilador de C Z88DK. Tras las primeras pruebas me di cuenta de que el desarrollo para CPC era posible por esa vía. Así que empecé a programar el efecto de «túnel al cuadrado» y quedé bastante contento con el resultado. Al mismo tiempo, Grim de Arkos me ayudó muchísimo a refrescar mis conocimientos del CPC. De vez en cuando le enseñaba previews… y me escribió un player PT3 para CPC a medida que aprovechaba las funciones avanzadas del Amstrad 6128 Plus y permitía reproducir música a 50 Hz sin preocuparse por los interrupts. Esta demo estaba mal diseñada, pero aun así había muchos efectos variados que ver.

YouTube :

Demo Phat en YouTube

Verlo en YouTube

Presentación

Ocho imágenes, capturadas desde la imagen de disquete de la release.

La pantalla de carga

Un monolito de piedra flotando sobre negro

El túnel cuadrado, en azul

El efecto de anillo, en rojo y azul

La fotografía de un hombre con los brazos abiertos, en rotozoom

Los créditos, sobre un campo de caracteres pequeños

Una calavera, girando

El túnel cuadrado, en amarillo

Comentarios de Pouet

Los comentarios siguientes se dejaron en Pouet.net sobre Phat. Se citan tal como se escribieron. Copiados de esa página el 17 de agosto de 2026.

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.

Optimus, 2008-07-20 · rulez

Great

Buckethead, 2008-07-20 · rulez

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 :

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!

norecess, 2008-07-21

(sorry for huge code sample!)

norecess, 2008-07-21

video http://fr.youtube.com/watch?v=HIaVST3ycCY

norecess, 2008-07-21

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.

Optimus, 2008-07-22

great

guardian ٩๏̯͡๏۶, 2008-07-22 · rulez

Cool “vieuxcons” stuff :)

keops, 2008-07-22 · rulez

@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)

norecess, 2008-07-22

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)

Optimus, 2008-07-23

Mostrar los 23 comentariosMostrar menos comentarios

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

krusty, 2008-08-13

Not bad. Finally blocky effecs also for CPC. To bad it doesn use any specific features except for the pictures…

Exin, 2008-08-20 · rulez

Nice stuff Norecess!

Cleaner, 2009-01-24 · rulez

yep

kyv, 2010-02-10 · rulez

stylish, and great piccy. but the charmode effects are very very basic. why not use some ditherpatterns?

earx, 2010-02-10

Nice performance for C. I wish the C compiler we have on the Oric was as good.

Dbug, 2010-02-10 · rulez

Nice !

lsl, 2010-02-10 · rulez

imo, this was the first serious demo of NoRecess… It’s good try for a comeback!

voxy, 2011-08-31 · rulez

wow

sensenstahl, 2014-11-18 · rulez

Some premises to phX ?

MacDeath, 2018-04-04 · rulez

Gotta love this!

SuTeKH/Epyteor, 2019-09-14 · rulez

Cool, FAT demo! Unfortunataly some coder colors here and un-touched, directly converted gfx (yes, coder admited that fact). But still, a very good stuff!

sim, 2023-10-31 · rulez

Proper YouTube https://www.youtube.com/watch?v=Pp5ynhWfHqI …

ded^RMDA, 2023-10-31