#atari2600

chris actuallackattack
2025-05-28

What's a guy gotta do to convince you to buy him The Epyx Bundle from Steam with no strings attached?

Atari Scene NewsPhilsan@mastodon.world
2025-05-27

Room Raider, work in progress game for #Atari2600 console youtu.be/MnyajnP-Y6A #atari #retrogames

Atari Scene NewsPhilsan@mastodon.world
2025-05-27

Updated version of Dead Planets and new Oh No! More Dead Planets, two games for #Atari2600 console forums.atariage.com/topic/3819 #atari #retrogames

diyelectromusicdiyelectromusic
2025-05-22

A simple breakout to add (some) Atari 2600 style controllers to an Arduino Uno.

Note: Doesn't really do paddle controllers though...

diyelectromusic.com/2025/05/22

Photo showing an Atari 2600 joystick and "video keypad" both plugged into a custom PCB in Arduino Uno shield form factor.
Simple DIY Electronic Music Projectsdiyelectromusic.com@diyelectromusic.com
2025-05-22

Atari 2600 Controller Shield PCB Build Guide

Here are the build notes for my Atari 2600 Controller Shield PCB Design.

Recall from my design notes that this version doesn’t deal with paddles very well.

Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

If you are new to Arduino, see the Getting Started pages.

Bill of Materials

  • PCB (GitHub link below)
  • 2x 9-pin D-type connectors – PCB mounted (see photos and PCB for footprint).
  • Optional: Arduino headers: 1×6-way, 2×8-way, 1×10-way
  • Or: pin headers

The above photo shows the 9-pin D-type connectors from various angles. The spacings are as follows:

  • Pin spacing: 2.77mm
  • Spacing between pin rows: 2.84mm
  • Distance from pins to edge of connector: 7.7mm
  • Mounting hole distance to edge of connector: 9.12mm
  • Mounting hole distance: 25.0mm

Build Steps

It doesn’t matter much whether the pin headers or D-type connectors are soldered first.

However, if using header sockets as shown in the photo above, then it makes more sense to fix these first as they need to be soldered on the same side as the D-types, but aren’t as tall.

Testing

I recommend performing the general tests described here: PCBs.

A simple digital and analog read sketch can be used to quickly check the functionality.

For joysticks:

#define PINS 10
int p[PINS] = {2,3,4,5,6,8,9,10,11,12};

void setup() {
for (int i=0; i<PINS; i++) {
pinMode (p[i], INPUT_PULLUP);
}
Serial.begin(9600);
}

void loop() {
for (int i=0; i<PINS; i++) {
Serial.print(digitalRead(p[i]));
Serial.print("\t");
}
Serial.print("\n");
delay(200);
}

For paddles:

Note: this will require an additional resistor to GND from the corresponding analog input, for all paddles used. If a 1M resistor is used there is a more linear response, but the readings will only vary between 512 and 1023 (or thereabouts) corresponding to a read voltage of between 2.5V and 5V.

void setup() {
Serial.begin(9600);
}

void loop() {
for (int i=0; i<4; i++) {
int aval = analogRead(A0+i);

Serial.print(aval);
Serial.print("\t");
}
Serial.print("\n");
delay(100);
}

For keypads:

Note: this requires the keypad library which should be available by default with the Arduino environment.

#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char hexaKeys[ROWS][COLS] = {
{'3','2','1'},
{'6','5','4'},
{'9','8','7'},
{'#','0','*'}
};
// Port 1
byte rowPins[ROWS] = {11,10,9,8};
byte colPins[COLS] = {12,A0,A1};
// Port 2
//byte rowPins[ROWS] = {6,5,4,3};
//byte colPins[COLS] = {2,A2,A3};

Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

void setup(){
Serial.begin(9600);
}

void loop(){
char customKey = customKeypad.getKey();

if (customKey){
Serial.println(customKey);
}
}

PCB Errata

There are the following issues with this PCB:

  • As already mentioned there is no real provision for reading paddles.

Enhancements:

  • Allow for a resistor and capacitor to mirror the original Atari 2600 circuit.

Find it on GitHub here.

Closing Thoughts

As is becoming customary, it appears I can’t produce a PCB without at least one annoying issue. Even one as simple as this I managed to get the wrong sense for the connector for v0.1 and didn’t notice until the signals weren’t working!

The paddle issue was really just my misunderstanding (misreading) of the documented paddle circuit!

But pleasingly the Arduino built-in Keypad library “just works” with the keypad controllers and this simple version of the Arduino shield

Kevin

#arduinoUno #atari #atari2600 #define #include #pcb

Simple DIY Electronic Music Projectsdiyelectromusic.com@diyelectromusic.com
2025-05-22

Atari 2600 Controller Shield PCB Design

This is an Arduino Uno shield format PCB for hooking up two Atari 2600 style controllers to an Arduino.

Note: this iteration of the design doesn’t really do the paddles very well, but it works fine for joysticks and keypad controllers.

Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

If you are new to Arduino, see the Getting Started pages.

The Circuit

This is a fairly straight-forward mapping of an Atari controller’s pins to Arduino IO pins.

The most comprehensive description I’ve found of what the 9 pins on the D-type connector are is the following. And there are a few other useful references too:

On driving them with an Arduino, the following are relevant:

Standard Joysticks

The buttons are pulled high, connected low when the button is pressed. This makes reading the joystick and paddle buttons relatively straight forward.

Paddles

The analog paddle inputs are a little more complicated. On first inspection, I thought they were effectively potentiometers across 5V and GND, but actually it turns out they are 1M variable resistors across 5V and the wiper. This means that reading them is a little more complex.

To read them using a simple ADC method, it is possible to include a second resistor between the controller pin and GND, creating a voltage divider that can then be read via the ADC. The smaller the second resistor, the more of the voltage range will be covered.

But it isn’t a typical voltage divider. As R1 changes, the percentage of R2 changes too, so whilst a small R2 gives more of the voltage range (closer to 0V up to 5V), the change is less linear.

Here are some graphs showing the output voltage profile for different R2 values.

So 1M (which of course matches the resistance already in the paddle controller pot) gives the most linear response, but it has the following properties:

  • Read value = 0V -> controllers not present.
  • Read value between 2.5V and 5V -> controller present and being used.

The actual Atari circuit appears to have a 1.8K resistor into the microcontroller pin with a 68nF capacitor to GND (follow the circuit from pins 5 and 9 here). From some of the above links for using paddles with an Arduino it appears the basic algorithm for reading the paddles is to time the charging and discharging of the capacitor.

There is no facility on this version of the board to allow for the addition of a capacitor and a resistor. It is possible to include a resistor to GND in some cases, but really the use of this board with paddles is quite sub-optimal!

Keypads

When used with a keypad, the four direction buttons are mapped to rows, and the two paddle inputs (pulled up in the controller to 5V) and trigger is used for the columns.

Arduino GPIO

From all this, we can derive the following table and map that over to Arduino IO pins. I’ve added two 9-pin connectors, so they are mapping onto two sets of Arduino pins.

Atari PinJoyStickPaddlesKeypadArduino port 1Arduino port 21UPROW11162DOWNROW21053LEFTTRIGGER AROW3944RIGHTTRIGGER BROW4835PADDLE BCOL1A1A36TRIGGERCOL312275V5V5V8GNDGNDGND9PADDLE ACOL2A0A2

As A0-A3 can be used as either digital or analog inputs this makes decoding the controllers particularly easy (paddles not withstanding) once it is known what kind of controller is attached.

PCB Design

The PCB design is quiet straight forward. The IO pins have been chosen for easy routing. I’ve used footprints for the two controller connectors that matched the PCB-mount connectors I’ve been able to pick up fairly cheaply.

All unused Arduino IO pins have been labelled on the board for ease of use. The following are all available:

  • D0/D1 – RX/TX
  • D7, D13
  • A4, A5 – SDA/SCL

This leaves options for UART, I2C, digital and analog IO.

As already mentioned, no provision has been included for sensible decoding of the paddles. That will have to come in a future version.

Closing Thoughts

In the first iteration of this board, although it is a pretty straight forward board, I’d managed to use the footprints for the socket version of the 9-pin connectors and not the pins version.

This meant that when I got the boards back, the pins were all back to front!

I had a quick re-spin of the board, including swapping the pins associated with UDLR over so that routing remained fairly trivial.

If I’d looked at the 3D version of the board prior to sending it off, I might have noticed. Oh well.

The whole thing with the paddles was because I’d mis-read the schematic for the controllers and made the assumption that they were wired between 5V and GND in a common potential divider format.

It wasn’t until the boards came back and the paddles weren’t working that I looked a bit deeper and spotted the misunderstanding. Oh well.

Kevin

#arduino #atari #atari2600 #pcb

diyelectromusicdiyelectromusic
2025-05-22

@rc2014 They work :)

Now to do something properly with them!

Although I might just have to fire up Atari Basic just for the experience of how bad it is...

Photo of two Atari 2600 keyboard controllers plugged into a custom PCB on an Arduino Uno.
Atari Scene NewsPhilsan@mastodon.world
2025-05-22

Treats to Cats, work in progress game for #Atari2600 console. Cats are Atari and Sid, guest stars of ZeroPage Homebrew streams forums.atariage.com/topic/3817 #atari #retrogames

Atari Scene NewsPhilsan@mastodon.world
2025-05-21

Contractors, new Contra inspired work in progress game for #Atari2600 console. Early demo: forums.atariage.com/topic/3818 #atari #retrogames

2025-05-20
#AtariVCS is a video #game console developed and mass produced by Atari for the home entertainment of Warner, Inc.
With an introduction price under US$200 the VCS became the first affordable and popular #microprocessor-based game console in the consumer market.

The Atari Video Computer System was built around the 8-bit MOS 6507 CPU @1.19 MHz and swappable ROM #cartridges to expand the memory limits of 128 bytes RAM. Initially released 1977 with Tank Combat and later #Pac-Man included, bundled with two #joysticks and a pair of paddles this legendary #Atari console opened up game development, cartridge production, and sales far beyond #ActiVision.

While VCS couldn't challenge #arcade hardware in graphics, flexibility was the advantage and the wood grain finish by Gene Landrum made it stylish on top of that. The #game-market started with only 8 titles like #Pong and grew fast over #Breakout, #Asteroids, #SpaceInvaders, #Pitfall, E.T., Frogger and many more. It was the big selection of games available that made Atari's #console a huge success.

After Sears sold it as Tele-Games Video Arcade for less, the VCS was rebranded 1982 as #Atari2600. Low production costs of $40 kept revenue coming in even when sales prices dropped on average of $125.
15 million ACS and estimated 120 million cartridges been sold before the video game crash of 1983. And the ACS was profitable for almost the next decade, but 1992 after 30 million sold units the production was finally stopped.

Maybe the best thing of our #retrogaming #hardware #illustrations isn't the level of #details, but the proof that You don't need to pay for #Adobe #Illustrator #AI or #PostScript to create #retrocomputer #art in best #vector #quality. Since we use only #FreeSoftware and with the #graphic description open like #SVG, there is no obstacle to be #creative #together. Follow #ITsHistory to see what else you could do with powerful #FOSS like #Inkscape
Atari Video Computer System retro-gaming illustration in vector graphics
Johnny Game Over aka JGOjohnnygameover
2025-05-20
2025-05-19

Kennt jemand ein Programm / eine App mit der man Spiele für den Atari 2600 / Atari 7800 usw vernünftig verwalten kann? #Atari2600 #Atari7800

Atari Scene NewsPhilsan@mastodon.world
2025-05-19
Atari Scene NewsPhilsan@mastodon.world
2025-05-18
2025-05-17

Heute morgen Runde #digdug und #spaceinvaders für #atari2600 mit 2 Kindern. Superfun einfach immer noch. Ich liebs, dass diese Spiele 10 Min gehen und man dann sagen kann: jo, danke. Oder tagelang darin versacken. Der Original-Joystick heißt bei meinen Kindern nur noch "Gräulstick", der ist echt schwerfällig. Bevor das Schulprojekt startet, brauch ich n moderneren. #retrogaming

2025-05-17

video.thepolarbear.co.uk/w/shNTFvra7JaowLRJSStPZc

ICYMI this is the VOD of the short stream I did earlier. You can skip the first section as it is mostly me moaning about my dental surgery and IRL.

The rest of the video though is about PCBs for the
#ZXSpectrum #AtariST and #Atari2600 and upcoming projects.

#Retro #Electronics

2025-05-16

¿Recuerdas Demon Attack para la #Atari2600 #Intellivision y #Videopac?
Este juego de disparos de 1982 de Imagic, fue muy popular en su época.
En él, los jugadores deben defender su planeta de una invasión de demonios. ¿Lo jugaste? #DemonAttack #Atari2600 #VideojuegosClásicos

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst