NES emulators are a common and fun challenge for testing out languages. Here's one in Clojure that intends to be fully immutable, such that you can rewind and fast-forward through history at will: https://github.com/samfoo/clones
In the case of Sprocketnes, one of its goals is to serve as a demonstration of Rust's ability to run entirely without a runtime (see the long-outdated quote in the readme: "The Rust garbage collector is not used in this project"... we really need to get this updated for 1.0).