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)