ADR-0013: Cartridge Physical Format — Shell, Connector, and Legacy Compatibility
⚠ SUPERSEDED by ADR-0019 on 2026-04-24.
Two days after this ADR was accepted, Josh re-evaluated the storage path. KN-86 cartridges are bytecode files (
.kn86) running on the Fe VM (ADR-0006, ADR-0004) — the bytecode is indifferent to whether it lives on MBC5 ROM, an SD card, or a network socket. The hardware decisions in this ADR (DMG pinout, MBC5 mapper, CR2032-backed on-cart SRAM, edge connector tooling) bought capacity and per-cart-save guarantees that bytecode carts do not need.ADR-0019 replaces the storage and bridge IC with a full-size SD card carried in a custom two-piece clamshell sled, read via USB mass storage through the internal hub planned in ADR-0018. The shell footprint (~58 × 65 × 8 mm) and the cartridge-as-ritual ethos are preserved. Per-cartridge save data moves from on-cart battery-backed SRAM to a file on the SD filesystem; ADR-0006 open question #2 is re-resolved by ADR-0019 rather than by this ADR.
The Phase-2
ghost_cartridgelegacy-DMG-read easter-egg subsystem described below cannot operate as designed under SD-sled storage. Its disposition is flagged as ADR-0019 Open Questions §10.This ADR is retained as a historical artifact for the design history. Do not cite as current; do not edit body content.
Superseded by: ADR-0019 — Cartridge Storage and Physical Form Factor (SD-Card Sled).
Related: ADR-0006 (cart format v2.0), KN-86-Capability-Model-Spec.md, KN-86-Pi-Zero-Build-Specification.md (active; supersedes the Pico-era KN-86-Modern-Build-Specification.md archived 2026-04-21), CLAUDE.md (Canonical Hardware Specification)
Context
Section titled “Context”The KN-86 program has, to date, assumed a custom-designed cartridge shell and connector — explicit in the hardware spec, implicit in every mechanical CAD assumption and BOM line item. No pin count, shell geometry, or supplier has been committed.
The commercial and narrative analysis of the sister-deck catalog (Toneline, Gridline, Statline) surfaced a question that applies retroactively to the KN-86: should the cartridge slot be pin- and form-compatible with an existing 1980s or 1990s game cartridge standard?
Two benefits are on the table if the answer is yes:
- Supply and cost. Shells for legacy cartridges exist in the tens of millions on the secondary market. Repurposing saves an injection-mold tooling investment (~$15K–40K per shell variant, per color) and gives a per-unit BOM advantage at small production runs (< 5K units per cartridge SKU).
- Fiction and gameplay extension. A legacy-compatible slot can read real 1980s/1990s cartridges as “alien signal” — mostly garbage, but a curated list of specific titles unlocks in-universe content, easter eggs, or gameplay variants. This turns every retro-game shop into a de facto KN-86 accessory store and gives the platform a treasure-hunt metagame no competitor can replicate.
Three costs are on the table:
- Pin budget. Legacy formats fix the address/data/control budget. A 24-pin Atari 2600 connector is much tighter than a 32-pin Game Boy connector, and both are tighter than a clean-sheet design could be if we chose to exceed 32 pins.
- Mapper semantics. Legacy cartridges were shipped with era-specific bank-switching schemes (2600: F6/F8/E7; Game Boy: MBC1–MBC5). If we want to read legacy ROMs, the nOSh runtime must understand those schemes.
- Manufacturing labor. If we use repurposed shells rather than new-production shells, disassembly, cleaning, board removal, PCB insertion, and relabeling are all manual steps. Cost/unit is dominated by labor, not materials, at any non-trivial scale.
This ADR commits the KN-86 to a specific physical format and either adopts or rejects legacy-cartridge compatibility.
Forcing functions
Section titled “Forcing functions”- Industrial design is unblocked only after this decision lands. Case CAD work, cartridge slot cutouts, and internal board layout for the prototype all depend on the shell geometry and pin count.
- BOM commitments are imminent. The Q3 2026 prototype build requires cartridge shell sourcing decisions in the next 90 days.
- Sister-deck product strategy depends on shared cartridge format. Toneline, Gridline, and Statline all inherit whatever the KN-86 commits to; changing the physical format later cascades across four devices.
Constraints
Section titled “Constraints”- Cartridge capacity. Current
.kn86production cartridges are 12–16 KB (per ADR-0006). Projected Phase-2 cartridges with richer mission templates, embedded clip data, and per-cartridge save state could grow to 128 KB. Any format chosen must comfortably address ≥ 128 KB. - Per-cartridge save data. The capability model currently stores all save state in Universal Deck State (on-device EEPROM). ADR-0006 open question #2 explicitly calls out that per-cartridge save data is undecided. A format with native battery-backed SRAM would close that open question cleanly.
- Electrical simplicity. The Pi Zero 2 W has finite GPIO. The cartridge slot should not burn more usable GPIOs than the platform can spare or require a large external support chip.
- Power envelope. Current target is ~120–180 mA typical draw. Cartridge interface should not materially move this.
- Amber aesthetic continuity. Whatever shell we pick must either be relabeled consistently in amber/black or be visually consonant with the KN-86 industrial design language.
Decision
Section titled “Decision”Accepted 2026-04-22. The KN-86 commits to:
- Cartridge pinout: Game Boy DMG (32-pin edge connector, MBC5-compatible). The nOSh runtime implements MBC5 bank-switching natively, giving the platform a 32 KB native address window expandable to 8 MB total ROM via the standard mapper. Native support for cartridge-side battery-backed SRAM (up to 128 KB) closes the per-cartridge save question.
- Cartridge shell: custom KN-86-molded shell, DMG-pin-compatible internal connector. The new-production shell carries KN-86 branding, amber/black color palette, and a consistent label format. Shell geometry matches the DMG connector standard so legacy Game Boy cartridges physically fit the slot.
- Legacy-cartridge read support: Phase 2 nOSh runtime feature. The nOSh runtime ships with a
ghost_cartridgesubsystem (disabled by default in Phase 1) that, when enabled, reads a Game Boy ROM from the slot and exposes the raw bytes to the Cipher voice as “alien signal.” A curated list of ~20–30 specific Game Boy titles triggers in-universe easter-egg content (additional mission variants, Cipher dialog, reputation bonuses). This list is an editorial and gameplay design problem, not a nOSh runtime problem. - Sister-deck inheritance. Toneline, Gridline, and Statline all inherit the DMG pinout and custom shell. Cartridges are visually differentiated by color and label rather than by shape.
- ADR-0006 remains in force. The
.kn86binary container sits inside whatever ROM chip the physical cartridge uses. ROM size budget from this ADR (up to 8 MB) does not change the.kn86internal layout; it just raises the ceiling onstatic_data_sizeand future section types.
Alternative path (not taken)
Section titled “Alternative path (not taken)”Option B (Atari 2600 pinout and repurposed 2600 shells) was considered and rejected. Its strongest appeal was maximum cultural weight and perfect continuity with the 1985 Kinoshita Electronics Consortium founding date, but the engineering costs — tighter pin budget, ad-hoc bank-switching, no native SRAM, manual-labor manufacturing pipeline, and a 40-year-old shell aesthetic that constrains industrial design — outweighed the fiction gain. The Option B analysis is retained below for completeness and for the record of what was weighed.
Options Considered
Section titled “Options Considered”Option A: Custom shell, custom pinout (status quo)
Section titled “Option A: Custom shell, custom pinout (status quo)”Design a fresh shell from scratch. Choose any pin count (40? 48? 64?), any mapper scheme, any mechanical geometry. Commission tooling. Source new-production shells from an injection-molding supplier.
Pros:
- Maximum flexibility. No historical constraints.
- Clean industrial design story.
- Clean legal story (no trademarks, no repurposed goods).
Cons:
- Tooling cost: $15K–40K per shell color. At launch we likely want 2–3 color variants for product differentiation across the sister-deck catalog, so the real number is $30K–120K.
- No supply leverage. Per-unit shell cost: $0.80–2.50 at quantities 1K–10K.
- No legacy-cartridge easter-egg layer — the slot is proprietary and physically rejects anything that isn’t a KN-86 cart.
- Customers are locked into a platform with zero external supply chain.
Verdict: Rejected in favor of Option D. The supply-chain lock-in argument is real but doesn’t outweigh the easter-egg layer and tooling-cost savings available from Options B/D.
Option B: Atari 2600 pinout, repurposed 2600 shells
Section titled “Option B: Atari 2600 pinout, repurposed 2600 shells”Adopt the 2600’s 24-pin card-edge connector as the KN-86 slot. Source surplus 2600 cartridges from aggregators (post-crash warehouse stock; literal pallets available), disassemble, extract the original PCB, insert a KN-86 board with Lisp bytecode ROM, re-label with amber-and-black KN-86 artwork.
Pin budget: 24 pins total. Standard 2600 pinout: 13 address lines (A0–A12, giving 8 KB native), 8 data lines (D0–D7), +5V, GND, /CS. Bank-switching to 32 KB via F8 or 64 KB via F6 requires custom logic and burns part of the address space. No interrupt line. No serial. No native SRAM. No reset signal exposed beyond power.
Mapper scheme: F6/F8/E7 bank-switching. Firmware must implement the scheme chosen; curated legacy cartridges use a mix of schemes (detectable from ROM header heuristics).
Shell geometry: ~100 × 75 × 18 mm. Chunky by modern standards. Visually iconic.
Supply: Enormous. Bulk surplus pricing: $0.25–1.00 per cartridge at pallet quantity. Labor for disassembly/re-insertion: estimated $0.75–2.00 per unit depending on automation.
Legacy-cartridge read: Native. The slot physically accepts any real 2600 cartridge. The nOSh runtime can read the ROM and dispatch to the ghost_cartridge subsystem.
Pros:
- Maximum cultural weight. The original home-game cartridge. 45+ demographic has muscle memory.
- No tooling cost if shells are repurposed (material cost only).
- Rich fiction hook: “Each capability module is housed in a post-crash Atari 2600 shell sourced by Kinoshita’s 1985 acquisition of surplus American stock.” Perfect Kinoshita Electronics Consortium texture.
- Easter-egg layer is extraordinary — millions of 2600 cartridges exist in private collections.
- Ships with a built-in community (retro gaming scene).
Cons:
- 24 pins is tight. No native SRAM means per-cartridge saves must fall back to Universal Deck State in device storage (already the current plan, but we lose a cleaner option).
- 8 KB native address window is insufficient; bank-switching is mandatory from day one. Multiple competing schemes (F6/F8/E7) mean firmware complexity and per-cartridge choice of mapper.
- Manual-labor manufacturing pipeline. Labor cost dominates unit cost at any quantity. Not a problem at 5K units; might be a problem at 50K.
- Shell consistency is variable. Colors, yellowing, label wear, minor mold differences across 8+ years of 2600 manufacturing. Either a feature (no two carts alike) or a QA headache.
- Trademark exposure on original shell labels. Mitigation: overlay new labels during re-labeling, but the shell itself may retain embossed manufacturer marks.
- Shell size constrains the KN-86 industrial design. The slot is committing to a 100 × 75 mm opening, which has knock-on effects for case depth and internal PCB layout.
- 45+ demographic skew. Younger operators (< 35) have no native reference for 2600 cartridges.
Verdict: Viable. Strongest fiction; weakest engineering. Retained as the alternative path if iconography is prioritized.
Option C: Atari 2600 pinout, new-production shell molded to 2600 form factor
Section titled “Option C: Atari 2600 pinout, new-production shell molded to 2600 form factor”Keep the 2600 pin map and shell geometry, but tool up new-production shells in amber-and-black KN-86 livery. Abandon repurposed-surplus supply.
Pros:
- Consistent new shells. No labor-intensive disassembly. Clean supply chain.
- Retains 2600 pinout, so legacy cartridges still fit physically.
- Cleaner industrial-design story than repurposed surplus.
Cons:
- Pays the tooling cost of Option A (~$15K–40K per color) without getting the pin-budget headroom Option D offers.
- Loses the “post-crash surplus” fiction hook that makes Option B narratively distinctive.
- Still stuck with 24 pins, no native SRAM, ad-hoc bank-switching.
Verdict: Dominated. Every axis on which this option is better than B is matched or exceeded by D. Every axis on which this option is better than D is matched or exceeded by B. Rejected.
Option D: Game Boy DMG pinout, custom KN-86-molded shell (RECOMMENDED)
Section titled “Option D: Game Boy DMG pinout, custom KN-86-molded shell (RECOMMENDED)”Adopt the DMG cartridge’s 32-pin edge connector and MBC5 mapper standard. Tool a new shell in amber-and-black KN-86 livery, dimensionally compatible with the DMG connector so a legacy DMG cartridge can physically insert.
Pin budget: 32 pins. Standard DMG pinout: 16 address lines (A0–A15, giving 32 KB native), 8 data lines, VIN (cartridge audio mix), /RD, /WR, /CS, /RESET, VCC, GND, CLK, PHI. MBC5 mapper extends address space to 8 MB ROM + 128 KB SRAM.
Mapper scheme: MBC5. Standardized, well-documented, mature firmware references available. Firmware ignores MBC1–MBC3 variants for KN-86 native carts (uses MBC5 exclusively) but supports detection for legacy-cartridge reads.
Shell geometry: DMG cartridges are ~58 × 65 × 8 mm. Compact. Custom shell matches this footprint but carries KN-86 design language (amber label area, black shell body, embossed Kinoshita mark).
Supply: New-production shells via standard injection mold. Tooling cost: ~$15K–30K per color. Per-unit material cost: $0.80–1.50 at quantities 1K–10K. Legacy DMG cartridges are also plentiful ($0.50–5.00 range on secondary market) and a small supply stream of empty DMG shells ships for < $0.50 from aggregators if a “repurposed shell” collector SKU is desired.
Legacy-cartridge read: Native. DMG shell physically accepts any real DMG or DMG-compatible cartridge. Firmware reads ROM via MBC5 or MBC1/3 compatibility modes; the ghost_cartridge subsystem exposes bytes to Cipher.
Pros:
- 32 pins is comfortable. Room for VIN (per-cartridge audio mixing — a potential future feature for Toneline), /RESET, /CS, and spare control lines.
- 32 KB native + 8 MB via MBC5 is luxurious. Future-proof against richer cartridge content.
- Native battery-backed SRAM (up to 128 KB per cart) closes ADR-0006 open question #2. Per-cartridge save data lives on the cartridge, not in device storage.
- MBC5 is dead-simple for firmware to read. No competing schemes. Mature homebrew/community tooling.
- Legacy-cartridge easter-egg layer still works, at comparable supply scale to 2600 (hundreds of millions of DMG carts sold).
- Industrial-design flexibility. New shell in our own color palette; we’re not inheriting a 1977 mold aesthetic.
- Form factor is compact (58 × 65 × 8 mm), which is good for a handheld’s case depth and slot geometry.
- Younger demographic skew. Game Boy nostalgia covers 30–50, overlapping the 45+ crowd we’d serve with 2600.
Cons:
- Pays tooling cost (~$15K–30K per color). At 2–3 colors: $30K–90K total. Material at this stage.
- Fiction hook is good but not as pointed as Option B’s “post-crash Atari surplus.” Requires new narrative construction.
- DMG cartridge form factor is more 90s than 80s. Slight mismatch with the Kinoshita Electronics Consortium 1985 founding date — defensible via the fiction that Kinoshita licensed or forked the DMG cartridge standard, but not as clean as 2600.
- Larger pin count means the cartridge PCB is marginally more expensive ($0.20–0.40 per unit vs. 2600) — immaterial at our scale.
Verdict: Recommended. Best engineering envelope. Preserves the easter-egg layer. Accepts the tooling cost as a one-time investment. Narrative gap relative to Option B is closable.
Option E: Custom shell, Game Boy DMG pinout (electrical only, no form-factor compatibility)
Section titled “Option E: Custom shell, Game Boy DMG pinout (electrical only, no form-factor compatibility)”Use the 32-pin DMG pinout and MBC5 mapper on a completely custom shell that is not form-compatible with DMG cartridges.
Pros:
- All the engineering benefits of Option D.
- Total industrial-design freedom on shell geometry.
Cons:
- Abandons the legacy-cartridge easter-egg layer — legacy DMG cartridges won’t physically fit even though electrically they would work.
- No meaningful narrative beat distinguishable from Option A.
- Pays the full tooling cost of Option A without the compensating benefit.
Verdict: Rejected. Strictly dominated by Option D.
Option F: Hybrid — dual-slot device (KN-86 custom slot + separate legacy cartridge adapter)
Section titled “Option F: Hybrid — dual-slot device (KN-86 custom slot + separate legacy cartridge adapter)”Ship the KN-86 with a proprietary slot for first-party cartridges plus a secondary slot (or USB-attached accessory) that accepts legacy cartridges via adapters.
Pros:
- Decouples the first-party cartridge supply chain from the legacy-compatibility question.
- Supports multiple legacy formats via swappable adapters (2600 adapter, DMG adapter, NES adapter).
Cons:
- Two slots = two connector BOMs, two PCB traces, two firmware drivers. Adds ~$3–8 to unit BOM, adds case real estate, adds firmware complexity.
- Secondary adapter market is an additional product-management surface with thin margins.
- The legacy-cartridge easter-egg layer is better when it’s the primary slot, not a secondary accessory — the ceremony of inserting a 40-year-old cartridge into the main slot is the moment.
Verdict: Deferred. Could become a Phase 3 accessory (a “KN-86 Legacy Adapter” that bridges the DMG slot to Atari 2600 cartridges via pin remapping and mapper translation) without reopening this ADR.
Trade-off Analysis
Section titled “Trade-off Analysis”The core tension is iconography vs. capacity.
Atari 2600 carries 15 years more cultural weight, deeper surplus supply, and a cleaner “1985 Austin consortium” fiction hook. Game Boy carries a 4× native address space, a standardized mapper, native per-cartridge SRAM, tighter form factor, and broader demographic reach.
Four of the current ADR-0006 open questions collapse or simplify under Option D:
- Per-cartridge save data (ADR-0006 §Known Unknowns #2): native MBC5 SRAM solves this. Each cartridge carries its own save state on its own battery-backed RAM. Universal Deck State in device storage retains the cross-cartridge fields (credits, reputation, handle); per-cartridge progress moves to the cartridge itself.
- Encryption / DRM (ADR-0006 §Known Unknowns #4): MBC5 mapper variants include cartridge-ID registers that could carry a lightweight integrity beacon if we want it. Still not cryptographic security; still not the goal.
- Hot reload (ADR-0006 §Known Unknowns #3): MBC5’s bank-switching model makes hot-reload semantics cleaner — cartridge state is literally the ROM + SRAM on the physical cart, so swapping cartridges mid-mission has a well-defined state transition.
- Growth headroom: the
static_data_sizeandbytecode_sizefields in the cart header (ADR-0006 §Header) become effectively unbounded relative to projected content, simplifying future capability modules with embedded clip libraries.
Under Option B (2600), these questions remain open or get harder. The 8 KB native window forces aggressive bank-switching from day one. No native SRAM means per-cartridge save data either lives in device storage (current fallback) or requires custom hardware on every cartridge (abandons the repurposed-surplus story).
The fiction cost of choosing Option D over Option B is real but soft. The canonical story — “Kinoshita Electronics Consortium, founded 1985, Austin, Texas” — predates the DMG (released April 1989 in Japan). The narrative fix is a modest edit: Kinoshita licenses a DMG-compatible cartridge form factor from Nintendo in 1989 as part of the consortium’s second-generation hardware platform, specifically for the KN-86 (which itself ships in 1991 in canon — late enough for the DMG standard to be available). This also provides a clean explanation for the sister-deck catalog sharing the same cartridge format: it’s the Kinoshita cartridge standard, licensed from Nintendo, used across all Kinoshita-branded hardware.
If Option B is preferred, no canonical edits are required — the 2600 predates Kinoshita by eight years and fits the 1985 founding date perfectly.
Consequences
Section titled “Consequences”What becomes easier (under recommended Option D)
Section titled “What becomes easier (under recommended Option D)”- Per-cartridge save state has a native home. ADR-0006 open question #2 closes.
- Cartridge capacity is no longer a design constraint for the next decade of content. Embedded clip libraries, per-cartridge voice banks, richer mission template sets all become trivially feasible.
- Mapper complexity is bounded. Firmware implements MBC5 once and never touches ad-hoc bank-switching.
- Legacy easter-egg layer gives gameplay designers a powerful long-tail content mechanism without ongoing cartridge production cost.
- Sister-deck catalog inheritance is clean: Toneline, Gridline, Statline all ship the same cartridge standard, share cartridge-authoring tooling, and interoperate at the physical layer.
- Pin budget accommodates VIN (per-cartridge audio mix), which opens interesting Toneline design space — a Toneline synth-engine cartridge could contribute audio directly to the master mix, rather than only via the MCU’s PSG emulation.
What becomes harder (under recommended Option D)
Section titled “What becomes harder (under recommended Option D)”- Tooling investment. ~$30K–90K upfront for shell tooling before first cartridge ships.
- Industrial design commits to a new shell standard. We own the molds, we own the aesthetic evolution, we own the QA on shell manufacturing.
- Fiction requires a modest retcon. Kinoshita’s cartridge format needs a 1989 licensing beat to explain DMG compatibility, or we set the KN-86’s in-canon release year late enough to accommodate the licensing chronologically.
- The nOSh runtime owns an MBC5 mapper implementation. Maybe 1–2 weeks of engineering work, well-documented from homebrew scene.
What becomes easier (under alternative Option B)
Section titled “What becomes easier (under alternative Option B)”- Zero tooling cost if repurposed shells are used.
- Perfect canonical continuity. 1985 founding, 1985-era 2600 shells — no retcon required.
- Strongest fiction hook in the Kinoshita Electronics Consortium universe.
- Built-in community. Retro-gaming scene already exists; 2600 cartridge collecting is a mature hobby.
What becomes harder (under alternative Option B)
Section titled “What becomes harder (under alternative Option B)”- Manual-labor manufacturing pipeline. Unit cost scaling is labor-dominated.
- Cartridge capacity capped at ~32 KB per cart with bank-switching. Projected content grows past this within 2–3 years.
- Per-cartridge save data has no native home. ADR-0006 open question #2 stays open or moves to device storage (tightens EEPROM budget).
- The nOSh runtime owns multiple legacy bank-switching schemes to support the easter-egg layer (F6/F8/E7 at minimum).
- Shell-size constraint (100 × 75 × 18 mm) drives case depth and PCB layout in directions that may not flatter the industrial design.
Manufacturing and BOM Implications
Section titled “Manufacturing and BOM Implications”Option D (recommended)
Section titled “Option D (recommended)”| Line Item | Cost (per unit @ 5K production) | Notes |
|---|---|---|
| Shell tooling (amortized) | $6–18 / unit | Assumes $30K–90K tooling amortized over 5K units. Non-recurring once tooled. |
| Shell material + injection | $0.80–1.50 / unit | Commodity ABS/polycarbonate injection at quantity. |
| 32-pin edge connector (device side) | $0.35–0.60 / unit | Standard card-edge connector. |
| Cartridge PCB (MBC5 + ROM) | $1.20–2.80 / unit | MBC5 chip is commodity; ROM sized to content. |
| Per-cartridge SRAM + battery (when used) | $0.60–1.40 / unit | CR2032 + SMD SRAM for save-capable carts. |
| Labeling | $0.12–0.30 / unit | Standard adhesive label. |
| Total per cart (ROM only) | ~$3.50–5.00 | At 5K scale. Drops to $2.20–3.50 at 25K scale. |
| Total per cart (ROM + SRAM) | ~$4.40–6.50 |
Option B (alternative)
Section titled “Option B (alternative)”| Line Item | Cost (per unit @ 5K production) | Notes |
|---|---|---|
| Repurposed 2600 shell | $0.25–1.00 / unit | Bulk surplus aggregator pricing. |
| Disassembly/cleanup labor | $0.50–1.20 / unit | Manual; automation bounded by shell variability. |
| 24-pin edge connector (device side) | $0.28–0.45 / unit | |
| Cartridge PCB (bank-switch + ROM) | $1.00–2.20 / unit | Simpler electrical, custom bank-switch logic. |
| Relabeling | $0.30–0.60 / unit | Overlay of original label. |
| Total per cart (ROM only) | ~$2.35–5.45 | Labor-variable. |
Both options land in a similar per-unit range at 5K scale. Option D pulls ahead at larger volumes as tooling amortizes and Option B’s labor cost does not.
Legacy-Cartridge Read Support (Phase 2)
Section titled “Legacy-Cartridge Read Support (Phase 2)”Under either Option B or Option D, the slot physically accepts legacy cartridges of the matching system. The nOSh runtime feature to read those cartridges and dispatch to in-universe content is scoped separately.
Subsystem: ghost_cartridge
Section titled “Subsystem: ghost_cartridge”- On cartridge insertion, the nOSh runtime reads the cartridge header.
- If the header matches
.kn86magic (Option D: at MBC5 bank 0 offset 0x0100; Option B: via 2600 ROM header heuristics), treat as first-party and boot normally. - If the header does not match, the cartridge is “legacy.” The nOSh runtime computes a SHA-1 of the full ROM contents.
- The SHA-1 is compared against a compiled-in table of known ghost-cartridge hashes (the editorial list of ~20–30 titles selected by gameplay design).
- Match → dispatch to the corresponding easter-egg handler. No match → expose the raw bytes to the Cipher voice as “alien signal,” producing an
NOSIGerror tone and a brief animated Cipher response that treats the bytes as encrypted data. - Either way, do NOT execute the legacy ROM. We are reading bytes, not emulating the target system. (Firmware is not a Game Boy emulator. Firmware is not a 2600 emulator. It’s a deck that reads cartridge ROMs as data.)
Editorial scope
Section titled “Editorial scope”The curated list of recognized legacy titles is gameplay design’s responsibility, not firmware’s. Suggested structure:
- ~20–30 total titles
- Mix of famous (Pitfall, Tetris, Super Mario Land) and obscure (hidden-gem titles known to collectors)
- Each title triggers a narratively-coherent in-universe response: a Pathfinder mission variant, a Cipher dialog set, a Takezo tactical mode, a Cipher Garden pattern family
- Some titles act as “keys” in multi-cartridge easter-egg chains — insert specific titles in a specific sequence to unlock a hidden mission
Legal posture
Section titled “Legal posture”We read ROM bytes; we do not redistribute them. We do not emulate the target system. We do not ship ROM images. The user supplies the physical cartridge they own. This is analogous to a cartridge-backup device — a well-established legal category.
Action Items
Section titled “Action Items”Josh decides between Option D (recommended) and Option B (alternative).Decided 2026-04-22: Option D.- Industrial Design engages on shell geometry and livery now that pin/form factor is committed (DMG 32-pin, 58 × 65 × 8 mm custom-molded shell).
- Embedded Systems prototypes the MBC5 mapper implementation on the Pi Zero 2 W prototype board.
- Gameplay Design drafts the ghost-cartridge easter-egg editorial list for Phase 2.
- Fiction update: add canonical beat to Kinoshita Electronics Consortium page covering the 1989 DMG-cartridge licensing arrangement with Nintendo (or shift the KN-86 in-canon ship date to 1991+ to accommodate the DMG standard naturally).
- BOM update: add cartridge connector, shell tooling line item, and per-cartridge cost row to
docs/hardware/KN-86-Pi-Zero-Build-Specification.md(active spec; the Pico-eraKN-86-Modern-Build-Specification.mdwas archived 2026-04-21). - ADR-0006 amendment: close open questions #2 (per-cartridge save) and #3 (hot reload); note that
static_data_sizeceiling is now bounded by MBC5 ROM size rather than nOSh runtime memory. - CLAUDE.md update: add cartridge pinout, shell geometry, mapper, and SRAM-capacity rows to the Canonical Hardware Specification table (Spec Hygiene Rule 1/3).
Documentation Updates Required
Section titled “Documentation Updates Required”CLAUDE.md— Canonical Hardware Specification: add cartridge pinout, shell geometry, mapper spec rows.docs/hardware/KN-86-Pi-Zero-Build-Specification.md— add cartridge BOM lines, shell sourcing notes, tooling schedule. (The priorKN-86-Modern-Build-Specification.mdis archived underdocs/_archive/hardware/.)docs/architecture/KN-86-Capability-Model-Spec.md— update any references to proprietary cartridge format.docs/architecture/KN-86-Cartridge-Grammar-Spec.md(v2.0 rewrite in progress) — add physical-format section referencing this ADR.docs/architecture/adr/ADR-0006-cart-format-v2.md— amend Known Unknowns section to reflect closed/simplified questions.docs/writing/— Kinoshita Electronics Consortium fiction: add 1989 DMG licensing beat (Option D only).- Sister-deck Notion pages (Toneline, Gridline, Statline) — note shared cartridge format.
Summary
Section titled “Summary”This ADR commits the KN-86 to a physical cartridge format. Accepted path: Option D. The Game Boy DMG 32-pin pinout with MBC5 mapper in a custom KN-86-branded shell gains native per-cartridge SRAM, 8 MB addressable ROM capacity, a legacy-cartridge easter-egg layer, and clean sister-deck inheritance. ADR-0006’s binary container format is preserved unchanged. Phase 1 ships first-party cartridges only; Phase 2 enables the ghost_cartridge subsystem for legacy DMG reads.
Accepted 2026-04-22.