Fresh Amstrad CPC, PCW, Notepad NC100 NC150 NC200 and PDA600 news

Caprice Forever v2018-04, an Amstrad CPC emulator by Frédéric Coste for Windows


Caprice Forever v2018-04 by Frédéric Coste is a modified version of the Caprice emulator (by Ulrich Doewich) for windows.

  • Fix CRTC regression with "Turrican" but involving issues with "iMPdraw"
  • Add Audio Speaker and PlayCity Line OUT or Internal option
  • Add Audio PlayCity invert channels option
  • Fix FDC regression to load "The Real Ghostbusters"
  • Add Graphics explorer and Tile editor
  • Drop ROM file for testing purposes
  • Fix minor bugs

Captain Space Debris, Amiga and Amstrad CPC music mixed


Captain Space Debris is an Amiga original music written by Markus Kaarlonen, which was adapted on Amstrad CPC by BSC for the demo Digital Orgasm by Prodatron. So Vincent GR mixed both of them but even if there is a Youtube video of the mix, he prefers that you listen to the soundcloud version due to audio and video compression.

1Kusai by Shinra, an Amstrad CPC 1kb intro released at the Forever 2018


1Kusai by Shinra is an Amstrad CPC 1Kb intro released at the Forever 2018.

The source code of 1Kusai is available.

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

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.