changeset 406:8eb674700f15

Found in-game pointers to type names; ready to remove manually-coded list.
author Dylan Holmes <ocsenave@gmail.com>
date Thu, 12 Apr 2012 22:18:46 -0500
parents 1b9137ef7380
children 03ade2a04458
files org/rom.org
diffstat 1 files changed, 27 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
     1.1 --- a/org/rom.org	Fri Apr 13 07:30:11 2012 -0500
     1.2 +++ b/org/rom.org	Thu Apr 12 22:18:46 2012 -0500
     1.3 @@ -716,6 +716,13 @@
     1.4  
     1.5  * Types
     1.6  ** Names of types
     1.7 +
     1.8 +*** COMMENT Pointers to type names
     1.9 +#+begin_src clojure :exports both :results output
    1.10 +(map (comp character-codes->str #(take-while (partial not= 80) (drop % (rom))) (partial + 0x20000) (partial apply low-high)) (partition 2 (take 54 (drop 0x27D63 (rom)))))
    1.11 +#+end_src
    1.12 +
    1.13 +
    1.14  ***
    1.15  #+begin_src clojure :exports both :results output 
    1.16  (ns com.aurellem.gb.hxc
    1.17 @@ -1081,6 +1088,9 @@
    1.18  | 1195C-1196A       | The two terms for being able/unable to learn a TM/HM. | Variable-length strings separated by 0x50. | ABLE#NOT ABLE#  |
    1.19  | 119C0-119CE       | The two terms for being able/unable to evolve using the current stone. | Variable-length strings separated by 0x50. | ABLE#NOT ABLE#  |
    1.20  | 1232D-12364       | Which moves are taught by the TMs and HMs | A list of 55 move ids (50 TMs, plus 5 HMs). First, the move that will be taught by TM01; second, the move that will be taught by TM02; and so on. The last five entries are the moves taught by HMs 1-5. (See also, BC000 below) | The first few entries are (5 13 14 18 ...) corresponding to Mega Punch (TM01), Razor Wind (TM02), Swords Dance (TM03), Whirlwind (TM04), ... |
    1.21 +|-------------------+-----------------+-----------------+-----------------|
    1.22 +| 27D56 & 27D57.    | Pointer to the list of type pointers. |                 |                 |
    1.23 +| 27D63-27D99       | Pointers to type names. | Each point is a low-byte, high-byte pair. The names of types follows immediately after this section; see below. | The first pointer is [0x99 0x7D], corresponding to the location 0x2.7D.99, the NORMAL type. |
    1.24  | 27D99-27DFF       | Names of the Pok\eacute{}mon types. | Variable-length type names (strings of character codes). Names are separated by a single 0x80 character. | NORMAL#FIGHTING#... |
    1.25  | 27E77-            | Trainer title names. | Variable-length names separated by 0x80. | YOUNGSTER#BUG CATCHER#LASS#... |
    1.26  | 34000-            |                 |                 |                 |
    1.27 @@ -1585,6 +1595,23 @@
    1.28      (take 0xFFF (drop 0x8800 (memory state))))))
    1.29  
    1.30  
    1.31 +(defn test-2 []
    1.32 +  (loop [n 0
    1.33 +         pc-1 (pc-trail (-> state-defend (tick) (step [:a]) (step [:a]) (step []) (nstep 100)) 100000)
    1.34 +         pc-2 (pc-trail (-> state-speed (tick) (step [:a]) (step [:a])
    1.35 +  (step []) (nstep 100)) 100000)]
    1.36 +    (cond (empty? (drop n pc-1)) [pc-1 n]
    1.37 +          (not= (take 10 (drop n pc-1)) (take 10 pc-2))
    1.38 +          (recur  pc-1 pc-2 (inc n))
    1.39 +          :else
    1.40 +          [(take 1000 pc-2) n])))
    1.41 +
    1.42 +
    1.43 +
    1.44 +
    1.45 +
    1.46 +
    1.47 +
    1.48  (comment 
    1.49  
    1.50  (def hxc-later