Soil by Alcatraz [web]
`----- - --- ---------?\___/?\/zS!?\___/?\/--o Alcatraz | `----- - --- ------ -----\___/?\/!?\___/?\/--o | release name: Soil | type: Amiga 500 - 40k intro | release date: 19.01.2024 | | code + music: Virgill | gfx: Critikill | | Amiga ASCII: NE7 | | rendering worlds, needs +512k to run | | | Contact us @ PLK 555-NASE | | I (Virgill) embarked on a delightful | 8-week journey rekindling my coding | skills on the Amiga. After a whopping 33 | years, my mind was practically a blank | slate. It all began when I pondered if a | routine, akin to my Windows 4k intro | "Xorverse," could somehow find a home on | the Amiga. Excited, I fired up the | fantastic VScode-Amiga-debug environment | from Abyss, only to hit a snag - the | good old Amiga could only handle | rendering a maximum of 2 lines of | graphics for those xor algorithms per | frame. | | Undeterred, I decided scrolling could be | a solution, and that's when the real | challenges surfaced. How on earth do I | create a copperlist? What's the secret | to waiting for the beam in the lower | part of the screen? And how in the world | do I turn the graphics upside down? Ah, | there's a modulo register; let's just | brute force it until it looks good. | | Thinking I could turn this into a | complete intro, I needed a music player. | Choosing Aklang and LSP seemed like a | no-brainer, but boy, it gave me more | grey hairs than I anticipated. Shoutout | to Platon42 and Leonard for coming to my | rescue, helping me run it smoothly. And | yes, I even had to dabble in assembler | to coax a beat counter out of LSP, | bringing back the basics of 68000 | assembly. | | Next up on the list: sprites. It | couldn't be that hard, right? Wrong! | Creating data structures for sprites | turned out to be a headache, courtesy of | Commodore. I longed for the simplicity | of the C64. Still, I somehow managed to | showcase a spaceship, invaders, and a | border. | | Enter Critikill, whose involvement | injected new life into the project. His | fantastic graphics and assets became a | tremendous source of inspiration. Thanks | a bunch, mate! | | Now, it was time to tackle the blitter, | a step that filled me with awe. | Brute-forcing blitter minterms | (resulting in the fire-fx) was the | initial approach until Leonard | enlightened me on an easier way to | calculate them. Blitting those bubbles | ensued, discovering the comfort of | interleaved bitplanes mode. One blit per | bubble ΓÇô how comfy! Crafting the | copperlist for those looping bitplanes | in two speeds took a week of logic. | Blitting over the repeating bitplane | borders? Another week :) | | The sine part threw another challenge my | way. In C, plotting many dots wasn't | feasible, so back to asm it was. Speed | increased, but occasional jerky frame | drops persisted. Thanks to Platon for | the hint on the CIA player and how to | fix the waitVBL routine! | | I could share more, like the | satisfaction when a simple fade routine | finally worked, or the art of filling | the remaining 4k with a speech sample | when coding fatigue set in. | | Major kudos to the insane Amiga coders | who've mastered every bit and trick in | this machine. It's downright crazy hard! | | Special thanks to: | | Soundy for the quick gradientmaster | update. | Magic for testing on real hardware. | Nosferatu, Platon, Dan, Ok3anos for | helpful tips. | Noname, Hellfire, Artlace, and possibly | others I forgot ΓÇô you know who you are! | _ .:! <----- ----- - - - - - ----- ----\/----' ___________ /\ \ |_____ / \ ______ ______________ \ | | _______ / \ | /__________ _______| / __\ | |/ ____// \| | __ \\ | ___ / / \___ | | Z___/__ | _| Z/ /_\___ |___Z/ / / Z/ | |_ / | |_ /_____/ Z/ !/ ______/--. / / |_____/_______/ |_____/ /\ !___/\____| Z/ | /______/\______!NE7 / \`--/ \______! /____________! /________________\
[ back to the prod ]