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 mockup-first pipeline is active. The launcher-screen mockup is complete and operator-signed. GUI chrome typeface is ratified as dungeon-mode, a CC0 public-domain 8×8 bitmap font, imported as tiles directly. Modal-panel mockups are in design. The SNES Mouse driver ships with the OS's first OAM sprite: the 16×16 solid-arrow pointer, probe-verified on the real input timing rules.
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. Design continues from 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.