rlm@170
|
1 (ns com.aurellem.run.save-corruption
|
rlm@170
|
2 (:use (com.aurellem.gb gb-driver vbm))
|
rlm@170
|
3 (:use (com.aurellem.run title)))
|
rlm@90
|
4
|
rlm@90
|
5 (use 'clojure.repl)
|
rlm@90
|
6
|
rlm@250
|
7 (defn-memo start-walking
|
rlm@250
|
8 ([script]
|
rlm@250
|
9 (->> script
|
rlm@250
|
10 (advance [:b] [:b :r])))
|
rlm@250
|
11 ([] (start-walking (finish-title))))
|
rlm@91
|
12
|
rlm@255
|
13
|
rlm@255
|
14 (def move
|
rlm@255
|
15 (partial advance []))
|
rlm@91
|
16
|
rlm@250
|
17 (defn-memo walk-to-stairs
|
rlm@250
|
18 ([] (walk-to-stairs (start-walking)))
|
rlm@250
|
19 ([script]
|
rlm@250
|
20 (->> script
|
rlm@255
|
21 (move [:u])
|
rlm@255
|
22 (move [:u])
|
rlm@255
|
23 (move [:u])
|
rlm@255
|
24 (move [:u])
|
rlm@255
|
25 (move [:u])
|
rlm@255
|
26 (move [:r])
|
rlm@255
|
27 (move [:r])
|
rlm@255
|
28 (move [:r]))))
|
rlm@91
|
29
|
rlm@250
|
30 (defn-memo walk-to-door
|
rlm@250
|
31 ([] (walk-to-door (walk-to-stairs)))
|
rlm@250
|
32 ([script]
|
rlm@250
|
33 (->> script
|
rlm@255
|
34 (move [:d])
|
rlm@255
|
35 (move [:d])
|
rlm@255
|
36 (move [:d])
|
rlm@255
|
37 (move [:d])
|
rlm@255
|
38 (move [:d])
|
rlm@255
|
39 (move [:d])
|
rlm@255
|
40 (move [:l])
|
rlm@255
|
41 (move [:l])
|
rlm@255
|
42 (move [:l])
|
rlm@255
|
43 (move [:l]))))
|
rlm@91
|
44
|
rlm@250
|
45 (defn-memo activate-menu
|
rlm@250
|
46 ([] (activate-menu (walk-to-door)))
|
rlm@250
|
47 ([script]
|
rlm@250
|
48 (->> script
|
rlm@250
|
49 (advance [:b] [:a :b :start]))))
|
rlm@90
|
50
|
rlm@250
|
51 (defn-memo save-game
|
rlm@250
|
52 ([] (save-game (activate-menu)))
|
rlm@250
|
53 ([script]
|
rlm@250
|
54 (->> script
|
rlm@250
|
55 (advance [] [:d])
|
rlm@250
|
56 (play-moves [[] [] [] [:d] [] [] [] [:d] [] [] [:a]])
|
rlm@250
|
57 scroll-text)))
|
rlm@90
|
58
|
rlm@250
|
59 (defn-memo corrupt-save
|
rlm@250
|
60 ([] (corrupt-save (save-game)))
|
rlm@250
|
61 ([script]
|
rlm@250
|
62 (->>
|
rlm@250
|
63 script
|
rlm@250
|
64 (play-moves
|
rlm@250
|
65 ;; this section is copied from speedrun-2942 and corrupts
|
rlm@250
|
66 ;; the save so that the end-of-list marker for the pokemon
|
rlm@250
|
67 ;; roster is destroyed, but the save is still playable.
|
rlm@250
|
68 [[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
69 [] [] [] [] [] [] [] [] [] [] [] [:select] [:restart]]))))
|
rlm@90
|
70
|
rlm@250
|
71 (defn-memo start-game
|
rlm@250
|
72 ([] (start-game (corrupt-save)))
|
rlm@250
|
73 ([script]
|
rlm@250
|
74 (->> script
|
rlm@250
|
75 (title)
|
rlm@250
|
76 (advance [] [:start])
|
rlm@250
|
77 (advance [] [:a])
|
rlm@250
|
78 (advance [:a] [:a :start]))))
|
rlm@90
|
79
|
rlm@250
|
80 (defn-memo destroy-item-end-of-list-marker
|
rlm@250
|
81 ([] (destroy-item-end-of-list-marker (start-game)))
|
rlm@250
|
82 ([script]
|
rlm@250
|
83 (->>
|
rlm@250
|
84 script
|
rlm@250
|
85 (play-moves
|
rlm@250
|
86 [[:start] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
87 [] [] [] [] [] [] [] [] [:a] [] [] [] [] [] [] [] []
|
rlm@250
|
88 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
89 [] [] [:d] [] [] [] [:a] [] [] [:d] [] [] [:a] [] []
|
rlm@250
|
90 [] [] [] [] [] [] [] [] [] [] [] [:d] [] [] [] []
|
rlm@250
|
91 [:d] [] [] [] [] [:d] [] [] [] [] [:d] [] [] [] []
|
rlm@250
|
92 [:d] [] [] [] [] [:d] [] [] [] [] [:d] [] [] [] []
|
rlm@250
|
93 [:d] [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
94 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
95 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:d]
|
rlm@250
|
96 [] [] [] [:a] [] [] [:d] [] [] [:a] [] [] [] [] []
|
rlm@250
|
97 [] [] [] [] [] [] [] [] [:u] [] [] [] [] [:u] [] []
|
rlm@250
|
98 [] [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
99 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
100 [] [] [] [] [] [] [] [] [] [] [] []]))))
|
rlm@91
|
101
|
rlm@91
|
102 (defn warp-to-elite-four
|
rlm@250
|
103 "This is copied from speedrun-2942 to ensure that
|
rlm@250
|
104 everything is good up to this point."
|
rlm@91
|
105 []
|
rlm@91
|
106 (->> (corrupt-save)
|
rlm@91
|
107 (play-moves
|
rlm@250
|
108 [ [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
109 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
110 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
111 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
112 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
113 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
114 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
115 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
116 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
117 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
118 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
119 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
120 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
121 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
122 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
123 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
124 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
125 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
126 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:a] []
|
rlm@250
|
127 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
128 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
129 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
130 [] [] [] [] [] [] [] [] [:start] [] [] [] [] [] []
|
rlm@250
|
131 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
132 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
133 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
134 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
135 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
136 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
137 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
138 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
139 [] [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
140 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
141 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
142 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
143 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
144 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
145 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
146 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
147 [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
148 [:start] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
149 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
150 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
151 [] [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
152 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
153 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
154 [:start] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
155 [] [] [] [] [] [] [] [] [:a] [] [] [] [] [] [] [] []
|
rlm@250
|
156 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
157 [] [] [:d] [] [] [] [:a] [] [] [:d] [] [] [:a] [] []
|
rlm@250
|
158 [] [] [] [] [] [] [] [] [] [] [] [:d] [] [] [] []
|
rlm@250
|
159 [:d] [] [] [] [] [:d] [] [] [] [] [:d] [] [] [] []
|
rlm@250
|
160 [:d] [] [] [] [] [:d] [] [] [] [] [:d] [] [] [] []
|
rlm@250
|
161 [:d] [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
162 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
163 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:d]
|
rlm@250
|
164 [] [] [] [:a] [] [] [:d] [] [] [:a] [] [] [] [] []
|
rlm@250
|
165 [] [] [] [] [] [] [] [] [:u] [] [] [] [] [:u] [] []
|
rlm@250
|
166 [] [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
167 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
168 [] [] [] [] [] [] [] [] [] [] [] [] [:b] [] [] [] []
|
rlm@250
|
169 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
170 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
171 [] [] [] [] [:d] [] [] [:a] [] [] [] [] [] [] [] []
|
rlm@250
|
172 [] [] [] [] [] [] [] [:d] [] [] [] [:d] [] [] []
|
rlm@250
|
173 [:d] [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d]
|
rlm@250
|
174 [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] []
|
rlm@250
|
175 [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] [] [] []
|
rlm@250
|
176 [] [] [:d] [] [] [] [] [] [] [:d] [] [] [] [] [] []
|
rlm@250
|
177 [:d] [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d]
|
rlm@250
|
178 [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] []
|
rlm@250
|
179 [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] [] [] []
|
rlm@250
|
180 [] [] [:d] [] [] [] [] [] [] [:d] [] [] [] [] [] []
|
rlm@250
|
181 [:d] [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d]
|
rlm@250
|
182 [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] []
|
rlm@250
|
183 [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] [] [] []
|
rlm@250
|
184 [] [] [] [] [] [] [] [] [] [:b] [] [] [] [] [] [] []
|
rlm@250
|
185 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:select]
|
rlm@250
|
186 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
187 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:b]
|
rlm@250
|
188 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
189 [] [] [] [] [:d] [] [] [] [] [] [] [] [] [:b] [] []
|
rlm@250
|
190 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
191 [] [] [:select] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
192 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
193 [] [] [] [] [] [:b] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
194 [] [] [] [] [:d] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
195 [:b] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
196 [:d] [] [] [] [] [:b] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
197 [] [] [] [] [] [] [:select] [] [] [] [] [] [] [] []
|
rlm@250
|
198 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:b]
|
rlm@250
|
199 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:d]
|
rlm@250
|
200 [] [] [] [] [] [] [] [:d] [] [] [] [] [] [] [] [:d]
|
rlm@250
|
201 [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] []
|
rlm@250
|
202 [] [] [] [] [] [] [] [] [] [:select] [] [] [] [] []
|
rlm@250
|
203 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
204 [] [] [] [] [] [] [] [] [] [] [:a] [] [] [:d] [] []
|
rlm@250
|
205 [:a] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] []
|
rlm@250
|
206 [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u]
|
rlm@250
|
207 [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] []
|
rlm@250
|
208 [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u]
|
rlm@250
|
209 [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] []
|
rlm@250
|
210 [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u]
|
rlm@250
|
211 [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] []
|
rlm@250
|
212 [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u]
|
rlm@250
|
213 [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] []
|
rlm@250
|
214 [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u]
|
rlm@250
|
215 [] [:u] [] [:u] [:a] [] [] [] [] [] [:a] [] [] []
|
rlm@250
|
216 [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
217 [] [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
218 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:b] [] []
|
rlm@250
|
219 [] [] [] [] [] [] [:b] [:d] [:d] [:d] [:d] [:d] [:d]
|
rlm@250
|
220 [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d]
|
rlm@250
|
221 [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d]
|
rlm@250
|
222 [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d]
|
rlm@250
|
223 [:d] [:d] [:d] [:d] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
224 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
225 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
226 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
227 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
228 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
229 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
230 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
231 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
232 [] [] [] [] [] [] [] [] [:a] [] [] [] [] [] [] [] []
|
rlm@250
|
233 [] [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
234 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:a] [] []
|
rlm@250
|
235 [] [] [] [] [] [] [] [] [] [] [:a] [] [] [] [] [] []
|
rlm@250
|
236 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
237 [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
238 [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
239 [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
240 [] [] [] [] [] [] [] [] [] [] [:a] [] [] [] [] [] []
|
rlm@250
|
241 [] [] [] [] [] [] [:a] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
242 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:a]
|
rlm@250
|
243 [] [] [] [] [] [] [] [] [] [] [] [] [:a] [] [] [] []
|
rlm@250
|
244 [] [] [] [] [] [] [] [] [] [] [] [] [:a] [] [] [] []
|
rlm@250
|
245 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
246 [] [] [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
247 [] [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] []
|
rlm@250
|
248 [:b]])))
|