Credits
- Code — NoRecess
Credits as listed on Pouet.
Phat is my “comeback” demo. It all started in 2008 when I picked down latest version of WinApe, and tested it against Z88DK C compiler. After some initial testing, I realized CPC development was possible that way. So I started programming the “tunnel squared effect” and was quite happy of the result. At the same time, Grim from Arkos helped me a lot to refresh my knowledge about CPC. I presented him previews from times to times.. he wrote me a customized CPC PT3 player using advanced Amstrad 6128 Plus features, allowing to replay 50hz music without caring of interrupts. This demo was poorly designed but still, there were lots of various effects to watch.
YouTube :
Slideshow
Eight stills, captured from the release disc image.








Comments from Pouet
The comments below were left on Pouet.net about Phat. They are quoted as they were written. Copied from that page on 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
Show all 23 commentsShow fewer comments
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
