Classroom Public page

Lab 1.1: Install Mesen and Run Your First Homebrew ROM

652 words

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.AppImage then ~/Downloads/Mesen.AppImage to 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 .nes file 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 .nes extension
  • 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.