Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- This code will allow you to put any move in any slot of your second party slot Pokémon without having to ever open you Pokémon summary. This also means that teaching unsketchable moves and glitch moves that crash the game when seen will no longer be a problem: thanks to the fact that you can choose the destination slot of the new move you'll be able to teach a full moveset of unstable moves and even teach the same move more than once (can be useful for some double corrupions). Two different procedures are available, one will work for all non-Japanese versions of Pokémon Emerald, one will work on Japanese Emerald
- ____________________________________________________Non Japanese Emerald procedure_____________________________________________________
- Instructions (make sure you can execute two codes in a row without using the Tower Cloning glitch):
- 1) Put the Pokémon you want to modify in your second party slot. Write box names for "Code 1" and save the game outside of Mauville's
- Pokémon Center. You can softreset if you want but it is not mandatory.
- 2) Enter Mauville's Pokémon Center and execute "Code 1" inside of it.
- 3) Change box names for "Code 2" and execute it right after, without ever exiting the Pokémon Center. Do not save nor softreset between
- the two executions.
- 4) Press A on the man sitting in the up-left corner of the room: you should not get any evident effect (no text, no pause...).
- 5) If everything worked properly, the Pokémon in your second party slot should have the desired move in the desired slot: save the
- game.
- 5 bis) If you're trying to teach an unstable glitch move, checking if the code actually worked or not may not be that easy but if the
- interaction with the NPC caused no evident effect and you got no crash/freeze the chance of the code still being wrong are
- really slim: you can save the game with almost no concern. After saving, check if the move is actually there: this will crash
- your game but that's not a problem anymore
- Box names will be different depending on the index number of move you want. Index number is a four digit hexadecimal value which, for this code, will be represented by the generic value YyXx(hex). The value of Y, y, X and x will be used to write box names.
- Example: Psycho Boost is 354(dex)=0162(hex) thus Y=0, y=1, X=6, x=2
- You can find a list of regular moves by index number here: https://bulbapedia.bulbagarden.net/wiki/List_of_moves
- All glitch moves can be obtained as well
- _____________________________________________________________________________________________________________________________________
- | |
- | Code 1 |
- |_____________________________________________________________________________________________________________________________________|
- For English versions:
- sbc r12,pc, B300 E2CFCCB3 %% R12=PC-B300
- movs r11, C70 E3B0BEC7 %% R11=C70
- -filler- B2AC00FF
- adc r11,r11, Cx000000 E2ABB4Cx %% R11=R11+Cx000000=Cx000C70
- -filler- B2ACFF00
- adc r11,r11, *000000D E2ABB2D* %% R11=R11+*000000D=Xx000C7D * = rightmost (1X-C)
- -filler- BFFF0000
- sbc r11,r11, B00 E2CBBEB0 %% R11=R11-B00-1=Xx00017C
- -filler- FF000000
- abc r11,r11, CF0000 E2ABB8CF %% R11=R11+CF0000=XxCF017C
- sbc r11,r11, C*0000 E2CBB8C* %% R11=R11-C*0000-1=Xx0Z017B * = F-slot
- -filler- 0000BFFF
- -filler- 00000000
- -filler- B2ACFF00
- strt r11, [r12]! E5ACB000
- -filler- BFFF0000
- mvn r12, E1 E3E0C0E1 %% R12=notE1=FFFFFF1E
- -filler- FF000000
- bic r12,r12, ED00000 E3CCC6ED %% R12=R12 and notED00000=F12FFF1E
- bic r11,r12, 1000000E E3CCB2E1 %% R11=R12 and not1000000E=E12FFF10=bx r0 opcpde
- -filler- B2AC00FF
- adcs r12,pc, 30 E2BFC1C0 %% R12=PC+30
- -filler- B2ACFF00
- strt r11, [r12]! E5ACB000 %% Store bx r0 opcode in [r12]
- -filler- BFFF0000
- sbc r12,lr, 2C40 E2CECDB1 %% R12=LR-2C40-1
- -filler- FF000000
- adc r12,r12 D30000 E2ACC8D3 %% R12=R12+D30000
- bic r12,r12, C00000 E3CCC8C0 %% R12=R12 and notC00000
- adc r12,r12 3FC0 E2ACCDFF %% R12=R12+3FC0
- sbc r0,r12, B0 E2CC00B0 %% R0=R12-B0-1=????ENG
- Box names:
- Box 1: ('RUnMD...o) [lefty '; one ...]
- Box 2: ( ?"*'!n ) [starts with space; righty "; righty '; ends with space] index of * = Cx
- * = F when x=0; G when x=1; H when x=2; I [upper case i] when x=3; J when x=4; K when x=5; L when x=6; M when x=7; N when x=8, O [upper case o] when x=9, P when x=A; Q when x=B; R when x=C; S when x=D; T when x=E; U when x=F
- Box 3: (?"*"!n ) [righty "; righty "; ends with two spaces]
- * = Z when X=0; a when X=1; b when X=2; c when X=3; d when X=4; e when X=5; f when X=6; g when X=7; h when X=8, i when X=9, j when X=A; k when X=B; V when X=C; W when X=D; X when X=E; Y when X=F
- Box 4: (E...DQn ) [one ...; ends with three spaces]
- Box 5: (U,!n*,Qn) * = U when move_slot=1; T when move_slot=2; S when move_slot=3; R when move_slot=4
- Box 6: (E ) [ends with seven spaces]
- Box 7: (?" ...?q ) [righty "; one space after "; one ...; ends with two spaces]
- Box 8: (EmFlo ) [lower case L; ends with three spaces]
- Box 9: (yLRom"Ro) [righty "]
- Box 10: ( ?"FGEn ) [starts with space; righty "; ends with space]
- Box 11: (?" ...?q ) [righty "; one space after "; one ...; ends with two spaces]
- Box 12: (E"STn ) [lefty "; ends with three spaces]
- Box 13: (YN?nFNRo)
- Box 14: (S?n... Rn ) [one ...; one space after ...; ends with space]
- _______________________________
- For Italian versions:
- sbc r12,pc, B300 E2CFCCB3 %% R12=PC-B300
- movs r11, C70 E3B0BEC7 %% R11=C70
- -filler- B2AC00FF
- adc r11,r11, Cx000000 E2ABB4Cx %% R11=R11+Cx000000=Cx000C70
- -filler- B2ACFF00
- adc r11,r11, *000000D E2ABB2D* %% R11=R11+*000000D=Xx000C7D * = rightmost (1X-C)
- -filler- BFFF0000
- sbc r11,r11, B00 E2CBBEB0 %% R11=R11-B00-1=Xx00017C
- -filler- FF000000
- abc r11,r11, CF0000 E2ABB8CF %% R11=R11+CF0000=XxCF017C
- sbc r11,r11, C*0000 E2CBB8C* %% R11=R11-C*0000-1=Xx0Z017B * = F-slot
- -filler- 0000BFFF
- -filler- 00000000
- -filler- B2ACFF00
- strt r11, [r12]! E5ACB000
- -filler- BFFF0000
- mvn r12, E1 E3E0C0E1 %% R12=notE1=FFFFFF1E
- -filler- FF000000
- bic r12,r12, ED00000 E3CCC6ED %% R12=R12 and notED00000=F12FFF1E
- bic r11,r12, 1000000E E3CCB2E1 %% R11=R12 and not1000000E=E12FFF10=bx r0 opcpde
- -filler- B2AC00FF
- adcs r12,pc, 30 E2BFC1C0 %% R12=PC+30
- -filler- B2ACFF00
- strt r11, [r12]! E5ACB000 %% Store bx r0 opcode in [r12]
- -filler- BFFF0000
- adc r12,lr, E00 E2AECEE0 %% R12=LR+E00
- -filler- FF000000
- adc r12,r12 D30000 E2ACC8D3 %% R12=R12+D30000
- bic r12,r12, C00000 E3CCC8C0 %% R12=R12 and notC00000
- -filler- B2AC00FF
- adc r0,r12, DE E2AC00DE %% R0=R12+DE=????ITA
- Box names:
- Box 1: ('RUnMD...o) [lefty '; one ...]
- Box 2: ( ?"*'!n ) [starts with space; righty "; righty '; ends with space] index of * = Cx
- * = F when x=0; G when x=1; H when x=2; I [upper case i] when x=3; J when x=4; K when x=5; L when x=6; M when x=7; N when x=8, O [upper case o] when x=9, P when x=A; Q when x=B; R when x=C; S when x=D; T when x=E; U when x=F
- Box 3: (?"*"!n ) [righty "; righty "; ends with two spaces]
- * = Z when X=0; a when X=1; b when X=2; c when X=3; d when X=4; e when X=5; f when X=6; g when X=7; h when X=8, i when X=9, j when X=A; k when X=B; V when X=C; W when X=D; X when X=E; Y when X=F
- Box 4: (E...DQn ) [one ...; ends with three spaces]
- Box 5: (U,!n*,Qn) * = U when move_slot=1; T when move_slot=2; S when move_slot=3; R when move_slot=4
- Box 6: (E ) [ends with seven spaces]
- Box 7: (?" ...?q ) [righty "; one space after "; one ...; ends with two spaces]
- Box 8: (EmFlo ) [lower case L; ends with three spaces]
- Box 9: (yLRom"Ro) [righty "]
- Box 10: ( ?"FGEn ) [starts with space; righty "; ends with space]
- Box 11: (?" ...?q ) [righty "; one space after "; one ...; ends with two spaces]
- Box 12: (ElT-n ) [lower case L; ends with three spaces]
- Box 13: (YN?nFNRo)
- Box 14: ( ?"j ?n ) [starts with space, righty "; one space after j; ends with space]
- _______________________________
- For German versions:
- sbc r12,pc, B300 E2CFCCB3 %% R12=PC-B300
- movs r11, C70 E3B0BEC7 %% R11=C70
- -filler- B2AC00FF
- adc r11,r11, Cx000000 E2ABB4Cx %% R11=R11+Cx000000=Cx000C70
- -filler- B2ACFF00
- adc r11,r11, *000000D E2ABB2D* %% R11=R11+*000000D=Xx000C7D * = rightmost (1X-C)
- -filler- BFFF0000
- sbc r11,r11, B00 E2CBBEB0 %% R11=R11-B00-1=Xx00017C
- -filler- FF000000
- abc r11,r11, CF0000 E2ABB8CF %% R11=R11+CF0000=XxCF017C
- sbc r11,r11, C*0000 E2CBB8C* %% R11=R11-C*0000-1=Xx0Z017B * = F-slot
- -filler- 0000BFFF
- -filler- 00000000
- -filler- B2ACFF00
- strt r11, [r12]! E5ACB000
- -filler- BFFF0000
- mvn r12, E1 E3E0C0E1 %% R12=notE1=FFFFFF1E
- -filler- FF000000
- bic r12,r12, ED00000 E3CCC6ED %% R12=R12 and notED00000=F12FFF1E
- bic r11,r12, 1000000E E3CCB2E1 %% R11=R12 and not1000000E=E12FFF10=bx r0 opcpde
- -filler- B2AC00FF
- adcs r12,pc, 30 E2BFC1C0 %% R12=PC+30
- -filler- B2ACFF00
- strt r11, [r12]! E5ACB000 %% Store bx r0 opcode in [r12]
- -filler- BFFF0000
- adc r12,lr, E10 E2AECEE1 %% R12=LR+E10
- -filler- FF000000
- adc r12,r12 D30000 E2ACC8D3 %% R12=R12+D30000
- bic r12,r12, C00000 E3CCC8C0 %% R12=R12 and notC00000
- -filler- B2AC00FF
- adc r0,r12, E2 E2AC00E2 %% R0=R12+E2=????GER
- Box names:
- Box 1: ('RUnMD...o) [lefty '; one ...]
- Box 2: ( ?"*'!n ) [starts with space; righty "; righty '; ends with space] index of * = Cx
- * = F when x=0; G when x=1; H when x=2; I [upper case i] when x=3; J when x=4; K when x=5; L when x=6; M when x=7; N when x=8, O [upper case o] when x=9, P when x=A; Q when x=B; R when x=C; S when x=D; T when x=E; U when x=F
- Box 3: (?"*"!n ) [righty "; righty "; ends with two spaces]
- * = Z when X=0; a when X=1; b when X=2; c when X=3; d when X=4; e when X=5; f when X=6; g when X=7; h when X=8, i when X=9, j when X=A; k when X=B; V when X=C; W when X=D; X when X=E; Y when X=F
- Box 4: (E...DQn ) [one ...; ends with three spaces]
- Box 5: (U,!n*,Qn) * = U when move_slot=1; T when move_slot=2; S when move_slot=3; R when move_slot=4
- Box 6: (E ) [ends with seven spaces]
- Box 7: (?" ...?q ) [righty "; one space after "; one ...; ends with two spaces]
- Box 8: (EmFlo ) [lower case L; ends with three spaces]
- Box 9: (yLRom"Ro) [righty "]
- Box 10: ( ?"FGEn ) [starts with space; righty "; ends with space]
- Box 11: (?" ...?q ) [righty "; one space after "; one ...; ends with two spaces]
- Box 12: (EmT-n ) [ends with three spaces]
- Box 13: (YN?nFNRo)
- Box 14: ( ?"n ?n ) [starts with space, righty "; one space after n; ends with space]
- _______________________________
- For Spanish versions:
- sbc r12,pc, B300 E2CFCCB3 %% R12=PC-B300
- movs r11, C70 E3B0BEC7 %% R11=C70
- -filler- B2AC00FF
- adc r11,r11, Cx000000 E2ABB4Cx %% R11=R11+Cx000000=Cx000C70
- -filler- B2ACFF00
- adc r11,r11, *000000D E2ABB2D* %% R11=R11+*000000D=Xx000C7D * = rightmost (1X-C)
- -filler- BFFF0000
- sbc r11,r11, B00 E2CBBEB0 %% R11=R11-B00-1=Xx00017C
- -filler- FF000000
- abc r11,r11, CF0000 E2ABB8CF %% R11=R11+CF0000=XxCF017C
- sbc r11,r11, C*0000 E2CBB8C* %% R11=R11-C*0000-1=Xx0Z017B * = F-slot
- -filler- 0000BFFF
- -filler- 00000000
- -filler- B2ACFF00
- strt r11, [r12]! E5ACB000
- -filler- BFFF0000
- mvn r12, E1 E3E0C0E1 %% R12=notE1=FFFFFF1E
- -filler- FF000000
- bic r12,r12, ED00000 E3CCC6ED %% R12=R12 and notED00000=F12FFF1E
- bic r11,r12, 1000000E E3CCB2E1 %% R11=R12 and not1000000E=E12FFF10=bx r0 opcpde
- -filler- B2AC00FF
- adcs r12,pc, 30 E2BFC1C0 %% R12=PC+30
- -filler- B2ACFF00
- strt r11, [r12]! E5ACB000 %% Store bx r0 opcode in [r12]
- -filler- BFFF0000
- adc r12,lr, E10 E2AECEE1 %% R12=LR+E10
- -filler- FF000000
- adc r12,r12 D30000 E2ACC8D3 %% R12=R12+D30000
- bic r12,r12, C00000 E3CCC8C0 %% R12=R12 and notC00000
- -filler- B2AC00FF
- adc r0,r12, D6 E2AC00D6 %% R0=R12+D6=????SPA
- Box names:
- Box 1: ('RUnMD...o) [lefty '; one ...]
- Box 2: ( ?"*'!n ) [starts with space; righty "; righty '; ends with space] index of * = Cx
- * = F when x=0; G when x=1; H when x=2; I [upper case i] when x=3; J when x=4; K when x=5; L when x=6; M when x=7; N when x=8, O [upper case o] when x=9, P when x=A; Q when x=B; R when x=C; S when x=D; T when x=E; U when x=F
- Box 3: (?"*"!n ) [righty "; righty "; ends with two spaces]
- * = Z when X=0; a when X=1; b when X=2; c when X=3; d when X=4; e when X=5; f when X=6; g when X=7; h when X=8, i when X=9, j when X=A; k when X=B; V when X=C; W when X=D; X when X=E; Y when X=F
- Box 4: (E...DQn ) [one ...; ends with three spaces]
- Box 5: (U,!n*,Qn) * = U when move_slot=1; T when move_slot=2; S when move_slot=3; R when move_slot=4
- Box 6: (E ) [ends with seven spaces]
- Box 7: (?" ...?q ) [righty "; one space after "; one ...; ends with two spaces]
- Box 8: (EmFlo ) [lower case L; ends with three spaces]
- Box 9: (yLRom"Ro) [righty "]
- Box 10: ( ?"FGEn ) [starts with space; righty "; ends with space]
- Box 11: (?" ...?q ) [righty "; one space after "; one ...; ends with two spaces]
- Box 12: (EmT-n ) [ends with three spaces]
- Box 13: (YN?nFNRo)
- Box 14: ( ?"b ?n ) [starts with space, righty "; one space after a; ends with space]
- _______________________________
- For French versions:
- sbc r12,pc, B300 E2CFCCB3 %% R12=PC-B300
- movs r11, C70 E3B0BEC7 %% R11=C70
- -filler- B2AC00FF
- adc r11,r11, Cx000000 E2ABB4Cx %% R11=R11+Cx000000=Cx000C70
- -filler- B2ACFF00
- adc r11,r11, *000000D E2ABB2D* %% R11=R11+*000000D=Xx000C7D * = rightmost (1X-C)
- -filler- BFFF0000
- sbc r11,r11, B00 E2CBBEB0 %% R11=R11-B00-1=Xx00017C
- -filler- FF000000
- abc r11,r11, CF0000 E2ABB8CF %% R11=R11+CF0000=XxCF017C
- sbc r11,r11, C*0000 E2CBB8C* %% R11=R11-C*0000-1=Xx0Z017B * = F-slot
- -filler- 0000BFFF
- -filler- 00000000
- -filler- B2ACFF00
- strt r11, [r12]! E5ACB000
- -filler- BFFF0000
- mvn r12, E1 E3E0C0E1 %% R12=notE1=FFFFFF1E
- -filler- FF000000
- bic r12,r12, ED00000 E3CCC6ED %% R12=R12 and notED00000=F12FFF1E
- bic r11,r12, 1000000E E3CCB2E1 %% R11=R12 and not1000000E=E12FFF10=bx r0 opcpde
- -filler- B2AC00FF
- adcs r12,pc, 30 E2BFC1C0 %% R12=PC+30
- -filler- B2ACFF00
- strt r11, [r12]! E5ACB000 %% Store bx r0 opcode in [r12]
- -filler- BFFF0000
- adc r12,lr, E30 E2AECEE3 %% R12=LR+E30
- -filler- FF000000
- adc r12,r12 D30000 E2ACC8D3 %% R12=R12+D30000
- bic r12,r12, C00000 E3CCC8C0 %% R12=R12 and notC00000
- -filler- B2AC00FF
- adc r0,r12, E2 E2AC00E2 %% R0=R12+E2=????FRA
- Box names:
- Box 1: ('RUnMD...o) [lefty '; one ...]
- Box 2: ( ?"*'!n ) [starts with space; righty "; righty '; ends with space] index of * = Cx
- * = F when x=0; G when x=1; H when x=2; I [upper case i] when x=3; J when x=4; K when x=5; L when x=6; M when x=7; N when x=8, O [upper case o] when x=9, P when x=A; Q when x=B; R when x=C; S when x=D; T when x=E; U when x=F
- Box 3: (?"*"!n ) [righty "; righty "; ends with two spaces]
- * = Z when X=0; a when X=1; b when X=2; c when X=3; d when X=4; e when X=5; f when X=6; g when X=7; h when X=8, i when X=9, j when X=A; k when X=B; V when X=C; W when X=D; X when X=E; Y when X=F
- Box 4: (E...DQn ) [one ...; ends with three spaces]
- Box 5: (U,!n*,Qn) * = U when move_slot=1; T when move_slot=2; S when move_slot=3; R when move_slot=4
- Box 6: (E ) [ends with seven spaces]
- Box 7: (?" ...?q ) [righty "; one space after "; one ...; ends with two spaces]
- Box 8: (EmFlo ) [lower case L; ends with three spaces]
- Box 9: (yLRom"Ro) [righty "]
- Box 10: ( ?"FGEn ) [starts with space; righty "; ends with space]
- Box 11: (?" ...?q ) [righty "; one space after "; one ...; ends with two spaces]
- Box 12: (EoT-n ) [ends with three spaces]
- Box 13: (YN?nFNRo)
- Box 14: ( ?"n ?n ) [starts with space, righty "; one space after n; ends with space]
- _______________________________________________________________________________________________________________________________________
- _____________________________________________________________________________________________________________________________________
- | |
- | Code 2 |
- |_____________________________________________________________________________________________________________________________________|
- For English versions:
- sbc r12,pc, B300 E2CFCCB3 %% R12=PC-B300
- movs r11, Cy E3B0B0Cy %% R11=Cy
- -filler- B2AC00FF
- abc r11,r11, C*0 E2ABBEC* %% R11=R11+C*0=°Yy * = rightmost(1Y-C); ° = C when Y=C-F, D when Y=0-B
- -filler- B2ACFF00
- abc r11,r11, C*00 E2ABBCC* %% R11=R11+C*00=D2Yy * = 6 when Y=C-F, 5 when Y=0-B
- -filler- BFFF0000
- abc r11,r11, C3000 E2ABBAC3 %% R11=R11+C3000=D02Yy
- -filler- FF000000
- strh r11 [r12, *] E1CCB0B* * = 2 on emulator, 4 on console
- sbc r12,r12, ED E2CCC0ED %% R12=R12-ED
- -filler- B2AC00FF
- sbc r11,r12, CC E2CCB0CC %% R11=R12-CC
- -filler- B2ACFF00
- strt r12, [r11]! E5ABC000
- -filler- BFFF0000
- mvn r12, E1 E3E0C0E1 %% R12=notE1=FFFFFF1E
- -filler- FF000000
- bic r12,r12, ED00000 E3CCC6ED %% R12=R12 and notED00000=F12FFF1E
- bic r11,r12, 1000000E E3CCB2E1 %% R11=R12 and not1000000E=E12FFF10=bx r0 opcpde
- -filler- B2AC00FF
- adcs r12,pc, 30 E2BFC1C0 %% R12=PC+30
- -filler- B2ACFF00
- strt r11, [r12]! E5ACB000 %% Store bx r0 opcode in [r12]
- -filler- BFFF0000
- sbc r12,lr, 2C40 E2CECDB1 %% R12=LR-2C40-1
- -filler- FF000000
- adc r12,r12 D30000 E2ACC8D3 %% R12=R12+D30000
- bic r12,r12, C00000 E3CCC8C0 %% R12=R12 and notC00000
- adc r12,r12 3FC0 E2ACCDFF %% R12=R12+3FC0
- sbc r0,r12, B0 E2CC00B0 %% R0=R12-B0-1=????ENG
- Box names:
- Box 1: ('RUn*......o) [lefty '; two ...]
- * = F when y=0; G when y=1; H when y=2; I [upper case i] when y=3; J when y=4; K when y=5; L when y=6; M when y=7; N when y=8, O [upper case o] when y=9, P when y=A; Q when y=B; R when y=C; S when y=D; T when y=E; U when y=F
- Box 2: ( ?"*D!n ) [starts with space; righty "; ends with space]
- * = J when Y=0; K when Y=1; L when Y=2; M when Y=3; N when Y=4; O [upper case o] when Y=5; P when Y=6; Q when Y=7; R when Y=8, S when Y=9, T when Y=A; U when Y=B; F when Y=C; G when Y=D; H when Y=E; I [upper case i] when Y=F
- Box 3: (?"*B!n ) [righty "; ends with two spaces] * = L when Y=C-F, K when Y=0-B
- Box 4: (EI/!n ) [upper case i; ends with three spaces]
- Box 5: (*...RmyFRn) [one ...] * = " [righty "] on emulator, ' [righty ']console
- Box 6: ( ?"R...Rn ) [starts with space; righty "; one ...; ends with space]
- Box 7: (?" F!q ) [righty "; one space after "; ends with two spaces]
- Box 8: (EmFlo ) [lower case L; ends with three spaces]
- Box 9: (yLRom"Ro) [righty "]
- Box 10: ( ?"FGEn ) [starts with space; righty "; ends with space]
- Box 11: (?" ...?q ) [righty "; one space after "; one ...; ends with two spaces]
- Box 12: (E"STn ) [lefty "; ends with three spaces]
- Box 13: (YN?nFNRo)
- Box 14: (S?n... Rn ) [one ...; one space after ...; ends with space]
- _______________________________
- For Italian versions:
- sbc r12,pc, B300 E2CFCCB3 %% R12=PC-B300
- movs r11, Cy E3B0B0Cy %% R11=Cy
- -filler- B2AC00FF
- abc r11,r11, C*0 E2ABBEC* %% R11=R11+C*0=°Yy * = rightmost(1Y-C); ° = C when Y=C-F, D when Y=0-B
- -filler- B2ACFF00
- abc r11,r11, C*00 E2ABBCC* %% R11=R11+C*00=D2Yy * = 6 when Y=C-F, 5 when Y=0-B
- -filler- BFFF0000
- abc r11,r11, C3000 E2ABBAC3 %% R11=R11+C3000=D02Yy
- -filler- FF000000
- strh r11 [r12, *] E1CCB0B* * = 2 on emulator, 4 on console
- sbc r12,r12, ED E2CCC0ED %% R12=R12-ED
- -filler- B2AC00FF
- sbc r11,r12, CC E2CCB0CC %% R11=R12-CC
- -filler- B2ACFF00
- strt r12, [r11]! E5ABC000
- -filler- BFFF0000
- mvn r12, E1 E3E0C0E1 %% R12=notE1=FFFFFF1E
- -filler- FF000000
- bic r12,r12, ED00000 E3CCC6ED %% R12=R12 and notED00000=F12FFF1E
- bic r11,r12, 1000000E E3CCB2E1 %% R11=R12 and not1000000E=E12FFF10=bx r0 opcpde
- -filler- B2AC00FF
- adcs r12,pc, 30 E2BFC1C0 %% R12=PC+30
- -filler- B2ACFF00
- strt r11, [r12]! E5ACB000 %% Store bx r0 opcode in [r12]
- -filler- BFFF0000
- adc r12,lr, E00 E2AECEE0 %% R12=LR+E00
- -filler- FF000000
- adc r12,r12 D30000 E2ACC8D3 %% R12=R12+D30000
- bic r12,r12, C00000 E3CCC8C0 %% R12=R12 and notC00000
- -filler- B2AC00FF
- adc r0,r12, DE E2AC00DE %% R0=R12+DE=????ITA
- Box names:
- Box 1: ('RUn*......o) [lefty '; two ...]
- * = F when y=0; G when y=1; H when y=2; I [upper case i] when y=3; J when y=4; K when y=5; L when y=6; M when y=7; N when y=8, O [upper case o] when y=9, P when y=A; Q when y=B; R when y=C; S when y=D; T when y=E; U when y=F
- Box 2: ( ?"*D!n ) [starts with space; righty "; ends with space]
- * = J when Y=0; K when Y=1; L when Y=2; M when Y=3; N when Y=4; O [upper case o] when Y=5; P when Y=6; Q when Y=7; R when Y=8, S when Y=9, T when Y=A; U when Y=B; F when Y=C; G when Y=D; H when Y=E; I [upper case i] when Y=F
- Box 3: (?"*B!n ) [righty "; ends with two spaces] * = L when Y=C-F, K when Y=0-B
- Box 4: (EI/!n ) [upper case i; ends with three spaces]
- Box 5: (*...RmyFRn) [one ...] * = " [righty "] on emulator, ' [righty ']console
- Box 6: ( ?"R...Rn ) [starts with space; righty "; one ...; ends with space]
- Box 7: (?" F!q ) [righty "; one space after "; ends with two spaces]
- Box 8: (EmFlo ) [lower case L; ends with three spaces]
- Box 9: (yLRom"Ro) [righty "]
- Box 10: ( ?"FGEn ) [starts with space; righty "; ends with space]
- Box 11: (?" ...?q ) [righty "; one space after "; one ...; ends with two spaces]
- Box 12: (ElT-n ) [lower case L; ends with three spaces]
- Box 13: (YN?nFNRo)
- Box 14: ( ?"j ?n ) [starts with space, righty "; one space after j; ends with space]
- _______________________________
- For German versions:
- sbc r12,pc, B300 E2CFCCB3 %% R12=PC-B300
- movs r11, Cy E3B0B0Cy %% R11=Cy
- -filler- B2AC00FF
- abc r11,r11, C*0 E2ABBEC* %% R11=R11+C*0=°Yy * = rightmost(1Y-C); ° = C when Y=C-F, D when Y=0-B
- -filler- B2ACFF00
- abc r11,r11, C*00 E2ABBCC* %% R11=R11+C*00=D2Yy * = 6 when Y=C-F, 5 when Y=0-B
- -filler- BFFF0000
- abc r11,r11, C3000 E2ABBAC3 %% R11=R11+C3000=D02Yy
- -filler- FF000000
- strh r11 [r12, *] E1CCB0B* * = 2 on emulator, 4 on console
- sbc r12,r12, ED E2CCC0ED %% R12=R12-ED
- -filler- B2AC00FF
- sbc r11,r12, CC E2CCB0CC %% R11=R12-CC
- -filler- B2ACFF00
- strt r12, [r11]! E5ABC000
- -filler- BFFF0000
- mvn r12, E1 E3E0C0E1 %% R12=notE1=FFFFFF1E
- -filler- FF000000
- bic r12,r12, ED00000 E3CCC6ED %% R12=R12 and notED00000=F12FFF1E
- bic r11,r12, 1000000E E3CCB2E1 %% R11=R12 and not1000000E=E12FFF10=bx r0 opcpde
- -filler- B2AC00FF
- adcs r12,pc, 30 E2BFC1C0 %% R12=PC+30
- -filler- B2ACFF00
- strt r11, [r12]! E5ACB000 %% Store bx r0 opcode in [r12]
- -filler- BFFF0000
- adc r12,lr, E10 E2AECEE1 %% R12=LR+E10
- -filler- FF000000
- adc r12,r12 D30000 E2ACC8D3 %% R12=R12+D30000
- bic r12,r12, C00000 E3CCC8C0 %% R12=R12 and notC00000
- -filler- B2AC00FF
- adc r0,r12, E2 E2AC00E2 %% R0=R12+E2=????GER
- Box names:
- Box 1: ('RUn*......o) [lefty '; two ...]
- * = F when y=0; G when y=1; H when y=2; I [upper case i] when y=3; J when y=4; K when y=5; L when y=6; M when y=7; N when y=8, O [upper case o] when y=9, P when y=A; Q when y=B; R when y=C; S when y=D; T when y=E; U when y=F
- Box 2: ( ?"*D!n ) [starts with space; righty "; ends with space]
- * = J when Y=0; K when Y=1; L when Y=2; M when Y=3; N when Y=4; O [upper case o] when Y=5; P when Y=6; Q when Y=7; R when Y=8, S when Y=9, T when Y=A; U when Y=B; F when Y=C; G when Y=D; H when Y=E; I [upper case i] when Y=F
- Box 3: (?"*B!n ) [righty "; ends with two spaces] * = L when Y=C-F, K when Y=0-B
- Box 4: (EI/!n ) [upper case i; ends with three spaces]
- Box 5: (*...RmyFRn) [one ...] * = " [righty "] on emulator, ' [righty ']console
- Box 6: ( ?"R...Rn ) [starts with space; righty "; one ...; ends with space]
- Box 7: (?" F!q ) [righty "; one space after "; ends with two spaces]
- Box 8: (EmFlo ) [lower case L; ends with three spaces]
- Box 9: (yLRom"Ro) [righty "]
- Box 10: ( ?"FGEn ) [starts with space; righty "; ends with space]
- Box 11: (?" ...?q ) [righty "; one space after "; one ...; ends with two spaces]
- Box 12: (EmT-n ) [ends with three spaces]
- Box 13: (YN?nFNRo)
- Box 14: ( ?"n ?n ) [starts with space, righty "; one space after n; ends with space]
- _______________________________
- For Spanish versions:
- sbc r12,pc, B300 E2CFCCB3 %% R12=PC-B300
- movs r11, Cy E3B0B0Cy %% R11=Cy
- -filler- B2AC00FF
- abc r11,r11, C*0 E2ABBEC* %% R11=R11+C*0=°Yy * = rightmost(1Y-C); ° = C when Y=C-F, D when Y=0-B
- -filler- B2ACFF00
- abc r11,r11, C*00 E2ABBCC* %% R11=R11+C*00=D2Yy * = 6 when Y=C-F, 5 when Y=0-B
- -filler- BFFF0000
- abc r11,r11, C3000 E2ABBAC3 %% R11=R11+C3000=D02Yy
- -filler- FF000000
- strh r11 [r12, *] E1CCB0B* * = 2 on emulator, 4 on console
- sbc r12,r12, ED E2CCC0ED %% R12=R12-ED
- -filler- B2AC00FF
- sbc r11,r12, CC E2CCB0CC %% R11=R12-CC
- -filler- B2ACFF00
- strt r12, [r11]! E5ABC000
- -filler- BFFF0000
- mvn r12, E1 E3E0C0E1 %% R12=notE1=FFFFFF1E
- -filler- FF000000
- bic r12,r12, ED00000 E3CCC6ED %% R12=R12 and notED00000=F12FFF1E
- bic r11,r12, 1000000E E3CCB2E1 %% R11=R12 and not1000000E=E12FFF10=bx r0 opcpde
- -filler- B2AC00FF
- adcs r12,pc, 30 E2BFC1C0 %% R12=PC+30
- -filler- B2ACFF00
- strt r11, [r12]! E5ACB000 %% Store bx r0 opcode in [r12]
- -filler- BFFF0000
- adc r12,lr, E10 E2AECEE1 %% R12=LR+E10
- -filler- FF000000
- adc r12,r12 D30000 E2ACC8D3 %% R12=R12+D30000
- bic r12,r12, C00000 E3CCC8C0 %% R12=R12 and notC00000
- -filler- B2AC00FF
- adc r0,r12, D6 E2AC00D6 %% R0=R12+D6=????SPA
- Box names:
- Box 1: ('RUn*......o) [lefty '; two ...]
- * = F when y=0; G when y=1; H when y=2; I [upper case i] when y=3; J when y=4; K when y=5; L when y=6; M when y=7; N when y=8, O [upper case o] when y=9, P when y=A; Q when y=B; R when y=C; S when y=D; T when y=E; U when y=F
- Box 2: ( ?"*D!n ) [starts with space; righty "; ends with space]
- * = J when Y=0; K when Y=1; L when Y=2; M when Y=3; N when Y=4; O [upper case o] when Y=5; P when Y=6; Q when Y=7; R when Y=8, S when Y=9, T when Y=A; U when Y=B; F when Y=C; G when Y=D; H when Y=E; I [upper case i] when Y=F
- Box 3: (?"*B!n ) [righty "; ends with two spaces] * = L when Y=C-F, K when Y=0-B
- Box 4: (EI/!n ) [upper case i; ends with three spaces]
- Box 5: (*...RmyFRn) [one ...] * = " [righty "] on emulator, ' [righty ']console
- Box 6: ( ?"R...Rn ) [starts with space; righty "; one ...; ends with space]
- Box 7: (?" F!q ) [righty "; one space after "; ends with two spaces]
- Box 8: (EmFlo ) [lower case L; ends with three spaces]
- Box 9: (yLRom"Ro) [righty "]
- Box 10: ( ?"FGEn ) [starts with space; righty "; ends with space]
- Box 11: (?" ...?q ) [righty "; one space after "; one ...; ends with two spaces]
- Box 12: (EmT-n ) [ends with three spaces]
- Box 13: (YN?nFNRo)
- Box 14: ( ?"b ?n ) [starts with space, righty "; one space after a; ends with space]
- _______________________________
- For French versions:
- sbc r12,pc, B300 E2CFCCB3 %% R12=PC-B300
- movs r11, Cy E3B0B0Cy %% R11=Cy
- -filler- B2AC00FF
- abc r11,r11, C*0 E2ABBEC* %% R11=R11+C*0=°Yy * = rightmost(1Y-C); ° = C when Y=C-F, D when Y=0-B
- -filler- B2ACFF00
- abc r11,r11, C*00 E2ABBCC* %% R11=R11+C*00=D2Yy * = 6 when Y=C-F, 5 when Y=0-B
- -filler- BFFF0000
- abc r11,r11, C3000 E2ABBAC3 %% R11=R11+C3000=D02Yy
- -filler- FF000000
- strh r11 [r12, *] E1CCB0B* * = 2 on emulator, 4 on console
- sbc r12,r12, ED E2CCC0ED %% R12=R12-ED
- -filler- B2AC00FF
- sbc r11,r12, CC E2CCB0CC %% R11=R12-CC
- -filler- B2ACFF00
- strt r12, [r11]! E5ABC000
- -filler- BFFF0000
- mvn r12, E1 E3E0C0E1 %% R12=notE1=FFFFFF1E
- -filler- FF000000
- bic r12,r12, ED00000 E3CCC6ED %% R12=R12 and notED00000=F12FFF1E
- bic r11,r12, 1000000E E3CCB2E1 %% R11=R12 and not1000000E=E12FFF10=bx r0 opcpde
- -filler- B2AC00FF
- adcs r12,pc, 30 E2BFC1C0 %% R12=PC+30
- -filler- B2ACFF00
- strt r11, [r12]! E5ACB000 %% Store bx r0 opcode in [r12]
- -filler- BFFF0000
- adc r12,lr, E30 E2AECEE3 %% R12=LR+E30
- -filler- FF000000
- adc r12,r12 D30000 E2ACC8D3 %% R12=R12+D30000
- bic r12,r12, C00000 E3CCC8C0 %% R12=R12 and notC00000
- -filler- B2AC00FF
- adc r0,r12, E2 E2AC00E2 %% R0=R12+E2=????FRA
- Box names:
- Box 1: ('RUn*......o) [lefty '; two ...]
- * = F when y=0; G when y=1; H when y=2; I [upper case i] when y=3; J when y=4; K when y=5; L when y=6; M when y=7; N when y=8, O [upper case o] when y=9, P when y=A; Q when y=B; R when y=C; S when y=D; T when y=E; U when y=F
- Box 2: ( ?"*D!n ) [starts with space; righty "; ends with space]
- * = J when Y=0; K when Y=1; L when Y=2; M when Y=3; N when Y=4; O [upper case o] when Y=5; P when Y=6; Q when Y=7; R when Y=8, S when Y=9, T when Y=A; U when Y=B; F when Y=C; G when Y=D; H when Y=E; I [upper case i] when Y=F
- Box 3: (?"*B!n ) [righty "; ends with two spaces] * = L when Y=C-F, K when Y=0-B
- Box 4: (EI/!n ) [upper case i; ends with three spaces]
- Box 5: (*...RmyFRn) [one ...] * = " [righty "] on emulator, ' [righty ']console
- Box 6: ( ?"R...Rn ) [starts with space; righty "; one ...; ends with space]
- Box 7: (?" F!q ) [righty "; one space after "; ends with two spaces]
- Box 8: (EmFlo ) [lower case L; ends with three spaces]
- Box 9: (yLRom"Ro) [righty "]
- Box 10: ( ?"FGEn ) [starts with space; righty "; ends with space]
- Box 11: (?" ...?q ) [righty "; one space after "; one ...; ends with two spaces]
- Box 12: (EoT-n ) [ends with three spaces]
- Box 13: (YN?nFNRo)
- Box 14: ( ?"n ?n ) [starts with space, righty "; one space after n; ends with space]
- _______________________________________________________________________________________________________________________________________
- ____________________________________________Japanese Emerald procedure (0x085F execution)______________________________________________
- Instructions (the code must be executed with Pokémon 0x085F, executing with 0x0615 will not work):
- 1) Put the Pokémon you want to modify in your second party slot. Write the box names and save the game outside of Mauville's
- Pokémon Center. You can softreset if you want but it is not mandatory.
- 2) Enter Mauville's Pokémon Center and execute the code inside of it.
- 3) Press A on the man sitting in the up-left corner of the room: you should not get any evident effect (no text, no pause...).
- 4) If everything worked properly, the Pokémon in your second party slot should have the desired move in the desired slot: save the
- game.
- 4 bis) If you're trying to teach an unstable glitch move, checking if the code actually worked or not may not be that easy but if the
- interaction with the NPC caused no evident effect and you got no crash/freeze the chance of the code still being wrong are
- really slim: you can save the game with almost no concern. After saving, check if the move is actually there: this will crash
- your game but that's not a problem anymore
- Box names will be different depending on the index number of move you want. You can find a list of regular moves by index number here: https://bulbapedia.bulbagarden.net/wiki/List_of_moves
- After converting the index of the move you desired to hexadecimal you sahould have a four digits value (pad with zeros to the left if necessary), whose generic representation is xxXX. Knowing xx and XX you can calculate four two-digit values: yy, YY, zz and ZZ. Calculate them in this simple way:
- IF xx=[00,B6] or [BA,EE] THEN zz=00,yy=xx
- IF xx=[B7,B9] THEN zz=xx-B6,yy=B6
- IF xx=[EF,FF] THEN zz=xx-EE,yy=EE
- IF XX=[00,B6] or [BA,EE] THEN ZZ=00,YY=XX
- IF XX=[B7,B9] THEN ZZ=XX-B6,YY=B6
- IF XX=[EF,FF] THEN ZZ=XX-EE,YY=EE
- Those four values represent the indexes of four variable characters: to find out the actual characters corresponding to those indexes use this table: https://bulbapedia.bulbagarden.net/wiki/Character_encoding_(Generation_III)#Japanese (character 00 is a space)
- All glitch moves can be obtained as well and the indexs in those cases are self explanatory
- mov r1,pc 4679 %% R1=PC+2
- ldr r0 pc+3C 480F %% R0=B3EC
- sub r1,r1,r0 1A09 %% R1=R1-R0
- mov r0,r1 1C08 %% R0=R1
- -filler- 00FF
- sub r1,r1,CC 39CC
- str r0,[r1] 6008
- b pc,4 E000 %% Skip bad filler
- -Bad filler- FF00
- add r0,r0,8C 308C %% R0+R0=8C
- ldr r1 pc+18 4906 %% R1=YY0@017B
- ldr r2 pc+20 4A08 %% R2=ZZ000000
- add r1,r1,r2 1889 %% R1=R1+R2=XX0@017B
- -filler- 00FF
- str r1,[r0] 6001
- ldr r1 pc+1C 4907 %% R1=FF0002yy
- b pc,4 E000 %% Skip bad filler
- -Bad filler- FF00
- adc r1,r1,zz 31zz %% R1=R1+zz=FF0002xx
- strh r1,[r0,4] 8081
- bx lr 4770
- -filler- 0000
- -filler- 00FF
- -filler- 0000
- -data- 017B
- -data- YY0*
- -filler- FF00
- -filler- 0000
- -data- 0000
- -data- ZZ00
- -data- 02yy
- -data- 00FF
- -data- B3EC
- -data- 0000
- Box names:
- Box 1 (ルばそぶけはくふ)
- Box 2 ( Rぐくタ l ) [starts with space; one space after タ; lower case L; ends with space]
- Box 3 (ザぃかべくぼグね) [ぃ not い; べ not ベ]
- Box 4 ( あタきべ l ) [starts with space; あ not ぁ; べ not ベ; one space afer べ; lower case L; ends with space]
- Box 5 (*ぅゥィミび ) [ぅ not う; ends with two spaces]
- index of * = zz
- Box 6 ( ロあ*@ ) [starts with three spaceas; あ not ぁ; ends with space]
- * = [one space] for move slot 1, あ [あ not ぁ] for move slot 2, い [い not ぃ] for move slot 3, う [う not ぅ] for move slot 4
- index of @ = YY
- Box 7 ( *@い) [い not ぃ]
- index of * = ZZ
- index of @ = yy
- Box 8 ( x「 ) [starts with space; ends with five spaces]
- Box 9 onwards: Anything
- _______________________________________________________________________________________________________________________________________
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement