Skip to main content

Atari 2600 Programming with 6502 Assembly

16h 30m 54s
English
Paid

Course description

This course is a gentle introduction to the fundamentals of computer architecture and the 6502 assembly language. We will learn to create games for the Atari 2600 gaming console and understand how digital machines work from the inside. The minimal hardware setup of the Atari 2600 is an ideal sandbox for mastering low-level programming.

By the end of the course, you will gain practical skills in 6502 assembly programming, a deep understanding of the Atari 2600 architecture, and a completed personal game for the VCS, which we will develop together from scratch.

Required Tools

We will use a simple text editor, the DASM assembler, and the Stella emulator. All these tools are cross-platform, allowing you to work on Windows, macOS, or Linux.

Who this course is for

This is a fully self-contained course with no formal prerequisites. However, you will find it easier and more engaging if you are already familiar with basic programming concepts (conditions, loops, functions).

If you enjoy developing retro games and want to understand computer architecture and low-level code, this course is definitely for you!

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 81 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Motivations & Learning Outcomes

All Course Lessons (81)

#Lesson TitleDurationAccess
1
Motivations & Learning Outcomes Demo
13:10
2
How to Take this Course
02:59
3
Atari VCS Hardware & Specs
28:11
4
Digital Binary System
06:17
5
Counting in Base 10 and Base 2
13:48
6
Hexadecimal Representation
10:09
7
The 6502 Processor
15:54
8
Processor Carry and Overflow Flags
17:06
9
The Assembler
15:17
10
Popular 6502 Assembly Instructions
13:39
11
Picking a Code Editor
02:35
12
Our First Assembly Code
25:12
13
The DASM Assembler
09:39
14
The Stella Emulator
16:04
15
The Javatari Emulator
05:38
16
Installing DASM under Windows
07:13
17
Our First Assembly Bug
08:21
18
Addressing Modes
06:39
19
6502 Instruction Set Exercises
12:11
20
6502 Instruction Set Exercises (Solutions)
36:49
21
VCS Memory Map
07:36
22
Setting the Background Color
16:21
23
Stella Debugger Warning Messages
06:36
24
NTSC Frame Synchronization
20:33
25
Painting the CRT in a Controlled Way
18:17
26
TIA Screen Objects
13:50
27
Players, Missiles, and Balls
06:42
28
Playfield Graphics
18:13
29
Exercise: Playfield Pattern
01:13
30
Player Bitmap and Scoreboard
14:47
31
Playfield Color
05:36
32
Defining RAM Variables
05:06
33
A Discussion on Registers and Variables
08:00
34
Vertical Positioning
11:55
35
Implementing Vertical Position
07:15
36
Horizontal Positioning
17:16
37
Smooth Horizontal Position
18:44
38
Implementing Horizontal Position
19:22
39
Exercise: Limiting Horizontal Movement
03:51
40
Limiting Horizontal Movement
10:17
41
Horizontal Position & Time Keeping
11:50
42
Counting Clock Cycles
07:37
43
Joystick Input
09:28
44
Joystick Player Movement
11:14
45
Bitwise Operations
09:43
46
Subroutines
09:37
47
The Stack
09:24
48
Pointers
05:47
49
The "Bomber" Project
02:01
50
Creating Sprites with PlayerPal
01:55
51
Defining the Project Playfield Graphics
29:58
52
Defining the Project Player Graphics
17:09
53
Drawing Player Sprites
20:32
54
Temporarily Ignoring Clock Cycles
06:20
55
Player Horizontal Position Subroutine
08:56
56
Handling Joystick Movement
08:48
57
Changing Sprite Frame
09:15
58
Enemy Vertical Movement
08:37
59
Generating Random Values
24:10
60
Bitshift Operations
08:23
61
Random Enemy Position
05:50
62
Collision Registers
08:48
63
Checking Object Collision
16:13
64
Score Digits
39:39
65
Configuring Scoreboard Graphics
12:52
66
Performing Tasks Inside Vertical Blank
19:40
67
Implementing Asymmetrical Playfield
09:12
68
Scoreboard Background Color
09:17
69
Game Over Color Effect
13:13
70
Exercise: Incrementing the Score
02:08
71
Implementing the Score Increment
04:51
72
Exercise: Limiting Player Movement
02:07
73
Implementing Player Movement Limits
08:04
74
Using BCD Decimal Mode
07:46
75
Drawing Missiles
27:50
76
Missile Collision
13:10
77
Addressing Mode Mistakes
14:10
78
Sound Registers
11:58
79
Generating Sound
29:58
80
Scanline Analysis
06:02
81
Next Steps
09:01

Unlock unlimited learning

Get instant access to all 80 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Books

Read Book Atari 2600 Programming with 6502 Assembly

#Title
16502 Instruction Set Exercises
2Scanline Analysis

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

  • Web Security & Bug Bounty Learn Penetration Testing in 2023

    Web Security & Bug Bounty Learn Penetration Testing in 2023

    Sources: zerotomastery.io
    Start a career or earn a side income by becoming a Bug Bounty Hunter. No experience needed. Hack websites, fix vulnerabilities, improve web security and much mo
    10 hours 28 minutes 11 seconds
  • How to Survive in Space

    How to Survive in Space

    Sources: Wondrium by The Great Courses, Ronke Olabisi
    From launch to landing, spaceflight is a horror show of hazards. Discover how to overcome them, with the help of a biomedical/aerospace engineer. Taught by vete
    5 hours 51 minutes 19 seconds
  • Master System Design and Design Pattern

    Master System Design and Design Pattern

    Sources: udemy
    This course explains all the deep concepts of scalable system design problems and design patterns. These problems are frequently asked during interviews.
    11 hours 33 minutes 6 seconds
  • Systems Design Fundamentals

    Systems Design Fundamentals

    Sources: algoexpert
    The most important ingredient to success in systems design interviews is having extensive knowledge in the areas of distributed computing, reliability engineering, information s...
    10 hours 2 minutes 52 seconds