Making a 3D Graphics Card for the Atari 800 XL using the Raspberry Pi

Поделиться
HTML-код
  • Опубликовано: 26 окт 2024

Комментарии • 108

  • @johntilghman
    @johntilghman 3 года назад +40

    Love the fact that the Atari got some love for once. Would love to see more like this.

    • @GORF_EMPIRE
      @GORF_EMPIRE 3 года назад +2

      When Ben Heck was doing this he showed a good deal of love. You should go back and check those vids out if you haven't already.

    • @AnOfficialAndrewFloyd
      @AnOfficialAndrewFloyd 3 года назад

      @@GORF_EMPIRE That was mostly Atari 2600.

    • @GORF_EMPIRE
      @GORF_EMPIRE 3 года назад

      @@AnOfficialAndrewFloyd He's a done a couple neat things with the 8 bitters too.

    • @thisisreallyme3130
      @thisisreallyme3130 2 года назад

      By FAR the Atari 8 series are the best 8-bit OS to hack on, best serial IO and even the high-speed PBI. There really should be an "MIT Platform Series" book made for it. I mean who would have thought of overclocking the 6502 so it's EXACTLY half the MHz of NTSC (thereby making custom display lists even easier!). And plug-and-play serial... wow.

  • @danielv3228
    @danielv3228 3 года назад +16

    Lived in the country years ago and rarely got to the arcade as a kid of the 80's. I would do my best to program my own version of games on my 800xl. I had made a very fun version of space zap and would spend hours playing it, making small changes to the basic and playing it some more. Thanks for having a show about atari stuff. It was huge but everyone thinks they only made game machines. I even made the assembler that came in compute magazine so I could type in all those groupings of digits and then see a game run. Atari put me on track to the job I have now.

    • @douglasalves4892
      @douglasalves4892 3 года назад

      I like your story. Same for me :)

    • @AnOfficialAndrewFloyd
      @AnOfficialAndrewFloyd 3 года назад

      That Compute! Utility was MLX. I spent a week of typing to get Speedscript 3.0. Saved on cassette. Eventually copied to disk.
      MLX was not an assembler. It was a data entry and error checking program.

  • @MikeBramm
    @MikeBramm 3 года назад +8

    I've always put the ribbon cable IDC connector in a vise. This allows you to evenly spread the force along the width of the connector and you can easily make sure the ribbon cable is square to the IDC connector.

  • @stupossibleify
    @stupossibleify 3 года назад +5

    Apart from a good explainer on interfacing, and the fact that it doesn't matter how old the system is, it's all still about electrons, this is a good primer into how 3d Graphics Accelerators work in taking the hard work away from the CPU (whether a 6502 or a x86). Great video and support material.

  • @chrisxdeboy
    @chrisxdeboy 3 года назад +27

    Now have the Pi send the computed scene back to the Atari as screen data so it's coming through the Atari's display, otherwise, this just seems like a weird controller interface for a Raspberry Pi.

    • @andywest5773
      @andywest5773 3 года назад +5

      I really wanted to get bidirectional communication going but the PBI is extremely finicky about timing and I didn't have enough GPIO pins. So I had to make some compromises.

    • @chrisxdeboy
      @chrisxdeboy 3 года назад

      @@andywest5773 a couple people have been able to get it working on NES carts, just look up the port of DooM on the NES. You could probably use some serial to parallel chips to minimize gpio usage.

    • @DanRamosDR
      @DanRamosDR 3 года назад +2

      @@andywest5773 I had the same thought as @chrisxdeboy ... Why not just use the cartridge port or the PBI port to load a CIO driver and then set itself up as a DMA interface in a portion of memory and re-point video memory to the memory that the Pi is directly manipulating graphics memory, leaving the actual job of displaying the graphics to the Atari and doing input and output through the CIO handler to and front the Pi bidirectionally? Just a thought but then I haven't done that sort of coding in many years... Just know it can be done to turn the Pi into a pure accelerator instead of being controlled and doing all the graphics and frame buffering.

    • @another3997
      @another3997 3 года назад +1

      @@DanRamosDR I'd love to see a classic Atari 8 bit doing that. They were amazing machines at the time of their release in 1979. Given enough time, skill and money, most things can be achieved. Unfortunately, like me, most people don't have the luxury of unlimited time and money, or the skills to do this. So unless this were a commercial project or a long term labour of love, I doubt you'll see it happen. Unless you fancy having a go yourself? Write the Atari code in Action! rather than BASIC and it would fly. 😉

    • @shawnj4545
      @shawnj4545 2 года назад +1

      @@DanRamosDR I had a similar thought, but attaching a Pi to the cartridge slot, with is mapped into a 16k area. Have the Pi precompute the screen data in real time (in various ANTIC modes) and just point your display list to that cartridge memory. That would essentially be an accelerator, which existed back in the day, so would be sort of not cheating even. You could allow a portion of the address space to be an area you can write into to pass data back to the Pi as well. You'd need some shared memory between the Pi and the Atari, and some way of signalling the Atari the Pi has finished creating the screen.
      You could even point your character set to the cartridge space, or P/M graphics data too.

  • @6502Nerd
    @6502Nerd 2 года назад +2

    I had an 800XL back in the day and loved it..so this is one of the most awesome things I've seen.
    Bravo and thank you👍🏾👍🏾👍🏾👏🏾👏🏾👏🏾

  • @Docwiz2
    @Docwiz2 2 года назад +1

    I love the Atari 800XL. It was my first computer. I am also glad that people are still doing things with it today.

    • @IAMTheNiteOwl
      @IAMTheNiteOwl Год назад

      Had the Atari 800. It was such an amazing machine. I learned so much on it, and I imagine I would not be where I am today without it.

    • @dazealex
      @dazealex 3 месяца назад

      Me too!

  • @kentwood9821
    @kentwood9821 3 года назад +3

    Incredible skill to be able to come up with and execute that idea. Well done!

  • @esd9058
    @esd9058 3 года назад +9

    Thank you for the video. Brings back some great memories from my first atari 800 model. 😉

  • @SimmeringPotpourri
    @SimmeringPotpourri 3 года назад +1

    Just a slight correction. CTIA came only on the original Atari 400/800 and was soon replaced with the GTIA which allowed for a few more graphics modes. In fact, Atari even offered this upgrade for free. By the time the XL line came out, the CTIA was long gone.
    As far as making that ribbon cable, I used to work at a place that we had to make ribbon cables from time to time. We have a machine that was basically a press that would do the crimping so I wouldn't say you're doing it "wrong", just not the ideal way.

    • @donmilton9664
      @donmilton9664 3 года назад +1

      As I started watching this, that was my exact thought. Even the XE had the GTIA. Thanks for pointing it out!

    • @SimmeringPotpourri
      @SimmeringPotpourri 3 года назад

      @@donmilton9664 Thanks. Yeah, small nitpick and he does mention the GTIA right afterwards so it's all good. No one but Atari fans would even care. :-D

    • @another3997
      @another3997 3 года назад +1

      According to (IIRC) Jay Miner, the GTIA chip actually came first, but technical issues meant the CTIA was substituted in the early machines until the problems were sorted out. In 1979 home computer terms, this was cutting edge technology, so problems were bound to appear.

  • @AnOfficialAndrewFloyd
    @AnOfficialAndrewFloyd 3 года назад +1

    Instead of or in addition to HDMI, output the 3D from the PI to composite. I don't have any HDMI displays.
    In addition, enable mixing or overlaying the output of the ANTIC+GTIA pair with the 3D PI and choose composite or HDMI or both.

  • @tony92506
    @tony92506 Год назад

    Wow!! that was incredible!! Thank you !

  • @JustWasted3HoursHere
    @JustWasted3HoursHere 3 года назад +3

    Interesting! How hard would it be to have the pi render the data sent to it by the Atari, render it in a format that is Atari compatible and then write that data directly to the Atari's screen memory so that it can be displayed on the Atari's monitor? In other words, make it so that it really does act like a super fast video co-processor for the Atari.

    • @Atarian6502
      @Atarian6502 2 года назад

      Great idea! But judging by the speed of the data transfer from Atari to Pi, it would be faster to render the scene on Atari directly.

  • @MrKelaher
    @MrKelaher 3 года назад +3

    Great project ! you use a desk vice or timber clamp to attach connectors to ribbon cables - they where never designed to be attached by hand :)

  • @Spark010
    @Spark010 2 года назад +1

    That’s incredible! Could existing games be tweaked to leverage the PI’s capabilities?

  • @8bitwidgets
    @8bitwidgets Год назад

    Very cool achievement :) thanks for making this video!

  • @Applecompuser
    @Applecompuser 2 года назад

    That is very cool. I'd like to see more of that game made. Atari 8 bit was my first computer. Also, while I programmed in basic, I was never sure how to program in assembly. I would love to learn more about that.

  • @ubiased23
    @ubiased23 2 года назад +1

    Excellent presentation! Maybe you should do a pokey replacement chip with a pokey max and run old games to see how it sounds.

    • @dazealex
      @dazealex 3 месяца назад

      Just got back into my 1030XE. Never heard of the Pokey Max.

  • @thedrunkmonkshow
    @thedrunkmonkshow Год назад

    In my head I thought the Pi would have handled the 3D calculations similar to the SVP chip on Genesis or Super FX chip with Super Nintendo where it was still rendered out to the Atari's native composite output. But this is still fascinating and very impressive given how much is involved.

  • @sysghost
    @sysghost 3 года назад +1

    Next step: transfer the rendered image in a low resolution back to the Atari and display it on its original video output.
    Is it possible? Is there enough bandwidth through the cartridge slot for such a task?

  • @Mrshoujo
    @Mrshoujo 2 года назад

    The Atari 8-bit uses both ANTIC and the GTIA. The CTIA was the early version and no recent XL/XE computers use it.

  • @romiolover6852
    @romiolover6852 3 года назад

    It has been a long time since your last video, welcome back.

    • @andywest5773
      @andywest5773 3 года назад +1

      It's great to be back! It won't be so long next time. :)

  • @metalhead5858
    @metalhead5858 2 года назад

    nice would love to see this running with an assembler version that should boost the speed of this alot

  • @przemekkobel4874
    @przemekkobel4874 2 года назад

    It would be quite easy to do part of address decoding on few logic gates, so there would be no need to use this many GPIO pins for address bus. Also, page 6 isn't really that protected by Atari OS, it's just there for user binary data/short bits of assembly code. However, there's a 2K range for HW ports that should be quite easy to use (starting from $D000).

  • @tiagoweber9438
    @tiagoweber9438 3 года назад +1

    Very interesting project, thanks for sharing!

  • @DanRamosDR
    @DanRamosDR 3 года назад +2

    I have ALL Atari computers and have machines! All of them that could be bought in a store anyway. Thank you! Also, check out Ian Chadwick's Mapping the Atari. That's a treasure of a book!

    • @another3997
      @another3997 3 года назад +1

      Also having a copy of "De Res Atari" is useful. The amount of information in both of these is incredible. Atari 8 bit machines were incredible graphics and sound powerhouses, released nearly three years before the CBM 64. They managed to hold their own against many much newer 8 bit machines, right up to the arrival of the Atari ST and Amiga. RIP Jay Miner, designer of the Atari 8 bits and the Amiga.

    • @AnOfficialAndrewFloyd
      @AnOfficialAndrewFloyd 3 года назад

      @@another3997 It's "De Re Atari.'

  • @realzeelink
    @realzeelink 2 года назад

    I can picture our future now, seems like it will be rise of the machines from the junk yard, pretty cool.

  • @TheSulross
    @TheSulross 3 года назад

    would love to see an FPGA solution doing the same thing just so the two approaches could be compared to each other - still pondering what is the decision tree for determining which approach to go with because, after all, FPGAs have gotten to be like other forms of development because the software tools have gotten much better in recent years

  • @Daz555Daz
    @Daz555Daz 3 года назад

    3D polygon graphics entered the arcades in 1984 with Atari's I, Robot. Great video all the same!

    • @danielv3228
      @danielv3228 3 года назад +1

      I robot had a custom 3d co-processor in it that allowed for quick display of the polygons.

    • @howardjones543
      @howardjones543 3 года назад

      @@danielv3228 So did Hard Drivin' (in the video) - two video chips and a DSP for the math.

  • @desiv1170
    @desiv1170 3 года назад

    I wonder if this could be the basis for a multi-8bit system 3D environment. So you are using the parallel bus on the Atari. But could in theory use the same Pi-Circle setup on a card on an Apple II or a cart for the C64... Each would need it's own way to talk to the Pi (The C64 using assembly and/or BASIC with Pokes, etc), but they would be sending the same information so it would be the same base Pi-Circle OS on the backend... Hmmm... Great vid!

  • @mightwilder
    @mightwilder 2 года назад

    this is not gpu for atari this is just remote server-client application with serial connection, what would be really interesting is create very small 3d accelerator with vhdl so it can be implemented with bunch of PAL devices (same era ~1979 programmable devices)

  • @AcidRephlex
    @AcidRephlex 3 года назад

    Instead of bidirectional, I think all you need to do is make it so that all of the video comes out of the raspberry pi and disable the onboard video. Then it’s just like any other video card that replaces the onboard video.

  • @marcsmithsonian9773
    @marcsmithsonian9773 3 года назад

    Man you nail it ! Your project Its exact essence Atari philosophy and spirit depicted on its logo ( two drunk guys lead sobber one in the middle) so 65xl is left side drunk, rasbery pi in the middle and you are on the right... don't get me wrong once you sober up I am sure you quickly realize nonsensoic nature if this project... 65xl is merely a joystick controller as it feeds data created on the RPi machine back to it just slower ... only Atari user could come with such idea... but I like your video its interesting!

  • @boborbob7579
    @boborbob7579 3 года назад

    Fantastic video

  • @scottlarson1548
    @scottlarson1548 3 года назад

    I've always thought about what's possible with a slow CPU and a powerful graphics card. It's like when old yet powerful mainframes had slow CPUs but compensated for then with lots of extra hardware to control the hard drives, the tape drives, and even the printers so the poor CPU could spend time on other things.

  • @GeorgesChannel
    @GeorgesChannel 8 месяцев назад

    Great video! My dream is a 3d card which renders the model and outputs it on the 8bit. I wrote a 3d-renderer in Basic which imports converted obj files from Blender and my vision is to render them like you in realtime with the help of sn 3d card :)

  • @cabi599
    @cabi599 3 года назад

    Outstanding!!!

  • @activemotionpictures
    @activemotionpictures 3 года назад

    Wow! this video was so insightful! Thank you for sharing all those awesome tech tricks with the Atari. Where can I get The Atari Max card flash card? 13:43

  • @artstechnology7809
    @artstechnology7809 3 года назад +1

    Nostalgia. Atari game simple and beautifull

  • @theengineer9910
    @theengineer9910 3 года назад +1

    This is crazy, I want to get an my DE0-Nano to act as a graphics card for microcontrollers after seeing VGAtonic on hackaday. I also have mc13xx video chips that i want to get working with a device but the schematics are hard to follow. Missing capacitor values and some symbols i dont recognize like variable caps/inductors.

  • @cyberlizardcouk
    @cyberlizardcouk 2 года назад

    i miss my 800xl. the first thing I ever built was a burglar alarm to keep my sister out of my room using nothing more than cables, a paperclip and a cut off joystick connector.
    i miss the 8bit days.

  • @GORF_EMPIRE
    @GORF_EMPIRE 3 года назад

    Woohoo! for Atari 8 bit fans!

  • @KeonAureii
    @KeonAureii 2 года назад

    Is possible to see the 3d map running into a real Atari without using the RPI?

  • @thisisreallyme3130
    @thisisreallyme3130 2 года назад

    THIS is exactly why we can't find Compute Module boards ANYWHERE! :-D

  • @rondamon4408
    @rondamon4408 3 года назад +1

    Amazing

  • @gower1973
    @gower1973 3 года назад +3

    Now port Doom to it :)

  • @b213videoz
    @b213videoz 3 года назад

    Wouldn't it make more sense to make Atari 800 a "game pad" (with too many keys) for RaspberryPi ?

  • @ecernosoft3096
    @ecernosoft3096 Год назад

    I was getting excited...... until I realised the card has seperate video and doesn't output through the Atari's video. When I clicked on this, I thought you could switch the video on the Atari's output to the PI video, but no.... =(
    Otherwise great video!

  • @KH-lg3xc
    @KH-lg3xc 2 года назад

    My Atari 800 XL has Xeon CPU, 32 GB of RAM and RTX Graphics chip with 6GB of video memory. I could even run Windows 10 on it.

  • @Milkex
    @Milkex 3 года назад

    They have RTOS for the pi

  • @MagoProfeta
    @MagoProfeta 3 года назад

    Minecraft for atari 800?

  • @TheJodyhicks
    @TheJodyhicks 2 года назад

    I came here to like this video

  • @PunakiviAddikti
    @PunakiviAddikti 3 года назад

    Pretty cool. But can it run crysis?

  • @orokro_stuff
    @orokro_stuff 3 года назад

    Using graphics card to control motion of the character is unrealistic. It's a graphics card, not a character game logic card.

    • @AgentOrange96
      @AgentOrange96 3 года назад

      Yeah, it seemed like he went back on his goal stated at 0:42

    • @andywest5773
      @andywest5773 3 года назад +1

      The graphics card doesn't know anything about a character. It only knows how to transform (translate, rotate, and scale) the geometry. I am handling the transformation matrices 100% on the card rather than create them on the Atari, but I'd consider that a minor implementation detail. The card's responsibilities are still graphics-only.

    • @AgentOrange96
      @AgentOrange96 3 года назад

      @@andywest5773 It sounded to me like you were forwarding the controller input directly to the Pi and letting it decide where the new position of the player/camera was. Is this a misinterpretation then? I think that's why, to us, it seemed kinda like the Pi was going beyond the duties of a GPU.
      I do also realize it's a simple demo, so there isn't much gameplay logic to begin with.

    • @andywest5773
      @andywest5773 3 года назад

      @@AgentOrange96 I guess it's a matter of semantics. Moving a player and incrementally updating the transformation matrices are basically the same thing in this case since, like you said, there's virtually no logic. There's no physics, no state machine, and really nothing in the code that suggests a player.

  • @jpl9148
    @jpl9148 3 года назад

    Very impressive. But can you add it to the Atari 2600 instead?

  • @generalbyzantine8735
    @generalbyzantine8735 3 года назад

    or "How to turn an Atari 800 XL into a RasPi terminal"?

    • @another3997
      @another3997 3 года назад

      Conceptually, modern GPUs in PCs work in a broadly similar way to this. They take data, perform calculations and render to the screen, independent of the CPU, which concentrates on program logic etc. Plugging in a GPU in to a PCI-E slot which overrides an integrated graphics chip is the same principle as this. I/O and sound are similarly offloaded. Some people have commented that it should be possible to enable bi-directional communication, so with extra code, the Atari could render the screen data too. Albeit very slowly and in much less detail.

    • @generalbyzantine8735
      @generalbyzantine8735 3 года назад

      @@another3997 Yes, my point is that no part of the game actually runs on the Atari's CPU, which is why I found the title pretty click-baity. I was hoping to see a recompiled Elite game with hooks to a homemade 3D card or something. I'm the only one to blame for such high expectations I guess. :)

  • @CallousCoder
    @CallousCoder 3 года назад

    Why wasn’t the Atari code not written in assembly?
    It’s easy enough, there’s no difficult FP math just basic IO, which is trivial on a 6502.

    • @andywest5773
      @andywest5773 3 года назад +3

      I just thought it would be goofy and kind of fun, like mining Bitcoin on a Game Boy. There's nothing practical about it.

    • @CallousCoder
      @CallousCoder 3 года назад

      @@andywest5773 that there nothing practical I understand. But it would’ve been no effort and load the whole scene a lot faster and probably be a smoother experience. And it being rather trivial, compared to the rest, it would’ve made sense to me.
      None the less, it’s a very amusing project and video. And I’ll look into Circle for sure. That was my main take away :) Keep up the great work.

    • @another3997
      @another3997 3 года назад

      @@CallousCoder "trivial" and "no effort" are relative terms. Time and money are finite resources, and a few lines of BASIC are generally far easier to write and debug than a page full of assembly code. This isn't a commercial products after all, and there's nothing stopping you from rewriting the code.

    • @CallousCoder
      @CallousCoder 3 года назад

      @@another3997 then you haven’t seen me do Basic :) That would require a manual at hand after 36 years.

    • @TheEvox81
      @TheEvox81 3 года назад

      @@CallousCoder Since it's so easy... Why don't you make your own video, doing the same process, in assembly?

  • @RalfZille
    @RalfZille 2 года назад

    Turbo Basic runs faster than Atari Basic.

  • @gameoverwehaveeverypixelco1258
    @gameoverwehaveeverypixelco1258 3 года назад

    Can you boost the power of an old laptop using a pi I wonder, plug into one or more USB ports to get pi to process data.

    • @faeranne
      @faeranne 3 года назад +1

      Yes and no. Yes, in that you can plug a pi zero, pi4, or one of the compute modules, into a USB port, and get it to process data, but no in that it will not directly supplement your existing CPU. Anything they support would have to be coded specifically to use the Pi as an accelerator.

    • @another3997
      @another3997 3 года назад

      The idea of offloading data processing and complex calculations to one or more faster CPUs is a very old concept. The implementation has changed over the years, but the principles are still the same. Render farms, clusters and supercomputers all do this in one form or another. But there are limitations. With the right software, you can use a Pi (or any computer) to supplement a slower computer's processing power. But it ISN'T the same as having a new, faster CPU in your laptop.

  • @itplus.vecmilgravis
    @itplus.vecmilgravis 3 года назад

    So you go from Facebook page fallowing link to Webpage, and then from that you go to youtube. omg

    • @another3997
      @another3997 3 года назад

      Well I didn't go from Facebook to a webpage, I went straight to RUclips. Nobody forces you to go through 3 steps. Besides, embedding RUclips video directly in Facebook or a webpage isn't the idea solution, especially on mobile devices. Are you really that lazy and impatient?

  • @stapuft
    @stapuft 3 года назад

    ......why though? lol this is so stupid it rolls back around to being smart, i kinda low key love it...

    • @feonixo
      @feonixo 3 года назад +1

      What's stupid is your comment.

    • @another3997
      @another3997 3 года назад

      Why do anything at all? This is stupid? The principles in use here have been used for decades, and are still in use today, in everything from render farms, clusters and supercomputers. Conceptually, every modern computer, tablet or phone offloads complex calculations to another processor, such as a GPU or sound card whilst the CPU gets on with other things. The CPU just sends data and instructions to a GPU, which does the calculations and renders to a screen, far faster than a normal CPU could do it.

  • @Frisenette
    @Frisenette 2 года назад

    Very lame. The Atari should display the rendering and perhaps even draw the polygons.
    Of course!
    You are well aware that that was what people expected.
    This is pointless at best.