Watching YouTube on a Commodore Pet

Ғылым және технология

This video shows a way to watch KZread 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 800

  • @mjschuelke
    @mjschuelke Жыл бұрын

    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

    Жыл бұрын

    Oh, thank you very much!

  • @matthewellisor5835

    @matthewellisor5835

    Жыл бұрын

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

  • @speedsterh

    @speedsterh

    Жыл бұрын

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

  • @CanadianBakin42O

    @CanadianBakin42O

    Жыл бұрын

    It's*

  • @pfc.thomas348

    @pfc.thomas348

    Жыл бұрын

    I'd say Both

  • @exidy-yt
    @exidy-yt Жыл бұрын

    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

    Жыл бұрын

    Thank you, sir!

  • @falkerhard

    @falkerhard

    Жыл бұрын

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

  • @Cyril29a

    @Cyril29a

    Жыл бұрын

    @@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

    Жыл бұрын

    @@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

    Жыл бұрын

    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 Жыл бұрын

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

  • @kevdogyt08ti
    @kevdogyt08ti Жыл бұрын

    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

    Жыл бұрын

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

  • @SixWildKids
    @SixWildKids Жыл бұрын

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

  • @fulkonto1222

    @fulkonto1222

    Жыл бұрын

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

  • @MarcelHuguenin

    @MarcelHuguenin

    Жыл бұрын

    @@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

    Жыл бұрын

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

  • @MarcelHuguenin

    @MarcelHuguenin

    Жыл бұрын

    @@BlackEpyon Yeah I know ;-)

  • @klaasj7808

    @klaasj7808

    Жыл бұрын

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

  • @remaincalm2
    @remaincalm2 Жыл бұрын

    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

    Жыл бұрын

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

  • @BrBill

    @BrBill

    Жыл бұрын

    @@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

    Жыл бұрын

    @@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

    Жыл бұрын

    @@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

    Жыл бұрын

    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.

  • @c1ph3rpunk
    @c1ph3rpunk4 ай бұрын

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

  • @awesomefan86
    @awesomefan8612 күн бұрын

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

  • @DisgruntledPigumon
    @DisgruntledPigumon Жыл бұрын

    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 Жыл бұрын

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

  • @fulkonto1222

    @fulkonto1222

    Жыл бұрын

    It sure is!

  • @niko5646
    @niko5646 Жыл бұрын

    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

  • @familylove4174
    @familylove4174 Жыл бұрын

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

  • @TechBench
    @TechBench Жыл бұрын

    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

    Жыл бұрын

    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

    Жыл бұрын

    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

    Жыл бұрын

    @@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?")

  • @gdsjuggle
    @gdsjuggle Жыл бұрын

    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

    Жыл бұрын

    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 🤷‍♂️

  • @Thunk00
    @Thunk00 Жыл бұрын

    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.

  • @hcs8789
    @hcs8789 Жыл бұрын

    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 Жыл бұрын

    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 Жыл бұрын

    Jaw droppingly incredible work, beautifully explained, congrats!

  • @fulkonto1222

    @fulkonto1222

    Жыл бұрын

    Glad you enjoyed it

  • @KeithOlson

    @KeithOlson

    Жыл бұрын

    @@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

    Жыл бұрын

    @@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.

  • @KarynEllisHere
    @KarynEllisHere Жыл бұрын

    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.

  • @lustwaffe9000
    @lustwaffe9000 Жыл бұрын

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

  • @markholle3450
    @markholle3450 Жыл бұрын

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

  • @Stabby666
    @Stabby666 Жыл бұрын

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

  • @andreewert6576

    @andreewert6576

    Жыл бұрын

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

  • @krommmmm

    @krommmmm

    Жыл бұрын

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

  • @elimalinsky7069

    @elimalinsky7069

    Жыл бұрын

    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

    Жыл бұрын

    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

    Жыл бұрын

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

  • @telesphoros
    @telesphoros Жыл бұрын

    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.

  • @LoftBits
    @LoftBits Жыл бұрын

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

  • @Iheartdrumzz
    @Iheartdrumzz Жыл бұрын

    One of the best videos I've seen on KZread 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.

  • @tracyterpstra
    @tracyterpstra Жыл бұрын

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

  • @gambini_modding
    @gambini_modding Жыл бұрын

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

  • @PaulFellowsGuitarist
    @PaulFellowsGuitarist Жыл бұрын

    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

    Жыл бұрын

    Dude, your comment is literally the "Rockwell turbo encabulator" KZread 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

    Жыл бұрын

    @@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.

  • @pythagorasaurusrex9853
    @pythagorasaurusrex9853 Жыл бұрын

    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 Жыл бұрын

    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!

  • @TheSteveBoyd
    @TheSteveBoyd Жыл бұрын

    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!

  • @petedavis7970
    @petedavis7970 Жыл бұрын

    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).

  • @robertd1965
    @robertd1965 Жыл бұрын

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

  • @GermanTopGameTV
    @GermanTopGameTV Жыл бұрын

    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.

  • @thavith
    @thavith Жыл бұрын

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

  • @ArtSproul
    @ArtSproul Жыл бұрын

    Honestly, this has to be the coolest thing I've ever watched on KZread. 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.

  • @TheEmbeddedHobbyist
    @TheEmbeddedHobbyist Жыл бұрын

    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.

  • @fulkonto1222

    @fulkonto1222

    Жыл бұрын

    Glad you enjoyed it!

  • @kieranstravels
    @kieranstravels Жыл бұрын

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

  • @dylangtech
    @dylangtech Жыл бұрын

    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.

  • @WintonMc
    @WintonMc Жыл бұрын

    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

    Жыл бұрын

    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!

  • @aqualung2000
    @aqualung2000 Жыл бұрын

    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

    Жыл бұрын

    Sounds great!

  • @dentron9885

    @dentron9885

    Жыл бұрын

    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

    Жыл бұрын

    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.

  • @redcoat4ever323
    @redcoat4ever323 Жыл бұрын

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

  • @JohnSmith-un9fy
    @JohnSmith-un9fy Жыл бұрын

    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.

  • @Jeffcrocodile
    @Jeffcrocodile Жыл бұрын

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

  • @morphx666
    @morphx666 Жыл бұрын

    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...

  • @joshpme
    @joshpme Жыл бұрын

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

  • @deanjones1299
    @deanjones1299 Жыл бұрын

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

  • @JasonKanigan
    @JasonKanigan Жыл бұрын

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

  • @ame7165
    @ame7165 Жыл бұрын

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

  • @fulkonto1222

    @fulkonto1222

    Жыл бұрын

    Awesome, thank you!

  • @carpii
    @carpii Жыл бұрын

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

  • @daniellebrecht1530
    @daniellebrecht1530 Жыл бұрын

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

  • @TubeSpanner
    @TubeSpanner Жыл бұрын

    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 :)

  • @thorish933
    @thorish933 Жыл бұрын

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

  • @katbryce

    @katbryce

    Жыл бұрын

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

  • @wwvwvw

    @wwvwvw

    Жыл бұрын

    Do you use reddit before

  • @maxpower8916
    @maxpower8916 Жыл бұрын

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

  • @shaneskaalerud3371
    @shaneskaalerud3371 Жыл бұрын

    0:57 Dude this is amazing! I would never of thought of doing that. I’m surprised it’s actually possible with those codes. Because back in the day I used to have an Atari keyboard. So I don’t remember codes anymore but I know exactly what you’re doing.

  • @matthewtopping2061

    @matthewtopping2061

    Жыл бұрын

    *I would never HAVE thought

  • @M60gunner1971

    @M60gunner1971

    Жыл бұрын

    @@matthewtopping2061 thanks for that correction mother goose now back to harvesting back acne.

  • @mausimus1
    @mausimus1 Жыл бұрын

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

  • @fulkonto1222

    @fulkonto1222

    Жыл бұрын

    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

  • @BixbyConsequence
    @BixbyConsequence Жыл бұрын

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

  • @dicksealion4983
    @dicksealion4983 Жыл бұрын

    Just astonishing & the results are a thing of beauty, too. I can image this technique being used for a pop-video

  • @NotTheWheel
    @NotTheWheel Жыл бұрын

    You sir are a genius. Splendid work.

  • @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!

  • @osgrov
    @osgrov Жыл бұрын

    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. :)

  • @joecavaliere5057
    @joecavaliere5057 Жыл бұрын

    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! :)

  • @BobWeaver3000
    @BobWeaver3000 Жыл бұрын

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

  • @rmeyer4066
    @rmeyer4066 Жыл бұрын

    Honestly, this is probably some of the best content I've seen on KZread in the last 6 years. I used to watch this one old KZread channel about macintosh's. Trying to get on modern internet. Personally, the oldest computer that I have on the internet is a Macintosh color classic. I got a nice ethernet card for it..

  • @MakerAtPlay
    @MakerAtPlay Жыл бұрын

    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

    Жыл бұрын

    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.

  • @zlette
    @zlette Жыл бұрын

    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!

  • @MrAllmightyCornholioz
    @MrAllmightyCornholioz Жыл бұрын

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

  • @nonope2207
    @nonope2207 Жыл бұрын

    It's a very strange feeling to have where someone does something that you don't understand WHY someone did something, or even if they SHOULD have done it, and still be completely impressed that they DID do it.

  • @rustkitty
    @rustkitty Жыл бұрын

    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?

  • @JimLeonard
    @JimLeonard Жыл бұрын

    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!

  • @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.

  • @mikelee4929
    @mikelee4929 Жыл бұрын

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

  • @pickoftheglitter
    @pickoftheglitter Жыл бұрын

    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)))

  • @RetroWK
    @RetroWK Жыл бұрын

    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

    Жыл бұрын

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

  • @lasskinn474

    @lasskinn474

    Жыл бұрын

    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

    Жыл бұрын

    Not streaming though, this was done a decade+ ago: kzread.info/dash/bejne/e4yA2JmOn9a3iNY.html

  • @RetroWK

    @RetroWK

    Жыл бұрын

    @@DukeFawks A classic and still impressive!

  • @fulkonto1222

    @fulkonto1222

    Жыл бұрын

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

  • @Kloverkill
    @Kloverkill Жыл бұрын

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

  • @DavidHamster88
    @DavidHamster88 Жыл бұрын

    This is an insane technical achievement. Bravo!

  • @pyrocore
    @pyrocore Жыл бұрын

    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)

  • @olddave5084
    @olddave5084 Жыл бұрын

    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 ;-)

  • @fulkonto1222

    @fulkonto1222

    Жыл бұрын

    ;-)

  • @SueSnellLives
    @SueSnellLives Жыл бұрын

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

  • @joshuachristian5443
    @joshuachristian5443 Жыл бұрын

    The shape of the monitor was a popular shape back in 75 to 85. That quadrilateral silhouette was seen in anything high-tech and futuristic in the movies. I can only think of Maximilians head from the black hole but there are many more.

  • @TehButterflyEffect
    @TehButterflyEffect Жыл бұрын

    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.

  • @BusWithUs.
    @BusWithUs.2 жыл бұрын

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

  • @fulkonto1222

    @fulkonto1222

    Жыл бұрын

    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...

  • @edu-ld9zx
    @edu-ld9zx Жыл бұрын

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

  • @Nlangkirby135
    @Nlangkirby135 Жыл бұрын

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

  • @MatiasHMoro
    @MatiasHMoro Жыл бұрын

    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

    Жыл бұрын

    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

    Жыл бұрын

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

  • @voidseeker4394

    @voidseeker4394

    Жыл бұрын

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

  • @xbzq
    @xbzq Жыл бұрын

    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

    Жыл бұрын

    @@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

    Жыл бұрын

    @@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

    Жыл бұрын

    @@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.

  • @brewman467
    @brewman467 Жыл бұрын

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

  • @marcp.1752
    @marcp.1752 Жыл бұрын

    Amazing & crazy at the same time, haha ! I remember quite well, when these Commodore PET 600's have been standing at our school...damn, time flies....

  • @Heisenberg2097
    @Heisenberg2097 Жыл бұрын

    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³

  • @fulkonto1222

    @fulkonto1222

    Жыл бұрын

    Glad you liked it!

  • @MaxCarponera
    @MaxCarponera Жыл бұрын

    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

    Жыл бұрын

    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

    Жыл бұрын

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

  • @grimfpv292

    @grimfpv292

    Жыл бұрын

    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.

  • @MnemonicCarrier
    @MnemonicCarrier Жыл бұрын

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

  • @MikePuorro
    @MikePuorro Жыл бұрын

    Genius. This is a must have guy in every post apocalypse survival team.

  • @aerojez
    @aerojez Жыл бұрын

    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

    Жыл бұрын

    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

    Жыл бұрын

    @@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. ;-)

  • @preferredimage
    @preferredimage Жыл бұрын

    Clever project, Needs some Rick Ascii !!

  • @fulkonto1222

    @fulkonto1222

    Жыл бұрын

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

  • @jmparis83
    @jmparis83 Жыл бұрын

    Exceptional detailed explanations! Great project

  • @twirlincurtis
    @twirlincurtis Жыл бұрын

    this is incredible! Amazing work!

  • @csbruce
    @csbruce Жыл бұрын

    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

    Жыл бұрын

    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

    Жыл бұрын

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

  • @fulkonto1222

    @fulkonto1222

    Жыл бұрын

    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).

  • @tomschenck594

    @tomschenck594

    Жыл бұрын

    @@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

  • @J0ermungand
    @J0ermungand Жыл бұрын

    Impressive achievement. But I don't know why you'd have to build OpenCV from source. I once built a movement and people detecting security camera based on a Pi Zero W with OpenCV simply by installing the OpenCV binaries from the Raspbian repositories. Admittedly that was quite a few years ago, so dunno if stuff has changed for the worse in the meantime.

  • @fab231242
    @fab231242 Жыл бұрын

    Work and explanation are fantastic.

  • @planetsaturn1300
    @planetsaturn1300 Жыл бұрын

    An Absolute Genius. Great work!

Келесі