rlm@170: (ns com.aurellem.run.save-corruption rlm@170: (:use (com.aurellem.gb gb-driver vbm)) rlm@170: (:use (com.aurellem.run title))) rlm@90: rlm@90: (use 'clojure.repl) rlm@90: rlm@250: (defn-memo start-walking rlm@250: ([script] rlm@250: (->> script rlm@250: (advance [:b] [:b :r]))) rlm@250: ([] (start-walking (finish-title)))) rlm@91: rlm@91: (def walk (partial advance [])) rlm@91: rlm@250: (defn-memo walk-to-stairs rlm@250: ([] (walk-to-stairs (start-walking))) rlm@250: ([script] rlm@250: (->> script rlm@250: (walk [:u]) rlm@250: (walk [:u]) rlm@250: (walk [:u]) rlm@250: (walk [:u]) rlm@250: (walk [:u]) rlm@250: (walk [:r]) rlm@250: (walk [:r]) rlm@250: (walk [:r])))) rlm@91: rlm@250: (defn-memo walk-to-door rlm@250: ([] (walk-to-door (walk-to-stairs))) rlm@250: ([script] rlm@250: (->> script rlm@250: (walk [:d]) rlm@250: (walk [:d]) rlm@250: (walk [:d]) rlm@250: (walk [:d]) rlm@250: (walk [:d]) rlm@250: (walk [:d]) rlm@250: (walk [:l]) rlm@250: (walk [:l]) rlm@250: (walk [:l]) rlm@250: (walk [:l])))) rlm@91: rlm@250: (defn-memo activate-menu rlm@250: ([] (activate-menu (walk-to-door))) rlm@250: ([script] rlm@250: (->> script rlm@250: (advance [:b] [:a :b :start])))) rlm@90: rlm@250: (defn-memo save-game rlm@250: ([] (save-game (activate-menu))) rlm@250: ([script] rlm@250: (->> script rlm@250: (advance [] [:d]) rlm@250: (play-moves [[] [] [] [:d] [] [] [] [:d] [] [] [:a]]) rlm@250: scroll-text))) 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@250: (advance [] [:start]) rlm@250: (advance [] [:a]) rlm@250: (advance [:a] [:a :start])))) 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]])))