28c3: Behind the scenes of a C64 demo

  Рет қаралды 71,947

28c3

28c3

Күн бұрын

Пікірлер: 67
@rossdtool
@rossdtool 5 жыл бұрын
I think that back in 1982 even the designers and engineers of the 64 didn't realise how powerful the machine really was.
@Starredmediasoft
@Starredmediasoft 4 жыл бұрын
Well I swear that without modern compilers and tools all this magic wouldn't be possible with just one life
@bsdetector6908
@bsdetector6908 4 жыл бұрын
@@Starredmediasoft compilers? you mean assemblers. No compiler available today could generate 6502 assembly comparable to a talented human's.
@Starredmediasoft
@Starredmediasoft 4 жыл бұрын
@@bsdetector6908 well, actually cross asm are called compiler, maybe because despite they generate 1:1 code they also have some features that allow to generate asm code with some script
@jonnyj.
@jonnyj. 3 жыл бұрын
@@Starredmediasoft Yes, but there is literally no mainstream compiler in existence that can generate compiled code as efficiently for a 6502 as a highly skilled asm programmer. Its why c64 demos are so insanely impressive
@ProBloggerWorld
@ProBloggerWorld Жыл бұрын
I wouldn't say powerful. Capable, if used creatively by software, is better in my point of view. Without proper knowledge of the technical background of an effect, they can look rather dull. For example, many $d011 trickeries started as bugs, and people tried to find a stable way to recreate the accidentally caused effects (VSP, FLD). It took quite some time to find out what you could do with an "error" called Line Crunch ($d011). Also, many effects were heavily inspired by the Amiga and re-engineered on C64. Another thing is that today's extremely impressive demos could only be done in a reasonable amount of time with cross-development. Tooling got better. Maybe the Atari ST was the last machine that opened new possibilities simply by using non-obvious software hacks to tweak the hardware; the Atari ST design is heavily inspired by the C64 design, and maybe that's why.
@petrusscott3038
@petrusscott3038 3 жыл бұрын
After 40 years it is still AWESOME!!
@HelloKittyFanMan.
@HelloKittyFanMan. Жыл бұрын
Yes, THANK YOU! Because even up here at the end of 2023 Land I believe this video from just over a decade before is still pretty current! But look at how many really great C64 demos have been made since 2012 there! I wonder even what other hair-raising techniques have been discovered and developed in this decade!
@aki_128
@aki_128 13 жыл бұрын
This is really cool workshop. I'm from the Spectrum scene, but the principles of making demos are the same. Big respect!
@gabydewilde
@gabydewilde 7 жыл бұрын
To give an idea of manual compression. Take the bit of code shown at #28:58 it repeats BD or LDA and 8D or STA each followed by 2 bytes that make up the address. Since this is self modifying code the addresses are changed every time it runs. The initial values are not necessary as there is code that can write those values inthere. All you would need is a repeating BD ?? ?? 8D ?? ?? which can just be BD 8D BD 8D BD 8D which is "easily" compressed to a fill loop that fills 900A to 910A with BD 8D. You then try the different approaches available. 1) let the cruncher figure it out 2) put BD 8D as default values then let the cruncher figure it out and 3) find enough 2 byte patterns to justify writing your own loop. Trying those 3 you look at size vs not having default values. 97% of the time you find the effort produced an unproductive non result and try the next "trick". If you have enough barely productive tricks they can add up to something significant. The bit of code at #28:10 looks exactly the same but there is only a single byte behind the 91 or STA instruction. The 2 byte fill wouldn't work there, it would have to skip 4. You could manage both by first filling the whole area with BD then doing a 5 byte skipping filler for the #28:59 and a 4 byte skip for #28:10.
@TheUtuber999
@TheUtuber999 5 ай бұрын
5:43 Actually, it was never recommended to turn the disk... not for SSDD (single side/double density) diskettes that were used with the 1541 disk drive. I had a notcher that allowed a floppy to be converted to a "flippy," but there was the caveat that not all manufacturers used the same standards as far as the ferrite coating on both sides... and there was also the possibility that write operations to one side could affect the integrity of data stored on the opposite side, depending on the magnetic flux permeability of the disk. It usually wasn't a problem, not in the short term at least... but you basically assumed all the risk of potential data loss if you notched your own diskettes and wrote to both sides.
@VepsianGameDesigner
@VepsianGameDesigner 5 жыл бұрын
You are cool guys! On an 8-bit computer, you do something that many people cannot do on modern machines.
@Boxing_Gamer
@Boxing_Gamer Жыл бұрын
Yes I'm using modern game engines and they can make better graphics on a c64 than I can on modern machines 😂
@HelloKittyFanMan.
@HelloKittyFanMan. Жыл бұрын
Did you say "graphician:" a portmanteau of "graphics" and "technician"?
@HelloKittyFanMan.
@HelloKittyFanMan. Жыл бұрын
How can you know how to optimize something without knowing quite what it does?
@ProBloggerWorld
@ProBloggerWorld 6 жыл бұрын
Simply impressive. Thx for sharing the knowledge. This is a great addition to the infamous VIC article.
@HelloKittyFanMan.
@HelloKittyFanMan. Жыл бұрын
WOW, I had never heard of farming out some computations from a Commodore 64 to a 1541 or others until now! How would it hold up with a 71 or 81 as the only drive, or some other one like a 1001, 4040, 8250, or 9090 (HDD) hooked up through the user port with an interface? And when you mention mechanics are you saying that it uses the floppy's stepper motor or the hard's stepper or voice coil in the process? Which sort of "mechanics" are you talking about, and why? And by a hard disk, would even a CMD or Lieutenant Kernal work?
@HelloKittyFanMan.
@HelloKittyFanMan. Жыл бұрын
Wow, hard to imagine that picture of the lady you're talking about as being hand-drawn! When you mentioned cross-dev. I was thinking that part of that was for using an existing photo and just reducing its color depth and clearing out the unwanted background and things, then reducing the color depth and translating it from Windows/Mac/Linux to C64. But NO, oh my gosh! Do you guys do _some_ of the somewhat photo-quality pieces that way, though?
@Marius-vw9hp
@Marius-vw9hp 3 жыл бұрын
Is there anywhere on the net I can find code examples for different effects? I am teaching myself how to make demos.
@RogelioIturra
@RogelioIturra 4 жыл бұрын
I found this and your congress are just AMAZING! THANKS FOR SHARING YOUR KNOWLEDGE! NEW SUB!
@fcycles
@fcycles 9 жыл бұрын
I am surprise there is not yet a TED regarding demoscene...
@clarkkent6026
@clarkkent6026 6 жыл бұрын
because demoscene is way too objective, full of specs and facts about actual genius coding exploiting 30 year-old-hardware to its maxium potential, alongside creating a multimedia piece of art
@ericmasaba9823
@ericmasaba9823 5 жыл бұрын
Indeed, it was such an amazing time and moment. One has to wonder what could be achieved today with that mindset of pushing every last cycle out of operations. What kind of solutions can be achieved now, especially as we need to get more performance out of clusters. It is perhaps even possible to consider some previously thought impossible calculations. I came from that 1970s/1980s world of limited 8-bits and 1Mhz. In 2003, I realised that some very largescale optimisation problems could be solved by using heuritistcis and genetic algorithms. Indeed, the very idea for Texxi (the basis of Uber etc) was originally a credit contagion trading idea for a Hedge Fund (for which I was hired to work at in Connecticut). I had realised that ride-sharing matching was the same as finding matches to companies that would go bust in a housing crash, specifically from Mortgage Backed Securities. Now we can use spare computer cycles to calculate the best way to group as many people into as few vehicles as possible. This is the basis for a whole new type of currency, since provable work can be done to reduce congestion and stored as value in a darkweb blockchain.
@yoshi314
@yoshi314 4 жыл бұрын
@@ericmasaba9823 i doubt it. the things achieved in demoscene are very specific hack sfor very specific use cases. it would be hard to implement for more generic approach. but i would like people care about optimized code. to some degree this is still a case in gaming consoles and embedded space.
@ericmasaba9823
@ericmasaba9823 4 жыл бұрын
@@yoshi314 The mindset needed to achieve optimisation with limited equipment is always going to come in handy somewhere. Real Engineering is full of tricks and compromises to achieve the impossible. Concorde used the position of fuel in the tanks to achieve Centre of gravity balancing as the craft transitioned from subsonic to supersonic, moving the centre of pressure. This allowed the pilots to "trim" the aircraft without inducing extra drag from control surfaces.
@yoshi314
@yoshi314 4 жыл бұрын
@@ericmasaba9823 it only comes in handy if it's beneficial. i'd agree in the engineering department. in software engineering, though. not so much unless it cuts significantly into the costs.
@HelloKittyFanMan.
@HelloKittyFanMan. Жыл бұрын
Is it also likely that some of these C64 demos weren't thought of how to make in the '80s, or weren't even possible then, also because in the cross-dev. work, you might also be using some routines found in modern GPUs and then translating those into simplified versions for the C64, you couldn't have figured out how to make on your own for the 64; you had to completely adopt from the PC or Mac GPU and then translate/port to C64 (while slimming them down too, of course)?
@HelloKittyFanMan.
@HelloKittyFanMan. Жыл бұрын
Interesting that a lot of this is discovering how to use chip flaws to your advantage, which is why those are things that even Commodore or MOS didn't know were possible back then! I thought everything that was programmable was there by design, but... nope! Very cool!
@frontenbrecher
@frontenbrecher 13 жыл бұрын
"..and then you start doing some magic, and if you are good, it fits..."
@jarrad2000
@jarrad2000 3 жыл бұрын
Was there ever a final version? If so, were can I find it?
@memes_gbc674
@memes_gbc674 3 жыл бұрын
the demo is called error 23, im sure with a bit of youtube searching you'll be able to find a full working version
@HelloKittyFanMan.
@HelloKittyFanMan. Жыл бұрын
"I'm a coder for a reason." Well yeah, but everything happens and exists for a reason, even if it's accidental or otherwise not noteworthy. What would be noteworthy is being that for a _purpose._
@MassimoHardcrew
@MassimoHardcrew 9 жыл бұрын
Anyone knows the ID of the Song ? Is Amazing :) thanks
@R66Snowy
@R66Snowy 2 жыл бұрын
tedious. I've got a boring job in an office
@jogo2000
@jogo2000 13 жыл бұрын
First of all, very impressed with the demo and the talk. This guy has the right to call himself Ninja :) What's up with the question about version control in the end? After this display of imagination, determination and mad programming skill you want to bash these guys for using Subversion? Really?
@TheNvipy
@TheNvipy 6 жыл бұрын
The guy had also a question about code review and good "Agile" practice on c64 ;) Fucking lamers !!!
@HelloKittyFanMan.
@HelloKittyFanMan. Жыл бұрын
Hmm, I wonder how many videos of discussions like this were done by groups like you in the last decade+, but anyway, I hope it was decided that several chairs that could've been right in front of and by the cameras would be left out of place, just so we wouldn't have doofs standing around in front of them!
@HK-ps6ne
@HK-ps6ne 3 жыл бұрын
? synthax error
@CssGamestar
@CssGamestar 12 жыл бұрын
well with 64kb ram you can run battlefield 3 on high resolution and max settings
@dustboxednorth
@dustboxednorth 4 жыл бұрын
hahahaha, *no*
@coenraadloubser5768
@coenraadloubser5768 4 жыл бұрын
What is the packer used?
@noobtracker
@noobtracker 3 жыл бұрын
it's the exomizer I think
@MissPeggle
@MissPeggle 13 жыл бұрын
Very interesting!
@dr.ignacioglez.9677
@dr.ignacioglez.9677 2 жыл бұрын
I LOVE C64 👍🥂🎩
@icegood1980
@icegood1980 13 жыл бұрын
Let me disagree with you. Firstly, question could be rather from that point of view like "Wow! How did you do that and how better for me to do smth like that, because my project in very early organization stage" Secondly, don't see anything weird even for guys who know all registers and instructions "by heart" to use version control because 1) It's an essential thing for someone else to understand your code too. 2) Essential part of PHD thesis could be done by simply revision control comments.
@gk...
@gk... 7 жыл бұрын
16:32 Ergibt doch keinen Sinn. Was im Interrupt passiert, bestimme ich doch, und der Stack ist LIFO, und alles hat seine Ordnung. Da muss ich nichts zusätzlich retten. Das einzige, worauf ich achten muss, ist, dass der Stack nicht zu voll wird.
@VttcFan
@VttcFan 7 жыл бұрын
Guten Abend. Es ergibt Sinn. Zu Beginn eines Interrupts wird immer der aktuelle Wert des Programm-Counters, sowie das Status-Register auf den Stack geschoben. Wenn du aber den Stack gerade für was anderes benutzt, also z.B. eine Sinus-Tabelle wird diese Tabelle mit diesen "falschen" Daten überschrieben. Am Ende des Interrupts holt sich das Programm per RTI-Instruktion den PC uns das S-Register vom Stack zurück. Lässt aber logischerweise die falschen Daten einfach stehen und erhöht nur den Stackpointer um 3.
@ArneChristianRosenfeldt
@ArneChristianRosenfeldt 7 жыл бұрын
TXS
@thearchiveable
@thearchiveable 6 жыл бұрын
Skillfull guy.
@piraat6666
@piraat6666 9 жыл бұрын
very trippy
@anyasummermeadow7087
@anyasummermeadow7087 6 жыл бұрын
Really awesome excellent hacking! Greetz
@boony64
@boony64 Жыл бұрын
"Do you want to explain git to someone who just learned makefiles" PMSL 🤣🤣
@coenraadloubser5768
@coenraadloubser5768 4 жыл бұрын
OMW voice so different on 2x speed
@falkaseltza
@falkaseltza 13 жыл бұрын
interesting
@MrBUESUM
@MrBUESUM 3 жыл бұрын
I understand only C64... 😳
@mistormoniteur9112
@mistormoniteur9112 11 жыл бұрын
Awesome technical capabilities aside, what annoys me about demos is that its always void of meaningfull content... it's about nothing, most of the time. It must mean I am not, never have been, and never will be a geek, in the true sense of the word.
@ArneChristianRosenfeldt
@ArneChristianRosenfeldt 7 жыл бұрын
At least mega-demos are typically judged by flow. Of course, you are right. Just compare second reality with doom. Came out within a year, same system, same size on disk (for shareware Doom). Do you like art or music?
@silkessnurra
@silkessnurra 13 жыл бұрын
Wolfram FTW
@Cream2773
@Cream2773 3 жыл бұрын
...if I wanna make a good demo on C-64, I would use a C-64...not a PC with xxx Ghz. Celebrate the C-64 and do not use shortcuts... the only way to understand the process of a demo and the skills I have ;)
@Cream2773
@Cream2773 3 жыл бұрын
10 Print "Hello": Goto 10 :D
@SolarDrew
@SolarDrew 3 жыл бұрын
Poke 53280,1
@loebkesman
@loebkesman 3 жыл бұрын
Poke 53281,Peek(53280)
@animes25
@animes25 6 жыл бұрын
Weeabos will rule the world
@kduhtdkzrt
@kduhtdkzrt 13 жыл бұрын
Not interesting at all. Integer overflow in variable interresting.
@speedsterh
@speedsterh 4 жыл бұрын
I understand what you mean. The lecture was a bit too generic and no given effect was detailed as to how it was programmed. I'm left hungering for more
How the Demo Scene Works!
30:55
The 8-Bit Guy
Рет қаралды 495 М.
진짜✅ 아님 가짜❌???
0:21
승비니 Seungbini
Рет қаралды 10 МЛН
«Жат бауыр» телехикаясы І 26-бөлім
52:18
Qazaqstan TV / Қазақстан Ұлттық Арнасы
Рет қаралды 434 М.
Wednesday VS Enid: Who is The Best Mommy? #shorts
0:14
Troom Oki Toki
Рет қаралды 50 МЛН
25c3: The Ultimate Commodore 64 Talk
1:01:15
Christiaan008
Рет қаралды 153 М.
Life at Commodore (Act II) - Bil Herd
1:15:58
Vintage Computer Federation
Рет қаралды 81 М.
FairLight - 1337 (C64 Demo)
15:32
FairLight - Home of the Real Crackers
Рет қаралды 42 М.
The Most Powerful Computers You've Never Heard Of
20:13
Veritasium
Рет қаралды 11 МЛН
Five bad Commodore 64s. One hour. All fixed!
57:06
Adrian's Digital Basement
Рет қаралды 121 М.
27c3: Reverse Engineering the MOS 6502 CPU (en)
51:57
Christiaan008
Рет қаралды 444 М.
Story of Commodore from the Computer Engineers' Perspective
1:03:40
38911 Bytes Free? Commodore 64's BASIC RAM
29:57
8-Bit Show And Tell
Рет қаралды 41 М.
진짜✅ 아님 가짜❌???
0:21
승비니 Seungbini
Рет қаралды 10 МЛН