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

Build an AI Career Coach using an Open Source LLM

Build an AI Career Coach using an Open Source LLM

Sources: zerotomastery.io
Create your own AI-based career coach using an open LLM and prompt management techniques! This coach will be able to train, test, and...
1 hour 38 minutes 53 seconds
Computer Networking

Computer Networking

Sources: Oz Nova (csprimer.com)
The Internet - along with all the applications it supports, such as the web - has become one of the most significant driving forces of technological progress...
23 hours 58 minutes 29 seconds
How to Open Source: The missing open source handbook for new contributors

How to Open Source: The missing open source handbook for new contributors

Sources: Richard Schneeman
Contributing to open source can be scary, but it doesn't have to be. This is the missing handbook that will guide you from making your first contribution to building a sustainab...
Become a Probability & Statistics Master

Become a Probability & Statistics Master

Sources: udemy, Krista King
This 163-lesson course includes video and text explanations of everything from Probability and Statistics, and it includes 45 quizzes (with solutions!) and an a
11 hours 29 minutes 40 seconds
Communication Masterclass 2.0

Communication Masterclass 2.0

Sources: Ganesh Prasad
This course will help you express your thoughts confidently and clearly in 6 weeks. It includes over 13 hours of pre-recorded video lectures, 26 live sessions w
11 hours 49 minutes 3 seconds