Nix als Mario-Emulator: Jeder Button-Druck ist eine eigene Derivation

Super Mario Derivations

Nix als Mario-Emulator: Jeder Button-Druck ist eine eigene Derivation

In Nix sind Attributpfade lazy und können unendlich tiefe Bäume erzeugen. Der Autor nutzt diese Eigenschaft, um Super Mario Bros. 3 zu emulieren: Jeder Tastendruck entspricht einer eigenen Derivation, die den Savestate des vorherigen Drucks als Input verwendet. So wird der Nix-Store zur Savestate-Historie, und ein kompletter Spieldurchlauf ist als Attributpfad darstellbar. Das System ist generalisiert und für beliebige ROMs als Flake-Input nutzbar.

Die Abhängigkeitsgraph ist die Eingabesequenz, also können wir Nix fragen, welche Buttons einen Frame erzeugt haben.

Mehr von diesem Tag

2026-08-14