S-OS SNESOS 0.1 / S-OS SHELL 65816 · FAST LOROM · 32K SRAM · CA65/LD65 SRAM: CRC OK · 3 FILES, 18432 BYTES FREE. ROM: MANIFEST OK · 2 PACKAGES (BIGAPP, RAYCAST) MOUSE: DETECTED · PORT 1. READY. > dir rom:/ BIGAPP 33K SOSM-V2 RAYCAST M3X 10.4 HZ MEASURED READY. > run raycast LOADING... OK.
SNESOS is a boot-to-shell operating-system curiosity for the stock Super Nintendo.
Not a game. Not an emulator. A genuine tiny OS, written in native 65816 assembly, that runs on real SNES hardware from a flash cartridge, and turns a shelved console into a mini-computer: a shell, commands, persistent storage, and loadable program modules.
It is built as a Fast LoROM cartridge image with the ca65/ld65 toolchain (the cc65 suite) and verified headlessly in the Mesen 2 emulator. Its target hardware is an FXPak Pro flash cart in a real SNES, plus a Hyperkin portable clone, because a computer you can hold is a better computer.
A Mode-1 background text shell on the SNES's own tile hardware: a 256×224 screen carrying a 32×28 grid of visible 8×8 tiles, uploaded with a dirty-tilemap DMA path so only what changed gets sent.
READY. OK. FILE NOT FOUND.BAD COMMAND. TYPE HELP.A CRC-checked, log-structured filesystem living inside the cartridge's 32 KiB of SRAM. Flat namespace, case-insensitive filenames up to 16 characters, files up to 4 KiB. Pull the cart, shelve it for a year, plug it back in: the CRC says whether your bits are still your bits.
format sram: | Initialize the SRAM volume. |
dir sram: | List files and free space: 3 FILES, 18432 BYTES FREE. |
type <file> | Print a file to the screen. |
write <file> <text> | Write a file from the command line. |
del <file> | Delete a file. |
A manifest-driven native program loader with a stable ABI. It launches the same CRC-checked module format from ROM packages or from the SRAM filesystem. install copies a ROM package onto your volume and it runs from there, unchanged.
dir rom:/ | List ROM packages. |
help <app> | Read a package's manifest help. |
run <app> | Launch a module from ROM or SRAM. |
install <app> | Copy a ROM package into the SRAM filesystem. |
SOSM-v2 manifest packages whose code executes directly from mapped ROM banks: programs larger than comfortable RAM, running in place.
An optional hardware keyboard on the controller port, speaking SKP-1, a SNESOS-original keyboard protocol. The native driver reads it as a second, provider-neutral input source alongside the on-screen keyboard. Hot-plug and unplug fall back cleanly to the on-screen keyboard, mid-session.
Port-1 SNES Mouse with pad fallback. Hotplug detection both directions. The OS's first OAM sprite, a 16×16 outlined-arrow pointer, is probe-verified against the real input timing rules. It is the pointer the GUI layer is designed around.
A mouse-first icon-launcher GUI shell, layered over the text shell, not a replacement for it. The register is locked to an early-Windows-3.x look, built entirely from the existing 8×8 tile grid, the banked 16-color palette, and an 8×8 monospace chrome typeface. There is no proportional system font, and there will not be one.
The GUI shell is shipped and operator-certified: launcher, selection, modal panels, program launch and return, mouse and pad drivers. The chrome typeface is dungeon-mode, a CC0 public-domain 8×8 bitmap font, imported as tiles directly. Every surface ships behind a capture gate: the rendered frame is measured against the operator-signed mockup before anything lands.
The first facility built on it is CODES, a native cheat and patch system in the Game Genie lineage: import Game Genie and Pro Action Replay codes or enter native ones on an on-screen pad, keep them in named sets on the cart, and apply them silently at launch. Engine and full chrome are shipped, entry pad included, with a fingerprint gate that asks before applying codes to a module that has changed.
Chunky raised/sunken grey bevels. A title bar. A Program Manager-style icon grid. Modal panels. An austere monitor, in the literal sense.
A strategy game with the theme locked to a genericized SPI register: offices as institutions, theme-as-system, austere presentation, asymmetry in the numbers rather than the prose. Lineage: Avianos (UFO 50), Dominions, Civilization II, and the graphic discipline of Simulations Publications, Inc.
The founding specification is complete: 11 sections, independently fidelity-audited against the design locks. Full game state fits in 21 percent of the 32 KiB cart save. The engine core is now in build against that lock.
Five court offices, ratified: Steward, Marshal, Warden, Chronicler, Hierophant. Each season you grant audience to one; its fixed 3-action agenda is the whole turn, followed by a 2-season fatigue lockout on that office.
The five offices circulate among 3–4 rival realms. Hosting an office denies it to rivals; the court's itinerary doubles as the diplomacy layer.
Provisions / Momentum / Relic Stages / Office Fatigue. The resource ledger is the save state.
Combat is one opposed d6 roll. No combat-results table. No step losses.
Victory clocks for survival and relic-power wins, decided before conquest is.
Turn exchange over deterministic lockstep is the first planned use of real-hardware netplay. The 4X is the first customer.
The SNES's SPC700 sound chip is literally an 8-voice hardware sampler. The second serious program track climbs toward it in three deliberate rungs:
RUNG 1 PIANO TOY input → voice, instantly RUNG 2 SEQUENCER patterns, steps, a song RUNG 3 SAMPLER TRACKER the full 8-voice instrument
A curated online portal in the AOL / XBAND register: a walled garden of services: a headline ticker, an encyclopedia reader, a microblog client, NTP time, piped through a smart-cart bridge and a homelab head-end.
Deliberately not a general browser. A 1994-grade service menu, served to a 1990 console.
Networked play between physical SNES consoles over deterministic input lockstep, the same technique XBAND used over phone lines in 1994.
Turn-exchange first (the 4X is the first customer); real-time co-op second.
"The shell should feel like a small real system: concise, legible, predictable, slightly austere, pleasingly retro." — SNESOS founding spec, §3.1 "Personality and register"
READY. OK. FILE NOT FOUND. SRAM NOT FORMATTED. 3 FILES, 18432 BYTES FREE. BAD COMMAND. TYPE HELP. No mascot. No persona. No banter. SNESOS is the machine.
This page is colored by SNESOS's real banked 16-color SNES palette, the same ramp the shell, the GUI mockups, and the games draw from.
SNESOS is a two-man operation. We met on the NintendoAge forums, the classic-Nintendo community where people traded carts and built homebrew for a decade. The handles and avatars below are the ones we used there.
The OS itself: founding spec, shell, SRAM filesystem, program loader, mouse and keyboard drivers, the GUI layer. All of it in native 65816.
The bench: flash carts, FXPak Pro, real console silicon. He flashes each build and runs it on the actual machine before anything ships as hardware-verified.