view clojure/com/aurellem/run/save_corruption.clj @ 397:9b0d79cad624

use E as scratch instead of C
author Robert McIntyre <rlm@mit.edu>
date Fri, 13 Apr 2012 04:56:01 -0500
parents 9a4d3f801c89
children
line wrap: on
line source
1 (ns com.aurellem.run.save-corruption
2 (:use (com.aurellem.gb gb-driver vbm))
3 (:use (com.aurellem.run util title)))
5 (defn-memo walk-to-stairs
6 ([] (walk-to-stairs (finish-title)))
7 ([script]
8 (->> script
9 (walk [→ ↑ ↑ ↑ ↑ ↑ → → →]))))
11 (defn-memo walk-to-door
12 ([] (walk-to-door (walk-to-stairs)))
13 ([script]
14 (->> script
15 (walk [↓ ↓ ↓ ↓ ↓ ← ← ← ←]))))
17 (defn-memo activate-menu
18 ([] (activate-menu (walk-to-door)))
19 ([script]
20 (->> script
21 (first-difference [:b] [:a :b :start] AF))))
23 (defn-memo save-game
24 ([] (save-game (activate-menu)))
25 ([script]
26 (->> script
27 (first-difference [] [:d] AF)
28 (play-moves [[] [] [] [:d] [] [] [] [:d] [] [] [:a]])
29 (do-nothing 200)
30 (play-moves [[:a]]))))
32 (defn-memo corrupt-save
33 ([] (corrupt-save (save-game)))
34 ([script]
35 (->>
36 script
37 (play-moves
38 ;; this section is copied from speedrun-2942 and corrupts
39 ;; the save so that the end-of-list marker for the pokemon
40 ;; roster is destroyed, but the save is still playable.
41 [[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
42 [] [] [] [] [] [] [] [] [] [] [] [:select] [:restart]]))))
44 (defn-memo start-game
45 ([] (start-game (corrupt-save)))
46 ([script]
47 (->> script
48 (title)
49 (first-difference [] [:start] AF)
50 (first-difference [] [:a] AF)
51 (first-difference [:a] [:a :start] AF))))
53 (defn-memo destroy-item-end-of-list-marker
54 ([] (destroy-item-end-of-list-marker (start-game)))
55 ([script]
56 (->>
57 script
58 (play-moves
59 [[:start] [] [] [] [] [] [] [] [] [] [] [] [] [] []
60 [] [] [] [] [] [] [] [] [:a] [] [] [] [] [] [] [] []
61 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
62 [] [] [:d] [] [] [] [:a] [] [] [:d] [] [] [:a] [] []
63 [] [] [] [] [] [] [] [] [] [] [] [:d] [] [] [] []
64 [:d] [] [] [] [] [:d] [] [] [] [] [:d] [] [] [] []
65 [:d] [] [] [] [] [:d] [] [] [] [] [:d] [] [] [] []
66 [:d] [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] []
67 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
68 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:d]
69 [] [] [] [:a] [] [] [:d] [] [] [:a] [] [] [] [] []
70 [] [] [] [] [] [] [] [] [:u] [] [] [] [] [:u] [] []
71 [] [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
72 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
73 [] [] [] [] [] [] [] [] [] [] [] []]))))
75 (defn warp-to-elite-four
76 "This is copied from speedrun-2942 to ensure that
77 everything is good up to this point."
78 []
79 (->> (corrupt-save)
80 (play-moves
81 [ [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
82 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
83 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
84 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
85 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
86 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
87 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
88 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
89 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
90 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
91 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
92 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
93 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
94 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
95 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
96 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
97 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
98 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
99 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:a] []
100 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
101 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
102 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
103 [] [] [] [] [] [] [] [] [:start] [] [] [] [] [] []
104 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
105 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
106 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
107 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
108 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
109 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
110 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
111 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
112 [] [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] [] []
113 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
114 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
115 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
116 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
117 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
118 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
119 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
120 [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
121 [:start] [] [] [] [] [] [] [] [] [] [] [] [] [] []
122 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
123 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
124 [] [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
125 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
126 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
127 [:start] [] [] [] [] [] [] [] [] [] [] [] [] [] []
128 [] [] [] [] [] [] [] [] [:a] [] [] [] [] [] [] [] []
129 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
130 [] [] [:d] [] [] [] [:a] [] [] [:d] [] [] [:a] [] []
131 [] [] [] [] [] [] [] [] [] [] [] [:d] [] [] [] []
132 [:d] [] [] [] [] [:d] [] [] [] [] [:d] [] [] [] []
133 [:d] [] [] [] [] [:d] [] [] [] [] [:d] [] [] [] []
134 [:d] [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] []
135 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
136 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:d]
137 [] [] [] [:a] [] [] [:d] [] [] [:a] [] [] [] [] []
138 [] [] [] [] [] [] [] [] [:u] [] [] [] [] [:u] [] []
139 [] [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
140 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
141 [] [] [] [] [] [] [] [] [] [] [] [] [:b] [] [] [] []
142 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
143 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
144 [] [] [] [] [:d] [] [] [:a] [] [] [] [] [] [] [] []
145 [] [] [] [] [] [] [] [:d] [] [] [] [:d] [] [] []
146 [:d] [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d]
147 [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] []
148 [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] [] [] []
149 [] [] [:d] [] [] [] [] [] [] [:d] [] [] [] [] [] []
150 [:d] [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d]
151 [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] []
152 [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] [] [] []
153 [] [] [:d] [] [] [] [] [] [] [:d] [] [] [] [] [] []
154 [:d] [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d]
155 [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] []
156 [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] [] [] []
157 [] [] [] [] [] [] [] [] [] [:b] [] [] [] [] [] [] []
158 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:select]
159 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
160 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:b]
161 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
162 [] [] [] [] [:d] [] [] [] [] [] [] [] [] [:b] [] []
163 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
164 [] [] [:select] [] [] [] [] [] [] [] [] [] [] [] []
165 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
166 [] [] [] [] [] [:b] [] [] [] [] [] [] [] [] [] [] []
167 [] [] [] [] [:d] [] [] [] [] [] [] [] [] [] [] []
168 [:b] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
169 [:d] [] [] [] [] [:b] [] [] [] [] [] [] [] [] [] []
170 [] [] [] [] [] [] [:select] [] [] [] [] [] [] [] []
171 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:b]
172 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:d]
173 [] [] [] [] [] [] [] [:d] [] [] [] [] [] [] [] [:d]
174 [] [] [] [] [] [] [:d] [] [] [] [] [] [] [:d] [] []
175 [] [] [] [] [] [] [] [] [] [:select] [] [] [] [] []
176 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
177 [] [] [] [] [] [] [] [] [] [] [:a] [] [] [:d] [] []
178 [:a] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] []
179 [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u]
180 [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] []
181 [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u]
182 [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] []
183 [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u]
184 [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] []
185 [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u]
186 [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] []
187 [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u] [] [:u]
188 [] [:u] [] [:u] [:a] [] [] [] [] [] [:a] [] [] []
189 [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
190 [] [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] [] []
191 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:b] [] []
192 [] [] [] [] [] [] [:b] [:d] [:d] [:d] [:d] [:d] [:d]
193 [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d]
194 [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d]
195 [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d] [:d]
196 [:d] [:d] [:d] [:d] [] [] [] [] [] [] [] [] [] [] []
197 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
198 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
199 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
200 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
201 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
202 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
203 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
204 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
205 [] [] [] [] [] [] [] [] [:a] [] [] [] [] [] [] [] []
206 [] [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] [] []
207 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:a] [] []
208 [] [] [] [] [] [] [] [] [] [] [:a] [] [] [] [] [] []
209 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
210 [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] [] []
211 [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
212 [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
213 [] [] [] [] [] [] [] [] [] [] [:a] [] [] [] [] [] []
214 [] [] [] [] [] [] [:a] [] [] [] [] [] [] [] [] [] []
215 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [:a]
216 [] [] [] [] [] [] [] [] [] [] [] [] [:a] [] [] [] []
217 [] [] [] [] [] [] [] [] [] [] [] [] [:a] [] [] [] []
218 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
219 [] [] [] [] [] [:a] [] [] [] [] [] [] [] [] [] [] []
220 [] [:a] [] [] [] [] [] [] [] [] [] [] [] [] [] []
221 [:b]])))