Your first hands-on lab. ~75 minutes. Install Mesen, download a homebrew NES ROM, and run it.
Goal: install Mesen on your laptop, download one free homebrew NES ROM, load it, and play for at least 5 minutes.
Estimated time: 75 minutes (most of which is downloading)
Prerequisites: a laptop running Windows, macOS, or Linux with an internet connection
Steps
Step 1: Download Mesen (10 minutes)
Open your browser. Go to https://mesen.ca/.
- Windows: click the Windows download link. Save the installer to your Downloads folder
- macOS: click the macOS download link. Save the app bundle to your Downloads folder
- Linux: click the Linux download link. You can pick either the AppImage (easier) or the source tarball (more work). The AppImage is the path of least resistance
Step 2: Install Mesen (10 minutes)
- Windows: double-click the installer. Click through the prompts. If Windows SmartScreen blocks the installer, click "More info" → "Run anyway." Mesen is a well-known, safe open-source project; SmartScreen flags it because the installer is not signed
- macOS: double-click the downloaded
.dmg. Drag Mesen to Applications. The first time you launch it, right-click → Open (so macOS allows the unsigned app). Subsequent launches work normally - Linux:
chmod +x ~/Downloads/Mesen.AppImagethen~/Downloads/Mesen.AppImageto launch. (Or move the AppImage to a folder like~/Applications/and create a desktop shortcut)
Step 3: Download one homebrew NES ROM (30 minutes)
Pick from the academy's recommended starter list:
- Go to
https://www.nesdev.org/wiki/NESdev_Competition, the NESdev annual competition - Pick any entry that sounds interesting. Recommended starting picks: "Lan Master" (2011 competition entry, simple puzzle game) or "Twin Dragons" (2014 demo version, action platformer)
- Click through to the entry's download link. Save the
.nesfile to your~/spk-101/roms/nes/folder
You can also try https://itch.io/games/tag-nes for more options (search for entries marked "free" and "homebrew"). Pick something that catches your eye.
Step 4: Load and play the ROM (15 minutes)
Open Mesen. Menu: File → Open ROM. Navigate to your downloaded .nes file. Click Open.
The game should boot. Default key mappings:
- D-pad: arrow keys
- A button: X
- B button: Z
- Start: Enter
- Select: Right Shift
Play for at least 5 minutes. Beat a level if you can; otherwise just explore. You are NOT being graded on game performance; you are being graded on having successfully loaded and run the ROM.
Step 5: Take a screenshot and journal (10 minutes)
In Mesen, press the screenshot hotkey (default: F12, varies by platform). The screenshot saves to Mesen's screenshots folder (default location varies; check Mesen's Settings → Files menu).
Open your lab journal (~/spk-101/journal/lab-1-1-notes.md). Write 3-5 sentences:
- What ROM did you pick?
- What did the game look like and feel like?
- What surprised you (if anything)?
Save the journal. Save the screenshot. You have completed lab 1.1.
Expected output
- Mesen installed and launchable
- One homebrew NES ROM downloaded to
~/spk-101/roms/nes/ - The ROM loaded and played for 5+ minutes in Mesen
- A screenshot of the game running
- A 3-5 sentence journal entry
Common pitfalls
- Cannot find the ROM file after download: check your Downloads folder; some browsers save there by default rather than where you intended
- Mesen says "ROM is not a valid INES file": the ROM you downloaded might be inside a
.zip. Extract it first; the actual ROM file inside should have a.nesextension - Game starts but the controls are wrong: open Mesen Settings → Input. Re-map the controller buttons to keys you find comfortable
- No audio: check Mesen Settings → Audio. Make sure audio is enabled and the volume is up
Stretch (optional)
If you finished early:
- Download a second homebrew ROM. Compare it to the first
- Open Mesen's Settings → Video. Try the various video filters (NTSC, CRT, scanline). Note which one looks best to you
- Open Mesen's Tools menu. Browse what is available (PPU viewer, Debugger, Memory viewer). Do not worry about understanding these yet; just notice they exist. You will use them in weeks 2-4
Lab 1.1 v0.1. Foundational; everything in SPK-101 builds on having Mesen running.