Atari.js

Description

Atari.js is a web browser game project that began as an Arduino-based Atari prototype, but evolved into a JavaScript programmed game due to the desire for color control capabilities. Inspired by the iconic Atari gaming console, the project aims to recreate the nostalgic gaming experience while incorporating HTML canvas to render graphics.

The initial concept involved developing a prototype of Pong utilizing the MAX7219 module to display the game graphics on an 8x8 LED screen. An LCD1602 module was also used to display the menu and score information, while the control was facilitated by a joystick module.

However, due to the size limitation of the LED screen, the project evolved to incorporate nine MAX7219 modules daisy-chained together, forming a 3x3 set of screens. To achieve this expansion, I wrote C++ code for the microcontroller that transmitted bit streams using SPI communication protocol to control the rows of each MAX7219 device, effectively pushing commands through the shift registers within the daisy chain. To ensure synchronization, screen write commands occurred after nine consecutive bit stream transmissions. This was learned through software debugging a flickering screen issue.

After successfully testing the daisy chain setup for the MAX7219 modules and finalizing the software for Pong, a turning point occurred in the project. As ideas for the games I wanted to implement grew bigger, I realized that I needed more control over colors to truly bring my visions to life. Consequently, I made the decision to transition the project from the Arduino-based prototype to a web browser implementation. By using JavaScript to control the game logic and graphics rendering, this shift would enable me to explore a wider range of colors in developing the games.

Atari.js offers a selection of Atari-inspired games accessible directly through web browsers, eliminating the need for specialized hardware. The project leverages the power of JavaScript to replicate the gameplay and aesthetics of vintage Atari titles. The game collection includes Space Invaders, Centipede, Breakout, and Snake.

The links below can be used to play Atari.js or view the code on Github.

The link below can be used to view the code on Github.

Play View Code

Diagrams

...

Arduino Circuit Diagram

...

Pong Ball State Machine Diagram

Videos