# HG changeset patch # User Robert McIntyre # Date 1332229259 18000 # Node ID 3a3bb2197b7fb6fa529bb8736d58c8334e6af9aa # Parent 6135504976e6c843e0204da4dd6e80e15e698825 discovered hex-values for every move. diff -r 6135504976e6 -r 3a3bb2197b7f clojure/com/aurellem/exp/item_bridge.clj --- a/clojure/com/aurellem/exp/item_bridge.clj Tue Mar 20 01:32:48 2012 -0500 +++ b/clojure/com/aurellem/exp/item_bridge.clj Tue Mar 20 02:40:59 2012 -0500 @@ -1,6 +1,6 @@ (ns com.aurellem.item-bridge - (:use (com.aurellem gb-driver vbm title save-corruption items assembly)) - (:import [com.aurellem.gb_driver SaveState])) + (:use (com.aurellem.gb gb-driver vbm title save-corruption items assembly)) + (:import [com.aurellem.gb.gb_driver SaveState])) (defn corrupt-item-state [] diff -r 6135504976e6 -r 3a3bb2197b7f clojure/com/aurellem/exp/moves.clj --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/clojure/com/aurellem/exp/moves.clj Tue Mar 20 02:40:59 2012 -0500 @@ -0,0 +1,284 @@ +(ns com.aurellem.exp.moves + (:use (com.aurellem.gb gb-driver items util )) + (:import [com.aurellem.gb.gb_driver SaveState])) + +(defn move-state [] + (read-state "view-pika-attacks")) + +(defn view-move [n] + (run-moves + (set-memory (move-state) 0xD19E n) + (concat [[:a]] + (repeat 200 []) + [[:a]] + (repeat 200 [])))) + +(defn give-move [pos n] + (continue! + (set-memory @current-state + (+ pos (- 0xD19E 44)) n))) + +(defn iterate-moves [] + (dorun + (map (fn [n] (println n) + (view-move n) + (Thread/sleep 5000)) + (range (inc 0xFF))))) + + +;; 000 00 : null +;; 001 01 : pound +;; 002 02 : karate-chop +;; 003 03 : doubleslap +;; 004 04 : comet-punch +;; 005 05 : mega-punch +;; 006 06 : pay-day +;; 007 07 : fire-punch +;; 008 08 : ice-punch +;; 009 09 : thunderpunch +;; 010 0A : scratch +;; 011 0B : vicegrip +;; 012 0C : guillotine +;; 013 0D : razor-wind +;; 014 0E : swords-dance +;; 015 0F : cut +;; 016 10 : gust +;; 017 11 : wing-attack +;; 018 12 : whirlwind +;; 019 13 : fly +;; 020 14 : bind +;; 021 15 : slam +;; 022 16 : vine-whip +;; 023 17 : stomp +;; 024 18 : double-kick +;; 025 19 : mega-kick +;; 026 1A : jump-kick +;; 027 1B : rolling-kick +;; 028 1C : sand-attack +;; 029 1D : headbutt +;; 030 1E : horn-attack +;; 031 1F : fury-attack +;; 032 20 : horn-drill +;; 033 21 : tackle +;; 034 22 : body-slam +;; 035 23 : wrap +;; 036 24 : take-down +;; 037 25 : thrash +;; 038 26 : double-edge +;; 039 27 : tail-whip +;; 040 28 : poison-sting +;; 041 29 : twinneedle +;; 042 2A : pin-missle +;; 043 2B : leer +;; 044 2C : bite +;; 045 2D : growl +;; 046 2E : roar +;; 047 2F : sing +;; 048 30 : supersonic +;; 049 31 : sonicboom +;; 050 32 : disable +;; 051 33 : acid +;; 052 34 : ember +;; 053 35 : flamethrower +;; 054 36 : mist +;; 055 37 : water-gun +;; 056 38 : hydro-pump +;; 057 39 : surf +;; 058 3A : ice-beam +;; 059 3B : blizzard +;; 060 3C : psybeam +;; 061 3D : bubblebeam +;; 062 3E : aurora-beam +;; 063 3F : hyper-beam +;; 064 40 : peck +;; 065 41 : drill-peck +;; 066 42 : submission +;; 067 43 : low-kick +;; 068 44 : counter +;; 069 45 : seismic-toss +;; 070 46 : strength +;; 071 47 : absorb +;; 072 48 : mega-drain +;; 073 49 : leech-seed +;; 074 4A : growth +;; 075 4B : razor-leaf +;; 076 4C : solarbeam +;; 077 4D : poisonpowder +;; 078 4E : stun-spore +;; 079 4F : sleep-powder +;; 080 50 : petal-dance +;; 081 51 : string-shot +;; 082 52 : dragon-rage +;; 083 53 : fire-spin +;; 084 54 : thundershock +;; 085 55 : thunderbolt +;; 086 56 : thunder-wave +;; 087 57 : thunder +;; 088 58 : rock-throw +;; 089 59 : earthquake +;; 090 5A : fissure +;; 091 5B : dig +;; 092 5C : toxic +;; 093 5D : confusion +;; 094 5E : psychic +;; 095 5F : hypnosis +;; 096 60 : meditate +;; 097 61 : agility +;; 098 62 : quick-attack +;; 099 63 : rage +;; 100 64 : teleport +;; 101 65 : night-shade +;; 102 66 : mimic +;; 103 67 : screech +;; 104 68 : double-team +;; 105 69 : recover +;; 106 6A : harden +;; 107 6B : minimize +;; 108 6C : smokescreen +;; 109 6D : confuse-ray +;; 110 6E : withdraw +;; 111 6F : defense-curl +;; 112 70 : barrier +;; 113 71 : light-screen +;; 114 72 : haze +;; 115 73 : reflect +;; 116 74 : focus-energy +;; 117 75 : bide +;; 118 76 : metronome +;; 119 77 : mirror-move +;; 120 78 : selfdestruct +;; 121 79 : egg-bomb +;; 122 7A : lick +;; 123 7B : smog +;; 124 7C : sludge +;; 125 7D : bone-club +;; 126 7E : fire-blast +;; 127 7F : waterfall +;; 128 80 : clamp +;; 129 81 : swift +;; 130 82 : skull-bash +;; 131 83 : spike-cannon +;; 132 84 : constrict +;; 133 85 : amnesia +;; 134 86 : kinesis +;; 135 87 : softboiled +;; 136 88 : hi-jump-kick +;; 137 89 : glare +;; 138 8A : dream-eater +;; 139 8B : poison-gas +;; 140 8C : barrage +;; 141 8D : leech-life +;; 142 8E : lovely-kiss +;; 143 8F : sky-attack +;; 144 90 : transform +;; 145 91 : bubble +;; 146 92 : dizzy-punch +;; 147 93 : spore +;; 148 94 : flash +;; 149 95 : psywave +;; 150 96 : splash +;; 151 97 : acid-armor +;; 152 98 : crabhammer +;; 153 99 : explosion +;; 154 9A : fury-swipes +;; 155 9B : bonemerang +;; 156 9C : rest +;; 157 9D : rock-slide +;; 158 9E : hyper-fang +;; 159 9F : sharpen +;; 160 A0 : conversion +;; 161 A1 : tri-attack +;; 162 A2 : super-fang +;; 163 A3 : slash +;; 164 A4 : substitute +;; 165 A5 : struggle +;; 166 A6 : null +;; 167 A7 : null +;; 168 A8 : null +;; 169 A9 : trash +;; 170 AA : trash +;; 171 AB : trash +;; 172 AC : trash +;; 173 AD : trash +;; 174 AE : trash +;; 175 AF : null +;; 176 B0 : trash +;; 177 B1 : trash +;; 178 B2 : trash +;; 179 B3 : trash +;; 180 B4 : AA +;; 181 B5 : trash +;; 182 B6 : QQ +;; 183 B7 : null +;; 184 B8 : null +;; 185 B9 : null +;; 186 BA : null +;; 187 BB : null +;; 188 BC : null +;; 189 BD : null +;; 190 BE : trash +;; 191 BF : null +;; 192 C0 : null +;; 193 C1 : null +;; 194 C2 : null +;; 195 C3 : null +;; 196 C4 : HM01 +;; 197 C5 : HM02 +;; 198 C6 : HM03 +;; 199 C7 : HM04 +;; 200 C8 : HM05 +;; 201 C9 : TM01 +;; 202 CA : TM02 +;; 203 CB : TM03 +;; 204 CC : TM04 +;; 205 CD : TM05 +;; 206 CE : TM06 +;; 207 CF : TM07 +;; 208 D0 : TM08 +;; 209 D1 : TM09 +;; 210 D2 : TM10 +;; 211 D3 : TM11 +;; 212 D4 : TM12 +;; 213 D5 : TM13 +;; 214 D6 : TM14 +;; 215 D7 : TM15 +;; 216 D8 : TM16 +;; 217 D9 : TM17 +;; 218 DA : TM18 +;; 219 DB : TM19 +;; 220 DC : TM20 +;; 221 DD : TM21 +;; 222 DE : TM22 +;; 223 DF : TM23 +;; 224 E0 : TM24 +;; 225 E1 : TM25 +;; 226 E2 : TM26 +;; 227 E3 : TM27 +;; 228 E4 : TM28 +;; 229 E5 : TM29 +;; 230 E6 : TM30 +;; 231 E7 : TM31 +;; 232 E8 : TM32 +;; 233 E9 : TM33 +;; 234 EA : TM34 +;; 235 EB : TM35 +;; 236 EC : TM36 +;; 237 ED : TM37 +;; 238 EE : TM38 +;; 239 EF : TM39 +;; 240 F0 : TM40 +;; 241 F1 : TM41 +;; 242 F2 : TM42 +;; 243 F3 : TM43 +;; 244 F4 : TM44 +;; 245 F5 : TM45 +;; 246 F6 : TM46 +;; 247 F7 : TM47 +;; 248 F8 : TM48 +;; 249 F9 : TM49 +;; 250 FA : TM50 +;; 251 FB : TM51 +;; 252 FC : TM52 +;; 253 FD : TM53 +;; 254 FE : TM54 +;; 255 FF : TM55 \ No newline at end of file diff -r 6135504976e6 -r 3a3bb2197b7f clojure/com/aurellem/exp/pokemon-layout --- a/clojure/com/aurellem/exp/pokemon-layout Tue Mar 20 01:32:48 2012 -0500 +++ b/clojure/com/aurellem/exp/pokemon-layout Tue Mar 20 02:40:59 2012 -0500 @@ -51,8 +51,8 @@ D194 D195 D196 u -D197 u -D198 Pokemon 2 Status +D197 /h +D198 \l Pokemon 2 Current Hit Points D199 u D19A u D19B u @@ -105,7 +105,7 @@ D1CA D1CB D1CC -D1CD +D1CD D1CE / Pokemon 3 OT ID D1CF \ D1D0 diff -r 6135504976e6 -r 3a3bb2197b7f clojure/com/aurellem/gb/gb_driver.clj --- a/clojure/com/aurellem/gb/gb_driver.clj Tue Mar 20 01:32:48 2012 -0500 +++ b/clojure/com/aurellem/gb/gb_driver.clj Tue Mar 20 02:40:59 2012 -0500 @@ -31,12 +31,12 @@ (defn read-state [name] (let [save (state-cache-file name)] - (if (.exists save) - (let [buffer (Gb/saveBuffer) - bytes (FileUtils/readFileToByteArray save)] - (.put buffer bytes) - (.flip buffer) - (SaveState. buffer))))) + (assert (.exists save)) + (let [buffer (Gb/saveBuffer) + bytes (FileUtils/readFileToByteArray save)] + (.put buffer bytes) + (.flip buffer) + (SaveState. buffer)))) ;;;;;;;;;;;;;;;; ;; Gameboy management @@ -141,6 +141,12 @@ ([] (continue! @current-state))) +(defn run-moves [state moves] + (set-state! state) + (dorun (map #(Gb/step (button-mask %)) + moves)) + (update-state)) + (defn play-moves ([moves [prev state]] (set-state! state) diff -r 6135504976e6 -r 3a3bb2197b7f clojure/com/aurellem/gb/util.clj --- a/clojure/com/aurellem/gb/util.clj Tue Mar 20 01:32:48 2012 -0500 +++ b/clojure/com/aurellem/gb/util.clj Tue Mar 20 02:40:59 2012 -0500 @@ -98,3 +98,6 @@ (defn mid-game [] (read-state "mid-game")) + + + \ No newline at end of file diff -r 6135504976e6 -r 3a3bb2197b7f save-states/battle-using-pikachu.sav Binary file save-states/battle-using-pikachu.sav has changed diff -r 6135504976e6 -r 3a3bb2197b7f save-states/view-pika-attacks.sav Binary file save-states/view-pika-attacks.sav has changed