# The bane of CRTC compatibility

**URL:** <https://forum.cpcwiki.eu/t/the-bane-of-crtc-compatibility/785>\
**Category:** Demos\
**Created:** [October 11, 2026, 10:42am UTC](https://forum.cpcwiki.eu/t/the-bane-of-crtc-compatibility/785 "2026-10-11T10:42:09Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![BSC](https://forum.cpcwiki.eu/user_avatar/forum.cpcwiki.eu/bsc/32/23_2.png) [@BSC](https://forum.cpcwiki.eu/u/BSC)\
**Post date:** [October 11, 2026, 10:42am UTC](https://forum.cpcwiki.eu/t/the-bane-of-crtc-compatibility/785/1 "2026-10-11T10:42:09Z")

</div>

I want to discuss a feeling I just had again after watching Bits Brew. The feeling that when wanting to create modern demos on the CPC, which show some variant of line-by-line effects, one has to work around the different CRTCs quirks with detections and dedicated CRTC code. I am aware that great documentation exists, the most comprehensive one probably Longshot’s compendium. But I find dealing with this just so dreading and wonder how others overcome this. When I make a demo, I want to focus on the effect or more generally the idea I want to show (or play) and not work around the fact that the CPC video hardware suffers from a set of arbitrary quirks. Can someone relate to this? How did you solve this? The thing is, I do have some ideas and snippets lying around (mostly musical) for years that need some accompanying visuals, but I just can’t be arsed to jump through the CRTC hoop, it seems soooo boring.

---

<div class="post-metadata">

**Author:** ![Grimmy](https://forum.cpcwiki.eu/user_avatar/forum.cpcwiki.eu/grimmy/32/38_2.png) [@Grimmy](https://forum.cpcwiki.eu/u/Grimmy)\
**Post date:** [October 11, 2026, 11:11am UTC](https://forum.cpcwiki.eu/t/the-bane-of-crtc-compatibility/785/2 "2026-10-11T11:11:13Z")

</div>

I’d invest some time in crafting a handful of well-commented, configurable templates containing all the boring setup code. Especially for demo effects, which often rely on the same split-screen recipe. That way, I could experiment with different effects later without having to deal with the same boilerplate all over again.

Alternatively, if you just want to _see_ what an idea looks like (and maybe tweak it) before implementing it in optimized assembly, JavaScript and a 2D Canvas work wonders 🙂

---

<div class="post-metadata">

**Author:** ![AndyCadley](https://forum.cpcwiki.eu/user_avatar/forum.cpcwiki.eu/andycadley/32/177_2.png) [@AndyCadley](https://forum.cpcwiki.eu/u/AndyCadley)\
**Post date:** [October 11, 2026, 12:06pm UTC](https://forum.cpcwiki.eu/t/the-bane-of-crtc-compatibility/785/3 "2026-10-11T12:06:45Z")

</div>

Target only the Plus machines: they all have the same CRTC, problem solved. 😂

Less flippantly, I don’t see the problem with just declaring the a demo needs a specific CRTC these days. If you’re not getting fun out of the challenge of managing an effect with different hardware, why bother? The vast majority of people will probably see the results in an emulator.

---

<div class="post-metadata">

**Author:** ![cpcitor](https://forum.cpcwiki.eu/user_avatar/forum.cpcwiki.eu/cpcitor/32/321_2.png) [@cpcitor](https://forum.cpcwiki.eu/u/cpcitor)\
**Post date:** [October 11, 2026, 1:26pm UTC](https://forum.cpcwiki.eu/t/the-bane-of-crtc-compatibility/785/4 "2026-10-11T13:26:40Z")

</div>

> [@BSC](#):
>
> How did you solve this?

To me the target of a CPC prod is “the physical CPC” whatever its CRTC. It’s a pity that they have different CRTCs but it’s a fact of life.

I consider the CRTC-tricks-oriented subset of possible demos and prods too crowded. Too many prods. Less room for originality.

I focus on other areas, which produce interesting effects while being compatible with all CRTCs.

So, no hassle, no quirky CRTC detection code and compatibility headache, only challenge and fun. 🙂

E.g. Sunny Day

> **[Sunny Day (for A Shadow Party)](https://m.pouet.net/prod.php?which=104432)**
>
> 32k for Amstrad CPC, 3rd at Shadow Party 2025

[![](https://forum.cpcwiki.eu/uploads/default/original/2X/2/2f9ebb24ec8faf3a15f7e9a165806d129ec0a079.jpeg "Sunny Day demo on a real CPC6128 and original Amstrad CRT screen") ](https://www.youtube.com/watch?v=i0D1iQ0_3ak)

---

<div class="post-metadata">

**Author:** ![WacKEDmaN](https://forum.cpcwiki.eu/user_avatar/forum.cpcwiki.eu/wackedman/32/99_2.png) [@WacKEDmaN](https://forum.cpcwiki.eu/u/WacKEDmaN)\
**Post date:** [October 11, 2026, 11:41pm UTC](https://forum.cpcwiki.eu/t/the-bane-of-crtc-compatibility/785/5 "2026-10-11T23:41:31Z")

</div>

id say target one CRTC, usual CRTC 1… and add a specific CRTC 0/2 check and instructions later…

---

<div class="post-metadata">

**Author:** ![lightforce6128](https://forum.cpcwiki.eu/user_avatar/forum.cpcwiki.eu/lightforce6128/32/32_2.png) [@lightforce6128](https://forum.cpcwiki.eu/u/lightforce6128)\
**Post date:** [October 12, 2026, 12:50am UTC](https://forum.cpcwiki.eu/t/the-bane-of-crtc-compatibility/785/6 "2026-10-12T00:50:24Z")

</div>

> [@BSC](#):
>
> I want to discuss a feeling I just had again after watching Bits Brew. The feeling that when wanting to create modern demos on the CPC, which show some variant of line-by-line effects, one has to work around the different CRTCs quirks with detections and dedicated CRTC code.

This is a really fascinating demo with several layers of graphic effects and sample output on top. I’m sure, bringing this all together and match the timing was a difficult task. But as far as I see, there is nothing used that is CRTC specific. So, not for all, but for many effects it should be possible to create one version of the software for all CRTCs.

Another point of view: Art is not mass production (letting pop art aside). There is no requirement to make something fit all configurations. Use the limitations and features of different machines for different effects. Art is about exploring and using differences. One CRTC example: CRTC 0 requires C0=1 (frames are at minimum 2 characters wide), but is forgiving in relation to HSYNC position and duration. CRTC 2 also allows C0=0 (frames with half the size), but struggles with the HSYNC. Both has its pros and cons. (Maybe this view of CRTC 2 is a bit too friendly.)

---

<div class="post-metadata">

**Author:** ![BSC](https://forum.cpcwiki.eu/user_avatar/forum.cpcwiki.eu/bsc/32/23_2.png) [@BSC](https://forum.cpcwiki.eu/u/BSC)\
**Post date:** [October 13, 2026, 12:42pm UTC](https://forum.cpcwiki.eu/t/the-bane-of-crtc-compatibility/785/7 "2026-10-13T12:42:01Z")

</div>

Thanks for the replies @Grimmy @AndyCadley @cpcitor @WacKEDmaN @lightforce6128 There’s surely something to chew on.
