Gateway / Pre-CSA-101 motivational on-ramp. No-prereq introduction to game emulators, ROM hacking, and the 6502 historical anchor, all on a laptop, no hardware required. ~50 hours total across 6 weeks. Audience: high-schoolers, homeschool students, curious adults.
Course mission
You start SPK-101 curious about old video games and end it knowing how to read the bytes of one. You stop seeing emulators as "games on a computer" and start seeing them as exactly what they are: programs that pretend to be other programs. You make a real change to a real game cartridge file, write up what you did, and walk away with the muscle memory that says "I can do this." If that experience lights a spark, the academy's main course (CSA-101: Fundamentals of Computing Systems) is right there waiting.
This is the academy's gateway course. We built it for the person who is not yet sure they want to study computing. By the end of week 6 you will know.
Who this course is for
- High-school students who play video games and are starting to wonder how they actually work
- Homeschool families looking for a real computing course that fits in a semester
- Curious adults who have always wanted to know what is inside a ROM file
- Anyone with basic computer literacy, you can install software, you can use a file manager, you have used the internet to look things up. That is the only background we ask for.
You do NOT need to know how to program. You do NOT need to know assembly language. You do NOT need to own retro hardware. You do NOT need a kit. You need a laptop running Windows, macOS, or Linux; an internet connection; and ~50 hours of time over 6 weeks.
What you will know at the end
- What an emulator is, and why "running a game on your laptop" actually means three layers of software pretending to be hardware
- How to open a ROM file in a hex editor and read what is in it
- The 6502 CPU's instruction set at a working level: load, store, jump, branch, subroutine call, return. The MOS Technology 6502 is the chip inside the original Nintendo Entertainment System; learning it teaches you what every CPU since does, just simpler
- How to modify a ROM (a "ROM hack") and run your modified version in an emulator
- How to write up what you did, why you did it, and what you discovered
- Why the academy's next course (CSA-101) is worth taking, and what to expect when you get there
Course shape
| Week | Theme | Lab focus |
|---|---|---|
| 1 | What is an emulator? | Install Mesen + run a homebrew NES ROM |
| 2 | What is inside a ROM? | Hex view, header structure, sprite tiles |
| 3 | 6502 assembly: the friendliest CPU | Read disassembly; step through code in a debugger |
| 4 | ROM hacking, make the change | Palette swap; text swap; sprite swap; level-byte tweak |
| 5 | Side trips: Game Boy + SNES | Same skills, different ISAs |
| 6 | Capstone + bridge to CSA-101 | Document your ROM hack; map what you learned to CSA-101 |
Total time budget: ~50 hours across 6 weeks.
- Lecture content: ~10 hours total (~1.5-2 hours/week of recorded video or instructor-led discussion)
- Lab time: ~25 hours total (~4 hours/week of guided hands-on work)
- Independent practice and reading: ~15 hours total (~2.5 hours/week of self-directed exploration)
Materials
Required (all free):
- Mesen (NES emulator with built-in debugger),
mesen.ca - SameBoy (Game Boy / Game Boy Color emulator with debugger),
sameboy.github.io - bsnes-plus (SNES emulator with debugger),
github.com/devinacker/bsnes-plus - A hex editor, HxD (Windows), Hex Fiend (macOS), or Bless/hexedit (Linux)
- The academy's in-browser 6502 sandbox at
https://virtuscyberacademy.org/8bitworkshop/(open in any modern browser; no install)
Required reading (all free online):
- The NESdev wiki at
wiki.nesdev.org - Easy 6502 tutorial by Nick Morgan at
skilldrick.github.io/easy6502 - 6502.org programming references
Capstone deliverable:
- Your documented ROM hack, a modified version of a legal ROM (open-source homebrew or your own personal cartridge dump) plus a 1-page write-up. Full spec in
CAPSTONE.md.
Per-week module structure
Each week's module file (week-N-theme.md) contains:
- Theme + framing, what you will learn this week, and how it builds on the previous week
- Reading list, ~30-60 minutes of background reading from the free online materials
- Lecture outline, bullet outline of key concepts (~1.5-2 hours of lecture or video)
- Lab exercises, 2 or 3 labs each week with concrete steps and expected artifacts
- Independent practice, suggestions for exploration beyond the assigned labs
- Reflection prompts, 3 to 5 questions you journal at week's end
Week 4 has 4 labs because it is the practical heart of the course (the ROM hacking week). All other weeks have 2 labs.
Capstone
By end of week 6 you ship:
- A modified ROM file (the hack itself)
- A SHA-256 hash of the original ROM (so anyone can verify what you started from)
- A 1-page written write-up: what you changed, how you found the byte to change, why the change is interesting, what you had to learn to make it work
- Before/after screenshots showing the modification running in the emulator
The full capstone spec is in CAPSTONE.md. The capstone is graded on three things: the modification works, you can explain what you changed, and you can explain why. It does NOT require: original game development, audio modification, AAA polish, or hacking a commercial game.
What this course feeds into
SPK-101 graduates who want more typically take CSA-101: Fundamentals of Computing Systems next. CSA-101 takes 14 weeks and ~155 hours. It is where you build a working CPU from logic gates, write an assembler, and run programs on hardware you designed yourself. SPK-101 students arrive at CSA-101 with the 6502 vocabulary, the ROM-hacking instinct, and the "I can do this" muscle memory. CSA-101 builds on all three.
Other directions SPK-101 graduates take:
- VCA-RE-011: Introduction to Reverse Engineering, formalizes the ROM-hacking instinct into a discipline applied to modern software
- VCA-FND-101 + VCA-FND-102, the foundations courses (digital basics + Python and automation) if you want a broader computing on-ramp before specializing
- VCA-NET-101, networks and packet analysis, if the emulator-debugging skill set has you wanting to inspect live traffic
Pedagogy
SPK-101 is taught the way a friend with a few years of experience would teach you: a real artifact in your hands by the end of every lab; explanations in plain English; debugging happens together; mistakes are part of the process. We do not assume you have programmed before. We do not assume you have read a hex dump before. We do assume you can follow instructions, ask for help when you are stuck, and put the time in.
If you finish the course and want to keep going, we are glad you are here. If you finish the course and decide computing is not for you, we are glad you tried. Either outcome is a real result.
Setup before week 1
See SETUP.md for the laptop and software setup checklist. Plan ~2 hours before week 1 starts: download the emulators, install the hex editor, bookmark the reading materials, and run the test "did everything install" exercise in labs/lab-0-0-install-and-verify.md.
Course outline v0.1 prepared 2026-05-08. Iteration after first pilot cohort runs. Updates and amendments tracked in this file's commit history.