Watching YouTube on a Commodore Pet

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 เม.ย. 2022
  • This video shows a way to watch TH-cam videos on a 40-year old Commodore Pet, at about 30 fps.
    Link to the details on how to approximate a bitmap to a character set: • Petscii Art 2.0: Emula...
    Here's a link to the circuit simulator: kretsim.se
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 1.8K

  • @mjschuelke
    @mjschuelke 2 ปีที่แล้ว +2197

    I don't know what's more impressive: the technical achievement, or the amazingly clear and detailed explanation in the video. I'ts been wonderful to watch.

    • @fulkonto1222
      @fulkonto1222  2 ปีที่แล้ว +74

      Oh, thank you very much!

    • @matthewellisor5835
      @matthewellisor5835 2 ปีที่แล้ว +13

      @@mattiasw.5846 I was waiting for it too.

    • @speedsterh
      @speedsterh 2 ปีที่แล้ว +13

      Not many people can actually grasp the effort put into the project to make it possible. Congrats to the author !

    • @CanadianBakin42O
      @CanadianBakin42O 2 ปีที่แล้ว +1

      It's*

    • @pfc.thomas348
      @pfc.thomas348 2 ปีที่แล้ว +2

      I'd say Both

  • @exidy-yt
    @exidy-yt 2 ปีที่แล้ว +876

    Unbelievable! It's like reading The Matrix! And to think you pulled this off on a machine that can only render PETSCII characters, I take my hat off to you, sir. WELL DONE!

    • @fulkonto1222
      @fulkonto1222  2 ปีที่แล้ว +44

      Thank you, sir!

    • @falkerhard
      @falkerhard ปีที่แล้ว +7

      That's spooky. No computer from back then should be able to do that! :D

    • @Cyril29a
      @Cyril29a ปีที่แล้ว +7

      @@falkerhard Well technically it wasn't doing it so there is that. I mean the Pi literally does everything except display the characters to the screen and even then the pi has to spoon feed the frames to the pet. I don't mean to downplay the technical achievement here as it is impressive but let's not kid ourselves in to thinking the PET is doing anything extraordinary here. This is an engineering achievement where this man built a hardware and software solution to tap in to the functionality of this old machine.

    • @V1br8tor
      @V1br8tor ปีที่แล้ว +2

      @@Cyril29a Yup. Now, Jim Bagley' s port of _Dragon's Lair_ to ZX81 - ie. streaming video *and gaming* - on a Z80? That, sir, is hardcore assembly.

    • @MrSpacelyy
      @MrSpacelyy ปีที่แล้ว +6

      This what the people controlling the computers in the matrix meant. They were just viewing an ascii video stream. "You get used to it, though. Your brain does the translating. I don't even see the code. All I see is blonde, brunette, and redhead."

  • @JP-vs1ys
    @JP-vs1ys ปีที่แล้ว +15

    It is insane how varied people are when it comes to skill. This is extremely impressive.

  • @kevdogyt08ti
    @kevdogyt08ti ปีที่แล้ว +19

    My old neighbor (before he passed away, may he RIP...) worked on the BETA of Commodore programming (he created some aid programs and some games for Commodore, he was in his 80s when died in 2018). He's the one that taught me about what the Commodore line of PCs are, but anyway, nice to see that computing has come a LONG WAY. It's interesting to see the new being actioned on the old. Interesting share Thorbjörn.

    • @kevdogyt08ti
      @kevdogyt08ti ปีที่แล้ว

      @@AgentLazarus Whatchya mean, Nope Covenant Lazarus? lol Funny comment though, we believe what we want to...

  • @SixWildKids
    @SixWildKids 2 ปีที่แล้ว +261

    Very impressive. I love things where there is literally ZERO reason to do something other than to do it. Kudos.

    • @fulkonto1222
      @fulkonto1222  2 ปีที่แล้ว +78

      It's about as useful as climbing a mountain or running a marathon; some people just find it fun.

    • @MarcelHuguenin
      @MarcelHuguenin 2 ปีที่แล้ว +13

      @@fulkonto1222 And that is the right reason to do it! I really enjoyed watching this great piece of work as a former CBM 3016 owner ;-)

    • @BlackEpyon
      @BlackEpyon 2 ปีที่แล้ว +4

      The vintage computer community is full of stuff like this. CuriousMarc managed to tweet from a early-20th century teletype.

    • @MarcelHuguenin
      @MarcelHuguenin 2 ปีที่แล้ว +1

      @@BlackEpyon Yeah I know ;-)

    • @klaasj7808
      @klaasj7808 ปีที่แล้ว +3

      @@fulkonto1222 indeed, nothing really has a reason. life is without a reason. enjoy as long as it last

  • @remaincalm2
    @remaincalm2 2 ปีที่แล้ว +350

    My school had PETs and if someone told me back then that this computer could show a full screen video, my jaw would have dropped. And if I was told the video will come in real-time down a phone line from another computer in another country my head would have exploded!
    Thor, your presentation and teaching skills are amazing. It was enlightening to watch and thank you for sharing this crazy project with the world! :-)

    • @rayxtime
      @rayxtime 2 ปีที่แล้ว +31

      All you would have needed, besides the existence of TH-cam, was the most powerful supercomputer of the mid-80s to replace the Pi Zero in this circuit.

    • @BrBill
      @BrBill 2 ปีที่แล้ว +5

      @@rayxtime So true. It's amazing to think that my phone would be the most powerful computer in the entire world if I could take it back to the 1960s.

    • @rayxtime
      @rayxtime ปีที่แล้ว +19

      @@BrBill You're not giving your phone enough credit. Assuming it's a more recent model, it's more powerful than any supercomputer in the late 1980s. An old graphing calculator outperforms anything from the 1960s. If you spend a few grand on a gaming PC, you'll have a machine that beats the best supercomputer in 2002. Spend about $5000 and you can beat IBM's record-breaking Blue Gene\L from 2003. After that year, supercomputers become so ridiculously powerful that today's best consumer hardware can no longer match them.

    • @BrBill
      @BrBill ปีที่แล้ว +2

      @@rayxtime You're right. It might have been more accurate for me to have said that my phone would be more powerful than the entire world's computing power of the 1960s.

    • @NoJusticeNoPeace
      @NoJusticeNoPeace ปีที่แล้ว +6

      Back pre-Internet in the BBS days, our warez group had a guy who interned at Bell Northern. He swore to us they had a working modem in the lab which ran on ordinary copper lines, and which was _thousands_ of times faster than our 2400 baud modems. We called him a liar, but we know now that he was telling the absolute truth; the telecoms have had xDSL since the mid-70s, but didn't bother to roll it out since they didn't think there was any conceivable use for that much data throughput.

  • @familylove4174
    @familylove4174 ปีที่แล้ว +2

    my first computer was a Commodore 64 11 years old, 47 now fantastic video a blast from the past, thank you sir, great video..

  • @c1ph3rpunk
    @c1ph3rpunk 6 หลายเดือนก่อน +1

    Imagine the impact this would have had in 1978, my mind would have been blown. This is fricking amazing.

  • @DisgruntledPigumon
    @DisgruntledPigumon ปีที่แล้ว +146

    What I love most about this is that that’s EXACTLY what that user port was there for. Some awesome idea that a single user came up with and implemented.

  • @DavidHembrow
    @DavidHembrow 2 ปีที่แล้ว +124

    Excellent project. It's always fun to see how far these old machines can be pushed with a bit of 21st century help.

  • @lustwaffe9000
    @lustwaffe9000 ปีที่แล้ว +1

    Wow. Listening to you type on the Commodore alone is soothing.
    Feels like ASMR.

  • @Thunk00
    @Thunk00 ปีที่แล้ว +1

    This is black magic. Well done sir. It's the type of work I would have expected from a team of ten with a year to spend on it.

  • @gdsjuggle
    @gdsjuggle 2 ปีที่แล้ว +134

    This clearly rates among the best lessons we have learned from going to the moon -- a thousand thanks for both your work and your report!

    • @fulkonto1222
      @fulkonto1222  2 ปีที่แล้ว +11

      Many thanks!

    • @100canadianmaplestirup8
      @100canadianmaplestirup8 ปีที่แล้ว

      you think they went to the moon? so cute

    • @100canadianmaplestirup8
      @100canadianmaplestirup8 ปีที่แล้ว

      i dont think anything in this video can be conected to the moon

    • @psychedelicprawncrumpets9479
      @psychedelicprawncrumpets9479 ปีที่แล้ว

      @@100canadianmaplestirup8 Science nerds will never accept the moon landings were faked. Let them have their fantasy 🤷‍♂️

  • @TechBench
    @TechBench 2 ปีที่แล้ว +256

    I've never seen so much pre-calculation in order to confirm exact performance in order to match a technical requirement. So much of modern (computer) science these days is based on trial and error, but you've shown how to achieve the exact, planned path to the final goal. That even includes creating your own, rather advanced, tools! I also like your video-production value - it's insanely high. Well done with all tasks.

    • @Calphool222
      @Calphool222 2 ปีที่แล้ว +18

      Yeah, this is actual engineering. Software engineering "resembles" true engineering, but true engineering is all about knowing your constraints, and designing inside them. It's all about the transformation of "something you have enough of" to "something you want but don't have enough of" inside a matrix of constraints. I love seeing people succeed at this type of project, because it demonstrates what can be done when you frame up your constraints really well.

    • @bigshrekhorner
      @bigshrekhorner ปีที่แล้ว

      Science is always based on trial and error to a degree, even if everything is preplanned. There's no way to be 100% sure that something will go as planned nor can you be sure of everything so you need to always be ready to perform trial and error. Besides, that's how science is done (not only computer science). You have a hypothesis, you experiment with it, if it turns out correct, hooray, if not, then try something else. It's an endless circle of trial and error.

    • @urmo345
      @urmo345 ปีที่แล้ว +1

      Plus video editing magic :P

    • @OregonCrow
      @OregonCrow ปีที่แล้ว

      There's no way to calculate the stuff now days, it would take way to long. With one of the worlds first computer, there's isn't anything to them, it could only do so much. And by now, anyone who had a love for that kind of thing could do this VERY easily. Like a car mechanic from todays world going back to the time where the very first car was built. You're just very appreciative which is cool, but this dude knows, this is VERY VEEEEEERY basic stuff in this field of work.

    • @Calphool222
      @Calphool222 ปีที่แล้ว +1

      @@OregonCrow
      >There's no way to calculate the stuff now days
      ....I'm a senior systems engineer, and have been for about 15 years.... this isn't really true. We can, and sometimes do, go to this degree of analysis even on modern systems (especially in embedded systems that control life saving or dangerous equipment, or that are going to inhospitable environments like the bottom of the ocean or into space). What keeps us from doing this degree of analysis these days is mostly cost/benefit. It's costly to design to concrete constraints, and usually the application doesn't require it because the consequences of falling outside an envelope aren't that big of a deal ("Honey, can you go unplug the router and plug it back in?")

  • @niko5646
    @niko5646 ปีที่แล้ว +3

    The effect makes it look like an intro for a movie, it’s actually pretty impressive to see

    • @danielbengtsson9833
      @danielbengtsson9833 ปีที่แล้ว

      I know, I want to recreate it now. This would make for a great effect in a game or a movie.

    • @niko5646
      @niko5646 ปีที่แล้ว

      @@danielbengtsson9833 could you save the preset for me? I want to use this for a music video

  • @hcs8789
    @hcs8789 ปีที่แล้ว +3

    Maaan I have none of the expertise to understand how this works, but I absolutely love the aesthetics of what you've created here. It just looks really cool. I'd love to see this in some kind of retrofuturistic sci-fi film/video game. Cassette futurism and all that good stuff.

  • @MSIContent
    @MSIContent 2 ปีที่แล้ว +51

    Imagine showing this to the designers of the PET… Just amazing work, and very interestingly detailed explanations. 👍🏻👍🏻

    • @100canadianmaplestirup8
      @100canadianmaplestirup8 ปีที่แล้ว

      they would have burned you at the steak as a witch!

    • @MomMom4Cubs
      @MomMom4Cubs ปีที่แล้ว

      Jack Tramiel wouldn't likely believe his eyes!

  • @faberfox
    @faberfox 2 ปีที่แล้ว +133

    Jaw droppingly incredible work, beautifully explained, congrats!

    • @fulkonto1222
      @fulkonto1222  2 ปีที่แล้ว +9

      Glad you enjoyed it

    • @KeithOlson
      @KeithOlson 2 ปีที่แล้ว +2

      @@fulkonto1222 ...and now you *HAVE* to have it play 'Bad Apple'. Simply nothing else will do. :grin:

    • @llMarvelous
      @llMarvelous ปีที่แล้ว

      @@fulkonto1222 just wow! You should defenetely send this device and program to some retrotech youtubers, like LGR, 8bit Guy (he loves PETSCII characters for sure 😉) and so on
      This will dramatically increase your audience for sure!

    • @llMarvelous
      @llMarvelous ปีที่แล้ว +1

      @@KeithOlson actually great idea! and also output sound from PI through some nice speakers ))

    • @KeithOlson
      @KeithOlson ปีที่แล้ว

      @@llMarvelous Not a Pi; an ATTiny85 running a 'Fast PWM' signal to a cheap speaker, just like 8-bit computers used to do.

  • @gambini_modding
    @gambini_modding ปีที่แล้ว +1

    This is fantastic! both the technical achievement and the documentation of the process. Congrats!

  • @awesomefan86
    @awesomefan86 2 หลายเดือนก่อน

    Dont know whats more impressive. The idea, the technical achievement or the explanation

  • @markholle3450
    @markholle3450 2 ปีที่แล้ว +6

    Having used a Commodore Pet back in the day, I don't know what is technically more brilliant - Watching TH-cam on a PET or space exploration.

  • @pythagorasaurusrex9853
    @pythagorasaurusrex9853 2 ปีที่แล้ว +6

    Incredible! The PET (actually a predecessor) was the first computer I experienced in 1980 when I was a teen, bringing back good ole' memories. And 40 yrs later I see YT running on it. Kudos, my friend!

  • @jimharry7509
    @jimharry7509 ปีที่แล้ว +1

    Thank you for sharing. I really enjoyed watching the complete video. With your clear explanations, you included just the right amount of 'extra' bits in your video, which really brought it to life. And to paraphrase Adam Savage, it was worth doing, so it was worth overdoing! Really brings back memories of dealing with those types of computers back then. Cheers!

  • @LoftBits
    @LoftBits ปีที่แล้ว +1

    The essence of what the fascination with vintage computing is all about. Hats off, sir!

  • @tracyterpstra
    @tracyterpstra 2 ปีที่แล้ว +13

    Incredible. The thought and engineering that went into this simply amazing!

  • @petedavis7970
    @petedavis7970 2 ปีที่แล้ว +21

    I love the projecting onto the characterset aspect. Very cool stuff. Nice work.
    Several years ago I went to a zoo and they had poster of a pelican. But it was a mosaic made up of a bunch of photos. I stood there and thought about it for about 5 mins and put together how it was done. I went home that evening and wrote a program to generate mosaics from a target photo and an library of mosaic photos. Worked first time. I was blown away, 'cause that NEVER happens... Projecting onto the character set is a similar technique (except that the mosaic one had to work with colors).

  • @thavith
    @thavith ปีที่แล้ว +2

    Absolutely brilliant, well done. I honestly didn't think it would be anywhere near as good as it was.

  • @TheSteveBoyd
    @TheSteveBoyd ปีที่แล้ว +1

    My first exposure to a "personal computer" was in the 5th grade, the PET 4016. This is a major blast from the past. I'm amazed that you were able to get as much out of it as you did!

  • @Stabby666
    @Stabby666 2 ปีที่แล้ว +35

    So, you COULD actually "run" Doom on the PET now! 😁 Amazing work!

    • @andreewert6576
      @andreewert6576 2 ปีที่แล้ว +6

      This needs to be the next option! It already relays keystrokes to the pi, doesn't it?

    • @krommmmm
      @krommmmm 2 ปีที่แล้ว

      There was an ASCII renderer for Doom.
      Here is the short way to next level of this crazy stuff.

    • @elimalinsky7069
      @elimalinsky7069 ปีที่แล้ว +1

      Since it basically just uses the video output of the PET and the monitor to display the graphics, with everything otherwise being ran off a Raspberry Pi Zero, everything that can be ran on a Pi Zero can be displayed on a PET.

    • @rgerber
      @rgerber ปีที่แล้ว +1

      you could have it run on another computer and live stream it to youtube then have the PET input connected to the computer running Doom....

    • @andreewert6576
      @andreewert6576 ปีที่แล้ว +1

      @@rgerber like an 80s version of steam remote play.

  • @PaulFellowsGuitarist
    @PaulFellowsGuitarist 2 ปีที่แล้ว +60

    First of all, well done on this impressive technical achievement even though it is just a fun thing to do. Many years ago I built a weather satellite decoder on a 6502 based BBC micro computer. It was slow scan video coming in at 1200 baud FSk. I injected the signal into the cassette port, extracted the clock signal from the UART device using a simple RC edge detector with a nand gate and timer ( to sample the bit in the middle of the bit period ) and then clocked the bits of each 8 bit pixel into the 6522 VIA. Every 8 bits it generated an interrupt to 6502 and the ISR stuffed the byte quickly into a ring buffer and exited. The main loop of the software then pulled bytes out of the ring buffer, dithered the pixel and displayed it in the bit map mode display. The ring buffer between the ISR and the main loop made it run smoothly and also bought more time by utilising the frame and line flyback periods to process the main dithering presentation loop. The data was synchronous with no start and stop bits so I had to also construct an exclusive NOR 32 bit wide digital corelator to detect the line and frame sync code sequences. Anyway it all worked and reliably displayed weather satellite images on the BBC micro. It was very cheap hardware wise and built on a Vero board and hand wired and plugged in between the UART and it's socket with a connection to the via port.

    • @madamebutterfly851
      @madamebutterfly851 ปีที่แล้ว +1

      Dude, your comment is literally the "Rockwell turbo encabulator" TH-cam video 🤣🤣🤣 is this real and have you been discovered by people whom matter so that your very obvious genius can be cultivated and beneficial to society?!

    • @PaulFellowsGuitarist
      @PaulFellowsGuitarist ปีที่แล้ว +1

      @@madamebutterfly851 Very amusing! Actually it was all totally real but from an era long gone. I wish you well on your journey in technology and look forward to reading about all your ground breaking technological developments in the future.

    • @M60gunner1971
      @M60gunner1971 ปีที่แล้ว

      Meh, I did the same with a casio watch and a VCR.

  • @GermanTopGameTV
    @GermanTopGameTV ปีที่แล้ว +1

    This is so impressive. Even more impressive is the restraint on this guy to build an entire device to run youtube on an ancient computer and then not rickroll the audience.

  • @WintonMc
    @WintonMc 2 ปีที่แล้ว +39

    Amazing! It's kind of a pointless exercise, but at the same time your solution has such technical excellence that no-one who really understands the problem could fail to impressed. In fact, I would go so far as to say that anyone who isn't impressed doesn't understand the problem properly. Furthermore, as others have mentioned, the video explains the solution very clearly. Well done, great job.

    • @CarinoGamingStudio
      @CarinoGamingStudio ปีที่แล้ว +1

      this is only a example that commodore pet can do. im sure someone can pull a hashrate out of it. or done a simple calculation or anything under the sun can think of.

    • @Hastur876
      @Hastur876 ปีที่แล้ว

      I programmed on a Pet at school, it was my first computer. My second computer was a Vic=20 and my third was an Atari 520ST. So yes, I'm impressed.

    • @M60gunner1971
      @M60gunner1971 ปีที่แล้ว

      @@Hastur876 big talk maaaan now prove it!

  • @Iheartdrumzz
    @Iheartdrumzz 2 ปีที่แล้ว +3

    One of the best videos I've seen on TH-cam ever. I know nothing about the technicals of the circuitry magic you were going on about but I understood the concepts and theory clearly because I could follow along to your brilliant explanations, reasonings and pacing.

  • @KarynEllisHere
    @KarynEllisHere ปีที่แล้ว +1

    The resulting visuals are stunning! I had no idea this would be such a feat of technical engineering -- I clicked on your video because of my nostalgia for Commodores (I had a 64 when I was very young.) And discovered a work of art.

  • @kieranstravels
    @kieranstravels ปีที่แล้ว +2

    I can’t lie, this is insanely impressive, and a insane technical achievement.

  • @ArtSproul
    @ArtSproul 2 ปีที่แล้ว +6

    Honestly, this has to be the coolest thing I've ever watched on TH-cam. I love character/dithering, and fondly remember building a scanner for my Atari 400 with parts from RadioShack that sat on-top of my dot-matrix print head. It did a similar conversion using the ATASCII character set.

  • @robertd1965
    @robertd1965 2 ปีที่แล้ว +23

    This is one of the best videos I've seen on TH-cam for a number of reasons. Professional, detailed, complicated, entertaining, informative. Thank you for sharing your skills with us.

  • @BobWeaver3000
    @BobWeaver3000 ปีที่แล้ว

    this has been a joy to watch.
    (my first computer was a ti 99-4a)
    amazing job!!

  • @NotTheWheel
    @NotTheWheel ปีที่แล้ว

    You sir are a genius. Splendid work.

  • @TubeSpanner
    @TubeSpanner 2 ปีที่แล้ว +5

    This is fantastic! What a superb video too!
    I used to have a PET back in the early 80's. Canyon Bomber blew my mind :)

  • @Jeffcrocodile
    @Jeffcrocodile 2 ปีที่แล้ว +3

    Just incredible. My mind is blown, and the Matrix effect is so awesome.

  • @dylangtech
    @dylangtech ปีที่แล้ว +3

    I love the utter insanity of these projects. They show the absolute wonder and amazement of computing as a whole even 40 years ago. Like the guy who put a web browser cartridge on his Gameboy so he could use it as a Pokedex, or the guy who made Google Earth for the SNES, you deserve an award for thinking outside the box. Subbed!

    • @IndigoIndustrial
      @IndigoIndustrial ปีที่แล้ว

      It makes you wonder what could be done with a 4-bit computer, or an old Texas Instruments graphics calculator.

  • @daniellebrecht1530
    @daniellebrecht1530 ปีที่แล้ว

    Great project! Thank you for the detailed description. Very impressive.

  • @aqualung2000
    @aqualung2000 2 ปีที่แล้ว +32

    You're a man after my own heart. I am doing something slightly similar (but much simpler!) with my own home-brew 6809 based 8-bit computer. Lacking any good graphics options, I'm using a Pi as my video chip! Data only goes from the 6809 to the Pi though, which is definitely easier!

    • @fulkonto1222
      @fulkonto1222  2 ปีที่แล้ว +3

      Sounds great!

    • @dentron9885
      @dentron9885 2 ปีที่แล้ว +1

      Thats dope, im working on a a homebrew x86 (8088) PC and building a custom GPU to use a CRT monitor, so I feel you on graphics woes lol

    • @nooboard
      @nooboard 2 ปีที่แล้ว

      Dude I have a "Retro" Console in mind which uses a Pi CM4 as a "GPU", "HID Controller" and even kind of Multiplayer Network Interface. The first idea was to use WDC 65xx or Z80 and emulate the bus with the PI. But later I thought more about to replace that with a RP2040 and use SPI because it is much easier even ROM Cardridges could be made cheaper. Still not sure about all of this and I never got out of the "I have this idea" stage 😀
      The main Idea of the Pi as a GPU was just the fact that it has enough power to simulate a CRT. The problem with 1:1 output on modern flat screens is that they lack the "blur" effect, moire, bloom, etc. I also thought it would be cool to have a overlay where you can even use a IDE to code, compile and deploy your games to the "Game Engine" and even "burn" the game on a cartridge. The Pi maybe has even enough power to simulate a SID and/or YM2612. And if not that could be seperated in hardware and the Pi just needs to convert the analog signal into digital and output it to HDMI.

  • @JasonKanigan
    @JasonKanigan 2 ปีที่แล้ว +3

    Meticulous work and presentation. Very enjoyable...I've watched this four times, hearing and learning more each time. Also shared on FB.

  • @carpii
    @carpii ปีที่แล้ว +3

    this is incredible. Massive respect not just for implementing it, but for daring to believe it was possible 🍺🤘

  • @maxpower8916
    @maxpower8916 ปีที่แล้ว

    Incredible! Very entertaining and mind boggling technical. Well done sir. Well done.

  • @ame7165
    @ame7165 2 ปีที่แล้ว +5

    very impressive! you earned another subscription. well done! your video content, illustrations, pace, explanations, etc are all perfect and interesting!

  • @TheEmbeddedHobbyist
    @TheEmbeddedHobbyist 2 ปีที่แล้ว +14

    Having had a PET from new for way too long, I’ve never seen video on it like this before.
    I kept watching for the shapes i know and loved to show in the screen. Great bit
    of work and loved the fact that you use buses in KiCad and not just show a
    whole load of chips with net labels attached to the pins.
    I have a PET 4016 modified to 32K back in the day.
    also have a Vertex K8400 3D printer, thought what a better way to get into 3D printing than building a kit.
    Nice to see both in action.

  • @SueSnellLives
    @SueSnellLives ปีที่แล้ว

    This is one of the coolest things I've seen in forever. Geeking me out for the win

  • @mikelee4929
    @mikelee4929 ปีที่แล้ว

    WOW, i'm speechless. Mr. Jemander... you are a genius. BIG RESPECT!

  • @BixbyConsequence
    @BixbyConsequence 2 ปีที่แล้ว +3

    Amazing how our minds can extract information even from such extreme compression. I recognized Von Braun immediately!

  • @telesphoros
    @telesphoros ปีที่แล้ว +15

    This is art. A gallery of this kind of imagery could be powerful. The dynamic movements of real life video being displayed by primitive symbols, cryptic if you look closely but from afar the larger image begins to form. It's a type of emergence that represents the nature of the universe and is both beautiful and terrifying.

  • @redcoat4ever323
    @redcoat4ever323 ปีที่แล้ว

    The Commodore PET was one of the first computers i ever used (81/82). Amazing what you have done.

  • @edu-ld9zx
    @edu-ld9zx ปีที่แล้ว

    Good luck with the Channel and i wish you and your Family all the best

  • @mausimus1
    @mausimus1 2 ปีที่แล้ว +5

    Excellent stuff mate, I screamed at the screen when I saw -o3!

    • @fulkonto1222
      @fulkonto1222  2 ปีที่แล้ว +1

      At least one it wasn't lost on, then! :-)

    • @retropaganda8442
      @retropaganda8442 ปีที่แล้ว

      Yeah, probably at some point you found a file named "3" on your disk and went "Ohhh!" ;p

  • @thorish933
    @thorish933 2 ปีที่แล้ว +23

    Amazing stuff!
    Imagine if Pets were demoing this 40 years ago.
    CBM might still be in business. 😉

    • @katbryce
      @katbryce 2 ปีที่แล้ว +19

      The thing is that the Raspberry Pi is many times faster than the fastest supercomputer of that era.

    • @wwvwvw
      @wwvwvw ปีที่แล้ว +1

      Do you use reddit before

  • @fab231242
    @fab231242 ปีที่แล้ว

    Work and explanation are fantastic.

  • @Grams79
    @Grams79 ปีที่แล้ว

    Amazing!!! I used one of these PCs when I was a kid. Thank you very much! You sir are a very VERY intelligent man.

  • @MakerAtPlay
    @MakerAtPlay 2 ปีที่แล้ว +5

    This is very impressive work. I have been playing around with interfacing an Arduino and an ESP32 to the expansion port of my VIC 20. I think the dual port memory might be the trick I needed. Thanks for sharing your project and taking the time to produce such a high quality video to explain it.

    • @fulkonto1222
      @fulkonto1222  2 ปีที่แล้ว

      Thank you very much. One thing I didn't go into in the video was the required level shifting between the Raspberry Pi and the memory. In this particular case I didn't need any, but that was due to pure "luck" with the selection of signals, their driving mode and the acceptable levels. You might want to consider that if/when attaching this this memory to the ESP32.

  • @morphx666
    @morphx666 2 ปีที่แล้ว +10

    That was impresive! Breathtaking!
    Thank you for sharing such an awesome project and all the details and minutiae that went into producing it.
    But I have to say, that it was a missed opportunity not to show the "Bad Apple" video playing @ 30fps on the Pet...

  • @honeytgb
    @honeytgb ปีที่แล้ว

    This was amazing!!! Fantastic work!!!

  • @brewman467
    @brewman467 ปีที่แล้ว

    Amazing! Very nice project, well done and techically top notch. Congratulations 👍

  • @joecavaliere5057
    @joecavaliere5057 ปีที่แล้ว +3

    Absolutely amazing.... I would love to see this work on a c64 using the c64 character map + all the colors possible (possibly using color hacks to stretch the color pallets beyond 16colors). All to say this is purely awesome, astonishing work, and detailed video! Cheers

    • @barbwatchesyt4084
      @barbwatchesyt4084 ปีที่แล้ว

      Oh same! I think this is beautiful, and with the colours that would make it even better. If you could then print out a still I would frame that and hang it on my wall! :)

  • @zlette
    @zlette ปีที่แล้ว +9

    This is absolutely incredible! You managed to somehow *with your immense amount of coding knowledge* made a Commodore PET, that's literally about as old as my mom, capable of running a YT video.
    I am whole heartedly impressed!! Well freaking done!

  • @deanjones1299
    @deanjones1299 ปีที่แล้ว

    Love the sounds of the old keyboards. Brings back memories of the Vic20 and c64.

  • @MnemonicCarrier
    @MnemonicCarrier ปีที่แล้ว

    That is a truly beautiful thing! Thank you so much for making this video.

  • @rustkitty
    @rustkitty ปีที่แล้ว +4

    This is beautiful. I love projects where the cartridge is massively overpowered compared to the system running it.

    • @kazz8326
      @kazz8326 ปีที่แล้ว

      OK you watch anime. Nobody cares

    • @rustkitty
      @rustkitty ปีที่แล้ว

      @@kazz8326 You clearly care enough to complain about it even though my comment had nothing to do with anime. So I guess you are a nobody?

  • @osgrov
    @osgrov 2 ปีที่แล้ว +12

    This is incredible!
    I love how easy it seems to interface a Pi to do the heavy work. That really opens up a lot of doors, doesn't it. A big fan of your terminal emulator too, that is quite impressive on its own.
    Looking forwards to future endeavours. :)

  • @JohnSmith-un9fy
    @JohnSmith-un9fy ปีที่แล้ว +1

    Pure genius. Looks great. This would also be a fun way to watch some youtube videos. To bad there is not a player or filter that does this. Fantastic retro effects and look. Love it.

  • @Kloverkill
    @Kloverkill ปีที่แล้ว

    Absolutely incredible work, huge respect.
    Best part? No ads! ;)

  • @ytpg7
    @ytpg7 ปีที่แล้ว

    Extraordinarily impressive! Excellent teaching clarity! The highly technical explanations of "how to" plan and build a working demo that links 'ancient' technology of the 1980's with current technology are amazing! The computer science and programming, and the actual construction of the parts needed to be ordered, created, and placed are marvelously detailed in a very enjoyable success story of a literal out-of-the-box challenge. Superbly done, Thorbjörn!

  • @MatiasHMoro
    @MatiasHMoro 2 ปีที่แล้ว +3

    This might be, seriously, one of the most impressive things I have been in the last years. You see people claiming to run "doom on a calculator" but they usually use the case alone or change the device so drastically that you can say it's a fake claim. But this... This is the real deal. Contratualtions my man. This is an impressive achievement!

    • @mal2ksc
      @mal2ksc 2 ปีที่แล้ว +2

      It's basically bypassing most of the PET and using it as a terminal, but the fact that it can be controlled _from_ the PET itself gives it more legitimacy in my view.

    • @voidseeker4394
      @voidseeker4394 2 ปีที่แล้ว

      Pi Zero can play TH-cam videos without PET, so it is kinda just using the case.

    • @voidseeker4394
      @voidseeker4394 2 ปีที่แล้ว

      Pi Zero can play TH-cam videos without PET, so it is kinda just using the case.

  • @JimLeonard
    @JimLeonard 2 ปีที่แล้ว +12

    Very nice explanation. Next time, you may want to consider an ordered dither instead of an error-diffused dither. It matches the PETSCII graphics closer, is faster to process, and results in less "speckling" during video playback. You can still distribute error temporally if you want to, and in the case of 50% gray, will result in a half-lit pixel due to the monitor's phosphor persistence.

    • @jacyoutube4459
      @jacyoutube4459 ปีที่แล้ว

      36:36 i think he explains here why he chose that dithering method, but i think your suggestion is pretty sharp!

  • @Whytefish
    @Whytefish ปีที่แล้ว

    Thank you for this video, outstanding work.

  • @planetsaturn1300
    @planetsaturn1300 ปีที่แล้ว

    An Absolute Genius. Great work!

  • @BusWithUs.
    @BusWithUs. 2 ปีที่แล้ว +3

    Amazing work! Please share the project so others can build.

    • @fulkonto1222
      @fulkonto1222  2 ปีที่แล้ว +1

      Thank heaps! I will consider sharing the details also, but it'll take some time to prepare a "package". There's also a problem that some of the components are bit hard to come by these days...

  • @Heisenberg2097
    @Heisenberg2097 2 ปีที่แล้ว +3

    Great video!!! As I grew up with a VIC-20 and early started to code in assembly I really enjoyed the details and felt a lil bit transported back into my childhood... next time add some images of Captain Future, esp. the Simon Wright which was my fav. toy in 1981 or 2, and you will get a SUPER LIKE 🙃 THX³

  • @DavidHamster88
    @DavidHamster88 ปีที่แล้ว

    This is an insane technical achievement. Bravo!

  • @joshpme
    @joshpme ปีที่แล้ว +1

    When I watched the first few seconds I immediately was like "bullshit" but your explanation is so good. I'm so impressed.

  • @RetroWK
    @RetroWK 2 ปีที่แล้ว +3

    That is very cool! I was about to attempt a similar project for the C64. I believe with some tweaking that should be doable and maybe even with real color pixels. Great job both on the technical and the didactic side.

    • @fulkonto1222
      @fulkonto1222  2 ปีที่แล้ว +1

      Thanks! As for the C64: go for it! I'd love to see the result!

    • @lasskinn474
      @lasskinn474 2 ปีที่แล้ว

      c64 should be easier? can a character set be from user port cart and messed with on the fly? there's something similar for the nes as well, i forget if it used tilemaps changed on the fly or what (elite as an original game for pal nes does the same and has some ram on the cart for doing it, which while not having anything directly to do with this is pretty wicked and cool)

    • @DukeFawks
      @DukeFawks 2 ปีที่แล้ว +1

      Not streaming though, this was done a decade+ ago: th-cam.com/video/IXLv7UosQXs/w-d-xo.html

    • @RetroWK
      @RetroWK 2 ปีที่แล้ว

      @@DukeFawks A classic and still impressive!

    • @fulkonto1222
      @fulkonto1222  2 ปีที่แล้ว

      @@DukeFawks Dude, that looks just amazing! Fantastic work!

  • @preferredimage
    @preferredimage 2 ปีที่แล้ว +5

    Clever project, Needs some Rick Ascii !!

    • @fulkonto1222
      @fulkonto1222  2 ปีที่แล้ว +2

      Yes, but of course! How could I have missed that opportunity!

  • @sircompo
    @sircompo ปีที่แล้ว

    Wow. I nearly sprained my index finger clicking SUBSCRIBE after watching this video. Not only an outstanding accomplishment, but also fantastically explained. Thanks Thorbjörn.

  • @Nlangkirby135
    @Nlangkirby135 ปีที่แล้ว

    You sir, are a mad science of old computers! I would never known this could've been possible!

  • @pickoftheglitter
    @pickoftheglitter 2 ปีที่แล้ว +8

    Unbelievable!!! This is really an awesome project, any PET owner should (and of course would!) have one!
    Did you planned to release it on github or any other repository with some tutorial-like instructions? I wish to build one too!
    Anyway, congrats for the result, it's really enjoyable!

    • @sonickrnd
      @sonickrnd ปีที่แล้ว

      At least he have a pack of boards with first, not ideal design)))

  • @TehButterflyEffect
    @TehButterflyEffect 2 ปีที่แล้ว +3

    I love how you had to turn this into an overly-complicated thin client to get it to work. I am still surprised that it can run a display at 30fps, even if it's just being fed pre-rendered frames.

  • @Musical_Kook
    @Musical_Kook ปีที่แล้ว

    Well this video was just frigging delightful! What a guy 🤘

  • @MrAllmightyCornholioz
    @MrAllmightyCornholioz ปีที่แล้ว

    Randomly got recommended to this vid and I wanna say your name is awesome. Thor bless you!

  • @pyrocore
    @pyrocore 2 ปีที่แล้ว +3

    Amazing!
    I would love to see this method of displaying/interpreting a video on a screen with a much higher character count. I think a video would look amazing on a screen with 2x or 4x the amount of on-screen characters.

    • @cemmy410
      @cemmy410 ปีที่แล้ว

      If you're only interested in the final result (seeing a video covered to characters) and not the method (doing it on a modern computer vs. a retro machine), then check out VLC or FFmpeg, which both support rendering a video as characters.
      (See en.wikipedia.org/wiki/Libcaca for more info)

  • @xbzq
    @xbzq ปีที่แล้ว +22

    To improve the video quality massively you should adjust the gamma before you dither. It's best to do this with the output being more than 8 bits. Also, you can speed up the character encoding by only considering a subset of the characters based on the overall brightness of the character.

    • @M60gunner1971
      @M60gunner1971 ปีที่แล้ว

      @xbzq, because you've done this before huh? Improve your lies.

    • @xbzq
      @xbzq ปีที่แล้ว +11

      @@M60gunner1971 Yes I have. A gray with value 128 isn't physically mid gray, it's perceptually mid gray. Half the amount of light of white doesn't look like mid gray and so shouldn't have a value of 128. But when you dither say with a checkerboard pattern half black half white, you get physically 50% light (on average) so it would be wrong to translate 128 to a checkerboard. The function to apply to correct this is exactly the gamma function. That's what it's for. You can try this out in Photoshop. If you apply a gamma of 1/2.2 and b/w dither to a grayscale image and then place half of it over the original you'll find that from a distance you can't see the line of where the grayscale ends and the dither begins. If you do the same without the gamma then a clear line will be visible where the dithered side will be much lighter than the grayscale side. The same adjustments need to be made when halftoning. Not sure why you assume these are lies. The 1/2.2 gamma is related to the normally used sRGB which has a built-in gamma of 2.2 for historical reasons as well as making 8 bit images have less banding. In principle a computer+monitor could take any number and display it as any desired brightness. This is obvious when you play with your gamma settings in your graphics card software. The graphics in your video RAM don't change but your monitor brightness does. Incidentally, to do correct image transforms that involve color calculations such as brightness, contrast, blur and more all benefit from applying 1/2.2 (0.45) gamma prior and then afterward re-apply a gamma of 2.2. In many cases the difference isn't very noticable, but in some cases the difference can be very significant.

    • @MariusStrom
      @MariusStrom ปีที่แล้ว +2

      @@xbzq do you have the phone number to the nearest burn unit?

    • @NYCBostero
      @NYCBostero ปีที่แล้ว

      @@xbzq Why don't you just make a video and show us. Your explanation is useless. Until you have your own video posted, nobody cares what you think can "improve" this.

    • @xbzq
      @xbzq ปีที่แล้ว +3

      @@NYCBostero There's at least 8 people that care counting the likes. So you're wrong. You're saying I have to go make a video so you can understand but I don't think you could ever understand. It's very complicated. Much more complicated than you have the patience to understand. You already don't care except you care enough to say you don't care. Looks like a paradox right there. Looks like you don't even know what you're talking about when you say you don't care. Well I don't even care that I care. So there. I one-upped you on not caring that I care to not care to give a crap whether or not I care that I care. And if you don't understand what I just said it just means you don't understand whether you do or don't understand. There are known knowns and unknown unknowns. I could make a video about it but I don't care if you understand so why would I go and make a video about it? I'm too busy not giving a crap so I don't have time to make time to make a video about making videos. I barely have time to comment about commenting on comments. The point is you're wrong and you think you're right so you're also wrong about being wrong. If you weren't then you'd be right to know you're wrong but you'd be wrong about being right because you can't be right and wrong at the same time. Or am I wrong? If I'm wrong about being right then at least I'm right about being wrong that I'm right. And you can't honestly say that. If you could then you would. And you're not and neither are you ever going to. Therefore ipso facto you cannot. If that makes no sense to you it just means you are not capable of understanding. But when you become capable you will immediately understand. Since you'll never understand (a clear given) you'll never learn. I could make a video about it but I think it's best if you make videos instead. I'm not in the entertainment industry. I'm not a puppet dancing for amusement. If you cared to know anything there would be many ways to find out. You don't care to know anything so where the no will there isn't a way. You care to complain that some rando on the Internet isn't making videos for your entertainment. Videos that even if I did make them your wouldn't watch and even if you did watch them you wouldn't understand. Who are you that anyone should even care whether you care? Think about it. Keep thinking. You'll never actually understand. But go ahead and try. There's no try, only do. Yoda said that. But he's fictional so since he's not real he cannot actually talk. So that's another conundrum. Something I'm sure you'll never ever understand. It's after all way over your head. Gamma. So difficult.

  • @ignitionac117
    @ignitionac117 ปีที่แล้ว

    I really enjoyed your vid! so amazing explanation and so amazing job!

  • @joserivera289
    @joserivera289 ปีที่แล้ว

    Amazing! really awesome project, well done

  • @MaxCarponera
    @MaxCarponera 2 ปีที่แล้ว +20

    Very good job, The character aproximation is a excellent idea. Just two suggestions: 1. Any graphics library can grayscale, reduce and extract frames from a video, even to memory using buffers, or video player commands as mplayer, mpv, cvlc and the like using shm disk. Might OpenCV be overkill, and 2: Can't you simply precalculate a table in memory with all the character aproximation posibilities, or an reduced set? That will cut the running time of character matching a lot (just block pixel count + memory seek).

    • @greenaum
      @greenaum 2 ปีที่แล้ว +15

      AALib did this about 20 years ago, that is, they perfected ASCII displays. It was on Linux on PCs. They showed demos playing Doom and watching videos, all in text. Last I looked, it's still there in one of the repositories. May as well give it a try first.

    • @nrdesign1991
      @nrdesign1991 2 ปีที่แล้ว +2

      @@greenaum this reminded me so much of the bb demo

    • @grimfpv292
      @grimfpv292 2 ปีที่แล้ว +6

      I might be mistaken, but those libraries only approximate to the closest ASCII character, while the PET can change character on a line basis, using one character for the top line, then changing it 8 times down the character, making it a much higher resolution display.

    • @Diemermakes
      @Diemermakes ปีที่แล้ว

      I was wondering why precalculating a character table wasn't the approach used here to optimize, but maybe I'm missing something.

    • @cmyk8964
      @cmyk8964 ปีที่แล้ว

      There are 2^64 possible patterns each 8x8 cell can take. A LUT would take lots of storage in return for less computation.

  • @olddave5084
    @olddave5084 2 ปีที่แล้ว +3

    Pure madness. You're very talented and I express all my respect for the technical achievement, but I'd recommend you to buy a cheap dual-core laptop to watch youtube though ;-)

  • @loscabosbaja
    @loscabosbaja ปีที่แล้ว

    wonderful material to watch, congratulations...

  • @TheMarouuu
    @TheMarouuu ปีที่แล้ว

    That was awesome :D Good job sir. Hat's off to you.

  • @aerojez
    @aerojez 2 ปีที่แล้ว +5

    first, I would like to say that it was very impressive and interesting. by some coincidence what you've come up with is exactly the same way that the SuperFX chip works to add 3d rendering capability to the SNES game console (also a 6502 variant). The SuperFX chip is a 21 MHz risc cpu that does all the heavy lifting, with some circuitry to map a bitmap into a character display and allow pixel rendering into a character map. All the SNES does is copy the screen. BTW, your screen copy code could be faster by unrolling the loop. how much you unroll it would depend on how much free memory is available for code. with 256 unrolls you could dispense with the loop instruction (bne) - and be 33% faster. With 2048 unrolls (one for each screen memory address) you could dispense with the index of the Y register entirely (and do the screen copy twice as fast)

    • @fulkonto1222
      @fulkonto1222  2 ปีที่แล้ว +4

      Yup, by unrolling it, it could go twice as fast, but then it would go much faster than the CRT redraws, so it wouldn't make much difference. It frees up a lots of cycles that I want to use for some other stuff though...

    • @aerojez
      @aerojez 2 ปีที่แล้ว +4

      @@fulkonto1222 exactly, you said there wasn't enough cpu left to do sound. and ta dah. now there is. we're expecting dolby atmos at the least. ;-)

  • @csbruce
    @csbruce 2 ปีที่แล้ว +8

    14:02 Why not just use a lookup table for the number of '1' bits in each 16-bit word?
    24:20 The PET has enough RAM that you could completely unroll the loop to 2000 sequences of LDA absolute : STA absolute = 8 cycles per character = 62 fps.

    • @fulkonto1222
      @fulkonto1222  2 ปีที่แล้ว +5

      Hah! Good feedback. Thanks.
      14:02, yes, you can do that. One 64kB buffer that's used for each pair of rows, but I'm not 100% sure it would be much faster. I'd rather go with the popcount instruction => 1 cycle for 64 bits.
      24:20 That'd be the most unrolled loop I'd ever done! :-) But you're right it would be faster, but the electron beam could not keep up as it's much slower than 62 fps. So, I would need to find some other use for those extra cycles (like sound, but that had the I/O issue: no straightforward way out). I'll take suggestions on what do to with these cyles!

    • @csbruce
      @csbruce 2 ปีที่แล้ว +2

      ​@@fulkonto1222: Oh, popcount is a CPU instruction. How does the CPU implement it?

    • @fulkonto1222
      @fulkonto1222  2 ปีที่แล้ว +3

      One could implement it (naively) as an hierarchial tree of bit-wise adds, but there are smarter (but also more complex) ways of doing it. See for instance stackoverflow.com/questions/28802692/how-is-popcnt-implemented-in-hardware (which in turn references the patent patents.google.com/patent/US8214414). The popcount instruction has been implemented in hardware since the 60's (look at e.g. retrocomputing.stackexchange.com/questions/4702/are-there-any-articles-elucidating-the-history-of-the-popcount-instruction for some history on it).

    • @CyclesMcHurtz
      @CyclesMcHurtz 2 ปีที่แล้ว +2

      @@fulkonto1222 Wow! What a great breakdown and poject! This takes me back to some programming I did a while back .. and it seems like you could make time for the sound if you modify the frame transfer to interleave the pixels and then combine the four loops into a single loop and a wait-loop for timing if you signaled it from one of the control lines perhaps?
      loop:
      lda PORT_A_IO_REGISTER
      sta PET_SCREEN_MEMORY,y
      lda PORT_A_IO_REGISTER
      sta PET_SCREEN_MEMORY+256,y
      lda PORT_A_IO_REGISTER
      sta PET_SCREEN_MEMORY+512,y
      lda PORT_A_IO_REGISTER
      sta PET_SCREEN_MEMORY+768,y
      iny
      bne loop

  • @reggiep75
    @reggiep75 ปีที่แล้ว

    I knew there were people out there who did the things my brain dreams up.. this is one of those things. Nice project!

  • @jmparis83
    @jmparis83 ปีที่แล้ว

    Exceptional detailed explanations! Great project