Classroom Public page

SPK-101 Equipment and Setup Guide

1,188 words

Everything you need to install before week 1 starts. ~2 hours of preparation. All free; all open-source; no hardware required beyond your laptop.


Laptop requirements

Any modern Windows, macOS, or Linux laptop will run SPK-101. The emulators and tools we use are all decades old in CPU-load terms; if your laptop runs a current browser, it will run Mesen / SameBoy / bsnes-plus without strain.

Minimum specs:

  • Operating system: Windows 10 or later, macOS 10.13 or later, or a current Linux distribution (Ubuntu 20.04+, Fedora 35+, Debian 11+, Arch, or equivalent)
  • CPU: any 64-bit x86 or ARM processor from the last 10 years
  • RAM: 4 GB minimum, 8 GB comfortable
  • Disk: 2 GB free (the emulators, ROMs, and your working files combined will use under 1 GB; 2 GB gives breathing room)
  • Display: 1280x720 or higher (the emulators run small; any screen handles them)
  • Audio: any working audio output (the games have sound; you will want to hear it)
  • Internet: needed for downloading the emulators and ROMs; optional thereafter

NOT required:

  • No GPU (the emulators do not use the GPU for anything serious)
  • No special permissions on a school or work laptop (the tools install as user-mode applications; no root or admin privileges needed on Linux/macOS; standard installer permission needed on Windows)
  • No retro hardware (no cartridge, no console, no controllers, nothing physical beyond the laptop)

Software to install

Five tools. All free; all open-source. Plan ~30 minutes per tool, mostly waiting for downloads.

1. Mesen (NES emulator)

Mesen is a free, open-source NES / Famicom emulator with a strong built-in debugger. You will use it every week 1-6 except week 5.

  • Download: https://mesen.ca/
  • Windows: download the Windows installer; run it; accept defaults
  • macOS: download the macOS app bundle; drag to Applications; the first launch may require right-click → Open (because the app is not notarized)
  • Linux: build from source or download the AppImage from the official site; mark the AppImage executable (chmod +x Mesen.AppImage) and run it

Verification: launch Mesen. The main window should open with no ROM loaded. Menu: Tools → Debugger. The debugger window should open (you will use this in week 3).

2. SameBoy (Game Boy / Game Boy Color emulator)

SameBoy is a free, open-source Game Boy and Game Boy Color emulator. You will use it in week 5.

  • Download: https://sameboy.github.io/
  • Windows / macOS / Linux: SameBoy distributes platform-specific builds from the GitHub releases page (https://github.com/LIJI32/SameBoy/releases); pick the one matching your OS

Verification: launch SameBoy. Menu: View → Debugger. The debugger window should open.

3. bsnes-plus (SNES emulator)

bsnes-plus is a free, open-source SNES emulator. You will use it in week 5.

  • Download: https://github.com/devinacker/bsnes-plus
  • Windows: the GitHub releases page provides pre-built Windows binaries; download the latest .zip; extract; run bsnes.exe
  • macOS: build from source (the GitHub README has macOS build instructions; or use Homebrew if a current formula exists)
  • Linux: build from source or check your distribution's package manager (some distros have bsnes-plus packaged)

Verification: launch bsnes-plus. Menu: Tools → Debugger. The debugger window should open.

4. A hex editor

Pick the appropriate one for your OS:

  • Windows: HxD (https://mh-nexus.de/en/hxd/). Free; portable.
  • macOS: Hex Fiend (https://hexfiend.com/). Free; open-source; mac-native.
  • Linux: Bless (https://github.com/bwrsandman/Bless) or hexedit (in most distro repositories). Both free.

Verification: launch your hex editor. Open any small file (a .txt file works). The editor should show the file's bytes in two columns: hex on the left, ASCII on the right.

5. The 8bitworkshop browser sandbox (no install)

8bitworkshop is a complete in-browser NES development environment. The academy mirrors it at https://virtuscyberacademy.org/8bitworkshop/. No install needed; works in any modern browser.

Verification: open the URL in your browser. The 8bitworkshop interface should load with a code editor on the left and an emulator preview on the right. Try clicking one of the example projects from the menu; it should compile and run.

Reading material to bookmark

Bookmark these URLs in your browser. You will visit them all week 1-6:

  • NESdev wiki: https://wiki.nesdev.org/, the canonical reference for NES technical details
  • Easy 6502 by Nick Morgan: https://skilldrick.github.io/easy6502/, your week 3 primary reading
  • 6502.org: https://www.6502.org/, quick-reference for instruction set and addressing modes
  • Pan Docs (Game Boy): https://gbdev.io/pandocs/, the Game Boy technical reference for week 5
  • SNES Development Wiki: https://wiki.superfamicom.org/, the SNES technical reference for week 5
  • Academy 8bitworkshop mirror: https://virtuscyberacademy.org/8bitworkshop/, in-browser 6502 sandbox
  • ROMhacking dot net: https://www.romhacking.net/, community resource for ROM-hacking culture and tooling

Homebrew ROMs to download before week 1

Pick at least one homebrew NES ROM you find appealing. The academy's recommended starting list:

  • NESdev competition entries: see https://www.nesdev.org/wiki/NESdev_Competition for the annual showcase; nearly every entry is freely distributable. Recommended: "Lan Master" (2011), "Twin Dragons" (2014 demo version)
  • The Roth Brothers compilation at https://nesdev-mw.atari.org/, bundles many small homebrew demos
  • itch.io NES homebrew: search https://itch.io/games/tag-nes for free entries

If you want Game Boy or SNES homebrew now (for week 5; you do not need it until then), the academy recommends:

  • Game Boy: search https://itch.io/games/tag-game-boy for free entries; or https://gbdev.io/games.html for community lists
  • SNES: search https://itch.io/games/tag-snes for free entries; or https://www.snesdev.com/ for community lists

Save downloads to a dedicated folder on your laptop (suggested: ~/spk-101/roms/). Within that folder, separate by platform: ~/spk-101/roms/nes/, ~/spk-101/roms/gameboy/, ~/spk-101/roms/snes/.

Run the install-and-verify lab

After all five tools are installed, run labs/lab-0-0-install-and-verify.md (5 minutes). This walks you through a quick check that every tool launches and your homebrew ROM loads correctly.

If anything fails, the lab includes troubleshooting steps for common installation problems (missing dependencies on Linux; macOS Gatekeeper blocking unsigned apps; Windows SmartScreen flagging the installer).

Folder structure recommendation

Set up a working directory before week 1:

~/spk-101/
├── roms/
   ├── nes/              (your downloaded NES homebrew ROMs)
   ├── gameboy/          (Game Boy ROMs for week 5)
   └── snes/             (SNES ROMs for week 5)
├── working/              (where you'll keep modified ROMs during labs)
├── journal/              (your weekly reflection journal)
└── capstone/             (your week-6 capstone artifact, created later)

The folder names are suggestions; use whatever makes sense to you. The point is: keep the downloaded original ROMs separate from your modified copies. The course teaches "always modify a copy, never the original."

What you do NOT need to buy

To be explicit: SPK-101 has zero required purchases. Everything is free.

  • No emulator licenses: Mesen, SameBoy, bsnes-plus are all free
  • No software licenses: HxD / Hex Fiend / Bless are free
  • No cartridges: you use legal homebrew ROMs; the original consoles and games are not part of the course
  • No cartridge readers: optional only for advanced students who want to dump their own personal cartridges; the academy does not require it
  • No textbooks: the course readings are all free online resources
  • No subscription services: no Coursera, no Udemy, no Pluralsight

If at any point in SPK-101 you encounter a recommendation to buy something, double-check it against this page. The course's commitment is: zero required purchases.

Estimated install time

Step Time
Download and install Mesen ~15 min
Download and install SameBoy ~15 min
Download and install bsnes-plus ~15 min (or longer if building from source on macOS / Linux)
Install hex editor ~10 min
Bookmark reading material ~10 min
Download 1-2 homebrew NES ROMs ~15 min
Run lab-0-0-install-and-verify ~10 min
Total ~90 minutes; under 2 hours including any troubleshooting

You should be ready for week 1 within an evening of setup work.

Where to get help if setup fails

  • The academy's Discord channel (link distributed at course registration)
  • The instructor's office hours (schedule shared at course start)
  • The NESdev forums at https://forums.nesdev.org/ (community-friendly to beginners)
  • The 8bitworkshop community at https://github.com/sehugg/8bitworkshop/discussions

Setup issues are not a sign you cannot do the course; setup is the friction-fullest part of computing, full stop. Ask for help early.


Setup guide v0.1 prepared 2026-05-08. Updates after pilot-cohort feedback.