Checkerboard Challenge
category: code [glöplog]
At Revision 2017, we were blessed with the SEGA Mega Drive demo Overdrive 2 by Titan, which among other things contains a very nice checkerboard effect with (as far as I can tell) 8 zooming layers.
It occurred to me that this ought to have been a classic record-beating effect on the Amiga - who can make one with the most simultaneously visible layers?
But this doesn't seem to be the case. The best one I could find is in the relatively recent 15 Years of Fame by Up Rough. It has 4 layers, but is not fullscreen. Cyberlogik by Alcatraz and TRSI contains a nice, 3-layer one, but this is an AGA demo. Groovy! by Lemon. has a 2-layer, rotated one.
With the Amiga's 6 bitplanes, you would think that at least 6 layers should be achievable, right?
I discussed the situation with Britelite, and we agreed that this needs to be rectified. Hence this challenge. The rules are:
- Minimum resolution 320 x 256.
- 50 fps on Amiga 500 with 512k chip ram and 512k slow ram.
- Single file, i.e. no streaming of data from disk.
- Layers move independently of each other in both X and Y.
- Layers move fully in Z (zoom), but not necessarily independently.
- Layers are able to have colors that are all different.
The challenge showdown is set to take place at Gerp 2018. You are of course welcome to meet the challenge by releasing a checkerboard zoomer later on, but if you want your release to have the full novelty factor and be part of the main showdown, Gerp is the place.
It occurred to me that this ought to have been a classic record-beating effect on the Amiga - who can make one with the most simultaneously visible layers?
But this doesn't seem to be the case. The best one I could find is in the relatively recent 15 Years of Fame by Up Rough. It has 4 layers, but is not fullscreen. Cyberlogik by Alcatraz and TRSI contains a nice, 3-layer one, but this is an AGA demo. Groovy! by Lemon. has a 2-layer, rotated one.
With the Amiga's 6 bitplanes, you would think that at least 6 layers should be achievable, right?
I discussed the situation with Britelite, and we agreed that this needs to be rectified. Hence this challenge. The rules are:
- Minimum resolution 320 x 256.
- 50 fps on Amiga 500 with 512k chip ram and 512k slow ram.
- Single file, i.e. no streaming of data from disk.
- Layers move independently of each other in both X and Y.
- Layers move fully in Z (zoom), but not necessarily independently.
- Layers are able to have colors that are all different.
The challenge showdown is set to take place at Gerp 2018. You are of course welcome to meet the challenge by releasing a checkerboard zoomer later on, but if you want your release to have the full novelty factor and be part of the main showdown, Gerp is the place.
"Layers are able to have colors that are all different", but not necessarily? So all white screen? :)
I did struggle a bit with that formulation and apparently didn't quite nail it. :)
By "able to" I mean "provable able to" meaning that that capability (of the implementation) is demonstrated at least a substantial part of the time the effect is shown. But I did not want to stipulate that they always have different colors, as that would constrain the design space too much.
By "able to" I mean "provable able to" meaning that that capability (of the implementation) is demonstrated at least a substantial part of the time the effect is shown. But I did not want to stipulate that they always have different colors, as that would constrain the design space too much.
Cool challenge, although after a number I'd have a hard time to count them (too far from screen, too noisy, I didn't even notice Overdrive 2 had 8).
Knowing nothing about the Amiga, besides it has bitplanes and a powerful blitter, I'd also think it shouldn't be too hard to do this effect justice.
Knowing nothing about the Amiga, besides it has bitplanes and a powerful blitter, I'd also think it shouldn't be too hard to do this effect justice.
Nice challenge. I already have an idea on how to get about 8-10 layers (depending on how final timing works out), so it might be worth a try. :)
I don't even know how this effect is done, so I guess this is a good place to ask for a proper explanation of how the traditional implementations work. Because it's amiga I'm guessing bitplane fuckery and usage of the chipset features?
(x xor y ) and 8
(:
(:
@visy: The simplest 5-layer approach would be to prepare scanlines for every zoom level and very 0..15 shift.
100 zoom levels x 16 shifts x 80 bytes (double lenght for shifts) = under 128kB, so it's definitely doable.
Then set bitplane modulos to -40 (so every bitplane repeats a single scanline) and generate copperlist to update bitmap pointers (with minimal effort you can get away with upodating only lower word of them) on scanlines where horizontal checkerboard edges fall.
You can prepare 32-entry palette so every layer covers all layers below, but you can also make every layer semi-transparent for free for even fancier effect. :)
But this approach won't go beyond 5 layers due to gfx mode limitations.
100 zoom levels x 16 shifts x 80 bytes (double lenght for shifts) = under 128kB, so it's definitely doable.
Then set bitplane modulos to -40 (so every bitplane repeats a single scanline) and generate copperlist to update bitmap pointers (with minimal effort you can get away with upodating only lower word of them) on scanlines where horizontal checkerboard edges fall.
You can prepare 32-entry palette so every layer covers all layers below, but you can also make every layer semi-transparent for free for even fancier effect. :)
But this approach won't go beyond 5 layers due to gfx mode limitations.
Shouldn't there be a rule that the layers should be visible simultaneously? (So that it doesn't become a challenge of finding the right movement patterns for X amount of layers that allow you to get away with drawing only X-1 (or 2,3,4,etc) layers on each individual frame)
That's already there in the overall description of what the challenge is about (second paragraph):
Quote:
make one with the most simultaneously visible layers
Ah yes, I missed that, sorry
Nice compo, I totally approve ;)
Overdrive 2 does indeed use 8 totally independent layers, plus solid background (since normally background and border have the same colour on Mega Drive but I wanted to have black borders together with a background having the colour of the next plane to appear there).
Overdrive 2 does indeed use 8 totally independent layers, plus solid background (since normally background and border have the same colour on Mega Drive but I wanted to have black borders together with a background having the colour of the next plane to appear there).
Quote:
With the Amiga's 6 bitplanes, you would think that at least 6 layers should be achievable, right?
6 bitplanes without EHB?
Quote:
6 bitplanes without EHB?
Follow the hint. ;)
I recall some pretty fine chessboard/checkerboard-effects on the C64.
This is such a cool idea. I wish i was an amiga coder!
Leffman on EAB did one a while back. Have you checked it? It's realtime.
Might be more interesting with a 32K limit.
Number of colors is a problem, as Gargaj was the first to mention. The demo should simply demonstrate the claim made.
Might be more interesting with a 32K limit.
Number of colors is a problem, as Gargaj was the first to mention. The demo should simply demonstrate the claim made.
Quote:
Leffman on EAB did one a while back. Have you checked it? It's realtime.
No, I haven't seen that one. Where can I find it?
Quote:
Might be more interesting with a 32K limit.
How's that? I don't see what the extra space can be used for that can't just be generated anyway. But I would be pleased to be surprised in this regard, hence the big size limit. :)
Quote:
Number of colors is a problem, as Gargaj was the first to mention. The demo should simply demonstrate the claim made.
How do you think the rules about colors should be?
Simple: The number of layers that count towards the final score is the total number of distinctly solid colored checkerboards on screen. Two layers with the same color count as one point only. Background doesn't count.
@Blueberry: I have trouble finding any technical details on 6 bitplane scroller usd in Interference. If you have any, I'd be delighted to read that before having to resort to debugger & disasm. :)
@Gargaj: Makes sense. So basically change the overall goal to "the most simultaneously visible, distinctly colored layers" and drop the rule about color from the list.
@KK: I only have what is written in the end text of the demo. ;)
@KK: I only have what is written in the end text of the demo. ;)
as the number of layers increases you have a very high chance that one single frame may not show all the layers involved.
So for example an 6 layer version might have a frame with only 5 visible layers once in a while. How will you even judge that?
So for example an 6 layer version might have a frame with only 5 visible layers once in a while. How will you even judge that?
Quote:
How will you even judge that?
We will go through every single frame from the effect and make sure all layers are visible (as in, at least 10 pixels of a particular layer is shown), and if even one of the frames doesn't match this criteria the entry will be disqualified and not allowed to enter the compo.
Quote:
and if even one of the frames doesn't match this criteria the entry will be disqualified and not allowed to enter the compo
So if i make a fade out, where one layer disapear because the color is to dark to show (=black). it will not make the cut.
:-D
Quote:
So if i make a fade out, where one layer disapear because the color is to dark to show (=black). it will not make the cut.
If there's one thing I've learnt in my long demoscene career it's to *always take Britelite seriously!*