1Kusai by Shinra [web] | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||
|
popularity : 57% |
|||||||||||||
alltime top: #9151 |
|
|||||||||||||
|
||||||||||||||
added on the 2018-03-19 10:21:38 by PulkoMandy |
popularity helper
comments
Procedural gfx on CPC. Yeah :)
good
awesome =D
Nice job :)
Whaaaat?
I enjoy procedural generation stuff !
Great !
nice
<3
Relaxing
Cool!
Nice
I like your theme/idea.
Video please!
great
nice!
it's a joke with Okusai, but do you know that "kusai" means "it stink!" in japanese? :D
it's a joke with Okusai, but do you know that "kusai" means "it stink!" in japanese? :D
Very nice!
Note that you can compute bezier curves without multiplications at all:
http://abrobecker.free.fr/text/squares.txt
http://abrobecker.free.fr/text/quadsplines.pdf
Note that you can compute bezier curves without multiplications at all:
http://abrobecker.free.fr/text/squares.txt
http://abrobecker.free.fr/text/quadsplines.pdf
ouhaou !
Yep!
AMAZING!
CPC needs more procedural GFX.
CPC needs more procedural GFX.
great concept and execution!
Excellent!
nice one
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 !
No NFO file because I'm lazy, but here is some tech info. A more detailed writeup may come when I recovered my normal sleep schedule and fixed Shinra website.
So, the idea was to fit Hokusai's The Great Wave off Kanagawa in 1K.
I worked from an SVG file and removed a lot of details until it would fit the allocated space (packed with zx7). Eventually it ended up too small after some late minute changes to the code which improved the compression. Oh well.
The SVG was converted to bezier curves using NanoSVG, then a custom Lua script to convert the usual bezier curves definitions into a form more suitable for computation. Normally a Bezier curve is defined by X and Y equations which look like this:
x = A(1-t)³+3B(1-t)²t+3C(1-t)t²+Dt³
We can rewrite this as:
Z + t(Y + t(X + Wt))
With:
Z = A
Y = 3B
X = 3C - 6B
W = D - 3C + 3B - A
So in this form we need only 3 multiplications.
The computations are done using CPC firmware which provides neat floating point math support. I compute 256 points along each curve (this could be adjusted to less points for faster drawing, at the cost of slightly less smooth curves) and draw lines between them. Then the system FILL routine is used to fill the closed shapes.
The sound of waves and thunder you can hear is just the Y or X coordinate (I don't remember, whichever sounded best) sent to the AY noise register (again using the CPC firmware, because this is the most space efficient way). I tried to write some music using the free bytes left but did not manage to do anything very convincing. Next time I'll try to spend more effort on the sound side.