Produktion

Phat

Herunterladen 2008_condense_phat1.zip

Mitwirkende

  • Code — NoRecess

Mitwirkende wie auf Pouet aufgeführt.

Phat ist meine „Comeback“-Demo. Alles fing 2008 an, als ich mir die neueste Fassung von WinApe geholt und sie mit dem C-Compiler Z88DK ausprobiert habe. Nach ein paar ersten Versuchen wurde mir klar, dass CPC-Entwicklung auf diesem Weg möglich war. Also habe ich angefangen, den „Tunnel-im-Quadrat-Effekt“ zu programmieren, und war mit dem Ergebnis recht zufrieden. Zur selben Zeit hat mir Grim von Arkos sehr geholfen, mein Wissen über den CPC aufzufrischen. Ich habe ihm hin und wieder Vorschauen gezeigt … er hat mir einen maßgeschneiderten PT3-Player für den CPC geschrieben, der fortgeschrittene Funktionen des Amstrad 6128 Plus nutzt und Musik mit 50 Hz abspielt, ohne dass man sich um Interrupts kümmern muss. Diese Demo war schlecht gestaltet, aber es gab trotzdem viele verschiedene Effekte zu sehen.

YouTube:

Die Demo Phat auf YouTube

Auf YouTube ansehen

Bilderfolge

Acht Standbilder, aufgenommen vom Diskettenabbild der Release.

Der Ladebildschirm

Ein steinerner Monolith, der über Schwarz treibt

Der Tunnel im Quadrat, in Blau

Der Ring-Effekt, in Rot und Blau

Ein rotogezoomtes Foto eines Mannes mit ausgebreiteten Armen

Die Mitwirkenden, gesetzt in einem Feld kleiner Zeichen

Ein rotierender Totenkopf

Der Tunnel im Quadrat, in Gelb

Kommentare von Pouet

Die folgenden Kommentare wurden auf Pouet.net zu Phat hinterlassen. Sie sind so zitiert, wie sie geschrieben wurden. Von jener Seite übernommen am 17. August 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

Alle 23 Kommentare anzeigenWeniger Kommentare anzeigen

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