Giter Club home page Giter Club logo

argh2600's Introduction

argh2600

Pitfall! screenshot

Somewhat complete implementation of the legendary Atari 2600 VCS in synthesizable VHDL. In the photo and the video the design is being run on a Altera Cyclone II device (DE2 board).

Features

  • Real composite color video output (no component or VGA output)
  • Joystick emulation with a PS2 keyboard
  • Audio output using an AC97 codec
  • Supports 4K cartridges

Here's some poor quality Youtube evidence:

demo video

Blah blah

When I originally got the idea of recreating a game console lodged between my ears, I thought Atari 2600 would be a really simple machine to do because it's so primitive. Right? No. The difficult part is getting TIA (the graphics chip) right, or more specifically getting the timings right. In retrospect I would pick a console that has a bit more autonomous and less timing sensitive graphics hardware.

The project uses T65 the VHDL 65xx implementation from opencores.org. Everything else is written by me. Originally I planned to write also the 6507 from scratch, but wisely decided against it. Timing (which is still off) is absolutely esssential to get even the basic games working. Getting both the 6507 and TIA timing right at the same time would've probably been really frustrating. I'm planning to write my own 65xx at some point though, but I want to write some gameconsole cores first to test it against.

One thing that proved out to be invaluable along the way was Stella. I would highly recommend using it for anyone planning to embark on this same journey.

TODO

  • More accurate register access timing (unsurprisingly this is really important for games)
  • There's something wrong in RIOT as some games (for example Smurfs) utilizing the timers fail to sync
  • Build a wing board to connect real joysticks to the board
  • Bank switching for 4K+ cartridges
  • Serial/USB/whatever loader for switching cartridges without resynthesis

argh2600's People

Contributors

elpuri avatar

Stargazers

Ismael Soller Vianna avatar Pierpaolo Pierozzi avatar Hans Bonini avatar Timothy avatar  avatar  avatar Robson França avatar Vahid Heidari avatar Mattia Toso avatar Martin Cejp avatar Brahim HAMADICHAREF avatar Michael Mayers avatar

Watchers

 avatar James Cloos avatar GP Wang avatar  avatar  avatar

argh2600's Issues

Some missing files

Hey, I notice some missing files

  • QSF on /quartus folder (for pinouts and other configs)
  • sine_rom.mif (is it copyright material? how to generate?)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.