Learn 6502 Assembly

Learn 6502 Assembly

by Pascal Garber

All download options

All releases on GitHub

Program vintage consoles

Discover the fascinating world of programming classic computers and game consoles! Learn 6502 assembly language - the same code that powered iconic systems like the NES, Commodore 64, and Apple II.

No prior programming experience needed. Start with interactive lessons and build your skills step by step.

  • Interactive tutorials guide you from beginner to advanced
  • Write and edit code with a built-in code editor
  • Debug your programs with real-time inspection tools
  • Test your creations on a virtual game console
  • Learn about computer history while coding

Perfect for hobbyists, students, and anyone curious about how computers really work under the hood!

Changes in version 0.8.0

Learn 6502 now runs on Windows and macOS too. If you have been wanting to point a friend at it who is not on Linux, you can now do that.

  • For Linux there is also an AppImage now: one file, no installation, useful on a distribution we do not package for.
  • Two new example programs, and both came from you: Dino Run by Jacob, and Line Buster 6502 by edit12. They are the first examples sent in with the share button, and we would love more.
  • வணக்கம்! We are happy to welcome Tamil translations, contributed by தமிழ்நேரம். நன்றி!
  • If your system language is Chinese, the app shows up in Chinese again. It had been falling back to English by mistake.

As always, this release includes many small fixes and improvements.

Older releases

Changes in version 0.7.0

Shalom! We are happy to welcome Hebrew translations, fully contributed by Menachem (naattxx). Toda raba!

Hebrew is also our first right-to-left language: thanks to Menachem's testing and contributions, the app now supports right-to-left layouts, preparing it for more RTL languages.

Selamat datang! We also welcome Indonesian translations, kindly contributed by Arif Budiman. Terima kasih!

As always, this release includes many small fixes and improvements.

Changes in version 0.6.5

Learn 6502 now runs on GNOME 50! Thanks to Sabri Ünal for contributing the runtime update.

Fixed an issue where the back button in the learn section was always visible in desktop and tablet mode, even when no subpage was open.

Under the hood: updated to TypeScript 6, Vite 8, and other dependency upgrades for improved performance and stability.

Changes in version 0.6.4

Tervetuloa! We are happy to welcome Finnish translations, kindly contributed by Jiri Grönroos. Kiitos!

Changes in version 0.6.3

Welcome Vietnamese translation, fully contributed by Loc Huynh (hthienloc).

Changes in version 0.6.2

Welcome Polish translation, initially contributed by Micro Wave. Dziękujemy!

Shared code examples now include CC-BY-4.0 license information, making it clear how the community can use and build upon your contributions.

Changes in version 0.6.0

We've added a new Examples section to the Learn tab where you can explore and run fully-commented 6502 programs right in the app. Start with our featured Snake game example and see how those pixels come to life!

Got your own cool 6502 creation? Share it with the community! You can now submit your code examples directly from within the app. Just hit the share button, and we'll automatically create a GitHub issue and pull request for you.

Learning by example has never been easier. Dive into working code, tweak it, break it, fix it again - that's how the best programmers learned back in the day!

Changes in version 0.5.0

Say hello to many fresh translations: French, Interlingua, Portuguese, Portuguese (Brazil), Dutch, Spanish, Ukrainian, Japanese and Chinese (Simplified)

German and Spanish have been validated by contributors. Other languages are AI‑assisted drafts and need human validation.

If you speak one of the listed languages, please help review or improve the translations. You can contribute via the in‑app links, our translation platform, or by opening an issue.

Changes in version 0.4.0

This release brings vibrant handheld-inspired theming with customisable colours. We've introduced adaptive tablet and desktop layouts that keep everything in view, perfect for those marathon coding sessions when learning to develop retro games in assembly. Big thanks to our new contributor @mmartinortiz for the great desktop layout ideas. There are some cool technical improvements too, like TypeScript strictness, custom GtkSourceView style schemes, and enhanced debugger controls for smoother development.

Changes in version 0.3.0

Major UI improvements introducing a modern Floating Action Button with dynamic states for intuitive program control, and a completely redesigned debugger widget using modern Adwaita components.

Architecture enhancements enable better code sharing between GNOME, Web, and Android platforms.

Changes in version 0.2.0

Added help feature to make code editing easier for beginners

Improved game screen and controls for mobile devices

New tools to examine your code, including disassembler and fast switchable memory viewer

Many minor bugs have been fixed to improve overall usabipty

Games now automatically pause when switching between screens

Added file management to save and load your programs

Changes in version 0.1.2

Enhanced app presentation and accessibility

Improved descriptions to be more welcoming for non-technical users

Optimized Flatpak configuration by removing unnecessary permissions

Changes in version 0.1.1

Improved the game console performance for smoother gameplay

Enhanced the hex monitor address range input for easier value editing

Reduced default hex monitor address range for better efficiency

Debugger now only updates when visible, reducing unnecessary processing

Fixed build error on PostmarketOS, improving mobile compatibility

Changes in version 0.1.0

First release of Learn 6502 Assembly for GNOME

Support this project

Categories

  • Development
  • Education

Keywords

  • 6502
  • Assembly
  • programming
  • learning
  • Simulator
  • IDE
  • Debugger
  • Adwaita
  • GNOME

Architectures

  • x86_64
  • arm64