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) 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.
The SNES Mouse — the Mario Paint-era official hardware — is a planned v1 input device and works well on emulators today. 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 SNESOS's own 8×8 monospace font. There is no proportional system font, and there will not be one.
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.
Five court offices. 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"
Explicitly out of bounds: jokes, fake sentience, mascot banter, insult messages, overlong quips. A sibling project on the same hardware owns that lane.
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.