Close

Knowledge is of no value unless you put it into practice

A project log for Pitari: A Raspberry Pi Atari 2600 HAT

A Raspberry Pi HAT for Atari 2600 cartridges with joystick support, exposing classic switches and buttons for a neo-authentic experience.

vincentVincent 3 days ago2 Comments

The Atari 2600, launched in 1977, was more than just a gaming console—it was a revolutionary piece of technology that brought arcade-style gaming into homes around the world. Despite the constant wave of new technology, the Atari 2600 held its own in the market for an incredible 14 years, officially discontinuing production in 1991.

In 1980, the Atari 2600 reached its peak popularity, with classics like Space Invaders driving console sales through the roof. By the mid-80s, competitors like the NES entered the market, but the Atari 2600 maintained a strong presence well into the early 90s, outlasting many of its successors and setting a legacy few consoles have matched.

For me, the Atari 2600 was already a household name, even when I was barely old enough to hold the controller. Growing up with it, I didn’t realize how special it was to have a console that would go on to define a generation of gaming. Its simple games, limited graphics, and the iconic joystick all felt like magic to me then. And while my attention eventually drifted to the Commodore 64, the Amiga, and later the PlayStation, the Atari 2600 remained a nostalgic treasure in my mind.

As time progressed, technology introduced new innovations in rapid succession. The Commodore 64, the Amiga, the personal computer, and the first PlayStation all emerged during this whirlwind of innovation, so my attention shifted. With their even increasingly sophisticated graphics and gameplay, it wasn't strange I forgot about the Atari 2600. Until some time ago, I being a few kilos older regained an interest in retro tech.

Times were different then, and technologically simpler. I started reading up on the tech, and how did they build it. What did they have to work with? I was amazed about how they built the first Atari Pong Machine realisigin which was built with only simple TTL logic. Loved the talk by David Crane about his design challenges in creating the iconic Pitfall.


For me, learning has always been a process of thinking up new ways of looking at things. To understand if my ideas would work and how I learned it is best to put them into practice. As I usually do with topics that interest me they resonate as my day goes by. Ideas can come at any time. For me, the idea for this project project popped into my head while on a train ride to Tilburg. Basically as an answer where the question came afterward. The question in this case seemed to be; "How can I create a platform that will allow me to create some hands-on experience with the old Atari 2600 tech.

Would it not be great to have a platform where you easily can interface play with the old tech? Why not attach the whole shebang to a Raspberry Pi, the shebang being the controllers, the buttons on the console, and of course the cartridge itself. 

Also appealing to me was, to pull this project off there would be a bit of a learning curve for me. I have never written a Linux Kernel driver. Electrical and PCB design is not something I do regularly.  

This platform could become a true playground for innovation. Imagine wirelessly connecting a Bluetooth controller and experiencing Pitfall in a whole new way. Or even playing over the internet with friends, bringing multiplayer options to classic Atari games.

Right now, this project is still in its early stages. I’ve drawn up my first electrical schematic and laid out the traces on the PCB, but as I neared completion, I realized I wasn’t thrilled with the design. So it’s back to the drawing board! Maybe I’ll try a different layout or explore alternative ICs. Who knows where this project will take me next?

Discussions

ABrugsch wrote 2 days ago point

Looks good!

I tried to do the same with Gameboy cartridges. Are you using 3 to 8 encoder/decoders? Happy to help with this project if needed :)

(IIRC the 2600 cartridges are more or less the ROM chips directly sitting on the address/data busses so 8 data lines, 8(?) address lines and a couple of signalling lines like CS etc.) Gameboy is a bit more complex with multiple banks of memory to choose from and a kind of copy protection (not really) in the form of the Nintendo logo needing to be in a specific place in the memory map... Fun times! Check my GitHub repo on GitHub abrugsch/gbcartslurp

  Are you sure? yes | no

Vincent wrote 2 days ago point

Hey @ABrugsch ! Thanks for the offer to help! I might just take you up on that later. Right now, I’m focused on creating an initial design to get things running in software on the Raspberry Pi.

You’re absolutely correct about the Atari 2600's architecture. The cartridge EPROM is connected directly to the MOS6507, so it’s a straightforward setup. In terms of complexity—there’s actually very little, at least in the simplest case. You can essentially view the cartridge as an EPROM connected to the Pi. However, as games grew more advanced, developers started using EPROM/bank switching to expand the programming space. I’m not entirely sure how many variations there are in post-4K games, but I’ll cross that bridge when I get there!

As for your question, I’m not using encoders/decoders as you suggested. In my current design, I opted to connect three MCP23008 ICs to the cartridge port—two to set the address bus and one to read the data bus. Since the Pi operates at 3.3V logic and the cartridge uses 5V logic, I had to use voltage level translators for each I/O expander.

I’m not completely happy with this setup, so I’m redesigning the schematic to replace all of these with a single PCAL9722. This chip can manage both the address and data buses while handling voltage level shifting, which should significantly simplify the design. Currently, I’m also using an MCP23S17 for the joystick inputs and handling button inputs separately. However, I may switch these to the PCAL9722 as well, as it can handle both the joysticks and buttons, with built-in support for debouncing.

Interesting stuff about the Gameboy! I have little to no knowledge about that. Maybe we can make the next incarnation to read/play Gameboy stuff ;) 

  Are you sure? yes | no