Mercurial > vba-clojure
view clojure/com/aurellem/exp/notes.txt @ 596:747d47d96d2f
determined that I cannot shorten the long B sequeuce during bootstrap.
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sun, 02 Sep 2012 06:36:57 -0500 |
parents | 5c2041d1cdda |
children |
line wrap: on
line source
1 ******** Game Sequence3 start game5 name rival "L<PK>U<PK><PK><any-character>"6 (0x8B 0xE1 0x95 0xE1 0xE1 0x<any> in character codes)8 get pikachu, fight rival, deliver oak's parcel, go back to9 viridian poke mart.11 Perform save corruption.13 switch 6th pokemon with 9th to set current-items to 0xFF15 Sell 254 cancel-buttons to get a bunch of money.17 buy a pokeball to repair item-list19 buy 1 potion, 1 antidote, 1 parlyz heal, 2 pokeballs, and20 96 burn heals22 95 burn heals spells out the address that will safely return23 control to the pokemon kernel.25 switch 5th pokemon with 9th to set current-items to 0xFF,26 corrupting the item-list again.28 Deposit things from your item list to get the following29 pattern in the item computer. You can do this with what is30 in your item list because of the previous setup.32 [repeat the following 25 times]33 0xFF34 0x0135 [end repeat]37 ;; Second part of program to swap item ID and quantity at38 ;; fixed address.40 0x00 ;; decrement HL41 0x2B43 0x00 ;; this starts at address 0xD56C44 0x2A ;; save (HL)=(target) to A, increment HL46 0x0047 0x47 ;; save A to B49 0x0050 0x3A ;; save (target+1) to A, decrement HL52 0x0053 0x22 ;; save A to target, increment HL [(target+1) -> target]55 0x0056 0x70 ;; load B into target+1 [(target) -> target+1]58 0x0059 0xC3 ;; first part of absolute jump61 burn-heal (0x0C)62 x 95 (0x5F) -- address of Route 3 memory-function64 [repeat the following 4 times]65 0xFF66 0x0167 [end repeat]69 ;; first part of item manipulation program71 0x00 ;; this starts at address 0xD58A72 0x21 ;; load target into HL74 third rival's name character (U == 0x94)75 x D5 -- target item address77 0x0078 0x18 ;; jump relative80 fifth rival's name character (PK) (TM25) (0xE1 == -31)81 x any83 0xFF84 0x0186 target-item type (at 0xD594)87 target-item quantity (at 0xD595)91 Drop enough from rival's first character/ third character92 as an item so that it is [_ 0xD5] instead of [_ 0xE1].94 shift rival's name's first two characters into95 mem-function-address.97 now close the menu and continue item manipulations using the98 newly constructed program. Starting and then canceling the99 start menu activates the program.101 ********** END Game Sequence108 ************ Misc Notes.110 valid start addresses for the initial bootstrap program are111 the following:113 0xD31D - 0xD41B114 --OR--115 0xD53A - 0XD59C119 valid character-items:121 0x7F " " ;space [x]122 0x80 "A" ; [x]123 0x81 "B" ; [x]124 0x82 "C" ; [x]125 0x83 "D" ; [x]126 0x84 "E" ; [x]127 0x85 "F" ; [x]128 0x86 "G" ; [x]129 0x87 "H" ; [x]130 0x88 "I" ; [x]131 0x89 "J" ; [x]132 0x8A "K" ; [x]133 0x8B "L" ; [good]134 0x8C "M" ; [x]135 0x8D "N" ; [x]136 --- last valid character for program start137 0x8E "O" ; [x]138 0x8F "P" ; [x]139 0x90 "Q" ; [x]140 0x91 "R" ; [x]141 0x92 "S" ; [x]142 0x93 "T" ; [good]143 0x94 "U" ; [good] [key :(]144 0x95 "V" ; [good]145 0x96 "W" ; [x]146 0x97 "X" ; [x]147 0x98 "Y" ; [key]148 0x99 "Z" ; [x]149 0x9A "(" ; [key]150 0x9B ")" ; [x]151 0x9C ":" ; [x]152 --- last valid character for target156 ;;; character canadates for jump-relative backwards158 0xE1 "PK" ; [TM25]159 0xE2 "MN" ; [TM26]160 0xE6 "?" ; [TM30]161 0xE7 "!" ; [TM31]162 0xE8 "." ; [TM32]