annotate clojure/com/aurellem/rival_name.clj @ 143:cd930ed1fd4d

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