cahir information 12 glöps
- general:
- level: user
- personal:
- first name: Krystian
- last name: Baclawski
- 256b ZX Spectrum BinCone by Speccy.pl [web]
- Nice one! Keep up good work Tygrys!
- rulezadded on the 2024-09-10 08:34:04
- demo Atari XL/XE Rewind 2 by New Generation & Zelax & Radiance
- Quite remarkable production! Impressive effects! Awesome work folks!
- rulezadded on the 2024-09-10 08:32:00
- Amiga OCS/ECS The Lost Pixellers Vol. 3 by Ghostown
- Well tested code and some nice effects from Trygrys. Superb images from all the graphicians. Atmospheric music from Jazzcat. A pleasure to watch! I was 100% positively surprised how well executed it is. Congratz guys!
If I were to nit-pick (from coder's perspective), I'd say I missed different transitions between graphics, as well as subpixel line drawing using Blitter. - rulezadded on the 2024-09-06 08:25:17
- 64k Amiga OCS/ECS Electric Lifeforms by Ghostown
- Quote:
(BTW, crashes after a few effects when started from my A1230)
We're aware of the fact that the intro misbehaves or crashes on more powerful Amigas. It's difficult to test a production on all possible configurations, especially in the face of a rapidly approaching deadline. We’re actively working to resolve all issues we know of. - isokadded on the 2023-04-13 21:07:00
- 64k Amiga OCS/ECS Electric Lifeforms by Ghostown
- Quote:
I was really surprised to see that almost all the code was in C, but even more to see the gcc version.
Let me try to explain it :)
IMHO that's a common misconception that C language is not good enough for Amiga 500 coding. We put a lot of effort into understanding gcc 2.95.3 idioms, i.e. how given C statements will translate into 68000 assembly, so we can quickly estimate if the generated code has a chance to be close to optimal. Of course performance critical code is not left unchecked. We have a primitive yet efficient profiler. We verify the output from the compiler to see if it did not do something stupid or unexpected (e.g. allocated variables on the stack). We have a tool that shows how each line of C source code translates into assembly. It also annotates each instruction with the number of cycles it takes. In other words we developed tools to make sure we invest our time only where it brings the most benefit wrt. performance.
Why such an old gcc version? Well... we tried to switch to gcc 6.5.0 from bebbo and to our surprise the generated code was 30% slower on average. There are two possible explanations here. Either our code uses idioms that the more recent gcc is unable to recognize and fails to optimize them or the default set of high-to-mid level optimizations in more recent gcc compilers are tailored towards x86-64 processors (e.g. lack of postincrement and predecrement, cheap array indexing, etc.). That could in turn result in RTL representation that cannot be translated into an efficient 68000 code. That’s why we are stuck with old gcc. Though we may reconsider the new gcc at some point, since bebbo has been actively improving its quality. - isokadded on the 2023-04-13 20:45:29
- 64k Amiga OCS/ECS Electric Lifeforms by Ghostown
- We hope that with this short technical write-up you’ll find the title of this intro to be well justified. Many of the effects in the intro were inspired by well known phenomena in the world of living organisms.
- LogoIn: Uses 3 bitplanes, mostly palette transitions.
- TileMoverA: A cousin of the well known fractal zoomer classic effect. The novelty here is that there’s no single vector field. With the help of external tools we’ve chosen a handful of functions that generate desired vector fields and we switch them on demand. Uses 4 bitplanes. We draw custom shapes onto a single bitplane and use the rest of bitplanes for cheap motion blur approximation.
- WireWorldA: See GameOfLifeA and WireWorldB. This is the first instance of that effect that we decided to expose better later throughout the intro.
- Vitruvian: Same as LogoIn, we added a little bit of sync.
- GameOfLifeA: Probably so called world-first. Watching Rule30 by Andromeda we asked ourselves if we can do better than one dimensional cellular automata on A500. Our two-dimensional cellular automata are calculated using solely Blitter. We translated several automata rules thanks to the method provided by Piotr Polesiuk, who used a SAT solver to determine the settings for a reasonable number of blits that will perform the computations. Uses 4 bitplanes but renders to a single one. As with TileMover other bitplanes are used to leave a trace of previous frames. The CPU is used only to drive Blitter and for horizontal pixel doubling, vertical pixel doubling is done with Copper. We forgot to write the names of game-of-life variants… so there is classic “game-of-life” but also “day and night”, “diamoeba”, “three-four”, “maze” and “stains”.
- SeaAnemone: Uses 4 bitplanes. Some Copper based gradient applied to the background. The effect draws paths of many semi-random walks. With each new step a shape is drawn onto the screen and shape’s size is decremented.
- Weave: Uses 4 bitplanes, single playfield + sprites. This is a very technical effect, not sure if we saw that being explored before. Copper is used to switch between sprite / playfield priority mid-screen, to change sprite horizontal position each-line, and reposition sprites 1 & 2 to reappear on the right. Yeah… there are 10 sprites rendered on each line!
- UVMapA: Uses 4 bitplanes and Copper to apply a nice gradient and perform line doubling. Chunky buffer is heavily scrambled to save on blitter passes in Blitter-based chunky-to-planar. Code that renders the uv-map uses two sets of textures and is completely unrolled for speed. Textures are drawn into respective texture buffers to change them in-flight. UVMap was prototyped using ShaderToy. The shaders were rewritten into a C program to generate uv-maps offline. An extra delta-encoding scheme was applied to each uv-map to make them compress better.
- GrowingTree: The idea is similar to SeaAnemone. With each step there’s a probability that a new path will be created – this simulates branching off. At the end of the path we copy a flower to the screen to finish off the path. After all branches are finished we draw onto the screen hand drawn group names that were converted from SVG format.
- WireWorldB: This is another type of cellular automaton. In contrast to GameOfLife automata this one has more state bits per cell, as it can either be an electron head, electron tail, circuit board (no electron) or empty space. We made the graphics appear nicely on the screen and then enabled 16-color sprites in the mid-screen. The sprite is animated using color-cycling that we extracted from the DRNG chunk of IFF-ILBM format. Some nice sync was added at the end of the effect.
- UVMapB: Same code, different uv-map. Extra sprite is displayed for a while when the vocoder sounds.
- GameOfLifeB: More of the same goodness, but this time only on 3 bitplanes. With the ELECTRIC mask in the fourth bitplane we were able to apply various opaqueness / transparency effects to the background.
- TileMoverB: More of the same goodness.
- Turmites: 2-dimensional Turing machines. These are basically automata that work a little bit like ants. They can leave and sense traces on the ground and make their decision based on the rules stored in their internal small brain. You can read more about them on Wikipedia.
- ScrollingText: Memory optimized text scroller that draws a single line of text every 8 frames or so. That was finished off with a Copper-based foreground color gradient applied at the top and bottom of the screen.
- LogoOut: Same as LogoIn but in the reverse direction.
- LogoIn: Uses 3 bitplanes, mostly palette transitions.
- isokadded on the 2023-04-11 21:25:02
- demotool Amstrad CPC Orgams by Overlanders [web] & Vanity [web]
- Good work guys! Pretty impressive set of tools. Please translate documentation to english to spread the word easier!
- rulezadded on the 2015-10-03 20:55:47
- demo Amiga OCS/ECS Sunglasses at Night by Ghostown & Whelpz [web]
- @lvd: Thanks!
Why not vbcc? I'm more familiar with GCC - as a user and a hacker (not programmer yet). GCC optimizes the code reasonably, has full control over passing function arguments in registers, has great engine for inline assembly and a few other interesting features. I understand some gcc's internals, which helps me to feed right C-code into it to render assembly programming unnecessary most of the time. - isokadded on the 2015-02-10 21:14:42
- demo Amiga OCS/ECS Sunglasses at Night by Ghostown & Whelpz [web]
- Hello everyone! Final release is available! Enjoy watching!
What have we modified compared to party version:
- demo works on standard Amiga 500 with 512 KB chip / 512 KB slow
- most effect were optimized to work well without fast memory
- new effect control system (in spirit of GNU Rocket) was implemented
- inflate decompression routine is used to unpack bitmaps
- replayer was reconfigured to run on vertical blank interrupt
- order of effects was slightly changed
- some minor and major changes and fixes (mostly very technical) - isokadded on the 2015-02-07 10:16:32
- demo Amiga OCS/ECS Sunglasses at Night by Ghostown & Whelpz [web]
- I selfvoted by mistake. I didn't know people are taking it *that* seriously here.
- isokadded on the 2014-09-23 18:57:28
account created on the 2012-10-25 17:47:04