Classroom Public page

Lab 6.1: Scope Your Capstone, Pick Your ROM and Your Change

934 words

~60 minutes. Day 1 of capstone week. Decide what you are doing this week; write a 1-paragraph proposal that scopes it tightly.


Goal: select the ROM you will modify; select the specific change; write the 1-paragraph proposal that locks the scope in.

Estimated time: 60 minutes

Prerequisites: weeks 1-5 complete; you have hex-edited NES, Game Boy, and SNES ROMs and have working comfort with one or more of them

Steps

Step 1: List your candidate ROMs (10 minutes)

In your journal, list every ROM you have worked with during the course. For each, note:

  • Which platform (NES, Game Boy, SNES)
  • How well you know the game (have you played it for an hour? Five hours? Just enough to boot?)
  • What you find interesting about it (the art? The music? A specific level? A specific character?)

You will pick from this list. Avoid the temptation to download a NEW ROM in week 6; you will lose time exploring rather than executing.

Step 2: Brainstorm 5-7 possible changes (15 minutes)

For your candidate ROMs, brainstorm changes. Each should be:

  • Specific (not "make it more colorful" but "swap the player character's primary color from blue to red")
  • Within your skill set (lab 4.1-4.4 territory; not "rewrite the game engine")
  • Visible (you can tell the change happened when you load the modified ROM)
  • Small (one specific change, not a bundle of three changes)

Write down 5-7 ideas. Some examples to prime your thinking:

  • Change one palette color across the whole game (NES)
  • Change the title-screen text (NES, Game Boy, or SNES)
  • Redesign one specific tile (the player; an enemy; an item)
  • Change the starting life count
  • Change one music note (a stretch idea; advanced)
  • Change the level layout by modifying one byte (only works if you can find a level-data byte; not always possible)
  • Replace the developer credits with your own name
  • Change one specific enemy's spawn pattern

Note: NO commercial-game targets. Only homebrew or your own cartridge dump.

Step 3: Pick ONE (10 minutes)

From your list of 5-7 ideas, pick exactly ONE. The hardest part of capstone week is resisting the urge to do more.

Criteria for picking:

  • You can articulate WHY this change interests you
  • You have a reasonable plan for HOW to find the byte(s)
  • You estimate it will take ~6-10 hours of execution time, not ~30
  • It is in your strongest platform (the one you have most comfort with)

Step 4: Write the 1-paragraph proposal (15 minutes)

Open ~/spk-101/journal/capstone-proposal.md. Write 4-6 sentences:

  1. The ROM: what is the ROM? Platform? Where did you get it? (Confirm legality, homebrew OR personal cart dump)
  2. The change: what specifically are you changing?
  3. The plan: how do you intend to find the relevant byte(s)? Which week-4 strategy will you draw on?
  4. The motivation: why this specific change?
  5. The deliverable: what will the final zip contain? (Per CAPSTONE.md: modified ROM, original ROM, SHA-256, write-up, before/after screenshots)

Example proposal (just to show the shape):

"For my capstone I am modifying lan-master.nes (NESdev 2011 competition, freely distributable). I am going to change the title-screen text from 'LAN MASTER' to 'LAN HACKER', same length, so I can do an in-place ASCII overwrite (lab 4.2 technique). My plan is to search PRG-ROM for the ASCII sequence 4C 41 4E 20 4D 41 53 54 45 52 ('LAN MASTER') and overwrite with 4C 41 4E 20 48 41 43 4B 45 52 ('LAN HACKER'). I picked this change because the title screen was the first thing I saw when I started the course in week 1, and turning it into 'HACKER' feels like an apt closing chapter. My final zip will contain the modified ROM, the unmodified original, the SHA-256 of the original, a 600-word write-up, and before-and-after title-screen screenshots."

Step 5: Sanity-check the scope (10 minutes)

Re-read your proposal. Ask yourself:

  • Can I describe the change in one sentence to a non-programmer?
  • Do I have a reasonable plan for where to look?
  • If everything goes well, can I finish in 6-8 hours of execution? (Days 2-5 of week 6)
  • If everything goes badly and my first plan fails, do I have a fallback?

If you cannot say "yes" to all four, narrow the scope. The capstone grade does NOT favor bigger changes; it favors clearer documentation of any change.

Expected output

A 1-paragraph capstone proposal saved to ~/spk-101/journal/capstone-proposal.md. By the end of day 1 you have:

  • Picked your ROM (locked in)
  • Picked your change (locked in)
  • Articulated your plan for executing
  • Articulated your motivation
  • A clear sense of what you ship in the zip

Common pitfalls

  • Over-scoping: "I want to redo all the music AND retexture all the sprites AND change the title AND add a new level." No. Pick ONE thing
  • Picking a ROM you have not played: you do not know the ROM well enough to identify a meaningful change
  • Picking a change you have no plan for: "I want to change the physics" but you cannot say HOW to find the physics constants. Pick something with a clearer attack path
  • Spending all of day 1 on this lab: 60 minutes. Pick something good enough; iterate during execution. The proposal is a draft, not a contract

Stretch (optional)

If you finished early:

  • Write a "fallback plan" paragraph in your proposal. If your first plan fails, what's plan B?
  • Take initial screenshots of the unmodified ROM at the scene you will be modifying. (These become your before.png for the capstone deliverable)
  • Read CAPSTONE.md start-to-finish once more, with your specific change in mind. Note any deliverable requirements you might forget

Lab 6.1 v0.1. The pre-execution lab. Tight scope is what makes the week shippable.