annotate clojure/com/aurellem/exp/rival_name.clj @ 510:b9814e3114e4

efficient data writing assembly complete.
author Robert McIntyre <rlm@mit.edu>
date Wed, 20 Jun 2012 22:49:31 -0500
parents 412ca096a9ba
children
rev   line source
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