Skip to main content

Crate systemless

Crate systemless 

Source
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.
cpu
CPU Backend - m68k wrapper
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 LoadedApp state record returned by FixtureRunner::load_app.
machine_profile
Canonical guest machine profile used by Systemless’s accuracy harness.
managers
Toolbox managers
memory
Memory subsystem for Mac emulation
oracle
Cross-runtime parity oracle.
quickdraw
QuickDraw rendering primitives.
runner
Fixture Runner - Loading and execution infrastructure
sound
Sound Manager state and mixing engine.
trap
Trap Dispatcher - modular Mac OS trap handling.

Enums§

Error
Top-level error returned by crate::runner::FixtureRunner and the supporting traps. Variants:

Type Aliases§

Result
Result<T, Error> shorthand for any systemless operation.