Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Gold - Shiny 251 Aetienne style
- ---------------
- Rule : all 251 shiny Pokémon must be distinctly obtained in the wild.
- Thanks to TimoVM and luckytyphlosion for their guides and answers.
- - TimoVM's Coin Case ACE guide : https://glitchcity.wiki/wiki/Guides:Coin_Case_ACE#What_to_do_with_the_Mail_writer
- - Mail Writer codes : https://glitchcity.wiki/wiki/Guides:Mail_Writer_Codes#Deactivate_constant_effects
- If you want faithful-looking mails for steps 3 & 4, use TimoVM's Mail Writer code converter (English - Gold/Silver) : https://timovm.github.io/MailConverter/
- - step 3 : AF0150002146D7CD4C310E21E5D12174DDCD1A31CD97D72130D8223EA72272C9CD46D7AF217BD9B63EC30E46C0368CC9F32180FF3ECD223E97223ED72236E2D9
- - step 4 :
- F3012700116DD72163DDCD1A31D9FABDD94F3E01EAB8D54721EDD0712EFC702EF53EAA222221A4CE3E93772199D1CBE6213EDC36FF
- ######################
- ######################
- Toto route to Goldenrod (just need Totodile+Egg, have seen a Bellsprout, at least 2 items left in Items pocket)
- STEP 1 : Coin Case ACE for TM33
- 1) Goldenrod Dpt Store 2F bottom : buy 1 Flower Mail
- 2) Underground : Get Coin Case
- 3) Game Corner : Buy 100 Coins
- 4) Radio Tower 1F : box names
- 1: p 'v . é 'l 2 'v 1 (number one)
- 2: é 'd 2 'v 9 é 'v 2
- 3: , , 'v D H H 'd 5
- 4: ? E 's 'v 2 'v H 5
- 5: 'v 9 é ♂ 2 ♀ 0 9
- 6: 5 5 é ♀ ♀ × 8 p (multiplication sign)
- 7: 'm 6 2 h 'm - 2 p
- 8: 0 'm 's 'v 2 'v T H
- 9: 's 'v 2 'v ; é y ♀
- 10: 0 ♀ 'm 'v 2 (only 5 characters)
- 5) Radio Tower 2F :
- - Menu 2 tiles below Jigglypuff
- - Save and soft reset
- - Walk 3 steps right, 2 up, 1 left (you're now 2 steps right of Jigglypuff)
- - Pokédex > Bellsprout's cry
- - Pokémon > Croconaw > Give > Flower Mail > ...
- h h 's z 2 Pk 'l 0 9 ♀ . 9 Pk × ' ]
- 4 Z 'l ? pokédollar é Z 'l h 'd
- ... > Croconaw > Mail > Read
- - Bag > (switch pockets at least once) > Coin Case
- - Check for TMs in TM/HM and TM33 in Items
- STEP 2 : Setting up Mail Writer
- 1) Goldenrod Dpt Store :
- - Save before 2F sellor
- - Set up TMs like this : https://static.wikitide.net/glitchcitywiki/b/b9/TM_English_GS.png
- Here's a detailled list of selling operations :
- TM Sell value Final Quantity
- TM01 DYNAMICPUNCH 357000 x17
- TM02 HEADBUTT 170000 x85
- TM03 CURSE 51000 x221 ey1
- TM04 ROLLOUT 42000 x213 |K3
- TM05 ROAR 21000 x213 |K3
- TM06 TOXIC 63000 x213 |K3
- TM07 ZAP CANNON 222000 x33
- TM08 ROCK SMASH 94500 x66
- TM09 PSYCH UP 78500 x98
- TM10 HIDDEN POWER 72000 x207 ◘|7
- TM11 SUNNY DAY 30000 x225 ey5
- TM12 SWEET SCENT 23000 x209 ◘|9
- TM13 SNORE 106500 x42
- TM14 BLIZZARD 1500 x254 s|4
- TM15 HYPER BEAM 262500 x80
- TM16 ICY WIND 298500 x56
- TM17 PROTECT 6000 x251 s|1
- TM18 RAIN DANCE 215000 x40
- TM19 GIGA DRAIN 367500 x10
- TM20 ENDURE 180000 x135 ◘╝5
- TM21 FRUSTRATION 60500 x134 ◘╝4
- TM22 SOLARBEAM 355500 x18
- TM23 IRON TAIL 354000 x19
- TM24 DRAGONBREATH 330000 x35
- TM25 THUNDER 126000 x129 ╚◘9
- TM26 EARTHQUAKE 264000 x79
- TM27 RETURN 118500 x18
- TM28 DIG 231000 x24
- TM29 PSYCHIC 16000 x239 It9
- TM30 SHADOW BALL 333000 x33
- TM31 MUD-SLAP 381000 x1
- TM32 DOUBLE TEAM 59000 x196 ns6
- TM33 ICE PUNCH 267000 x77
- TM34 SWAGGER 25000 x205 ◘|5
- TM35 SLEEP TALK 8000 x239 It9
- TM36 SLUDGE BOMB 98500 x58
- TM37 SANDSTORM 228000 x27
- TM38 FIRE BLAST 50000 x205 ◘|5
- TM39 SWIFT 111000 x144 ◘-4
- TM40 DEFENSE CURL 100000 x55
- TM41 THUNDERPUNCH 99000 x189 er9
- TM42 DREAM EATER 322500 x40
- TM43 DETECT 19000 x217 |K7
- TM44 REST 298500 x56
- TM45 ATTRACT 22500 x240 em0
- TM46 THIEF 1500 x254 s|4
- TM47 STEEL WING 370500 x8
- TM48 FIRE PUNCH 82500 x200 ◘|0
- TM49 FURY CUTTER 346500 x24
- TM50 NIGHTMARE 13000 x242 em2
- 2) Use TM33 to use the Mail Writer: if it works, type Rh then END then Start
- (3) TROUBLESHOOT : if you crashed :
- - Radio Tower 1F box names :
- Box 1: p 'v . é 'l 2 'v 1
- Box 2: é 'd 2 'v 9 é 'v 2
- Box 3: , , 'v D H H 'd 5
- Box 4: ? E 's 'v 2 p 0 'm
- Box 5: 's 'v 2 'v T 's 't 2
- Box 6: p 0 ♀ 'm 'v 2
- - Redo the Coin Case setup in 2F (don't take/give the mail, just read it)
- (4) How to execute code:
- - Write down a message, hit END, verify checksum*, then use commands to proceed :
- - Select: write new mail
- - Start: execute mails
- - 16 Down, then hit Select: rewrite the current mail
- * checksum is 2 extra characters after the end of the second line : make sure the displayed checksum matches the one written in this guide
- - To quit without executing : Rh
- 5) Exit Goldenrod south, go 1 tile outside top right grass of Route 34
- STEP 3 : OAM DMA hijack (4 mails, all l are the 12th letter of the alphabet)
- 0) Save, !!!!!!SWAP TM33 TO SLOT 2!!!!!!, then use TM33
- 1) Q P X 'r 'm m l k v x y 'v ; ; ♂ ♂
- 's e ' Ké [ 'm w v m N N x w v 'l 'm checksum: 0 2
- (Select)
- 2) , ♀ ♂ ♂ ; ' ' Ké ♂ ♂ E P P z z p
- o 's W m w w w 'm 3 v V 2 'l 'd / - checksum: ◘╗ ◘╝
- (Select)
- 3) P p 't : : ] ] Ké Z ♂ ♂ ; ♀ ♂ Ké 's
- 's W W X W Mn Mn C Po ' 's O E E d D checksum: 6 4
- (Select)
- 4) r R R 9 0 U v V w 'm M v w w w 'm
- Po x w w w 'm l B V 2 Mn ╔ 0 0 / / checksum: ◘╝ ◘_
- (Start)
- 5) If properly executed, you'll go back to the Start menu
- Reach Route 34 top-right grass, one tile outside of it
- (6) TODO : backup if mistake
- STEP 4 : Shiny farming setup (4 mails, all l are the 12th letter of the alphabet)
- 0) Save, then use TM33
- 1) r R l l l 'l v W V ! . ; ; ; : &
- & R , ♀ ♂ ♂ ; ' ] / / / t U U V checksum: 7 9
- (Select)
- 2) / / u ! w 'm l l l U T S S r s -
- z p p P N w 'd 'l 'l M W 'd 'd 'd ) 2 checksum: 3 ╚◘
- (Select)
- 3) h h h pokédollar 4 (char 'w' 6 times) v M M M w
- w 'm ' 'r 'r 'l 'l space space ) ) ) ? 9 9 . checksum: 3 8
- (Select)
- 4) z p f , , , h . h r q q q q q q
- q q q q q q q q q q q q q q q q checksum: 2 0
- (Start)
- 5) If properly executed, you'll go back to the Start menu
- (6) TODO : backup if mistake
- (7) List of changes applied
- - L1 wild shiny Pokémon, species changed via step counter
- - MasterBalls in slot 1 of Items (infinite)
- - Instant text
- - Accessible PC when facing Up and pressing A
- STEP 5 : Farming shinies
- 0) Save
- 1) Enter the grass
- 2) Do turnframes until an encounter appears
- 2) Catch the wild Pokémon with the Master Ball from the Items pocket
- 3) To change the species: walk as many steps as needed (each step increases the species id by 1)
- 4) When you reached 19/20 species in a box, face up then press A: the PC will open and you'll be able to switch boxes
- 5) Repeat until you're done
- (6) AVOID WALKING DOWN, as the PC doesn't let you walk upwards
- (7) After Celebi (251), do 5 steps outside the grass to avoid MissingNo (252), Egg (253), MissingNo (254), MissingNo (255) || MissingNo (0)
- STEP 6 : End of game
- 1) Verify you have all 251 shinies in Boxes
- 2) Open Pokédex and scroll to show all are caught
- 3) Save, then use TM33
- 1) r R i r q r h s q r . ; ; ; : &
- & R , ♀ ♂ ♂ ; ' ' Ké Po 3 v x y 's checksum: 11 (eleven)
- (Select)
- 2) T k l l l n n é é ; ; & ♀ G Q P
- Z y w w [ [ 3 2 Pk Pk × 0 / - q q checksum: ◘- ◘_
- (Start)
- 3) Enter Goldenrod Dpt Store (that teleports you to Red's room)
- 4) Talk to Red, gg!
- ##################################
- ##################################
- Technical notes
- 1) Original 1st mail
- 2) 1st mail - Modification to add instant text
- 3) Shiny farming setup
- 4) Attempt at avoiding MissingNos (not enough space though)
- 5) Final warp to Red
- 6) Exploration zone
- 6.1) Old Any% NSC box names
- 6.2) Make every wild shiny & force species/level
- 7) Original 'slider+Quagsire' setup for Coin Case
- 8) Addresses
- 9) Hexadecimal to gbz80
- 10) Fixing Unowns
- ###
- 1) Original 1st mail :
- h h 's z 2 Pk 'l 0 9 ♀ . 9 Pk × ' ]
- h 'd
- (the wiki translation is not 100% accurate, just keeping it for quick reference)
- A7 and a ; Filler
- A7 and a ; Reset carry flag
- D4 B9 F8 call nc, $F8B9 ; Box names start at $D8BF/F8BF, setting the active box to box 1 will ensure we can safely slide through.
- E1 pop hl ; Additional pop to clear return address of call to screen data
- D1 pop de ; Set de to $0075, which holds value $00. Ensures that print function will end immediately after resuming
- E8 FF add sp, -1 ; Fix the effect of increasing the stack pointer
- F1 pop af ; a = $03
- E0 9F ld ($FF9F), a ; Ensures return to ROM bank 3 after resuming execution
- A7 and a ; Reset carry flag. Not strictly necessary, but added for safety for now
- D0 ret nc
- ###
- 2) 1st mail - Modification to add instant text
- ...
- ' ] E0 9F ld ($FF9F), a
- 4 Z 'l FA 99 D1 ld a,($D199) ; wOptions <<<
- ? pk$ E6 F0 and a,$F0 ; contains instant text <<<
- é Z 'l EA 99 D1 ld ($D199),a <<<
- h A7 and a
- 'd D0 ret nc
- Final mail :
- h h 's z 2 Pk 'l 0 9 ♀ . 9 Pk × ' ]
- 4 Z 'l ? pokédollar é Z 'l h 'd
- Modification for instant text and warp to sellor
- (Not enough space in the mail since we already added instant text)
- ...
- ' ] E0 9F ld ($FF9F), a
- 21 44 D0 ld hl,$D044 ; wNextMapGroup
- 01 0B 0D ld bc,$0D0B ; Goldenrod floor 2, group $0B, map $0D
- 71 ld (hl),c
- 23 inc hl ; wNextMapNumber
- 70 ld (hl),b
- ###
- 3) Shiny farming setup
- - 'Fake L1' wild shiny Pokémon, species changed via step counter
- - MasterBalls in slot 1 of Items (infinite)
- - Instant text
- - Accessible PC when facing Up and pressing A
- (original starts at $DD55, §2+ are copied to $D76D)
- F3 di
- 01 25 00 ld bc,$0025 ; 37
- 11 6D D7 ld de,$D76D
- 21 63 DD ld hl,$DD63 (wOTPartyMon1ID)
- CD 1A 31 call $311A (CopyBytes)
- D9 reti
- 21 F5 D0 ld hl,$D0F5 (wEnemyMonDVs)
- 01 FA AA ld bc,$AAFA
- 71 ld (hl),c
- 23 inc hl
- 70 ld (hl),b
- FA BD D9 ld a,(D9BD) ; wStepCount
- 4F ld c,a ; c = step count
- 3E 01 ld a,01
- EA B8 D5 ld (D5B8), a ; masterball in slot 1 of Items w/ a=01
- 47 ld b,a
- 21 ED D0 ld hl,D0ED (wTempEnemyMonSpecies)
- 71 ld (hl),c ; species based on step count
- 2E FC ld l,FC
- 70 ld (hl),b ; level 1
- 21 99 D1 ld hl, $D199 ; wOptions
- CB E6 set 4, (hl) ; instant text
- 01 A4 CE ld bc,$CEA4 ; wTileUp
- 3E 93 ld a,$93 ; PC
- 02 ld (bc),a ; PC anywhere when facing up and pressing A
- 4) Attempt at avoiding MissingNos : (not enough space though)
- ...
- FA BD D9 ld a,(D9BD) ; wStepCount
- 3D dec a <<<
- 3C inc a ; .inc <<<
- FE FC cp a,$FC ; 252 <<<
- 30 FB jr nc,$FB ; -5, .inc <<<
- 28 F9 jr z,$F9 ; -7, .inc <<<
- EA BD D9 ld (D9BD),a <<<
- 4F ld c,a ; c = step count
- ...
- ###
- 5) Final warp to Red
- F3 di
- 01 11 00 ld bc,$001 ; 17
- 11 6D D7 ld de,$D76D
- 21 63 DD ld hl,$DD63 (wOTPartyMon1ID)
- CD 1A 31 call $311A (CopyBytes)
- D9 reti
- 21 44 D0 ld hl,$D044 ; wNextMapGroup
- 01 03 44 ld bc,$4403 ; SILVER_CAVE_ROOM_3, group 3, map $44 = 68
- 71 ld (hl),c
- 23 inc hl ; wPrevMapNumber
- 70 ld (hl),b
- AF xor a
- EA 22 DA ld ($DA22),a ; wOTPartyCount = 0
- EA A3 D8 ld ($D8A3),a ; make Red appear
- C9 ret
- ###
- 6) Exploration zone
- 6.1) Old Any% NSC box names
- BOX 1: p 'v , 'v é é 'r 2
- BOX 2: 'v ♂ é 'd 2 'l 'l 5
- BOX 3: p é é 4 é D 9
- BOX 4: é ? 2 'v 9 é ♂ 2
- BOX 5: 'v 8 é é 4 'v 't 'l
- BOX 6: 'v é é é 4 p
- BOX 7: é d 2 'd
- BOX 8-13: skip
- BOX 14 (D9/F9xx only): A A A 'm v 2
- AF D6 FE D6 EA EA D3 F8 50
- D6 EF EA D0 F8 D1 D1 FB 50
- AF EA EA FA EA 83 FF 50 50
- EA E6 F8 D6 FF EA EF F8 50
- D6 FE EA EA FA D6 D5 D1 50
- D6 EA EA EA FA AF 50 50 50
- EA A3 F8 D0 50 50 50 50 50
- ...
- 80 80 80 D2 B5 F8
- AF xor a
- D6 FE sub a,$FE
- D6 EA sub a,$EA
- EA D3 F8 ld ($F8D3),a
- D6 EF sub a,$FE
- EA D0 F8 D1 D1 FB
- AF EA EA FA EA 83 FF
- EA E6 F8 D6 FF EA EF F8
- D6 FE EA EA FA D6 D5 D1
- D6 EA EA EA FA AF
- EA A3 F8 D0
- ...
- 80 80 80 D2 B5 F8
- ###
- 6.2) Make every wild shiny & force species/level
- Original 'Make every wild shiny'
- F3 01 11 00 11 6D D7 21 63 DD CD 1A 31 D9 21 16
- D1 CB 46 28 09 21 F5 D0 01 FA AA 71 23 70 00
- r R i r q r h s q r . ; ; ; : &
- & R , ♀ ♂ ♂ ; ' ' Ké Po 3 w v v m checksum: ◘- 3
- g F Z Z z 's y y y Z Z ♂ 6 7 7 'v
- z P p : ' é é ; ; & , I i q q q checksum: ◘╗ 2
- F3 di
- 01 11 00 ld bc,0011
- 11 6D D7 ld de,D76D
- 21 63 DD ld hl,DD63 (wOTPartyMon1ID)
- CD 1A 31 call 311A (CopyBytes)
- D9 reti
- 21 16 D1 ld hl,D116 (wEnemyMonEnd)
- CB 46 bit 0,(hl)
- 28 09 jr z,sp+2+09
- 21 F5 D0 ld hl,D0F5 (wEnemyMonDVs)
- 01 FA AA ld bc,AAFA
- 71 ld (hl),c
- 23 inc hl
- 70 ld (hl),b
- 00 nop
- Original 'Force pokémon and level'
- F3 01 11 00 11 6D D7 21 63 DD CD 1A 31 D9 21 16
- D1 CB 4E 20 0A 21 ED D0 01 96 46 71 2E FC 70
- ↑↑↑↑↑↑↑↑ ↑↑ ↑↑↑↑↑ ↑↑↑↑↑↑↑↑
- ...
- 21 16 D1 ld hl,D116 (wEnemyMonEnd)
- CB 4E bit 1,(hl)
- 20 0A jr nz,sp+2+0A
- 21 ED D0 ld hl,D0ED (wTempEnemyMonSpecies)
- 01 96 46 ld bc,4696
- 71 ld (hl),c
- 2E FC ld l,FC
- 70 ld (hl),b
- Modif with fixed lv2 and species from wStepCount:
- 21 16 D1 ld hl,D116 (wEnemyMonEnd)
- CB 4E bit 1,(hl)
- 20 0A jr nz,sp+2+0A
- FA BD D9 ld a,(D9BD) ; wStepCount <<
- 4F ld c,a <<
- 3E 01 ld a,01 <<
- 47 ld b,a <<
- 21 ED D0 ld hl,D0ED (wTempEnemyMonSpecies)
- 71 ld (hl),c
- 2E FC ld l,FC
- 70 ld (hl),b
- EA B8 D5 ld (D5B8), a ; masterball in slot 1 of Items w/ a=01
- Attempt at a merge: (seems to work; max 55 bytes, 41 after reti)
- F3 01 29 00 11 6D D7 21 63 DD CD 1A 31 D9
- 21 16 D1 CB 46 28 09 21 F5 D0 01 FA AA 71 23 70
- 21 16 D1 CB 4E 20 0A FA BD D9 4F 3E 01 47 21 ED D0 71 2E FC 70
- EA B8 D5 00
- F3 di
- 01 29 00 ld bc,0029
- 11 6D D7 ld de,D76D
- 21 63 DD ld hl,DD63 (wOTPartyMon1ID)
- CD 1A 31 call 311A (CopyBytes)
- D9 reti
- 21 16 D1 ld hl,D116 (wEnemyMonEnd)
- CB 46 bit 0,(hl)
- 28 09 jr z,sp+2+09
- 21 F5 D0 ld hl,D0F5 (wEnemyMonDVs)
- 01 FA AA ld bc,AAFA
- 71 ld (hl),c
- 23 inc hl
- 70 ld (hl),b
- (21 16 D1 ld hl,D116 (wEnemyMonEnd))
- (CB 4E bit 1,(hl))
- (20 0A jr nz,sp+2+0A)
- FA BD D9 ld a,(D9BD) ; wStepCount <<
- 4F ld c,a <<
- 3E 01 ld a,01 <<
- 47 ld b,a <<
- 21 ED D0 ld hl,D0ED (wTempEnemyMonSpecies)
- 71 ld (hl),c
- 2E FC ld l,FC
- 70 ld (hl),b
- EA B8 D5 ld (D5B8), a ; masterball in slot 1 of Items w/ a=01
- (doesn't really work)
- (original starts at $DD55, §2+ is copied to $D76D)
- F3 di
- 01 29 00 ld bc,$0029 ; 41
- 11 6D D7 ld de,$D76D
- 21 63 DD ld hl,$DD63 (wOTPartyMon1ID)
- CD 1A 31 call $311A (CopyBytes)
- D9 reti
- 21 16 D1 ld hl,$D116 (wEnemyMonEnd)
- CB 46 bit 0,(hl)
- 28 22 jr z,pc+2+22
- CB 4E bit 1,(hl)
- 20 1E jr nz,pc+2+1E
- 21 F5 D0 ld hl,$D0F5 (wEnemyMonDVs)
- 01 FA AA ld bc,$AAFA
- 71 ld (hl),c
- 23 inc hl
- 70 ld (hl),b
- FA BD D9 ld a,(D9BD) ; wStepCount
- 4F ld c,a ; c = step count
- 3E 01 ld a,01
- EA B8 D5 ld (D5B8), a ; masterball in slot 1 of Items w/ a=01
- 47 ld b,a
- 21 ED D0 ld hl,D0ED (wTempEnemyMonSpecies)
- 71 ld (hl),c ; species based of step count
- 2E FC ld l,FC
- 70 ld (hl),b ; level 1
- 3D dec a ; a = 0
- EA 99 D1 ld ($D199), a ; wOptions, instant text
- ###
- 7) Original 'slider+Quagsire' setup for Coin Case
- Using Coin Case triggers 04:4741 UseItem
- (...)
- CoinCaseEffect (03:75E1)
- ld hl,CoinCaseEffect.CoinCaseCountTxt
- jp MenuTextboxWaitButton
- MenuTextboxWaitButton (00:1E79)
- call MenuTextbox
- ...
- MenuTextbox (00:1BC1)
- ...
- jp PrintText
- (...)
- PrintTextboxText (00:0F61)
- ld bc,C4B9
- call PrintTextboxTextAt
- PrintTextboxTextAt (00:1272)
- ...
- call DoTextUntilTerminator
- Starts reading data in ROM0:12C9
- ld a,(de) [45A4]
- ...
- 45A4: C
- 45A5: o
- 45A6: i
- 45A7: n
- 45A8: s
- 45A9: :
- 45AA: (0x4F)
- 45AB: @ (0x50 - terminator)
- Continues at 45AC
- Jumps to 00:E112 (apparently, data related to Pokémon cries)
- After Bellsprout cry & 2 pockets change : jump to EB12 (EB12->EC1F is Overworld Map)
- 00:EC78 jp c,FA98 is skipped
- 00:EC88 jp c,FA99 is hit (FA99 is wPartyMon3DefExp)
- 01:FAA2 jr z,FAA4 is hit (FAA2 is wPartyMon3PP move 2)
- 01:FABA jp D8C0 (C3 C0 D8, wPartyMon4Species wPartyMon4Item wPartyMon4Moves1)
- -> char 1 of box 1
- ! You can't swap items then Coin Case : need cry then immediately Coin Case !
- ~~~~~~~~~~~~~~~~~~~~~~
- Part 1: Coin Case ACE for TM17
- ~~~~~~~~~~~~~~~~~~~~~~
- Party : any, any, slider, Quagsire w/ held TM02 and Return in slot 1
- DABA: C3 }
- DABB: C0 }
- DABC: D8 } jp D8C0 (1st char of box 1)
- first set of box names (each ends with a terminator 50) :
- 1 Ap0'déy♀Pk = 80 AF F6 D0 EA B8 F5 E1 | 50
- 2 'v't'véé'l2h = D6 D5 D6 EA EA D1 F8 A7 | 50
- 3 'd'd2'v9.9't = D0 D0 F8 D6 FF E8 FF D5 | 50 [1st D0 will be overridden to 11]
- 4 é?2hhhhh = EA E6 F8 A7 A7 A7 A7 A7 | 50
- 5 h'm♀♀ = A7 D2 F5 F5 | 50 [2nd F5 will be overridden to 12]
- (empty lines are fillers, subtract 2000 to all 4-byte addresses)
- 1 80 add b
- AF xor a [a←0]
- F6 D0 or a,D0 [a←D0]
- EA B8 F5 ld (F5B8),a [F5B8←D0, 1st item in Items is set to TM17]
- E1 pop hl [ditches top of stack]
- 50 ld d,b
- 2 D6 D5 sub a,D5 [a←FB, c←1]
- D6 EA sub a,EA [a←11, c←0]
- EA D1 F8 ld (F8D1), a [F8D1←11, 1st char of box 3]
- A7 and a
- 50 ld d,b
- 3 11 D0 F8 ld de,F8D0 [de←F8D0]
- D6 FF sub a,FF [a←12, c←1]
- E8 FF add sp,FF [sp←DFBD, sort of realigning the stack to get 128A two slots below]
- D5 push de [replaces top of stack with F8D0]
- 50 ld d,b
- 4 EA E6 F8 ld (F8E6),a [F8E6←12, 4th char of box 5]
- A7 and a
- A7 and a
- A7 and a
- A7 and a
- A7 and a
- 50 ld d,b
- 5 A7 and a
- D2 F5 12 jp nc,12F5 [jump to 12F5, immediately after the display of the coin case amount]
- 50 ld d,b
- TextCommand FAR:
- ...
- pop hl [hl←F8D0, address of terminator of box 2]
- ...
- DoTextUntilTerminator:
- ldi a,(hl) [a←50, text terminator to finish printing]
- Setup to skip box 5 :
- 4 é~PK~2hh'm♀♀ = EA E1 F8 A7 A7 D2 F5 F5 | 50
- EA E1 F8 ld (F8E1),a [F8E1←12, 8th char of box 4]
- A7 and a
- A7 and a
- D2 F5 12 jp nc,12F5
- (better) Setup to get both TM17 in Items and TM09 in TM/HM
- 4 é?209éG♀ = EA E6 F8 F6 FF EA 86 F5 | 50
- 5 h'm♀♀ = A7 D2 F5 F5 | 50 [2nd F5 will be overridden to 12]
- 4 é?209éG♀ = EA E6 F8 F6 FF EA 86 F5 | 50
- EA E6 F8 ld (F8E1),a [F8E6←12, 4th char of box 5]
- F6 FF or a,FF
- EA 86 F5 ld (F586),a [sets 255 to TM09 quantity]
- 50 ld, d,b
- 5 A7 and a
- D2 F5 12 jp nc,12F5 [jump to 12F5, immediately after the display of the coin case amount]
- 50 ld d,b
- (even better)
- TM17 in Items, TM09 in TM/HM, no need to change box 1 for part 3
- >1 Ap0'déy♀ (the pop hl from PK character is 1st char of box 2 now)
- >2 Pk'v't'véé'l2
- 3 'd'd2'v9.9't
- 4 é?209éG♀
- 5 h'm♀♀
- 1 AF xor a [a←0]
- F6 D0 or a,D0 [a←D0]
- EA B8 F5 ld (F5B8),a [F5B8←D0, 1st item in Items is set to TM17]
- 50 ld d,b
- 50 ld d,b
- 2 E1 pop hl [ditches top of stack]
- D6 D5 sub a,D5 [a←FB, c←1]
- D6 EA sub a,EA [a←11, c←0]
- EA D1 F8 ld (F8D1), a [F8D1←11, 1st char of box 3]
- 50 ld d,b
- 3 11 D0 F8 ld de,F8D0 [de←F8D0]
- D6 FF sub a,FF [a←12, c←1]
- E8 FF add sp,FF [sp←DFBD, sort of realigning the stack to get 128A two slots below]
- D5 push de [replaces top of stack with F8D0]
- 50 ld d,b
- 4 EA E6 F8 ld (F8E6),a [F8E6←12, 4th char of box 5]
- F6 FF or a,FF
- EA 86 F5 ld (F586),a [sets 255 to TM09 quantity]
- 5 A7 and a
- D2 F5 12 jp nc,12F5 [jump to 12F5, immediately after the display of the coin case amount]
- 50 ld d,b
- ~~~~~~~~~~~~~~~~~
- Part 2: TM17 ACE for TM09 (obsolete)
- ~~~~~~~~~~~~~~~~~
- Party : Slider, Quagsire, etc.
- D8BF-D8C7: Ap09éG♀'d = 80 AF F6 FF EA 86 F5 D0
- Using TM17 then triggers a jp D8C0 (second character of Box 1 name)
- 80 add b [filler]
- AF xor a
- F6 FF or a,FF
- EA 86 F5 ld (F586),a [sets 255 to TM09 quantity]
- D0 ret nc
- ~~~
- Part 3: ???
- ~~~
- 1 Ap09éG♀'d = 80 AF F6 FF EA 86 F5 D0
- 2 p'va'vbé!2 =
- 3 'v[é?2'v85
- 4 é22'v3é02
- 5 hhh222hh
- 6 's82hhhéé
- 7 'd2G2h'd
- 8 's02hé,2h
- 9 's02hé/2h
- 10 's02'd
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- lucky ACE to avoid bad slider ?
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ; BOX 1-5:
- ; H é [mn] 2 H é T 'd
- ; U g é S 'd H E
- ; é & 2 'v 't é ( 'd
- ; U é ! 2 p p p é
- ; 4 é d 2 [pk] [pk] [pk] 'd
- ; BOX 7: X X X E g 'm v 2
- add a ; get 22
- ld [$f8e2], a
- add a ; get 44
- ld [$d093], a
- sub h
- and [hl] ; get $03
- ld [$d092], a
- add a
- add h ; get $df
- ld [$f8e9], a
- sub $d5 ; get $0a
- ld [$d09a], a
- sub h ; get $31
- ld [$f8e7], a
- xor a
- xor a
- xor a
- ld [$fa(22)], a ; encoded between box names
- ld [$f8a3], a
- (ld sp), $(df)e1
- ret nc
- sub a
- sub a
- sub a
- add h
- and [hl]
- jp nc, $f8b5
- ###
- 8) Addresses
- ~~~~~~~~~
- Box Names
- ~~~~~~~~~
- $D8BF to $D8C7 = Box 1
- $D8C8 to $D8D0 = Box 2
- $D8D1 to $D8D9 = Box 3
- $D8DA to $D8E2 = Box 4
- $D8E3 to $D8EB = Box 5
- $D8EC to $D8F4 = Box 6
- $D8F5 to $D8FD = Box 7
- $D8FE to $D906 = Box 8
- $D907 to $D90F = Box 9
- $D910 to $D918 = Box 10
- $D919 to $D921 = Box 11
- $D922 to $D92A = Box 12
- $D92B to $D933 = Box 13
- $D934 to $D93C = Box 14
- ~~~~~~~~~~~~~~~~
- Pokémon settings
- ~~~~~~~~~~~~~~~~
- DA2A = Pokémon 1 ----> $DA2B = Held Item
- DA5A = Pokémon 2 $DA2C to $DA2F = Moves
- DA8A = Pokémon 3 etc.
- DABA = Pokémon 4
- DAEA = Pokémon 5
- DB1A = Pokémon 6
- ~~~~~~~~~~~~~
- TM quantities
- ~~~~~~~~~~~~~
- F57E = TM01
- F57F = TM02
- etc.
- ###
- 9) Hexadecimal to gbz80
- 00 = nop
- 01 Xx Yy = ld bc,YyXx
- 02 = ld (bc),a
- 11 Xx Yy = ld de,YyXx
- 12 = ld (de),a
- 16 Xx = ld d,Xx
- 19 = add hl,de
- 20 Xx = jr nz,pc+2+Xx
- 21 Xx Yy = ld hl,YyXx
- 22 = ldi (hl), a
- 25 = dec h
- 26 Xx = ld h,Xx
- 28 Xx = jr z,pc+2+Xx
- 2A = ldi a,(hl)
- 30 Xx = jr nc,pc+2+Xx
- 34 = inc (hl)
- 36 Xx = ld (hl), Xx
- 38 Xx = jr c,pc+2+Xx
- 3C = inc a
- 3D = dec a
- 3E Xx = ld a,Xx
- 47 = ld b,a
- 4F = ld c,a
- 50 = ld d,b
- 5F = ld e,a
- 66 = ld h,(hl)
- 6F = ld l,a
- 77 = ld (hl), a
- 78 = ld a,b
- 80 = add b
- 81 = add c
- 88 = adc b
- 98 = sbc b
- A7 = and a
- AF = xor a
- B0 = or b
- C1 = pop bc
- C2 Xx Yy = jp nz,YyXx
- C4 Xx Yy = call nz, YyXx
- C5 = push bc
- C9 = ret
- CA Xx Yy = jp z,YyXx
- CB E6 = set 4, (hl)
- CD Xx Yy = call YyXx
- D0 = ret nc
- D1 = pop de
- D2 Xx Yy = jp nc, YyXx
- D5 = push de
- D6 Xx = sub a,Xx
- D7 = rst 10
- D9 = reti
- DA Xx Yy = jp c,YyXx
- E0 Xx = ld (FF00+Xx),a
- E1 = pop hl
- E5 = push hl
- E6 Xx = and a,Xx
- E8 Xx = add sp,Xx
- E9 = jp hl
- EA Xx Yy = ld (YyXx),a
- F0 Xx = ld a,(FF00+Xx)
- F1 = pop af
- F3 = di
- F5 = push af
- F6 Xx = or a,Xx
- FA Xx Yy = ld a,(YyXx)
- FB = ei
- FE Xx = cp a,Xx
- ###
- 10) Fixing Unowns
- FAAA
- 1111 1010 1010 1010
- ↓↓ ↓↓ ↓↓ ↓↓
- 11 01 01 01
- 213
- /10 = 21
- => V (we don't want that)
- Atk
- we want x01x to get a final letter <= K (10)
- => 0010 or 0011 or 1010 or 1011
- => 2 or 3 or 10 or 11
- => All these yield a shiny I
- Line 306 of https://pastebin.com/HreHsHsG needs to be changed to one of these
- 01 2A AA ld bc,$AA2A
- 01 3A AA ld bc,$AA3A
- 01 AA AA ld bc,$AAAA
- 01 BA AA ld bc,$AABA
- Additionnaly, Unowns must be unlocked : Kabuto puzzle (potentially buy an Escape Rope to save time after the puzzle is solved)
- => bypass : add `setflag ENGINE_UNLOCKED_UNOWNS_A_TO_K` somewhere
- MACRO setflag ; https://github.com/pret/pokegold/blob/c8d53d7d3e72f447d34183427ac492cb5484346e/macros/scripts/events.asm#L368
- db setflag_command ; $36
- dw \1 ; engine_flag
- ENDM
- ENGINE_UNLOCKED_UNOWNS_A_TO_K ; wUnlockedUnowns
- maybe try :
- ld xx, $FF ; all unowns (at least from A to K)
- ld yy, $DC3E ; wUnlockedUnowns
- ld (yy), xx
- Asociated code possibilities :
- F3 di
- 01 25 00 ld bc,$0025 ; 37
- 11 6D D7 ld de,$D76D
- 21 63 DD ld hl,$DD63 (wOTPartyMon1ID)
- CD 1A 31 call $311A (CopyBytes)
- D9 reti
- 21 F5 D0 ld hl,$D0F5 (wEnemyMonDVs)
- (only one of these 4, consider the best one in terms of mail writing)
- 01 2A AA ld bc,$AA2A ; 75 80 78 55 (unown after options)
- 01 3A AA ld bc,$AA3A ; 82 ""
- 01 AA AA ld bc,$AAAA ; 80 ""
- 01 BA AA ld bc,$AABA ; 82 ""
- 71 ld (hl),c
- 23 inc hl
- 70 ld (hl),b
- FA BD D9 ld a,(D9BD) ; wStepCount
- 4F ld c,a ; c = step count
- 3E 01 ld a,01
- EA B8 D5 ld (D5B8), a ; masterball in slot 1 of Items w/ a=01
- 47 ld b,a
- 21 ED D0 ld hl,D0ED (wTempEnemyMonSpecies)
- 71 ld (hl),c ; species based on step count
- 2E FC ld l,FC
- 70 ld (hl),b ; level 1
- 21 99 D1 ld hl, $D199 ; wOptions
- CB E6 set 4, (hl) ; instant text
- 21 3E DC ld hl,$DC3E ; wUnlockedUnowns <<< ADDED FOR
- 36 FF ld (hl), $FF ; all unowns (at least from A to K) <<< UNOWN FIX
- 01 A4 CE ld bc,$CEA4 ; wTileUp
- 3E 93 ld a,$93 ; PC
- 02 ld (bc),a ; PC anywhere when facing up and pressing A
- Fix :
- F3 di
- 01 27 00 ld bc,$0027 ; 39 (number of bytes in paragraphs 2+)
- 11 6D D7 ld de,$D76D
- 21 63 DD ld hl,$DD63 (wOTPartyMon1ID)
- CD 1A 31 call $311A (CopyBytes)
- D9 reti
- FA BD D9 ld a,($D9BD) ; wStepCount
- 4F ld c,a ; c = step count
- 3E 01 ld a,01
- EA B8 D5 ld ($D5B8), a ; masterball in slot 1 of Items w/ a=01
- 47 ld b,a
- 21 ED D0 ld hl,$D0ED ; wTempEnemyMonSpecies
- 71 ld (hl),c ; species based on step count
- 2E FC ld l,FC ; hl = $D0FC
- 70 ld (hl),b ; level 1
- 2E F5 ld l,F5 ; hl = $D0F5 (wEnemyMonDVs)
- 3E AA ld a,$AA
- 22 ldi (hl), a
- 22 ldi (hl), a ; hl = $D0F7 (DVs = $AAAA)
- 21 A4 CE ld hl,$CEA4 ; wTileUp
- 3E 93 ld a,$93 ; PC
- 77 ld (hl),a ; PC anywhere when facing up and pressing A
- 21 99 D1 ld hl,$D199 ; wOptions
- CB E6 set 4, (hl) ; instant text
- 21 3E DC ld hl,$DC3E ; wUnlockedUnowns <<< ADDED FOR
- 36 FF ld (hl), $FF ; all unowns (at least from A to K) <<< UNOWN FIX
- Associated mails :
- All 'l' are the 12th letter of the alphabet
- 1) r R l l l 'l v W V ! . ; ; ; : &
- & R , ♀ ♂ ♂ ; ' ] / / / t U U V checksum: 7 9
- (Select)
- 2) / / u ! w 'm l l l U T S S r s -
- z p p P N w 'd 'd 'l 'l M W 'd 'd 'd ) 2 checksum: 3 ╚◘
- (Select)
- 3) h h h pokédollar 4 (char 'w' 6 times) v M M M w
- w 'm ' 'r 'r 'l 'l space space ) ) ) ? 9 9 . checksum: 3 8
- (Select)
- 4) z p f , , , h . h r q q q q q q
- q q q q q q q q q q q q q q q q checksum: 2 0
- (Start)
- ###
- 11) Old Step 4 mails
- 1) h f f x x x y Q q r . ; ; ; : &
- & R , ♀ ♂ ♂ ; ' ' Ké Po 3 w v v L checksum: ◘╝ 6
- (Select)
- 2) T k l l l e ' é é ; ; & 'd 'd t U
- U V / / u ! w 'm l l b i I i h H checksum: 0 ◘-
- (Select)
- 3) s - z p p P N w 'd 'l 'l M W 'd 'd 'd
- 'l space space ) ) ) ? 9 ( s l l M M M w checksum: ◘╝ ◘_
- (Select)
- 4) h pokédollar 7 Z z Q q q q q q q q q q q
- q q q q q q q q q q q q q q q q checksum: ╔◘ 3
- (Start)
Add Comment
Please, Sign In to add comment