Layer Architecture
┌──────────────────────────────────────────────┐
│ SHACHI GAME CODE │
│ (Your game. C or generated.) │
├──────────────────────────────────────────────┤
│ SHACHI SDK (this prescription) │
│ ┌────────────┬────────────┬───────────────┐ │
│ │ shachi-gfx │ shachi-anim│ shachi-scene │ │
│ │ Multi-pass │ Skeletal │ Task/object │ │
│ │ Tex GC │ NJA loader │ management │ │
│ │ Fog/bump │ Blending │ │ │
│ └────────────┴────────────┴───────────────┘ │
├──────────────────────────────────────────────┤
│ KOS (Unchanged) │
│ pvr_*, maple_*, spu_*, gdrom_*, etc. │
├──────────────────────────────────────────────┤
│ HARDWARE (SH-4 + PVR2 + AICA + GD-ROM) │
└──────────────────────────────────────────────┘
SHURIKEN+ (Mac-side tools, NOT on Dreamcast):
pvr-convert, nja-convert, pvr-validate, dc-lint, disc-build
Shachi sits ON TOP of KOS. It does not fork, wrap, or replace KOS. Every KOS function remains directly callable. Shachi adds what KOS lacks.