Revive The Demoscene with a LayerOne Demoscene Board

Demos, the demoscene, and all the other offshoots of computer arts had their beginning as intros for cracked Apple II, Speccy, and Commodore 64 games. Give it a few years, and these simple splash screens would evolve into a technological audio-visual experience. This is the birth of the demoscene, where groups of programmers would compete to create the best demonstration of computer graphics and audio.

For one reason or another, this demoscene was mostly confined to Europe; even today, 30 years after the Commodore 64, the North American demoscene is just a fraction of the size of the European scene. A very cool guy named [Arko] would like to change that, and to that end he built the LayerOne Demoscene Board.

If there is a problem with the modern demo scene, it’s that the hardware that’s usually used – C64s, Ataris, Spectrums, and Amigas – are old, somewhat rare, and dying. There’s also the fact that artists have been working on these old machines for decades now, and every single ounce of processing power and software trickery has been squeezed out of these CPUs. [Arko]’s board is a ground-up redesign of what a board that plays demos should be. There’s only one chip on the board – a PIC24F with three graphics acceleration units, color lookup tables, and the ability to output 16-bit VGA video up to 640×480 with 8-bit audio.

The first official competition with the LayerOne Demoscene Board will be at the 2015 LayerOne conference in Monrovia, CA on May 23. There are a few categories, including 4k and 64k JavaScript, Raspberry Pi, the LayerOne board, and a ‘Wild’ category. If you want to take a processor out of a toaster and make a demo, this is the category you’ll be entering. Of course Hackaday will be there, and we’ll be recording all the demos.

Below are a few examples of what the LayerOne Demoscene board can do, and you can also see a talk [Arko] gave at the Hackaday 10th anniversary party here. You can buy the Layerone Demoscene Board on the Hackaday Store

Here’s something [Arko] rigged up at Hackaday’s 10th anniversary party last year. It’s a laptop that pulls down tweets and sends them over a UART to the demoscene board that displays them:

36 thoughts on “Revive The Demoscene with a LayerOne Demoscene Board

  1. Is this thread an open invitation to talk about the demoscene? I’ll assume yes : )

    Anyway, it’s not dead yet! There’s still some life in it (or at least I hope so, because I missed out on its glory days in the 1990s…) lft has done some amazing prods using embedded chips (on HaD: http://hackaday.com/2010/05/01/phasor-av-pal-demo-uses-atmega88/ but I preferred Craft)

    I hope this board catches on, at least to some degree. There’s still a few quirks left in the standard 1980s machines, but for the most part the same effects get recycled. It would be nice to see people wring out what they can from a new platform. Also interesting, rather than creating demos for an existing computer platform, maybe we’ll be going the other direction – making a functional computer out of a demo platform?

  2. As someone who was part of the demoscene back in the days – and still is to a certain degree today – I fail to see how this is going to appeal to more than perhaps a handful of happy campers?
    Sweden’s demoscene for everything Commodore (or anything hackable) back in the days were massive and it’s still very much alive, but if it didn’t happen in North America in the late 80’s and onwards – how could it succeed today with no culture nor history?

    However – if this for unknown reason does in fact start a new demoscene then I’d be the first one to cheer on but I seriously doubt it since back in the day everyone was using assembler for everything – which really is a must for pushing the limits – whereas today very few under 30 has even had a minute exposure to any assembler…
    Yes, you can write a demo in c++ or any other language, but coding in assembler was as much of a “must” as the new and innovative effects we competed with and those who couldn’t write assembler were… well, simply just “lamers” ;)

    IMHO I think adding some sort of a rudimentary video out to an Arduino UNO and using that as a platform for a new demoscene would generate way more interest!

    But please prove me wrong because I’d love to see new innovation on the demoscene!

    1. I have to agree. I would put it slightly different, but I have to agree.

      Though I never was part of the “scene” (I was too old when it started), I admired the dedication of the guys (and few girls) we had in Germany getting more out of the machines than the “makers” of exactly those machines considered “not possible”: I witnessed a Commodore developer at a fair not believing that “text on the border of a C64 screen is possible” – and a 14 year old showing him how to simply get a sprite reactivated when it was supposed to be “off screen”.
      It was about “doing the impossible”. I wouldn’t claim that “Assembler” was necessary (my friends and I refused to use that modern stuff that would display full command codes – when you could learn 6502/6510 machine code by heart in a couple of hours and do your coding “offline”, calculating CPU cycles to get the EXACT timing for something by one additional $EA – NOP), but the IDEA is exactly this: hardware near programming. Knowing what a chip DOES when it seems to be doing nothing. Tickling chips you knew by their given names – and not by their frequency.

      Watching this space, but having my doubts, as I _think_ this project is not about what “demo” meant back then. Today I would consider a “demo” something that ran on limited hardware, fixed in specs for everyone and theoretically “incapable” of doing something specific, DOING that something specific. Like an iPhone being “usable” for more than placing your coffee on it …

      1. How is this board not fixed in specs for everyone? You’re limited in CPU speed, SRAM (which is a big deal for video resolution/colors), and Flash. For the contest, you’re not allowed to mod the board.

        dg
        L1 Imperial Wizard

        1. I think one important point missing is, that demos were written on everyday computers, that your peers at school just used to play games. So no, a dedicated dumbed down platform just to write demos does not really work. Maybe something new will come out of Microsoft opening XBox programming to the masses.

          1. It works for a lot of people interested in that area of demo scene(which in my experience would be the largest) . There are lots of variations, limited, wild, etc, web, java, gpu no gpu, etc etc. its such a wide ranging field, you cannot just say, it doesn’t really work..

    2. I agree. While I never was part of the demo scene except as an observer (it didn’t exist anywhere near me), I wrote games in the pre x86 era and the same applies. It’s assembly or it’s trash.

      Now days you would have to find a processor that people are comfortable with and RISC type processors are not awe inspiring processors to write assembler for. The good old CISC processors were fun to code for.

      One other possibility would be to write an interpreted language slightly higher than assembly that is specificity targeted at demo’s.

      If you work with something like a ‘c’ variant then it just comes down to who’s compiler has the best optimisation.

        1. To me there are only two flavours of RISC – Von Neumann and Harvard. They all have very limited addressing modes and almost every register has the same set of functions except for one ‘Special Function’ register that is usually just an index for the only extended register addressing mode they have.

          The older CISC chips had many addressing modes and complex indexing modes and you could mix and match the two for very creative coding. Things like JP (DE+IX), or jump to (load PC with a pointer to-) the memory location of the value of the memory location of the value of DE plus the value of IndeX register. When about the only thing like that, that you can do with a RISC is perhaps add a relative offset to an immediate PC load.

          The CISC era was about having such a large variety of ways to do things that you could be creative. With RISC there is one fastest way and that is it.

          RISC is great for compiled languages like c being converted down to assembly and that is probably what killed assembly coding. Today a persons first and only experience with assembly is probably a RISC micro-controller optimised for c compilers. They probably look at the architecture and think – well this is boring, mundane and pointless, and I agree. In my opinion – CISC was for writing assembly, RISC is for compilers and it’s little wonder that no-one writes in assembly anymore.

          1. Interesting, and almost diametrically opposed to my view of RISC at the time! My view was that things like the 68K were vastly overcomplex (millions of addressing modes), and the Z80 was very register-constricted. Enter the ARM2 (Acorn Archimedes), with 14 usable registers, optional status flag setting on any instruction, optional condition codes on any instruction (enabling very linear code for if..then..else), barrel shift on any instruction. Instructions that could save and load multiple registers at a time. All instructions taking one clock-tick, so utterly trivial timing…

            Definitely an assembler-programmer’s chip – much (maybe most) of Acorn’s OS was assembler-coded.

            ‘Course, since then, RISC has headed back towards the CISC model – more complex instructions, extra FP operations, SIMD instructions, compressed instruction spaces (Thumb & Thumb 2…)

    3. The goal isn’t to make a million dollar product, just a cool, relatively unexplored platform for writing demos for the LayerOne conference (and the Demo Party within) this year. There’s a ton of new blood in the community that don’t understand concept of “demo” but are very interested in learning C, assembly, graphics/audio, and embedded programming — this is a great project to get familiar with all of them while promoting the demoscene.

      dg
      L1 Imperial Wizard

        1. wat

          General information and working code/sample demos:
          http://l1demo.org/
          http://l1demo.org/wiki/ (admittedly messy – revamp coming soon)
          http://l1demo.org/forum/
          http://hackaday.io/project/3877-layerone-demoscene-board
          https://github.com/arkorobotics/L1DemosceneBoard

          PIC GPU and VGA Signal Documentation:
          http://l1demo.org/forum/viewtopic.php?id=18
          http://l1demo.org/forum/viewtopic.php?id=19
          http://l1demo.org/forum/viewtopic.php?id=20

          Keep in mind that this board has been available for barely a month – full demos and documentation take time.

          dg
          L1 Imperial Wizard

  3. It’s just a marketing stuff (sh.t) from microchip. Everybody who knows and loves coding in assembly hates PICs. Also it’s not true that a good RISC are not fun to code in assembly. ARM, PowerPC are pretty fun to program in ASM.

    If anybody want to make a cool demo scene embedded platform take a look at the new cortex M7. That’s a real cool stuff

  4. I think half the problem is that a lot of information is classified and never shared due to competition, and the rest that is shared is burried in mailing lists, sorry, mailing lists are a pain to read, clicking after each post gets old really fast. The only half decent forum-ish thing is pouet, and then almost all examples are in assembly and make use of the dedicated graphics chips that were used in each computer, so not really portable, grab code for coper lines and what not, and try to re-used that in an avr..

    And then there is the baggage needed, its sweet to compose chip tunes, when you have a tracker, even the tracker released by Linus Akesson is strange and weird for a newcomer and its sort of dedicated for his avr player.

    The problem is lack of a good forum with decent interface and a community build around that.

    And no, yahoo groups are not a solution they are just a glorified mailing list…

    1. I was in the amiga scene and have a couple of demos on pouets archive from back in the day under my scener name (not fluffy). There was no tutorials or howtos originally. You wanted to know how to do something you pulled something apart with a disassembler, all the articles and discussion came much later. here was no internet, there was the early bbs scene but phreaking and phonebills made that a rare and expensive luxury, so mostly we corresponded by disks traded by some disk swapper in the group who did it because they wanted the newest games free.
      I think it made us better coders, tinkerers and hackers in the good sense of the word because nobody told us something was possible, we just tried it. I learned how to write a bootloader by intercepting trackdisk device after disassembling the bootloader on a copy protected game that our group used for a megademo loader.
      I wrote a routine that used the bit blitter to reprogram the copper from precalculated shift tables to do quick backdrop shifting in about 5 raster lines for pseudo 3d race car stuff, that later ended up in a game after I stupidly sent the demo source to a company during a job application. None of their professional coders had tried it because it was a stupid concept, but it saved 40 raster lines of cpu time per refresh
      .
      You seem to be lamenting that nobody is there to hold your hand. Pull it apart, see how it works. Its more of a skill to learn for yourself than to be handheld.

      For me, I cant go back, that was all in the past and time has moved on and now Im in my 40s staying up all weekend writing code isnt really fair on my family. I would be tempted but only if the board was much much more powerfull and could do stuff that made peoples jaws drop. We used asm because it was fast and hardcore not because it was hip. And we made home computers do effects tv studios were touting as the very latest thing with hundreds of thousands of dollars/pounds of kit.

  5. There has never been a megademo for the Apple //e or Apple //c series computers. Just short intros. Once I get my mockingboard music editor working (which would give me 2x better music than Speccy demos) then I can start working on one. I’ve done some experiments with full-motion video using a 1meg ram card as an expanded frame buffer to stream the video from. Just haven’t had the time to put all the pieces together (time is zapped between job and family responsibilities). I also have a couple of scroller routines and some very good pixel art editing tools for the // series FWIW.

  6. There still is a demo scene – sort of, and demos were/are also done for the PC, where the trick is making the package as small as possible, like 64Kb.

    But if you want to make things harder hardware-wise why not simply use the raspi or some such?

  7. If people want to use this board, all hail to them but i kinda fail to see the “old, somewhat rare, and dying” point, just checked a local “craigslist” here in Belgium (=small market) , it even lists an commodore 64 sx (with moog song producer!) …
    a working C64 with disk drive goes around 40€…
    There are still plenty of “classic” micro’s in closets in the world…

  8. I think a single, not too big, FPGA would make a cool demo platform. The FPGA offers a lot of power and freedom, which is nice, but also makes it hard to come up with a demo that can really impress.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.