rlm@240: ******** Game Sequence rlm@240: rlm@239: start game rlm@239: rlm@240: name rival "GG" rlm@240: (0x7F 0xE1 0x86 0xE1 0x86 0xE1 in character codes) rlm@240: rlm@290: get pikachu, fight rival, deliver oak's parcel, go back to rlm@290: viridian poke mart. rlm@239: rlm@290: Perform save corruption. rlm@239: rlm@290: switch 6th pokemon with 9th to set current-items to 0xFF rlm@239: rlm@290: Sell 254 cancel-buttons to get a bunch of money. rlm@239: rlm@290: buy a pokeball to repair item-list rlm@290: rlm@290: buy 1 pokeball, 1 potion, 1 antidote, 1 parlyz heal, and rlm@290: 96 burn heals rlm@290: rlm@290: 95 burn heals spells out the address that will safely return rlm@290: control to the pokemon kernel. rlm@290: rlm@290: switch 5th pokemon with 9th to set current-items to 0xFF, rlm@290: corrupting the item-list again. rlm@290: rlm@290: Deposit things from your item list to get the following rlm@290: pattern in the item computer. You can do this with what is rlm@290: in your item list because of the previous setup. rlm@239: rlm@241: [repeat following 35 times] rlm@290: 0xFF rlm@241: 0x01 rlm@290: [end repeat] rlm@240: rlm@240: 0x00 rlm@241: 0xFA -- first part of "Load A from Literal address" rlm@240: rlm@240: third rival's name character rlm@241: xD5 -- target item address rlm@240: rlm@240: 0x00 rlm@241: 0x3C -- increment A register rlm@240: rlm@240: 0x00 rlm@241: 0xEA -- first part of "Save A to literal address" rlm@240: rlm@240: fifth rival's name character rlm@241: xD5 -- target item address rlm@240: rlm@240: 0x00 rlm@241: 0xC3 -- first part of "Absolute Jump to literal address" rlm@240: rlm@240: burn-heal rlm@241: x 95 -- address of Route 3 memory-function rlm@240: rlm@241: 0x00 rlm@241: 0x?? rlm@240: rlm@290: Drop enough from rival's first character/ second character rlm@290: as an item so that it is [0x7F 0xD5] instead of [0x7F 0xE1]. rlm@290: rlm@240: shift rival's name's first two characters into rlm@290: mem-function-address. rlm@240: rlm@240: now close the menu and continue item manipulations using the rlm@240: newly constructed program. Starting and then canceling the rlm@240: start menu activates the program. rlm@240: rlm@240: ********** END Game Sequence rlm@240: rlm@240: rlm@240: rlm@240: rlm@293: [repeat 35 times] rlm@293: 0xFF rlm@293: 0x01 rlm@293: [end repeat] rlm@293: rlm@293: rlm@293: ;;; program to swap item ID and quantity at fixed address. rlm@293: ;; here target is equal to rival's thrid and fourth character rlm@293: rlm@293: rlm@293: 0x00 rlm@293: 0x21 ;; load target into HL rlm@293: rlm@293: third rival's name character rlm@293: xD5 -- target item address rlm@293: rlm@293: 0x00 rlm@293: 0x2A ;; save (HL)=(target) to A, increment HL rlm@293: rlm@293: 0x00 rlm@293: 0x78 ;; save A to B rlm@293: rlm@293: 0x00 rlm@293: 0x3A ;; save (target+1) to A, decrement HL rlm@293: rlm@293: 0x00 rlm@293: 0x22 ;; save A to target, increment HL [(target+1) -> target] rlm@293: rlm@293: 0x00 rlm@293: 0x78 ;; load B to A rlm@293: rlm@293: 0x00 rlm@293: 0x77 ;; load A into target+1 [(target) -> target+1] rlm@293: rlm@293: rlm@293: rlm@240: rlm@240: rlm@240: rlm@240: rlm@240: rlm@240: valid start addresses for the initial bootstrap program are rlm@240: the following: rlm@240: rlm@240: 0xD31D - 0xD41B rlm@240: --OR-- rlm@240: 0xD53A - 0XD59C