Classroom Public page

Week 6: Capstone, Ship the Modification

1,470 words

Pick a ROM. Make a real change. Write up what you did, why, and how. Then sit through the closing lecture that maps what you learned in SPK-101 to what CSA-101 builds.


Theme

The capstone is the artifact you ship. You pick a ROM (NES, Game Boy, or SNES; homebrew or a personal cartridge dump). You decide what to change. You make the change. You write a 1-page document explaining the change. You produce before/after screenshots. You package it all into a zip file.

The capstone is small on purpose. It is not "make a new game." It is not "rewrite the engine." It is "make one real change and explain it." The smallness is what makes the capstone achievable in week 6 (after 5 weeks of building skills) and what makes the explanation possible (you understand a small change in full).

After the capstone you sit through the closing lecture. The lecture maps every skill you used in SPK-101 to a corresponding skill you will develop in CSA-101. The bridge is real: every SPK-101 graduate who continues to CSA-101 carries vocabulary, instinct, and "I can do this" muscle memory into the next course.

Reading list (~30 minutes)

  1. Re-read courses/spk-101/CAPSTONE.md, the full capstone specification. Re-read carefully; you will follow it this week.
  2. Re-read the vca-csa-101.html public course page at https://virtuscyberacademy.org/vca-csa-101, the academy's main course, the one SPK-101 graduates take next. Skim the course overview, the equipment row, the week-by-week table. Notice what you recognize from SPK-101 and what is new.

Lecture outline (~2 hours)

The week's lecture has two parts: the capstone-orientation talk at week start (~30 minutes) and the closing-bridge talk at week end (~90 minutes after the capstone is shipped).

Part 1: Capstone orientation (week start, ~30 minutes)

  • The capstone is one student-chosen ROM modification
  • Pick something you find personally interesting. The grading does NOT favor ambitious changes over modest changes; a thoughtful palette swap with a clear write-up earns full marks
  • Plan your time: ~3 hours picking the ROM and the change, ~6-8 hours executing the change, ~2 hours writing up
  • Document as you go. Take screenshots before you change anything. Note the byte offsets you find. Keep a running log of what you tried that did NOT work; the failed attempts are interesting in the write-up
  • Avoid these pitfalls: trying to combine too many changes (one is plenty); picking a ROM you have not run before this week (use a ROM you know from earlier in the course); leaving the write-up until the last evening

Part 2: Closing bridge (week end, ~90 minutes)

After the capstones are shipped, the closing lecture maps SPK-101 skills to CSA-101 modules.

Skill: "I can install an emulator and run a ROM" → CSA-101 module: "I can flash a bitstream and run a CPU."

  • SPK-101 used existing emulators. CSA-101 has you build your own CPU in HDL (Hardware Description Language) and synthesize it onto an FPGA development board (the Sipeed Tang Primer 25K). Your CPU runs real RISC-V binaries. Same instinct ("the emulator / FPGA pretends to be a CPU"), one level deeper

Skill: "I can read 6502 assembly" → CSA-101 module: "I can read and write RV32I-Lite assembly."

  • SPK-101 read existing 6502 code. CSA-101 specifies a small RISC-V variant (RV32I-Lite: 11 instructions plus 8 pseudo-instructions, 8 registers, 4 instruction formats). You will read it; you will write it; you will hand-encode it into 32-bit binary words; you will run your hand-encoded binaries on the CPU you built. Same instinct (CPU instructions are bytes with a structure) at a deeper depth

Skill: "I can open a ROM in a hex editor and find bytes" → CSA-101 module: "I can read a binary object file and find symbols."

  • SPK-101 hex-viewed NES ROMs to find sprites and text. CSA-101 has you build an assembler from scratch (one that produces a custom academy object format called VOF) and a static linker (that produces flat binary images runnable on your CPU). You write the tools; you understand the bytes those tools produce

Skill: "I can make a ROM hack" → CSA-101 module: "I can write a Jack-equivalent compiler and have it emit code I wrote the runtime for."

  • SPK-101 modified bytes in an existing ROM. CSA-101 has you build a compiler for a small high-level language (think simplified Java); the compiler emits VM bytecode; you write the VM translator; the translator emits assembly; the assembler emits object code; the linker produces a flat image; the image runs on your CPU. The whole stack. Each layer is something you wrote

Skill: "I can write up a ROM hack" → CSA-101 module: "I write a Toolchain Diary and submit lab deliverables."

  • SPK-101's capstone write-up is the first time you described your own work in plain English. CSA-101 has you do this every chapter, in a running document called the Toolchain Diary. You journal each new practitioner tool you encounter (xxd, objdump, riscv32-unknown-elf-as, Ghidra, gdb, and more). The diary becomes your personal reference document, the one you reach for years after the grade is posted

The throughline. SPK-101 spent 50 hours showing you that computing is not magic; CSA-101 spends 155 hours showing you that you can build the entire stack from logic gates upward. The bridge is real. If you want to take CSA-101 after SPK-101, the academy welcomes you. If you want to take CSA-101 someday but not yet, take the time you need. If SPK-101 was enough and you do not want to continue, that is a real result too.

Labs (~5 hours total, capstone-week distinct from prior weeks)

This week the "labs" are the capstone itself.

Lab 6.1: Pick your ROM and your change (labs/lab-6-1-capstone-scoping.md)

  • Goal: Select the ROM you will modify; select the specific change; write a 1-paragraph capstone proposal
  • Time: ~60 minutes; should happen on day 1 of the week
  • Artifact: a 1-paragraph proposal in your lab journal saying what ROM you are using, what you are changing, and why

Lab 6.2: Execute the change (labs/lab-6-2-capstone-execution.md)

  • Goal: Make the modification; verify it runs in the emulator; save your work
  • Time: ~6-8 hours, spread across days 2-5 of the week
  • Artifact: the modified ROM; the unmodified ROM (kept separately); before/after screenshots; a working notes log

Lab 6.3: Write up the capstone (labs/lab-6-3-capstone-writeup.md)

  • Goal: Write the 1-page document; package the deliverable; produce the final zip
  • Time: ~2 hours; should happen on day 6 of the week
  • Artifact: the final capstone deliverable per CAPSTONE.md (zip containing modified ROM + original ROM SHA-256 + write-up + before/after screenshots)

Independent practice (~0 hours)

Capstone week absorbs the independent-practice budget into the capstone itself. The "independent practice" of this week is your continued exploration as part of the capstone work.

Reflection prompts (~30 minutes; for week end)

  1. Six weeks ago, you may not have known what an emulator was, what a ROM file contained, or that you could modify a ROM. What is the moment in the course where things first started to feel like "I can do this"?
  2. The capstone asked you to make one change and explain it. Now that you have shipped, was the explanation easier or harder than the change itself?
  3. The closing lecture mapped SPK-101 skills to CSA-101 modules. Which of those mappings was most interesting to you?
  4. If you were going to design the next course after SPK-101 for someone like yourself, what would you put in it?
  5. What did SPK-101 NOT teach you that you wish it had?

Visual Helpers

You have three cognitive tools available from the supplement at curriculum-supplements/spk-101-younger-learner-tools.md. This is a good week to review the one that helped you most in Weeks 2-4 -- reading it again now that the capstone is concrete will often make it click in a way it did not the first time.

If your capstone involves finding a specific byte offset: Re-read the offset calculation worked example in the supplement before you start Lab 6.2. Confirm your formula and your numbers on paper before you open the hex editor.

If your capstone involves sprite editing: Re-read the Bitplane Decomposer section. Decode the tile you plan to modify on graph paper first. Know exactly which bits you are changing before you change them.

If your capstone involves reading assembly in the debugger: Keep the Addressing Mode Flowchart nearby. You will read instructions in Mesen's disassembler; the # rule applies every time.


What comes next

If you are continuing to CSA-101, your next step is the vca-csa-101.html course page and the CSA-101 outline at draft-chapters/. The academy will let you know when CSA-101 enrollment opens.

If you are not continuing immediately, the capstone you shipped is real work. Save the zip. Save your lab journal. The skills will still be there when you come back.

Whichever choice you make, the SPK-101 cohort thanks you for spending these six weeks with us. The spark was real.