~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:
- The ROM: what is the ROM? Platform? Where did you get it? (Confirm legality, homebrew OR personal cart dump)
- The change: what specifically are you changing?
- The plan: how do you intend to find the relevant byte(s)? Which week-4 strategy will you draw on?
- The motivation: why this specific change?
- 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 sequence4C 41 4E 20 4D 41 53 54 45 52('LAN MASTER') and overwrite with4C 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.pngfor the capstone deliverable) - Read
CAPSTONE.mdstart-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.