Amiga Tech - Copper Chunky

  Рет қаралды 9,399

Dutch Retro Guy

Dutch Retro Guy

Күн бұрын

In this video, I explore just how far you can take Copper colour reloading and create a Copper Chunky screen. While this program is aimed at OCS/ECS Amiga's, such as the Amiga 500, it will also work on AGA machines.
Note: the program requires 1MB of RAM to run (of which 512KB Chip RAM).
Full source code and more info can be found at powerprograms.nl/amiga/copper...
Timestamps:
0:00 Intro
0:18 Copper Chunky
3:07 Copperlist
4:56 Seven bitplane trick
6:40 AGA workaround
6:55 Copper loops & coordinate conversion
8:00 More on AGA
8:53 Demos using Copper Chunky screens
10:08 Memory use
11:43 Amiga code
13:32 Python code
14:39 Skewing
15:40 Zooming
17:09 Rotation
18:57 Outro
Visit my website: www.powerprograms.nl
Music by Epidemic Sound (www.epidemicsound.com)

Пікірлер: 62
@Daytona675x
@Daytona675x 3 жыл бұрын
I really like your calm way of talking, you could be a good teacher in "real life", thumbs up.
@DutchRetroGuy
@DutchRetroGuy 3 жыл бұрын
Thanks!
@PixelShade
@PixelShade 3 жыл бұрын
Awesome video mate! I always get a big smile on my face whenever I see a new video upload from you. This seriously great! Sharing knowledge like this is so important to Amiga community. Keep up the good work! :D
@DutchRetroGuy
@DutchRetroGuy 3 жыл бұрын
Thanks! I'm hoping these videos will help others who want to code on the Amiga as well :)
@amipal24
@amipal24 3 жыл бұрын
A fascinating insight into utilising the Amiga's hardware for unique effects not even considered by the designers!
@DutchRetroGuy
@DutchRetroGuy 3 жыл бұрын
Yeah, the Copper rocks for this kind of stuff :)
@ArneChristianRosenfeldt
@ArneChristianRosenfeldt 6 ай бұрын
That is why you better avoid custom chips and CISC. I also despise complicated interrupt controllers. Let the software devs decide!
@ninjaalex-yf5io
@ninjaalex-yf5io Жыл бұрын
bring back so many memories when writing demos and discovering the copper's bugs by yourself. We didn't have internet back then...
@DutchRetroGuy
@DutchRetroGuy Жыл бұрын
Yeah, these things were a lot harder when you didn't have all the modern tools we have today!
@arthurdaly3497
@arthurdaly3497 10 ай бұрын
So weird. I was just re-remembering about this possibility. Well actually I first thought about this possibility back in about 1987, after I wrote an assembler loop where I could see that I could change the colout pallete after about every 4 pixels horizontally
@DutchRetroGuy
@DutchRetroGuy 10 ай бұрын
I think I first heard of the term when I saw the readme for one of the 3D Copper demo’s I saw back around 2000. It’s an interesting effect for sure.
@Archimedes75009
@Archimedes75009 3 жыл бұрын
Great work, and great job explaining all this. Thank you.
@TonimanGalvez
@TonimanGalvez Жыл бұрын
Really impressive, I am amazed by your clevernes. Well done.
@Steril707
@Steril707 3 жыл бұрын
Good stuff as always, Roony.
@heidirichter
@heidirichter 3 жыл бұрын
This was fantastic, great work! I love seeing and hearing about the various ways the Amigas uniquely flexible chipset could be used to generate all sorts of interesting effects. Would you consider a later video follow-up to this regarding what could be done on AGA, as I feel AGA is often overlooked and I'm really curious what could be done with the changes to the chipset, combined with the faster processors.
@DutchRetroGuy
@DutchRetroGuy 3 жыл бұрын
Thanks! I am considering an AGA version as well, yeah. But if I do so, it'll be a while yet - I don't really want to do back-to-back videos with the same effect in them.
@heidirichter
@heidirichter 3 жыл бұрын
@@DutchRetroGuy Fair enough, that's a good call, not only would it be less interesting for you, but it would also be less interesting for your audience to see this followed up too soon with an AGA version.
@ilpojaaskelainen1552
@ilpojaaskelainen1552 2 жыл бұрын
Great video! Copper chunky on A500 had been puzzling me too! Didn't see the bpl5dat & bpl6dat coming. Thumbs up for Troy's question: So, what is the final width record on AGA? Alien Breed 3D achieved 96 pixels (2x2) in width. Perhaps AGA effect could have something to do with texture mapping or so?
@naviamiga
@naviamiga 3 жыл бұрын
So interesting to see how these effects are put together. And they look great in motion. Great video.
@DutchRetroGuy
@DutchRetroGuy 3 жыл бұрын
Glad you liked it!
@wasabinator
@wasabinator 2 жыл бұрын
This was incredibly fascinating and so well presented!
@DutchRetroGuy
@DutchRetroGuy 2 жыл бұрын
Thanks!
@ScoopexUs
@ScoopexUs 2 жыл бұрын
Very nice and detailed. :) Keep up the good work!
@DutchRetroGuy
@DutchRetroGuy 2 жыл бұрын
Thanks :)
@drzeissler
@drzeissler 2 жыл бұрын
This is very cool stuff, I would love to see something like this for some old and classic demo-effects on a 68060 Macintosh LC.
@DutchRetroGuy
@DutchRetroGuy 2 жыл бұрын
Thanks for the compliment. I'm afraid that I'm not into classic Mac development, but would be interesting to see some demos on there for sure :)
@drzeissler
@drzeissler 2 жыл бұрын
@@DutchRetroGuy demoscene-demos-macintosh Did not find early demoscene effects on these for my LC like rasterbars, starfield, copperbars, smooth scrolling etc. so I thought about using existant 68k code and give it a try on my LC. But I don't have experience on this.
@DutchRetroGuy
@DutchRetroGuy 2 жыл бұрын
​@@drzeissler I wish I could help you with it, but I don't even know if there is a classic Mac community. I can tell you that Amiga code with these kind of tricks can't be used as the hardware is completly different outside of the processor :(
@drzeissler
@drzeissler 2 жыл бұрын
@@DutchRetroGuy I know...
@DutchRetroGuy
@DutchRetroGuy 2 жыл бұрын
@@drzeissler yeah, sorry - if you're interested in coding assembly it's obvious you already know this.
@KevinSaunders
@KevinSaunders 3 жыл бұрын
Great video and effects, nicely presented also :)
@DutchRetroGuy
@DutchRetroGuy 3 жыл бұрын
Thanks!
@daweiisgood2392
@daweiisgood2392 2 жыл бұрын
I hope you are ok. Looking forward to see what you bring next... The Amiga (pick model) is such a wonderful machine. :)
@DutchRetroGuy
@DutchRetroGuy 2 жыл бұрын
Thanks, I'm close to figuring out what I want to show next ;)
@lolotoobo06
@lolotoobo06 2 жыл бұрын
Really interesting. thanx
@amanloop
@amanloop 3 жыл бұрын
another great vid m8!
@DutchRetroGuy
@DutchRetroGuy 3 жыл бұрын
Thanks :)
@arthurdaly3497
@arthurdaly3497 10 ай бұрын
Just wow. I knew all of this was probably possible and did a few bits of programming to investigate it back in the day, but you just went and did the whole thing. I blame my ADHD. I was like "yeah I know I can do that already, so I can't be bothered finishing it". I never even heard the term copper chunky pixel mode used by anyone else before this video, I thought it was something I'd come up with 🤣which noone else would ever know about
@DutchRetroGuy
@DutchRetroGuy 10 ай бұрын
Figuring out these kind of techniques on your own is one of the great things about the old platforms. Great stuff that you made something like this yourself back in the day. As for not finishing, you should see my AmigaDev directory on my PC - so many unfinished or half baked ideas 😆
@musicaldude9429
@musicaldude9429 24 күн бұрын
copper chunky - sliver light
@djaccount5458
@djaccount5458 11 ай бұрын
Nice channel
@DutchRetroGuy
@DutchRetroGuy 11 ай бұрын
Thanks :)
@djaccount5458
@djaccount5458 11 ай бұрын
I started write mario kart in javascript. I need solve problem, how make procedure of drive opponents kart. Today i will go to bookstore. Maybe i will find a clue..
@stephenkennedy6358
@stephenkennedy6358 Жыл бұрын
I realize the amiga had a leg up over the PC's of the day like the blitter and copper and various ham mode even though VGA had a slightly higher resolution of 640x480 and 256 colors before AGA came out. My question is at what time did the pc actually catch up and surpass the amiga in the graphics department.
@DutchRetroGuy
@DutchRetroGuy Жыл бұрын
That’s an interesting question because it really depends on how you look at it. When it comes to speedy 3D graphics for instance, you’re looking at a much earlier date than for 2D stuff. Considering only 2D for a moment, VGA was released in 1987 and could outdo the Amiga in terms of static images immediately (it may not have had HAM mode, but it did have many more shades of each colour to choose from). When looking at moving GFX (i.e. action games & demos), the Amiga held its own for longer. When I look at it myself, I’d argue you started seeing more impressive action games around 1990 and more impressive demos a little while after that (1993 perhaps?) - though there are always exceptions. I’m less aware of the PC demo scene so it may be that there’s better stuff from the early periods than I realise though! Looking at the very best (say a game like Lionheart), that wasn’t easy to beat - though I’d say a Super VGA enabled PC probably can outdo it, even though I’ve not seen examples of PC games like that from the era. So, it’s complicated 😅
@stephenkennedy6358
@stephenkennedy6358 Жыл бұрын
@@DutchRetroGuy I was referring to 2d. I realize the amiga lacks 3d.
@axilmar254
@axilmar254 2 жыл бұрын
Very nice video! congratulations. Here is my question: Can higher resolutions be used in order to simulate smaller pixels? Can pixel lists be created on the fly from in-memory sprites that are not copied, but only their visible pixels are placed into copper lists? In this way, a screen could have tens or even hundreds of sprites, with many many colors. An algorithm would traverse pixels by the z coordinate (assuming z goes into the screen), and the top sprite's pixel would be put into the copper list; the display could be divided into a grid, and sprite stacks can exist on a grid basis, i.e. each rectangle on the grid would have its own sprite stack, thus not all sprites should be considered at once for every pixel. The algorithm that builds the copper list simply goes through the grid, and for each pixel it goes through the sprite stack, retrieving the pixel value from the top sprite, except if the pixel is transparent, then going to the next sprite etc. Sprites should be sized by powers of 2 so as that bit shifting can be used to find the appropriate pixel in each sprite. Or sprites could be made out of 8x8 or 16x16 pixel blocks. Sprites could have arrays of continuous pixels, so as that the CPU simply loops over the parts of the scanlines that are filled with data. The sprite data would be fixed in memory, so there would be no need to blit them to the screen. The reading of sprite pixels could be done by the cpu on fast ram, then create the copper list on chip ram at each frame. Double buffering could be setup so as that while the copper shows the current copper list, the cpu prepares the next copper list. Upon vblank, copper lists are swapped out. If this could be done quick enough by the cpu, and combined with palette changing, then theoretically the Amiga could do hundreds of sprites and scrolling layers with thousands of colors without the blitter. the 68000 is not that fast probably, but it would be interesting to see the practical limit of this approach.
@DutchRetroGuy
@DutchRetroGuy 2 жыл бұрын
Thanks for your comment. I'll try to answer your questions. The first question: I'm afraid this technique can't be improved by changing resolution. The pixel size limitation is a consequence of the limits of the Copper (it can only change colours so fast), not the chosen resolution. In higher resolutions, the Copper would get fewer DMA slots, so you'd end up with fewer colour changes and bigger 'pixels'. You could perhaps create some form of mask to create the illusion of smaller pixels, but that would negatively impact visual quality in other ways. As for your second question, assuming I understood it correctly, that is essentially what I'm doing in the Free Form Sprite Layer video: all the background pixels there are pushed via Sprites, most of which have their pixels set directly through the Copper. This has drawbacks - it limits you to 4 colours because of Copper speed limitations, but you are free to set those pixels however you like (within the 2 bitplane limit). You are correct you can use this method to create 'infinite' sprites, but in reality this can be done much cheaper by just using the Blitter and/or CPU to change pixels in the existing bitplane setup. Sprite GFX aren't faster to change in memory than any other type of GFX, so you'd run out of speed quite quickly. The Amiga's Chip RAM bus is limited to 7 MB/second on the top end - and sadly this holds for changing Copperlists or Sprite data as well, so you'll always be limited. Regarding the colours, you can change colours with the Copper (or CPU), but the amounts you're talking about here can't be done on the Amiga HW. For one, you can only change 57,5 colours per scanline via the Copper at the absolute most, for another even if this limit didn't exist, you'd still be limited to the 7 MB/second speed limit on Chip RAM. Pushing thousands of colours in the way you're suggesting will sadly exceed that by a wide margin. However, it is possible - though extremely finicky and not at all practical in any sense of the word - to use the Copper and CPU together to change more colours per scanline. Doing so will obviously use up many/most of the CPU cycles in a scanline, so you're not going to be using this in animation or say a game, but it is possible. Theoretically, you can expect to roughly double the number of colours changed per scanline this way, but only if no bitplanes are displayed. If bitplanes are displayed, the CPU will start losing cycles because the bitplane/Copper combo will steal some/most/all of them and thus fewer colours can be changed. AGA would alleviate this to some degree, but even there you'd still be limited and in all practical sense this method would use so many CPU resources that anything other than static images becomes very questionable to achieve. Hope this answers some of your questions :)
@axilmar254
@axilmar254 2 жыл бұрын
@@DutchRetroGuy Wow thanks for the quick reply! Really informative...
@DutchRetroGuy
@DutchRetroGuy 2 жыл бұрын
@@axilmar254 you’re welcome 👍
@Mute67
@Mute67 2 жыл бұрын
Does this so called 7 bitplane mode work in high resolution mode i.e. 640x400/512?
@DutchRetroGuy
@DutchRetroGuy 2 жыл бұрын
Good question, I don't know. I might have to test that out now ;) However, even if it does work in hires, it won't help effects like these as these effects are limited by the Copper and not the resolution of the screen.
@Mute67
@Mute67 2 жыл бұрын
@@DutchRetroGuy I'm just curious if it could be used in higher resolution. I've been tinkering with the copper in AMOS Pro to get more colours per scanline.
@DutchRetroGuy
@DutchRetroGuy 2 жыл бұрын
@@Mute67 I tested this out because I really wanted to know and the change to the code is literally just one value. Sadly, it doesn't work. If you set 7 bitplanes and hires, the screen is just blank :(
@Mute67
@Mute67 2 жыл бұрын
@@DutchRetroGuy Ok interesting.. thank you for your answer :)
@random_precision_software
@random_precision_software 6 ай бұрын
Is that python on the Amiga?
@DutchRetroGuy
@DutchRetroGuy 6 ай бұрын
No, I cross develop using my PC, so that is PyCharm on Windows 10. Technically there is nothing stopping you from running this on Amiga tough, assuming Python 3 and the modules I use are available on it.
@random_precision_software
@random_precision_software 6 ай бұрын
@@DutchRetroGuy I don't know python I use C# now and C 30 years ago.. Borland Turbo C it was lol. Pity I can't use C# on the Amiga?
@DutchRetroGuy
@DutchRetroGuy 6 ай бұрын
@@random_precision_software I don't think there's C# for the Amiga, though I could be wrong.
@fundi_mike
@fundi_mike 3 жыл бұрын
Another alternative to the "pc" is to use python on the amiga.
@DutchRetroGuy
@DutchRetroGuy 3 жыл бұрын
True, though the usefulness of cross-assembly is lost that way. Plus, the DMA timing issues are so much easier to find and fix using an emulator. I'd highly recommend using a PC/Mac as your Amiga development environment. You'll get stuff done a lot quicker and easier than sticking to original HW. That said, it's certainly possible to do all I did here on the Amiga itself. It's just not how I program these things ;)
Amiga Tech - Dual Layer Graphics
20:36
Dutch Retro Guy
Рет қаралды 5 М.
Amiga Tech - CPU Assisted Blitting (A1200)
11:11
Dutch Retro Guy
Рет қаралды 7 М.
[Vowel]물고기는 물에서 살아야 해🐟🤣Fish have to live in the water #funny
00:53
SHE WANTED CHIPS, BUT SHE GOT CARROTS 🤣🥕
00:19
OKUNJATA
Рет қаралды 3,1 МЛН
Can You Draw The PERFECT Circle?
00:57
Stokes Twins
Рет қаралды 41 МЛН
didn't want to let me in #tiktok
00:20
Анастасия Тарасова
Рет қаралды 8 МЛН
The chronological history of AmigaOS.
16:42
Proteque-CBN
Рет қаралды 4 М.
Looking back at Devpac 3 - Amiga Assembler, Linker & Debugger
20:54
Bit Blit Algorithm (Amiga Blitter Chip) - Computerphile
26:02
Computerphile
Рет қаралды 109 М.
The Rarest IBM PC Clone in the World!
43:10
Usagi Electric
Рет қаралды 40 М.
Why was the Amiga so awesome?
27:18
Dave Poo 2
Рет қаралды 103 М.
The Amiga CD32 - It promised so much and yet fizzled and died - why?
15:59
Using a Commodore 64 on the modern internet!
21:08
Veronica Explains
Рет қаралды 690 М.
How I Created the Perfect NES Sound Chip
11:50
KYLXBN (Kyle)
Рет қаралды 1,9 МЛН
Amiga Samplers : Budget dance music in 1990
23:00
debuglive
Рет қаралды 1,4 МЛН
Atari Falcon,Hatari and Videl graphics
11:08
Commodore is not the only fruit
Рет қаралды 4,4 М.
Help Herobrine Learn Piano with Saitama Sensei #minecraftshorts
0:51
BigBlockCraft
Рет қаралды 31 МЛН
Escape Nextbots Rosalia And Obunga Find Cake #garrysmod
0:42
BizarroTube GMod
Рет қаралды 16 МЛН
🤬🐨THEY WANT TO HURT THE KID #ZOONOMALY 🐨🤬
0:43
CATNAP
Рет қаралды 5 МЛН