rlm@170: (ns com.aurellem.run.save-corruption rlm@170: (:use (com.aurellem.gb gb-driver vbm)) rlm@318: (:use (com.aurellem.run util title))) rlm@90: rlm@250: (defn-memo walk-to-stairs rlm@318: ([] (walk-to-stairs (finish-title))) rlm@250: ([script] rlm@250: (->> script rlm@318: (walk [→ ↑ ↑ ↑ ↑ ↑ → → →])))) rlm@91: rlm@250: (defn-memo walk-to-door rlm@250: ([] (walk-to-door (walk-to-stairs))) rlm@250: ([script] rlm@250: (->> script rlm@318: (walk [↓ ↓ ↓ ↓ ↓ ← ← ← ←])))) rlm@91: rlm@250: (defn-memo activate-menu rlm@250: ([] (activate-menu (walk-to-door))) rlm@250: ([script] rlm@250: (->> script rlm@318: (first-difference [:b] [:a :b :start] AF)))) rlm@90: rlm@250: (defn-memo save-game rlm@250: ([] (save-game (activate-menu))) rlm@250: ([script] rlm@250: (->> script rlm@318: (first-difference [] [:d] AF) rlm@250: (play-moves [[] [] [] [:d] [] [] [] [:d] [] [] [:a]]) rlm@318: (do-nothing 200) rlm@318: (play-moves [[:a]])))) rlm@90: rlm@250: (defn-memo corrupt-save rlm@250: ([] (corrupt-save (save-game))) rlm@250: ([script] rlm@250: (->> rlm@250: script rlm@250: (play-moves rlm@250: ;; this section is copied from speedrun-2942 and corrupts rlm@250: ;; the save so that the end-of-list marker for the pokemon rlm@250: ;; roster is destroyed, but the save is still playable. rlm@250: [[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [:select] [:restart]])))) rlm@90: rlm@250: (defn-memo start-game rlm@250: ([] (start-game (corrupt-save))) rlm@250: ([script] rlm@250: (->> script rlm@250: (title) rlm@318: (first-difference [] [:start] AF) rlm@318: (first-difference [] [:a] AF) rlm@318: (first-difference [:a] [:a :start] AF)))) rlm@90: rlm@250: (defn-memo destroy-item-end-of-list-marker rlm@250: ([] (destroy-item-end-of-list-marker (start-game))) rlm@250: ([script] rlm@250: (->> rlm@250: script rlm@250: (play-moves rlm@250: [[:start] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [:a] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [:d] [] [] [] [:a] [] [] [:d] [] [] [:a] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [:d] [] [] [] [] rlm@250: [:d] [] [] [] [] [:d] [] [] [] [] [:d] [] [] [] [] rlm@250: [:d] [] [] [] [] [:d] [] [] [] [] [:d] [] [] [] [] rlm@250: [:d] [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:d] rlm@250: [] [] [] [:a] [] [] [:d] [] [] [:a] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [:u] [] [] [] [] [:u] [] [] rlm@250: [] [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] []])))) rlm@91: rlm@91: (defn warp-to-elite-four rlm@250: "This is copied from speedrun-2942 to ensure that rlm@250: everything is good up to this point." rlm@91: [] rlm@91: (->> (corrupt-save) rlm@91: (play-moves rlm@250: [ [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:a] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [:start] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [:start] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [:start] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [:a] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [:d] [] [] [] [:a] [] [] [:d] [] [] [:a] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [:d] [] [] [] [] rlm@250: [:d] [] [] [] [] [:d] [] [] [] [] [:d] [] [] [] [] rlm@250: [:d] [] [] [] [] [:d] [] [] [] [] [:d] [] [] [] [] rlm@250: [:d] [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:d] rlm@250: [] [] [] [:a] [] [] [:d] [] [] [:a] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [:u] [] [] [] [] [:u] [] [] rlm@250: [] [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [:b] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [:d] [] [] [:a] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [:d] [] [] [] [:d] [] [] [] rlm@250: [:d] [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d] rlm@250: [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] [] rlm@250: [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] [] [] [] rlm@250: [] [] [:d] [] [] [] [] [] [] [:d] [] [] [] [] [] [] rlm@250: [:d] [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d] rlm@250: [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] [] rlm@250: [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] [] [] [] rlm@250: [] [] [:d] [] [] [] [] [] [] [:d] [] [] [] [] [] [] rlm@250: [:d] [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d] rlm@250: [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] [] rlm@250: [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [:b] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:select] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:b] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [:d] [] [] [] [] [] [] [] [] [:b] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [:select] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [:b] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [:d] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [:b] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [:d] [] [] [] [] [:b] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [:select] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:b] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:d] rlm@250: [] [] [] [] [] [] [] [:d] [] [] [] [] [] [] [] [:d] rlm@250: [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [:select] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [:a] [] [] [:d] [] [] rlm@250: [:a] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] rlm@250: [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] rlm@250: [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] rlm@250: [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] rlm@250: [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] rlm@250: [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] rlm@250: [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] rlm@250: [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] rlm@250: [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] rlm@250: [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] rlm@250: [] [:u] [] [:u] [:a] [] [] [] [] [] [:a] [] [] [] rlm@250: [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:b] [] [] rlm@250: [] [] [] [] [] [] [:b] [:d] [:d] [:d] [:d] [:d] [:d] rlm@250: [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] rlm@250: [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] rlm@250: [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] rlm@250: [:d] [:d] [:d] [:d] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [:a] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:a] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [:a] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [:a] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:a] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [:a] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [:a] [] [] [] [] rlm@250: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [] [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [] [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] [] rlm@250: [:b]])))