How techomancer/iris works
IRIS is an SGI Indy/Indigo2 emulator that boots IRIX and other MIPS guests. The main workflow is to load machine configuration, construct and run the emulated machine, execute guest instructions and firmware, and expose guest storage, networking, and graphics to the host. Optional interfaces provide GUI management and CI automation; optional JITs accelerate CPU execution and REX3 drawing. The README documents several capabilities whose internal wiring is not shown in the sampled source, so those links are limited to the machine-level interfaces it describes.
Main entry points: machine.rs Machine runtime · mips_exec.rs MIPS execution · main.rs Emulator entry · scsi.rs SCSI devices
Components 24
Runtime control
- Emulator entry
src/main.rs - Machine config
src/config.rs - Machine runtime
src/machine.rs
Guest execution
- MIPS execution
src/mips_exec.rs - MIPS core
src/mips_core.rs - MIPS JIT
src/jitv2/mod.rs - REX3 shader JIT
src/rex3_jit/mod.rs
Emulated hardware
- Guest memory
src/mem.rs - PROM firmware
src/prom.rs - SCSI devices
src/scsi.rs - REX3 graphics
src/rex3.rs - HAL2 audio
src/hal2.rs - IndyCam video
src/vino.rs - Keyboard and mouse
src/ps2.rs
Guest I/O
- Disk overlays
src/cow_disk.rs - CHD images
src/chd_disk.rs - Guest networking
src/net.rs - Snapshots
src/snapshot.rs
Host interfaces
- GUI frontend
iris-gui/src/main.rs - CI control socket
src/ci.rs
Other components
- Operator
- Guest system
- Host display
- Host network
Connections 25
- Operator → Emulator entry: starts
- Emulator entry → Machine config: loads
- Emulator entry → Machine runtime: constructs and starts
- Machine runtime → PROM firmware: boots through
- PROM firmware → Guest system: starts guest
- Machine runtime → MIPS execution: runs
- MIPS execution → MIPS core: executes instructions
- MIPS execution → Guest memory: accesses
- MIPS execution → MIPS JIT: may dispatch to
- Machine runtime → SCSI devices: provides
- SCSI devices → Disk overlays: uses
- SCSI devices → CHD images: may mount
- Machine runtime → Guest networking: provides
- Guest networking → Host network: forwards traffic
- Machine runtime → Snapshots: supports save and restore
- Machine runtime → REX3 graphics: runs graphics hardware
- REX3 graphics → REX3 shader JIT: may use compiled shaders
- REX3 graphics → Host display: presents framebuffer
- Machine runtime → HAL2 audio: emulates
- Machine runtime → IndyCam video: emulates
- Machine runtime → Keyboard and mouse: emulates
- Operator → GUI frontend: manages machine
- GUI frontend → Machine runtime: controls runtime
- Operator → CI control socket: automates through
- CI control socket → Machine runtime: controls