Expand description
High-Level Emulation (HLE) for classic Macintosh applications.
systemless runs Mac OS Toolbox apps without a real ROM by intercepting
68k A-line trap instructions ($A000–$AFFF) and dispatching them
to native Rust handlers — the QuickDraw, Window Manager, Resource
Manager, Sound Manager, SANE, and the rest of the Toolbox are
reimplemented natively. The 68k CPU itself is interpreted by the
m68k crate.
See the crate’s README.md for the architecture overview.
§Quick start
use systemless::runner::{FixtureRunner, FixtureRunnerConfig};
// Allocate an 8 MiB guest, default config (kiosk mode — Mac menu
// bar suppressed; arrow keys not remapped to numpad).
let config = FixtureRunnerConfig::default();
let mut runner = FixtureRunner::new(8 * 1024 * 1024, config);
// Load a Mac executable (StuffIt archive, MacBinary, or raw
// resource fork — the loader auto-detects the format).
let bytes = std::fs::read("MyGame.sit").unwrap();
let _app = systemless::game::load_game(&mut runner, &bytes).unwrap();
// Step the guest until it halts or the budget runs out.
// The bool is `still_running` — false means the CPU halted.
let (steps_taken, still_running) = runner.run_steps(100_000, None);
println!("ran {} steps, still_running = {}", steps_taken, still_running);Modules§
- audio
- Host audio output backends.
- binhex
- BinHex 4.0 decoding for classic Mac single-file containers.
- cpu
- CPU Backend - m68k wrapper
- debug_
overlay - Shared debug overlay data and text formatting.
- disk_
image - Read-only extraction helpers for classic Mac disk images.
- display
- Shared framebuffer rendering for all Systemless frontends.
- game
- Shared game loading helpers.
- loader
- 68k loader data types: CODE 0 header, jump table entries, and the
LoadedAppstate record returned byFixtureRunner::load_app. - machine_
profile - Canonical guest machine profile used by Systemless’s accuracy harness.
- managers
- Toolbox managers
- memory
- Memory subsystem for Mac emulation
- quickdraw
- QuickDraw rendering primitives.
- runner
- Fixture Runner - Loading and execution infrastructure
- sound
- Sound Manager state and mixing engine.
- trace
- Runtime trace hook for cross-runtime parity comparison.
- trap
- Trap Dispatcher - modular Mac OS trap handling.
- ui_
theme - Internal UI theme contract for dialog/menu/control rendering.
Macros§
- g
g!(advance, (origin_x, origin_y), "row" "row" …)— one glyph.
Enums§
- Error
- Top-level error returned by
crate::runner::FixtureRunnerand the supporting traps. Variants:
Type Aliases§
- Result
Result<T, Error>shorthand for any systemless operation.