I think that back in 1982 even the designers and engineers of the 64 didn't realise how powerful the machine really was.
@Starredmediasoft4 жыл бұрын
Well I swear that without modern compilers and tools all this magic wouldn't be possible with just one life
@bsdetector69084 жыл бұрын
@@Starredmediasoft compilers? you mean assemblers. No compiler available today could generate 6502 assembly comparable to a talented human's.
@Starredmediasoft4 жыл бұрын
@@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.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 Жыл бұрын
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.
@petrusscott30383 жыл бұрын
After 40 years it is still AWESOME!!
@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_12813 жыл бұрын
This is really cool workshop. I'm from the Spectrum scene, but the principles of making demos are the same. Big respect!
@gabydewilde7 жыл бұрын
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.
@TheUtuber9995 ай бұрын
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.
@VepsianGameDesigner5 жыл бұрын
You are cool guys! On an 8-bit computer, you do something that many people cannot do on modern machines.
@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. Жыл бұрын
Did you say "graphician:" a portmanteau of "graphics" and "technician"?
@HelloKittyFanMan. Жыл бұрын
How can you know how to optimize something without knowing quite what it does?
@ProBloggerWorld6 жыл бұрын
Simply impressive. Thx for sharing the knowledge. This is a great addition to the infamous VIC article.
@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. Жыл бұрын
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-vw9hp3 жыл бұрын
Is there anywhere on the net I can find code examples for different effects? I am teaching myself how to make demos.
@RogelioIturra4 жыл бұрын
I found this and your congress are just AMAZING! THANKS FOR SHARING YOUR KNOWLEDGE! NEW SUB!
@fcycles9 жыл бұрын
I am surprise there is not yet a TED regarding demoscene...
@clarkkent60266 жыл бұрын
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
@ericmasaba98235 жыл бұрын
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.
@yoshi3144 жыл бұрын
@@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.
@ericmasaba98234 жыл бұрын
@@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.
@yoshi3144 жыл бұрын
@@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. Жыл бұрын
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. Жыл бұрын
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!
@frontenbrecher13 жыл бұрын
"..and then you start doing some magic, and if you are good, it fits..."
@jarrad20003 жыл бұрын
Was there ever a final version? If so, were can I find it?
@memes_gbc6743 жыл бұрын
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. Жыл бұрын
"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._
@MassimoHardcrew9 жыл бұрын
Anyone knows the ID of the Song ? Is Amazing :) thanks
@R66Snowy2 жыл бұрын
tedious. I've got a boring job in an office
@jogo200013 жыл бұрын
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?
@TheNvipy6 жыл бұрын
The guy had also a question about code review and good "Agile" practice on c64 ;) Fucking lamers !!!
@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-ps6ne3 жыл бұрын
? synthax error
@CssGamestar12 жыл бұрын
well with 64kb ram you can run battlefield 3 on high resolution and max settings
@dustboxednorth4 жыл бұрын
hahahaha, *no*
@coenraadloubser57684 жыл бұрын
What is the packer used?
@noobtracker3 жыл бұрын
it's the exomizer I think
@MissPeggle13 жыл бұрын
Very interesting!
@dr.ignacioglez.96772 жыл бұрын
I LOVE C64 👍🥂🎩
@icegood198013 жыл бұрын
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...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.
@VttcFan7 жыл бұрын
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.
@ArneChristianRosenfeldt7 жыл бұрын
TXS
@thearchiveable6 жыл бұрын
Skillfull guy.
@piraat66669 жыл бұрын
very trippy
@anyasummermeadow70876 жыл бұрын
Really awesome excellent hacking! Greetz
@boony64 Жыл бұрын
"Do you want to explain git to someone who just learned makefiles" PMSL 🤣🤣
@coenraadloubser57684 жыл бұрын
OMW voice so different on 2x speed
@falkaseltza13 жыл бұрын
interesting
@MrBUESUM3 жыл бұрын
I understand only C64... 😳
@mistormoniteur911211 жыл бұрын
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.
@ArneChristianRosenfeldt7 жыл бұрын
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?
@silkessnurra13 жыл бұрын
Wolfram FTW
@Cream27733 жыл бұрын
...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 ;)
@Cream27733 жыл бұрын
10 Print "Hello": Goto 10 :D
@SolarDrew3 жыл бұрын
Poke 53280,1
@loebkesman3 жыл бұрын
Poke 53281,Peek(53280)
@animes256 жыл бұрын
Weeabos will rule the world
@kduhtdkzrt13 жыл бұрын
Not interesting at all. Integer overflow in variable interresting.
@speedsterh4 жыл бұрын
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