Mercurial > vba-clojure
view clojure/com/aurellem/exp/notes.txt @ 302:0b3e89103dc2
going to test bootstrapping program.
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 31 Mar 2012 00:05:39 -0500 |
parents | 1de6aada1cb7 |
children | 5bcda2d6d135 |
line wrap: on
line source
1 ******** Game Sequence3 start game5 name rival "L<PK>U<PK><PK><any-character>"6 (0x8B 0xE1 0x94 0xE1 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 ;; this starts at address 0xD56C41 0x2A ;; save (HL)=(target) to A, increment HL43 0x0044 0x47 ;; save A to B46 0x0047 0x3A ;; save (target+1) to A, decrement HL49 0x0050 0x22 ;; save A to target, increment HL [(target+1) -> target]52 0x0053 0x70 ;; load B into target+1 [(target) -> target+1]55 0x0056 0xC3 ;; first part of absolute jump58 burn-heal (0x0C)59 x 95 (0x5F) -- address of Route 3 memory-function61 [repeat the following 8 times]62 0xFF63 0x0164 [end repeat]66 0x00 ;; this starts at address 0xD58A67 0x21 ;; load target into HL69 third rival's name character (U == 0x94)70 x D5 -- target item address72 0x0073 0x18 ;; jump relative75 fifth rival's name character (PK) (TM25) (0xE1 == -31)76 x any78 0xFF79 0x0181 target-item type (at 0xD594)82 target-item quantity (at 0xD595)86 Drop enough from rival's first character/ third character87 as an item so that it is [_ 0xD5] instead of [_ 0xE1].89 shift rival's name's first two characters into90 mem-function-address.92 now close the menu and continue item manipulations using the93 newly constructed program. Starting and then canceling the94 start menu activates the program.96 ********** END Game Sequence103 ************ Misc Notes.105 valid start addresses for the initial bootstrap program are106 the following:108 0xD31D - 0xD41B109 --OR--110 0xD53A - 0XD59C114 valid character-items:116 0x7F " " ;space [x]117 0x80 "A" ; [x]118 0x81 "B" ; [x]119 0x82 "C" ; [x]120 0x83 "D" ; [x]121 0x84 "E" ; [x]122 0x85 "F" ; [x]123 0x86 "G" ; [x]124 0x87 "H" ; [x]125 0x88 "I" ; [x]126 0x89 "J" ; [x]127 0x8A "K" ; [x]128 0x8B "L" ; [good]129 0x8C "M" ; [x]130 0x8D "N" ; [x]131 --- last valid character for program start132 0x8E "O" ; [x]133 0x8F "P" ; [x]134 0x90 "Q" ; [x]135 0x91 "R" ; [x]136 0x92 "S" ; [x]137 0x93 "T" ; [good]138 0x94 "U" ; [good]139 0x95 "V" ; [good]140 0x96 "W" ; [x]141 0x97 "X" ; [x]142 0x98 "Y" ; [key]143 0x99 "Z" ; [x]144 0x9A "(" ; [key]145 0x9B ")" ; [x]146 0x9C ":" ; [x]147 --- last valid character for target151 ;;; character canadates for jump-relative backwards153 0xE1 "PK" ; [TM25]154 0xE2 "MN" ; [TM26]155 0xE6 "?" ; [TM30]156 0xE7 "!" ; [TM31]157 0xE8 "." ; [TM32]