# HG changeset patch # User Robert McIntyre # Date 1332284862 18000 # Node ID 8f1b32d3f229f2b36814dcf65149c574a00e1c51 # Parent 6f80c07eb32afc0a11e2268ac5d9856586cd470f need to determine how colormaps for pokemon work. diff -r 6f80c07eb32a -r 8f1b32d3f229 clojure/com/aurellem/gb/species.clj --- a/clojure/com/aurellem/gb/species.clj Tue Mar 20 17:44:08 2012 -0500 +++ b/clojure/com/aurellem/gb/species.clj Tue Mar 20 18:07:42 2012 -0500 @@ -1,151 +1,175 @@ -;; 001 01 : rhydon -;; 002 02 : kangaskhan -;; 003 03 : nidoran-male -;; 004 04 : clefairy -;; 005 05 : spearow -;; 006 06 : voltorb -;; 007 07 : nidoking -;; 008 08 : slowbro -;; 009 09 : ivysaur -;; 010 0A : exeggutor -;; 011 0B : lickitung -;; 012 0C : exeggcute -;; 013 0D : grimer -;; 014 0E : gengar -;; 015 0F : nidoran-female -;; 016 10 : nidoqueen -;; 017 11 : cubone -;; 018 12 : rhyhorn -;; 019 13 : lapras -;; 020 14 : arcanine -;; 021 15 : mew -;; 022 16 : gyarados -;; 023 17 : shellder -;; 024 18 : tentacool -;; 025 19 : gastly -;; 026 1A : scyther -;; 027 1B : staryu -;; 028 1C : blastoise -;; 029 1D : pinsir -;; 030 1E : tangela -;; 033 21 : growlithe -;; 034 22 : onix -;; 035 23 : fearow -;; 036 24 : pidgey -;; 037 25 : slowpoke -;; 038 26 : kadabra -;; 039 27 : graveler -;; 040 28 : chansey -;; 041 29 : machoke -;; 042 2A : mr-mime -;; 043 2B : hitmonlee -;; 044 2C : hitmonchan -;; 045 2D : arbok -;; 046 2E : parasect -;; 047 2F : psyduck -;; 048 30 : drowzee -;; 049 31 : golem -;; 051 33 : magmar -;; 053 35 : electabuzz -;; 054 36 : magneton -;; 055 37 : koffing -;; 057 39 : mankey -;; 058 3A : seel -;; 059 3B : diglett -;; 060 3C : tauros -;; 064 40 : farfetch'd -;; 065 41 : venonat -;; 066 42 : dragonite -;; 070 46 : doduo -;; 071 47 : poliwag -;; 072 48 : jynx -;; 073 49 : moltres -;; 074 4A : articuno -;; 075 4B : zapdos -;; 076 4C : ditto -;; 077 4D : meowth -;; 078 4E : krabby -;; 082 52 : vulpix -;; 083 53 : ninetails -;; 084 54 : pikachu -;; 085 55 : riachu -;; 088 58 : dratini -;; 089 59 : dragonair -;; 090 5A : kabuto -;; 091 5B : kabutops -;; 092 5C : horsea -;; 093 5D : sedra -;; 096 60 : sandshrew -;; 097 61 : sandslash -;; 098 62 : omanyte -;; 099 63 : omastar -;; 100 64 : jigglypuff -;; 101 65 : wigglytuff -;; 102 66 : eevee -;; 103 67 : flareon -;; 104 68 : jolteon -;; 105 69 : vaporeon -;; 106 6A : machop -;; 107 6B : zubat -;; 108 6C : ekans -;; 109 6D : paras -;; 110 6E : poliwhirl -;; 111 6F : poliwrath -;; 112 70 : weedle -;; 113 71 : kakuna -;; 114 72 : beedrill -;; 116 74 : dodrio -;; 117 75 : primeape -;; 118 76 : dugtrio -;; 119 77 : venomoth -;; 120 78 : dewgong -;; 123 7B : caterpie -;; 124 7C : metapod -;; 125 7D : butterfree -;; 126 7E : machamp -;; 128 80 : golduck -;; 129 81 : hypno -;; 130 82 : golbat -;; 131 83 : mewtwo -;; 132 84 : snorlax -;; 133 85 : magikarp -;; 136 88 : muk -;; 138 8A : kingler -;; 139 8B : cloyster -;; 141 8D : electrode -;; 142 8E : clefable -;; 143 8F : wheezing -;; 144 90 : persian -;; 145 91 : marowak -;; 147 93 : haunter -;; 148 94 : abra -;; 149 95 : alakazam -;; 150 96 : pidgeotto -;; 151 97 : pidgeot -;; 152 98 : starmie -;; 153 99 : bulbasaur -;; 154 9A : venusaur -;; 155 9B : tentacruel -;; 157 9D : goldeen -;; 158 9E : seaking -;; 163 A3 : ponyta -;; 164 A4 : rapidash -;; 165 A5 : rattata -;; 166 A6 : raticate -;; 167 A7 : nidorino -;; 168 A8 : nidorina -;; 169 A9 : geodude -;; 170 AA : porygon -;; 171 AB : aerodactyl -;; 173 AD : magnemite -;; 176 B0 : charmander -;; 177 B1 : squirtle -;; 178 B2 : charmeleon -;; 179 B3 : wartortle -;; 180 B4 : charizard -;; 185 B9 : oddish -;; 186 BA : gloom -;; 187 BB : vileplume -;; 188 BC : bellsprout -;; 189 BD : weepenbell -;; 190 BE : victreebel \ No newline at end of file +(ns com.aurellem.gb.species + (:use (com.aurellem.gb gb-driver util)) + (:import [com.aurellem.gb.gb_driver SaveState])) + + +(def species-code->species-name + {0x01 :rhydon + 0x02 :kangaskhan + 0x03 :nidoran-male + 0x04 :clefairy + 0x05 :spearow + 0x06 :voltorb + 0x07 :nidoking + 0x08 :slowbro + 0x09 :ivysaur + 0x0A :exeggutor + 0x0B :lickitung + 0x0C :exeggcute + 0x0D :grimer + 0x0E :gengar + 0x0F :nidoran-female + 0x10 :nidoqueen + 0x11 :cubone + 0x12 :rhyhorn + 0x13 :lapras + 0x14 :arcanine + 0x15 :mew + 0x16 :gyarados + 0x17 :shellder + 0x18 :tentacool + 0x19 :gastly + 0x1A :scyther + 0x1B :staryu + 0x1C :blastoise + 0x1D :pinsir + 0x1E :tangela + 0x21 :growlithe + 0x22 :onix + 0x23 :fearow + 0x24 :pidgey + 0x25 :slowpoke + 0x26 :kadabra + 0x27 :graveler + 0x28 :chansey + 0x29 :machoke + 0x2A :mr-mime + 0x2B :hitmonlee + 0x2C :hitmonchan + 0x2D :arbok + 0x2E :parasect + 0x2F :psyduck + 0x30 :drowzee + 0x31 :golem + 0x33 :magmar + 0x35 :electabuzz + 0x36 :magneton + 0x37 :koffing + 0x39 :mankey + 0x3A :seel + 0x3B :diglett + 0x3C :tauros + 0x40 :farfetch'd + 0x41 :venonat + 0x42 :dragonite + 0x46 :doduo + 0x47 :poliwag + 0x48 :jynx + 0x49 :moltres + 0x4A :articuno + 0x4B :zapdos + 0x4C :ditto + 0x4D :meowth + 0x4E :krabby + 0x52 :vulpix + 0x53 :ninetails + 0x54 :pikachu + 0x55 :riachu + 0x58 :dratini + 0x59 :dragonair + 0x5A :kabuto + 0x5B :kabutops + 0x5C :horsea + 0x5D :sedra + 0x60 :sandshrew + 0x61 :sandslash + 0x62 :omanyte + 0x63 :omastar + 0x64 :jigglypuff + 0x65 :wigglytuff + 0x66 :eevee + 0x67 :flareon + 0x68 :jolteon + 0x69 :vaporeon + 0x6A :machop + 0x6B :zubat + 0x6C :ekans + 0x6D :paras + 0x6E :poliwhirl + 0x6F :poliwrath + 0x70 :weedle + 0x71 :kakuna + 0x72 :beedrill + 0x74 :dodrio + 0x75 :primeape + 0x76 :dugtrio + 0x77 :venomoth + 0x78 :dewgong + 0x7B :caterpie + 0x7C :metapod + 0x7D :butterfree + 0x7E :machamp + 0x80 :golduck + 0x81 :hypno + 0x82 :golbat + 0x83 :mewtwo + 0x84 :snorlax + 0x85 :magikarp + 0x88 :muk + 0x8A :kingler + 0x8B :cloyster + 0x8D :electrode + 0x8E :clefable + 0x8F :wheezing + 0x90 :persian + 0x91 :marowak + 0x93 :haunter + 0x94 :abra + 0x95 :alakazam + 0x96 :pidgeotto + 0x97 :pidgeot + 0x98 :starmie + 0x99 :bulbasaur + 0x9A :venusaur + 0x9B :tentacruel + 0x9D :goldeen + 0x9E :seaking + 0xA3 :ponyta + 0xA4 :rapidash + 0xA5 :rattata + 0xA6 :raticate + 0xA7 :nidorino + 0xA8 :nidorina + 0xA9 :geodude + 0xAA :porygon + 0xAB :aerodactyl + 0xAD :magnemite + 0xB0 :charmander + 0xB1 :squirtle + 0xB2 :charmeleon + 0xB3 :wartortle + 0xB4 :charizard + 0xB9 :oddish + 0xBA :gloom + 0xBB :vileplume + 0xBC :bellsprout + 0xBD :weepenbell + 0xBE :victreebel}) + +(def species-ID-1 0xD163) + +(def species-name->species-code + (zipmap (vals species-code->species-name) + (keys species-code->species-name))) + +(defn set-species + ([^SaveState state pokemon-num species-name] + (assert (<= 0 pokemon-num 5)) + (let [species-code (species-name->species-code + species-name + species-name)] + + (set-memory state (+ species-ID-1 pokemon-num) + species-code))) + ([pokemon-num species-name] + (set-species @current-state pokemon-num species-name))) \ No newline at end of file