
Good Apple (Bad Apple Remix) on the Soviet BK-0010/11M - bane
http://www.pouet.net/prod.php?which=78066
======
PhasmaFelis
Fantastic, thanks for posting!

Pouet really doesn't make it obvious where to actually watch the demo. If
anyone's confused,
[https://www.youtube.com/watch?v=8Q1vN51o-Dg](https://www.youtube.com/watch?v=8Q1vN51o-Dg)
is the place to be (unless you've somehow got the hardware to run their actual
code).

------
sh4z
If you, like me, thought it was only a couple of images on repeat - there's a
youtube link in the bottom right.

~~~
simias
Yes:
[https://www.youtube.com/watch?v=8Q1vN51o-Dg](https://www.youtube.com/watch?v=8Q1vN51o-Dg)

Is the music also produced by the computer? I suppose that it is but it's hard
to believe given the quality. Impressive work.

~~~
rbanffy
I think it's the COVOX 8-bit thing. Not sure what the specs are, but if you
can load samples and loops and set them off at specific intervals, you can
accomplish a whole lot with almost no burden to the main computer.

Edit: nope. The COVOX was a parallel port DAC. The computer has to send each
sample out. I suspect some light compression, pre-rendered audio segments and
an interrupt-driven routine to get data from the HDD and send enough samples
per second the sound doesn't get distorted.

~~~
bane
> and send enough samples per second the sound doesn't get distorted

That's kind of the awesome thing here, this machine isn't even capable of
1MIPs, so it has to pump audio out of the COVOX and read, decode and display
the video.

From the pouet page from one of the authors: "1\. This computer has no DMA. We
have to read all data "manually" from HDD registers, word by word. As well as
switch heads, cylinders and sectors on fly.

2\. This computer is very slow, it spends up to 72 CPU cycles to move a number
from one memory cell to another. And it runs on 4 MHz only."

~~~
rbanffy
> 2\. This computer is very slow, it spends up to 72 CPU cycles to move a
> number from one memory cell to another. And it runs on 4 MHz only."

This is kind of shocking. Was the PDP-11 that bad?

------
jbverschoor
Awesomeness. So when do we finally get rid of frameworks upon frameworks upon
abstractions upon emulations upon frameworks upon abstractions upon emulations
upon frameworks upon abstractions upon emulations upon frameworks upon
abstractions upon emulations upon frameworks upon abstractions upon emulations
upon frameworks upon abstractions upon emulations upon frameworks upon
emulation done by the cpu?

~~~
pjc50
What are you willing to give up to get there?

The frameworks make everything easier, more portable, more future-proof, more
extensible, and quicker to develop. The only cost is that it's all slower and
less elegant.

~~~
jbverschoor
It's unnecessary. We are running a:

    
    
      cpu
      which does abstraction and containers
      OS on top
      a container on top
      an application toolkit
      a cross platform development framework
      a browser embedded inside
      with containers
      with a javascript vm
      which runs framework
      which generates their own, non-standard UI widgets.
    

What am I gaining? Only more layers, and possible flaws

Oh, and don't get me started about all the languages

~~~
konart
>What am I gaining?

Free time to do something else but coding.

~~~
Koshkin
But isn't "coding" fun?

~~~
konart
It is, but life is much more than just that.

------
aportnoy
Can anyone clarify what's going on here?

~~~
jmillikin
This looks like a Demoscene[0] site. It's sort of a contest to create artistic
computer programs with the smallest possible executable size. I found a
YouTube link in the description:
[https://www.youtube.com/watch?v=8Q1vN51o-Dg](https://www.youtube.com/watch?v=8Q1vN51o-Dg)

Bad Apple[1] is a famous Flash animation from ~10 years ago set to a pop song
remix of a video game stage theme. Because it's so stylized there's a whole
bunch of parodies / homages that imitate it. Here it's parodying old iTunes
commercials[2].

There's another famous demoscene program named 8088 Domination that includes a
version of the same song:
[https://youtu.be/_yTsCOy7j0M?t=168](https://youtu.be/_yTsCOy7j0M?t=168)

Keep in mind while you're watching these videos that they're showing full-
motion video and audio playback on a machine with single-digit Mhz of
processing power. I like to think about this every time Slack pegs one of my
cores to render an emoji.

The OP link says the program runs on a "BK-0010/11M" which Wikipedia says[3]
is a Soviet clone of the PDP-11. Looks like it's a popular platform on this
demoscene gallery.

[0]
[https://en.wikipedia.org/wiki/Demoscene](https://en.wikipedia.org/wiki/Demoscene)

[1]
[https://www.youtube.com/watch?v=9lNZ_Rnr7Jc](https://www.youtube.com/watch?v=9lNZ_Rnr7Jc)

[2]
[https://www.youtube.com/watch?v=X2HFiwfvsc0](https://www.youtube.com/watch?v=X2HFiwfvsc0)

[3]
[http://en.wikipedia.org/wiki/Electronika_BK](http://en.wikipedia.org/wiki/Electronika_BK)

~~~
anyfoo
Good summary. A bit more generally, demos are often written to run under
constrained conditions. They are also often written for competitions that set
those conditions.

Sometimes, like in this case, the constraints are entirely dictated by the
hardware, and the objective is just to make the most impressive demo given the
particular device’s limitations, very often pushing the hardware way past what
was commonly thought to be possible. Modifying the hardware is usually not
allowed, but playing “dirty” in software by using undocumented and maybe even
unintended, obscure implementation details of the platform is highly
encouraged. No stone is left unturned.

8088MPH (by the same makers as 8088 Domination) is a very good example. For
decades, nobody knew it would be possible to display 1024 colors, at the same
time, on the original PC (which most nominally supports only 4 colors at the
same time, which could be stretched to 8 with a trick). You can watch the demo
here: [https://youtu.be/yHXx3orN35Y](https://youtu.be/yHXx3orN35Y) And read
about the methods used and invented here:
[https://trixter.oldskool.org/2015/04/07/8088-mph-we-break-
al...](https://trixter.oldskool.org/2015/04/07/8088-mph-we-break-all-your-
emulators/)

Sometimes, there are also additional constraints like size limits, which is
especially popular on more advanced hardware like modern PCs. For example, the
objective could be to make the most impressive demo in 1024 bytes.

~~~
mrob
>which could be stretched to 8 with a trick

The old tricks of 160x100 pseudo-text mode and composite artifact colors both
allowed for 16 colors at once when used in the obvious manner. 8088MPH reached
1024 colors by combining both tricks:

[https://int10h.org/blog/2015/04/cga-in-1024-colors-new-
mode-...](https://int10h.org/blog/2015/04/cga-in-1024-colors-new-mode-
illustrated/)

------
bayindirh
This is a hell of a demo, on a hell of a hardware. It's as impressive as
8088MPH if you ask me.

------
anfilt
A touhou classic. Cool

------
jacquesm
Awesome. This reminds me of the stop motions animation from
[https://www.youtube.com/watch?v=IOu0DuxFAT0](https://www.youtube.com/watch?v=IOu0DuxFAT0)
the way the scene are changing from one into another.

Here is the original music video:

[https://www.youtube.com/watch?v=nwcVRdEQpqc](https://www.youtube.com/watch?v=nwcVRdEQpqc)

------
tenryuu
2hu hijack lol

------
Annatar
Maybe this will finally stop the horribly misguided "noone programs in
assembler any more" comments here on "Hacker News" (especially during yet
anothet RISC V marketing campaign).

~~~
pjc50
Generally people don't unless they really need to, a significant chunk of
assembler is a maintainbility horror in most commercial contexts. But it's
still useful for really weird architectures or getting the most out of your PC
- the compiler is _not_ going to auto-vectorise use of the GF2P8AFFINEINVQB
instruction for you.

~~~
Annatar
This simply is not correct - the scene is huge. If you think that, you're
hanging out with the wrong crowd.

So many myths about what computing is and isn't -- I've not experienced
anything remotely similar in any other field of human endeavor.

~~~
PhasmaFelis
The demoscene has always been awesome and influential, and it may be thriving
right now, but it's still a niche hobby. It doesn't change the fact that use
of assembly for practical purposes is dwindling, and has been for a long time.

~~~
Annatar
Actually it very much changes that "fact", because most of the people coding
demos work in the gaming industry and write commercial software titles.

