Theme Maker
Pick colors, a gradient and a pattern, then export a theme.ini for the menu. The preview follows the menu's current 640×480 layout.
Background
Water seen from above, with a net of foam lines. The menu draws it itself; it takes a moment longer to appear than a gradient.
Use 640×480 for a sharp result. Put the file in the theme folder as background.png. The menu doesn't read PNG backgrounds yet and shows the first color instead.
Pattern
Interface colors
Frame and tabs
The Games tabs use "Other tabs" for the tabs, badges and track, and the accent for the selected tab. The selected row shows on the Folders preview. The frame lines, edges and active tab color are used by the older screens (the music player, viewers and pop-up menus).
Menu features
A theme can switch features on or off. Players can still override each one under Settings.
Export
On the SD card, give each theme a folder of its own in menu/themes, named as you want it listed: menu/themes/My Theme/theme.ini. Then pick it in Settings > Display > Theme (up to 32 themes).
The file saves as theme.txt because of browser limits. The menu reads theme.txt too, so renaming it is optional.
Share codes
Anyone can paste this code into the Theme Maker to get the same theme.
Scan with your phone’s camera to copy the code onto it.
PNG backgrounds aren’t included in codes. People importing this theme will need the image file too.
Card Prep
Checks the games on your SD card against the No-Intro list of known good dumps, so the menu can show a Verified badge. Everything happens in this browser: no game is uploaded anywhere.
1Pick your SD card
Choose the top folder of the card (the one with sc64menu.n64 in it). Chrome or Edge can save the
result straight onto the card; other browsers can read it and give you the file to copy over.
2The list of known dumps
Downloaded from libretro-database
(No-Intro's Nintendo 64 list). Without internet, load the file Nintendo - Nintendo 64.dat yourself.
3Check the games
Every game is read in full, so this takes a minute or two for a full card. Games checked before are skipped, so running it again after adding games is quick.
4Save the result to the card
Writes menu/verified.txt, which the menu reads at start-up.
Hacks
Give a hack a game of its own on the menu: its own name, cover and description, kept apart from the game it was made from. Everything happens in this browser: no game is uploaded anywhere.
1Pick your SD card
Choose the top folder of the card (the one with sc64menu.n64 in it). Running Card Prep
first is worth it: the menu then finds a hack by its contents, even after it is renamed.
2Choose a hack
A hack carries the game code of the game it was made from, so the menu shows it with that game's cover and name. Games that share a code with another file are listed here.
| File | Code | |
|---|---|---|
| Pick the card first. | ||
3Describe it
Any picture; it is cut to the menu's cover size (158 × 112, or 112 × 158 for a tall box).
4Save to the card
Writes menu/hacks.txt and a folder for each hack under menu/metadata/. The menu reads
them at start-up.
Missing Metadata
Fill in the covers, labels and details your games are missing, from your own pictures and notes. The menu makes the list: on the console, open Settings > Library > Find Missing Metadata first. Everything happens in this browser: nothing is uploaded anywhere.
1Pick your SD card
Choose the top folder of the card (the one with sc64menu.n64 in it). The list is read from
menu/missingart.txt.
2Choose a game
Each game with what it is missing. For N64 games, pictures and details baked into the menu file count as there
already. NES, SNES
and Game Boy games and 64DD disks are found on the card by this page (from the Games tab's folders), with their
details too; emulator games take their box's front, back and spine (the 3D box's sides,
standing or lying down), and their cartridge's front and back (with a see-through background: the menu traces the
cartridge's shape from it); their pictures keep
their own shape and go in menu/metadata/nes/<file name>/ (or snes, gb,
gbc).
libretro (CC-BY-SA 4.0) gives NES, SNES and Game Boy games' developer, release date, genre and players,
matched exactly by each file's CRC. LaunchBox's database also has descriptions, and covers N64 and 64DD games, matched
by name: download Metadata.zip yourself from
the LaunchBox Games Database and choose
it here. It is read in this browser only; LaunchBox publishes no terms for using it elsewhere, so it is never bundled
with SummerStation64. Only what a game is missing is filled in, and nothing is written until you save.
| Game | Missing | |
|---|---|---|
| Pick the card first. | ||
3Fill it in
Leave out anything you don't have; it stays on the list.
4Save to the card
Writes each game's pictures and details into its folder under menu/metadata/. Existing details
are kept; only what you filled in is added. Run Find Missing Metadata again on the console to see what is left.
Collections
Make your own collections for the console's Collections tab, and choose their games, with a keyboard. Collections made on the console show here too. Everything happens in this browser: nothing is uploaded anywhere.
1Pick your SD card
Choose the top folder of the card (the one with sc64menu.n64 in it). The games are read from the
same folders as the console's Games tab, and the collections from menu/collections.txt.
2Your collections
In the order the console shows them, first at the top. Up to 32 collections of 128 games each.
| Collection | Games | |
|---|---|---|
| Pick the card first. | ||
3
Names show on the console in its letters: A-Z, digits and the common accents are safe.
| Game |
|---|
4Save to the card
Writes menu/collections.txt. The console reads it at start-up, so switch it on (or press RESET)
afterwards.
Clips
Turn a clip recorded on the console into an animated GIF. On the console: Settings > System > Record Clip. Everything happens in this browser: nothing is uploaded anywhere.
1Pick your SD card
Choose the top folder of the card. Clips are read from menu/clips/.
| Clip | Frames | Length | |
|---|---|---|---|
| Pick the card first. | |||
2Make the GIF
Sounds
Give a theme its own music and button sounds. Pick any audio files your browser can play (MP3, WAV, OGG, M4A...); they are turned into the console's sound files here. Everything happens in this browser: nothing is uploaded anywhere.
1Name the theme
Sounds belong to a theme on the card, in its own folder: menu/themes/name/, beside its
theme.ini (make one in the Theme Maker). Use the theme's folder name exactly.
2Pick the sounds
Pick only the ones you want to change; the menu uses its own for the rest. Music loops; long files are cut (music after 3 minutes, the intro after 8 seconds, button sounds after 1.5 seconds). Button sounds are kept in the console's memory, so keep them short: under 0.75 seconds also works on consoles without the Expansion Pak.
Only the music should loop. The files this page makes never ask to loop; the menu loops the
music itself. If you make a .wav64 another way (libdragon's audioconv64), leave out any loop for the
intro and the button sounds: a WAV with a loop point (a smpl marker, set in some audio editors) keeps
it, and that sound may then repeat.
| Sound | File | Ready |
|---|
3Put them on the card
Unzip it at the top of the SD card: the files land in menu/themes/name/. Then choose
the theme in Settings > Display > Theme. A theme can also carry its own text font as
font.font64, made with libdragon's mkfont (it applies after a restart).
Cheats
Put GameShark / Action Replay codes on the card for a game. Codes come from libretro-database (fetched when you open a game, never bundled), or paste your own. Everything else happens in this browser.
1Pick your SD card
Choose the top folder of the card (the one with sc64menu.n64 in it). The games are read from the
same folders as the console's Games tab. Run Card Prep first and the right cheat list is found
by each game's exact dump.
2Choose a game
| Game | Cheats | |
|---|---|---|
| Pick the card first. | ||
3
Tick the cheats to put on the card; on the console, Game info's Z lists them to switch on and off. Keep any enable code ("Must be on", codes starting F1, FF, EE or DE) ticked when a list has one. Codes that need a button held may not work yet. At most 64 code lines in all.
| Cheat | Codes |
|---|
Add your own
One code per line: 8 characters, a space, 4 characters, then a name if you like
(8033B21D 0064 Infinite lives). Lines without a name join the cheat above them.
4Save to the card
Writes each game's ticked codes beside it as Game.datel. Then on the console, the game's Game info:
Z lists its cheats; switching any on turns Use Cheats on. Cheats need the Expansion Pak.
Guide
Setting up a card, adding box art and details, 64DD disks, the hardware that works best, handy tools, and what to do when something is off.
SD card setup
- Back up your card, and keep your current
sc64menu.n64somewhere safe so you can go back. - Format: the SummerCart64 reads FAT32 and exFAT cards. A card that already works with the cart is fine as it is.
- The menu: download
sc64menu.n64from the latest release and copy it to the top folder of the card, replacing the one there. The plainsc64menu.n64is the Art Edition (box covers built in); the Standard zip is a small download that reads covers from the card. - Games: put them in a folder, for example
N64. On the console, open the Folders tab, go into that folder, press Z and choose Set current directory as default; the Games tab now shows its games as covers. More folders can be added the same way with Add this folder to Games. - Standard edition only: download the
metadata pack and copy its
metadatafolder into the card'smenufolder (menu/metadata/). - Optional: run Card Prep once to give each game a check mark for a known good dump, and make a theme in the
Theme Maker (each theme in a folder of its own,
menu/themes/My Theme/theme.ini, then picked in Settings > Display > Theme).
Your saves stay where they are. Before each game starts, the menu also keeps a dated copy of its save in
saves/backups/ (five per game); a game's Options menu has Restore save.
Box art and details
Every game can have its own pictures (front, back, top label, cartridge) and details (developer, release date, description). The Art Edition has them built in for most N64 games; for the rest, and for 64DD disks, NES, SNES, Game Boy and homebrew, you add your own. The console finds what is missing and this page fills it in.
Step by step
- Make the list on the console. Open Settings > Library > Find Missing Metadata and stay on
that page until it says it is done (a few seconds). Missing Metadata underneath says how many games lack
something. The list is saved as
menu/missingart.txton the card. - Put the card in your computer (switch the console off first).
- Open the Missing Metadata tab and press Choose SD card. Pick the
top folder of the card, the one holding
sc64menu.n64and themenufolder.- Chrome or Edge can save straight to the card: allow it to edit the folder when asked.
- Firefox, Safari and others ask to "upload" the folder. Nothing leaves your computer: the page only
reads it. They can't write to the card, so you get a
.zipto copy at the end.
- Fill in details automatically (optional). Fill details from libretro fills NES, SNES and Game Boy
games' developer, date, genre and players. Fill from LaunchBox's Metadata.zip also has descriptions and
covers N64 and 64DD games: download
Metadata.zipfrom the LaunchBox Games Database yourself and choose it. Only what is missing is filled in. - Fill in a game. Press Fill in beside it. Choose a picture for each slot from your computer (PNG or JPG, any size: the page shrinks it to fit). For a top label or spine, the frame editor lets you zoom, move and turn it until it fits; Use for the other edges too puts it on the box's other sides. Type the developer, date and description if you have them. Press Keep. Do the same for other games.
- Save. Press Save to card. With Firefox and others, unzip
art-for-sd-card.zipinto the card's top folder (it holds amenufolder that merges with yours). - Check on the console. Run Find Missing Metadata again: the games you filled in drop off the list.
The pictures
| Slot | File | What it is |
|---|---|---|
| Front cover | boxart_front.png | The box's front: the cover on the row and in Game info. |
| Back of the box | boxart_back.png | Shown when the box is turned over, and on the 3D box's back. |
| Top label | boxart_top.png | The strip on the 3D box's top (and bottom). A long, thin picture. |
| Cartridge | gamepak_front.png | For Show Games As: Cartridges. Cut out, with a see-through background. |
| Spine | boxart_spine.png | NES, SNES and Game Boy boxes: both sides of the 3D box. |
| Cartridge back | gamepak_back.png | NES, SNES and Game Boy cartridges turned over. |
Details go in metadata.ini beside the pictures, and a long description in description.txt.
Where the files go (to do it by hand)
- N64 games:
menu/metadata/and the four letters of the game's code, one folder each: codeNSMEgoes inmenu/metadata/N/S/M/E/. A game's code is in its Game info, START (Details). - 64DD disks: the same, with the disk's ID (in its Details):
menu/metadata/E/F/Z/J/. - NES, SNES, Game Boy:
menu/metadata/nes/(orsnes,gb,gbc) and a folder named like the game's file without its ending:Super Metroid (USA).sfc→menu/metadata/snes/Super Metroid (USA)/. - Homebrew: pictures in
menu/metadata/homebrew/and the title the game gives itself; details in a file beside the game named like it, ending.metadata.ini(Game.z64→Game.metadata.ini). The page does this for you. - ROM hacks share their original's code, and so its cover. To give a hack its own, set it up in the Hacks tab first, then run Find Missing Metadata.
A metadata.ini looks like this:
[meta]
name = Super Mario 64
author = Nintendo EAD | Nintendo
release-date = 1996-06-23
genre = Platform
num-players = 1
short-desc = Mario explores Princess Peach's castle.
Check the file name (all lower case, .png; the menu reads PNG only, so convert a JPG made by hand) and
the folder. On the Art Edition, built-in covers come first: a picture on the card only shows for games without
one. To use your own art for every game, use the Standard edition.
Run Find Missing Metadata on the console first, and pick the card's top folder (picking the menu folder
works too, but then 64DD and emulator games can't be found).
64DD disks
Put .ndd disk images in a folder and add it to the Games tab like any other (Folders tab, Z,
Add this folder to Games). Disks show as covers, under the 64DD filter step (C-up / C-down).
Expansion disks and their cartridge
Some disks add to a cartridge game and need that cartridge to play: the F-Zero X Expansion Kit needs F-Zero X. The menu pairs them by itself when the cartridge is in one of the Games tab's folders, and A on the disk starts both.
- Put the cartridge (F-Zero X, Japanese or US) in a Games folder, and the disk in a Games folder too.
- Open the disk's Game info. The third box says Plays with and the cartridge, in green. If it says Needs (not found) in orange, the cartridge isn't on the Games tab.
- To choose a cartridge yourself, press Z on the disk's Game info (or R Options there, Pair with a cartridge...). Cartridges that match the disk are listed first, in blue. Automatic goes back to the menu's own choice; No cartridge plays the disk alone.
- A plays the disk with its cartridge. L (or Options, Play the disk alone) starts the disk without it.
Starting an expansion disk without its cartridge shows a warning first: Z there pairs it, A starts the disk anyway.
Cheats
The menu runs GameShark and Action Replay codes. They need the Expansion Pak (the codes live in its memory). The cart doesn't come with any: each game's codes go in a small text file beside it.
- Put codes on the card. Open the Cheats tab, pick the card and a game. The page fetches
that game's codes from libretro-database;
tick the ones you want (and any enable code the list has), or paste codes from elsewhere, such as
GameHacking.org. Save to card writes
Game.datelbeside the game. - Switch them on. On the console, open the game's Game info and press Z (Cheats): a list of the game's cheats. A switches one on or off (✓), B closes the list and saves. Switching any cheat on turns Use Cheats on for the game; switching them all off turns it off. An orange Cheats badge shows on the page while they're on.
- Play. The cheats that are on run from the start.
By hand
The file is named like the game with .datel at the end (Super Mario 64 (USA).z64 →
Super Mario 64 (USA).datel), one code per line, an optional name after it:
8033B21D 0064 Infinite lives
80207723 0001 120 stars
8020770B 00C7
A line starting : is a code switched off (the console's list writes these); # starts a
comment. To type codes in on the console, turn on Settings > System > Advanced Game Options: Game
info's R menu then has the Datel Code Editor.
Keep the list's enable code ticked ("Must be on", or codes starting F1, FF or EE). Codes that need a button held (starting D0 to D3) may not work yet, and codes starting DE are skipped. The menu reads up to 64 code lines per game. Some games, mostly new homebrew, can't take cheats at all. Codes from a list made for another region or version of the game usually don't work: pick the list that matches your copy.
Hardware
Expansion Pak or Jumper Pak
SummerStation64 runs fully on a console without the Expansion Pak (with the Jumper Pak, 4MB). With 4MB it picks the smaller character set and leaves out a few extras when memory runs short, such as art on the side covers; Settings > System > Memory says what was left out. Some games need the Expansion Pak themselves (Majora's Mask, Donkey Kong 64, most of Perfect Dark); the menu warns before starting them. Third-party Expansion Paks work the same as Nintendo's.
SD card
Any reliable card will do; speed matters little, because the menu reads small files. Size: the Art Edition is about 35 MB and games are 4 to 64 MB each, so even a small card holds a full library. Buy from a trusted seller: fake cards that report more space than they have are common and lose files.
Picture
- Composite works well: the menu is designed and tested on a small composite CRT.
- S-Video is sharper and works on NTSC consoles with the right cable; RGB needs a PAL console or a modded NTSC one.
- HDMI mods and adapters, and upscalers (RetroTINK, OSSC and the like), work too. Try Settings > Display > Video Output: 240p for a sharper, steadier picture on CRTs and upscalers (it applies after a restart).
- Analogue 3D and ModRetro M64: players report v0.1 working on both. Not tested here, so reports of anything odd are very welcome.
Controllers
The menu answers to any controller. Hold START for a second to save a screenshot to menu/screenshots/
on any controller. If START switches your controller off (the 8BitDo mod kit, for
one), set Settings > System > Screenshot Button to Hold L + R. With two or more controllers plugged in, the Games tab gets a
Party filter step for games that many can play.
Tools
The cart's own PC tool (sc64deployer, from the
SummerCart64 releases), over USB: update the cart's firmware,
and read the menu's debug log with sc64deployer debug --no-writeback, the most useful thing to add to a bug report.
Covers, descriptions and release dates for the Standard edition: n64-flashcart-menu-metadata. The Art Edition has them built in.
Card Prep checks every game on the card at once. To check one file by hand, work out its CRC32 or SHA-1 and compare it with No-Intro's list (DAT-o-MATIC):
- Windows:
certutil -hashfile "Game.z64" SHA1in a command prompt, or 7-Zip's right-click CRC SHA menu. - macOS and Linux:
shasum "Game.z64"orsha1sum "Game.z64".
No-Intro lists the .z64 byte order. A .v64 or .n64 file has its bytes in another order, so its
sums differ even when the game is fine; Card Prep allows for that.
The Theme Maker turns a theme into a short code (SS64-…) that others can paste into the same page.
Troubleshooting
Hold Z while switching the console on: Safe Mode starts the menu without the theme, your settings and the background picture. Nothing on the card is changed.
Check that sc64menu.n64 is in the card's top folder and copied in full. Keep the cart's firmware up to date with the
deployer. To go back, copy your old sc64menu.n64 over it.
The Art Edition has covers for the games in the metadata pack; others show a plain box. With the Standard edition, check that the pack is
in menu/metadata/. To add a missing one, see Box art and details. A few games share a code with
another region's game and can show its cover; this is being fixed.
They come from Card Prep. ✓: exactly a known good dump. ?: the file differs from the known dump. Often that is harmless (an old tool changed a header byte, or the file is padded), but if the game misbehaves, try another copy. ✗: the file name marks it as a bad dump. Hacks, translations and fixed dumps get no mark. Turn them off in Settings > Display > Dump Check Marks.
The menu leaves extras out rather than run out of memory. Settings > System > Memory says what; the Latin character set (Settings > System) frees the most.
Open an issue on GitHub: the form asks for your setup. A photo of the screen and the debug log help the most.