rlm@145
|
1 (ns com.aurellem.exp.rival-name
|
rlm@145
|
2 (:use (com.aurellem.gb gb-driver))
|
rlm@145
|
3 (:import [com.aurellem.gb.gb_driver SaveState]))
|
rlm@145
|
4
|
rlm@145
|
5 (defn talk-to-rival []
|
rlm@145
|
6 (read-state "talk-to-rival"))
|
rlm@145
|
7
|
rlm@145
|
8
|
rlm@145
|
9 ;; determined by naming rival "ZZZZZZZ" and noticing the
|
rlm@145
|
10 ;; pattern in the memory past the item list.
|
rlm@145
|
11
|
rlm@145
|
12 (def rival-name-start 0xD349)
|
rlm@145
|
13
|
rlm@145
|
14 (defn set-rival-name [^SaveState state codes]
|
rlm@145
|
15 (set-state! state)
|
rlm@145
|
16 (let [mem (memory state)]
|
rlm@145
|
17 (dorun (map (fn [index val]
|
rlm@145
|
18 (aset mem index val))
|
rlm@145
|
19 (range rival-name-start
|
rlm@145
|
20 (+ rival-name-start
|
rlm@145
|
21 (count codes))) codes))
|
rlm@145
|
22 (write-memory! mem)
|
rlm@145
|
23 (update-state)))
|
rlm@145
|
24
|
rlm@145
|
25 (defn view-rival-name [name-codes]
|
rlm@145
|
26 (->
|
rlm@145
|
27 (set-rival-name (talk-to-rival) name-codes)
|
rlm@145
|
28 (step [:a])
|
rlm@145
|
29 (play 50)))
|
rlm@145
|
30
|
rlm@145
|
31 (defn rival-name-sequence []
|
rlm@145
|
32 (let [i (atom 1)]
|
rlm@145
|
33 (fn []
|
rlm@145
|
34 (let [codes (range @i (+ 5 @i))]
|
rlm@145
|
35 (println codes)
|
rlm@145
|
36 (view-rival-name codes)
|
rlm@145
|
37 (reset! i (+ 5 @i))))))
|
rlm@145
|
38
|
rlm@145
|
39
|
rlm@145
|
40 ;; results:
|
rlm@145
|
41
|
rlm@145
|
42 ;; 0x00 : end-of-name-sentinel
|
rlm@145
|
43 ;; 0x01 :
|
rlm@145
|
44 ;; 0x02 :
|
rlm@145
|
45 ;; 0x03 :
|
rlm@145
|
46 ;; 0x04 :
|
rlm@145
|
47 ;; 0x05 :
|
rlm@145
|
48 ;; 0x06 :
|
rlm@145
|
49 ;; 0x07 :
|
rlm@145
|
50 ;; 0x08 :
|
rlm@145
|
51 ;; 0x09 :
|
rlm@145
|
52 ;; 0x0A :
|
rlm@145
|
53 ;; 0x0B :
|
rlm@145
|
54 ;; 0x0C :
|
rlm@145
|
55 ;; 0x0D :
|
rlm@145
|
56 ;; 0x0E :
|
rlm@145
|
57 ;; 0x0F :
|
rlm@145
|
58 ;; 0x10 :
|
rlm@145
|
59 ;; 0x11 :
|
rlm@145
|
60 ;; 0x12 :
|
rlm@145
|
61 ;; 0x13 :
|
rlm@145
|
62 ;; 0x14 :
|
rlm@145
|
63 ;; 0x15 :
|
rlm@145
|
64 ;; 0x16 :
|
rlm@145
|
65 ;; 0x17 :
|
rlm@145
|
66 ;; 0x18 :
|
rlm@145
|
67 ;; 0x19 :
|
rlm@145
|
68 ;; 0x1A :
|
rlm@145
|
69 ;; 0x1B :
|
rlm@145
|
70 ;; 0x1C :
|
rlm@145
|
71 ;; 0x1D :
|
rlm@145
|
72 ;; 0x1E :
|
rlm@145
|
73 ;; 0x1F :
|
rlm@145
|
74 ;; 0x20 :
|
rlm@145
|
75 ;; 0x21 :
|
rlm@145
|
76 ;; 0x22 :
|
rlm@145
|
77 ;; 0x23 :
|
rlm@145
|
78 ;; 0x24 :
|
rlm@145
|
79 ;; 0x25 :
|
rlm@145
|
80 ;; 0x26 :
|
rlm@145
|
81 ;; 0x27 :
|
rlm@145
|
82 ;; 0x28 :
|
rlm@145
|
83 ;; 0x29 :
|
rlm@145
|
84 ;; 0x2A :
|
rlm@145
|
85 ;; 0x2B :
|
rlm@145
|
86 ;; 0x2C :
|
rlm@145
|
87 ;; 0x2D :
|
rlm@145
|
88 ;; 0x2E :
|
rlm@145
|
89 ;; 0x2F :
|
rlm@145
|
90 ;; 0x30 :
|
rlm@145
|
91 ;; 0x31 :
|
rlm@145
|
92 ;; 0x32 :
|
rlm@145
|
93 ;; 0x33 :
|
rlm@145
|
94 ;; 0x34 :
|
rlm@145
|
95 ;; 0x35 :
|
rlm@145
|
96 ;; 0x36 :
|
rlm@145
|
97 ;; 0x37 :
|
rlm@145
|
98 ;; 0x38 :
|
rlm@145
|
99 ;; 0x39 :
|
rlm@145
|
100 ;; 0x3A :
|
rlm@145
|
101 ;; 0x3B :
|
rlm@145
|
102 ;; 0x3C :
|
rlm@145
|
103 ;; 0x3D :
|
rlm@145
|
104 ;; 0x3E :
|
rlm@145
|
105 ;; 0x3F :
|
rlm@145
|
106 ;; 0x40 :
|
rlm@145
|
107 ;; 0x41 :
|
rlm@145
|
108 ;; 0x42 :
|
rlm@145
|
109 ;; 0x43 :
|
rlm@145
|
110 ;; 0x44 :
|
rlm@145
|
111 ;; 0x45 :
|
rlm@145
|
112 ;; 0x46 :
|
rlm@145
|
113 ;; 0x47 :
|
rlm@145
|
114 ;; 0x48 :
|
rlm@145
|
115 ;; 0x49 :
|
rlm@145
|
116 ;; 0x4A :
|
rlm@145
|
117 ;; 0x4B :
|
rlm@145
|
118 ;; 0x4C :
|
rlm@145
|
119 ;; 0x4D :
|
rlm@145
|
120 ;; 0x4E :
|
rlm@145
|
121 ;; 0x4F :
|
rlm@145
|
122 ;; 0x50 :
|
rlm@145
|
123 ;; 0x51 :
|
rlm@145
|
124 ;; 0x52 :
|
rlm@145
|
125 ;; 0x53 :
|
rlm@145
|
126 ;; 0x54 :
|
rlm@145
|
127 ;; 0x55 :
|
rlm@145
|
128 ;; 0x56 :
|
rlm@145
|
129 ;; 0x57 :
|
rlm@145
|
130 ;; 0x58 :
|
rlm@145
|
131 ;; 0x59 :
|
rlm@145
|
132 ;; 0x5A :
|
rlm@145
|
133 ;; 0x5B :
|
rlm@145
|
134 ;; 0x5C :
|
rlm@145
|
135 ;; 0x5D :
|
rlm@145
|
136 ;; 0x5E :
|
rlm@145
|
137 ;; 0x5F :
|
rlm@145
|
138 ;; 0x60 : A (small-bold)
|
rlm@145
|
139 ;; 0x61 : B (small-bold)
|
rlm@145
|
140 ;; 0x62 : C (small-bold)
|
rlm@145
|
141 ;; 0x63 : D (small-bold)
|
rlm@145
|
142 ;; 0x64 : E (small-bold)
|
rlm@145
|
143 ;; 0x65 : F (small-bold)
|
rlm@145
|
144 ;; 0x66 : G (small-bold)
|
rlm@145
|
145 ;; 0x67 : H (small-bold)
|
rlm@145
|
146 ;; 0x68 : I (small-bold)
|
rlm@145
|
147 ;; 0x69 : V (small-bold)
|
rlm@145
|
148 ;; 0x6A : S (small-bold)
|
rlm@145
|
149 ;; 0x6B : L (small-bold)
|
rlm@145
|
150 ;; 0x6C : M (small-bold)
|
rlm@145
|
151 ;; 0x6D :
|
rlm@145
|
152 ;; 0x6E :
|
rlm@145
|
153 ;; 0x6F :
|
rlm@145
|
154 ;; 0x70 :
|
rlm@145
|
155 ;; 0x71 :
|
rlm@145
|
156 ;; 0x72 :
|
rlm@145
|
157 ;; 0x73 :
|
rlm@145
|
158 ;; 0x74 :
|
rlm@145
|
159 ;; 0x75 :
|
rlm@145
|
160 ;; 0x76 :
|
rlm@145
|
161 ;; 0x77 :
|
rlm@145
|
162 ;; 0x78 :
|
rlm@145
|
163 ;; 0x79 :
|
rlm@145
|
164 ;; 0x7A :
|
rlm@145
|
165 ;; 0x7B :
|
rlm@145
|
166 ;; 0x7C :
|
rlm@145
|
167 ;; 0x7D :
|
rlm@145
|
168 ;; 0x7E :
|
rlm@145
|
169 ;; 0x7F :
|
rlm@145
|
170 ;; 0x80 : A
|
rlm@145
|
171 ;; 0x81 : B
|
rlm@145
|
172 ;; 0x82 : C
|
rlm@145
|
173 ;; 0x83 : D
|
rlm@145
|
174 ;; 0x84 : E
|
rlm@145
|
175 ;; 0x85 : F
|
rlm@145
|
176 ;; 0x86 : G
|
rlm@145
|
177 ;; 0x87 : H
|
rlm@145
|
178 ;; 0x88 : I
|
rlm@145
|
179 ;; 0x89 : J
|
rlm@145
|
180 ;; 0x8A : K
|
rlm@145
|
181 ;; 0x8B : L
|
rlm@145
|
182 ;; 0x8C : M
|
rlm@145
|
183 ;; 0x8D : N
|
rlm@145
|
184 ;; 0x8E : O
|
rlm@145
|
185 ;; 0x8F : P
|
rlm@145
|
186 ;; 0x90 : Q
|
rlm@145
|
187 ;; 0x91 : R
|
rlm@145
|
188 ;; 0x92 : S
|
rlm@145
|
189 ;; 0x93 : T
|
rlm@145
|
190 ;; 0x94 : U
|
rlm@145
|
191 ;; 0x95 : V
|
rlm@145
|
192 ;; 0x96 : W
|
rlm@145
|
193 ;; 0x97 : X
|
rlm@145
|
194 ;; 0x98 : Y
|
rlm@145
|
195 ;; 0x99 : Z
|
rlm@145
|
196 ;; 0x9A : (
|
rlm@145
|
197 ;; 0x9B : )
|
rlm@145
|
198 ;; 0x9C : :
|
rlm@145
|
199 ;; 0x9D : ;
|
rlm@145
|
200 ;; 0x9E :
|
rlm@145
|
201 ;; 0x9F :
|
rlm@145
|
202 ;; 0xA0 : a
|
rlm@145
|
203 ;; 0xA1 : b
|
rlm@145
|
204 ;; 0xA2 : c
|
rlm@145
|
205 ;; 0xA3 : d
|
rlm@145
|
206 ;; 0xA4 : e
|
rlm@145
|
207 ;; 0xA5 : f
|
rlm@145
|
208 ;; 0xA6 : g
|
rlm@145
|
209 ;; 0xA7 : h
|
rlm@145
|
210 ;; 0xA8 : i
|
rlm@145
|
211 ;; 0xA9 : j
|
rlm@145
|
212 ;; 0xAA : k
|
rlm@145
|
213 ;; 0xAB : l
|
rlm@145
|
214 ;; 0xAC : m
|
rlm@145
|
215 ;; 0xAD : n
|
rlm@145
|
216 ;; 0xAE : o
|
rlm@145
|
217 ;; 0xAF : p
|
rlm@145
|
218 ;; 0xB0 : q
|
rlm@145
|
219 ;; 0xB1 : r
|
rlm@145
|
220 ;; 0xB2 : s
|
rlm@145
|
221 ;; 0xB3 : t
|
rlm@145
|
222 ;; 0xB4 : u
|
rlm@145
|
223 ;; 0xB5 : v
|
rlm@145
|
224 ;; 0xB6 : w
|
rlm@145
|
225 ;; 0xB7 : x
|
rlm@145
|
226 ;; 0xB8 : y
|
rlm@145
|
227 ;; 0xB9 : z
|
rlm@145
|
228 ;; 0xBA : e-with-grave
|
rlm@145
|
229 ;; 0xBB :
|
rlm@145
|
230 ;; 0xBC :
|
rlm@145
|
231 ;; 0xBD :
|
rlm@145
|
232 ;; 0xBE :
|
rlm@145
|
233 ;; 0xBF :
|
rlm@145
|
234 ;; 0xC0 :
|
rlm@145
|
235 ;; 0xC1 :
|
rlm@145
|
236 ;; 0xC2 :
|
rlm@145
|
237 ;; 0xC3 :
|
rlm@145
|
238 ;; 0xC4 :
|
rlm@145
|
239 ;; 0xC5 :
|
rlm@145
|
240 ;; 0xC6 :
|
rlm@145
|
241 ;; 0xC7 :
|
rlm@145
|
242 ;; 0xC8 :
|
rlm@145
|
243 ;; 0xC9 :
|
rlm@145
|
244 ;; 0xCA :
|
rlm@145
|
245 ;; 0xCB :
|
rlm@145
|
246 ;; 0xCC :
|
rlm@145
|
247 ;; 0xCD :
|
rlm@145
|
248 ;; 0xCE :
|
rlm@145
|
249 ;; 0xCF :
|
rlm@145
|
250 ;; 0xD0 :
|
rlm@145
|
251 ;; 0xD1 :
|
rlm@145
|
252 ;; 0xD2 :
|
rlm@145
|
253 ;; 0xD3 :
|
rlm@145
|
254 ;; 0xD4 :
|
rlm@145
|
255 ;; 0xD5 :
|
rlm@145
|
256 ;; 0xD6 :
|
rlm@145
|
257 ;; 0xD7 :
|
rlm@145
|
258 ;; 0xD8 :
|
rlm@145
|
259 ;; 0xD9 :
|
rlm@145
|
260 ;; 0xDA :
|
rlm@145
|
261 ;; 0xDB :
|
rlm@145
|
262 ;; 0xDC :
|
rlm@145
|
263 ;; 0xDD :
|
rlm@145
|
264 ;; 0xDE :
|
rlm@145
|
265 ;; 0xDF :
|
rlm@145
|
266 ;; 0xE0 : '
|
rlm@145
|
267 ;; 0xE1 : PK
|
rlm@145
|
268 ;; 0xE2 : MN
|
rlm@145
|
269 ;; 0xE3 :
|
rlm@145
|
270 ;; 0xE4 :
|
rlm@145
|
271 ;; 0xE5 :
|
rlm@145
|
272 ;; 0xE6 : ?
|
rlm@145
|
273 ;; 0xE7 : !
|
rlm@145
|
274 ;; 0xE8 : .
|
rlm@145
|
275 ;; 0xE9 :
|
rlm@145
|
276 ;; 0xEA :
|
rlm@145
|
277 ;; 0xEB :
|
rlm@145
|
278 ;; 0xEC :
|
rlm@145
|
279 ;; 0xED :
|
rlm@145
|
280 ;; 0xEE :
|
rlm@145
|
281 ;; 0xEF : male-symbol
|
rlm@145
|
282 ;; 0xF0 : pokemon-money-symbol
|
rlm@145
|
283 ;; 0xF1 : .
|
rlm@145
|
284 ;; 0xF2 : /
|
rlm@145
|
285 ;; 0xF3 : ,
|
rlm@145
|
286 ;; 0xF4 : female-symbol
|
rlm@145
|
287 ;; 0xF5 :
|
rlm@145
|
288 ;; 0xF6 : 0
|
rlm@145
|
289 ;; 0xF7 : 1
|
rlm@145
|
290 ;; 0xF8 : 2
|
rlm@145
|
291 ;; 0xF9 : 3
|
rlm@145
|
292 ;; 0xFA : 4
|
rlm@145
|
293 ;; 0xFB : 5
|
rlm@145
|
294 ;; 0xFC : 6
|
rlm@145
|
295 ;; 0xFD : 7
|
rlm@145
|
296 ;; 0xFE : 8
|
rlm@145
|
297 ;; 0xFF : 9
|
rlm@145
|
298
|
rlm@145
|
299
|
rlm@145
|
300
|
rlm@145
|
301
|