Mimilena
Mimilena Strike Back
Esta rutina fue diseñada por MeroMero, yo solo la traje a este foro y traduje los textos explicativos.
Agradecimientos a @Keux por mostrarme la thread donde encontre esto.@Leer 649 Pokemon:
@Crear salvado:
lrpl_020298CE:
NOP
LDR R4, [R0, #0x5C]
MVN R3, R3
MOV R1, R1, LSL R2
AND R3, R4, R3
ORR R1, R3, R1
STR R1, [R0, #0x5C]
LDMFD SP!, {LR}
LDMFD SP!, {R3-R4}
BX LR
@Genero secundario:
xrpl_0202946C:
NOP
ADD R5, R5, #0xC4
SUB R0, R0, #1
BX LR
@Alternar entre el género primario y secundario:
xrpl_0202947A:
NOP
MOV R0, #0x60
MUL R0, R7, R0
ADD R1, R5, R0
BX LR
@Duplicar pokemon capturados:
xrpl_02029BF0:
NOP
ADD R3, R5, #0x1E4
MOV R1, R4, LSR #3
ADD R3, R1, R3
AND R1, R4, #7
MOV R2, #1
MOV R1, R2, LSL R1
LDRB R2, [R3]
ORR R2, R1, R2
CMP R4, #7
ORRLS R2, R2, #1
STRB R2, [R3]
MOV R1, #1
MOV R1, R1, LSL R0
ADD LR, LR, #0xE
BX LR
@Formas alternas (Unown):
lrpl_0202955C:
NOP
MOVEQ R1, #0x63
MOVNE R1, #0x6A
B .AltUnown
lrpl_0202957E:
NOP
MOVEQ R2, #0x63
MOVNE R2, #0x6A
.AltUnown:
ADD R3, LR, #2
LDMFD SP!, {LR}
BX R3
xrpl_020295A8:
NOP
@ CMP R0, #0
MOVEQ R0, #0x63
MOVNE R0, #0x6A
BX LR
xrpl_02029DB2:
NOP
MOV R0, #0x18C
BX LR
xrpl_02029DBE:
NOP
MOV R0, #0x1A8
BX LR
xrpl_02029DCC:
NOP
MVN R0, #0
STR R0, [R4, #0x188]
MOV R0, #0xFF
ADD LR, LR, #0x16
BX LR
xrpl_0202A132:
NOP
MOV R0, #0x6A
B .SpriteUnown
xrpl_0202A13C:
NOP
MOV R0, #0x63
.SpriteUnown:
ADD R1, R5, R4
BX LR
@Sprite de huevo malo (coodenadas Y):
xrpl_020702BE:
xrpl_020702C4:
xrpl_02070998:
xrpl_0207099E:
NOP
BX LR
xrpl_020702A6:
NOP
CMP R4, R2
BXLE LR
ADD R2, R1, #0xE5
CMP R4, R2 @huevo es considerado la especie 650
ADDEQ LR, LR, #0xDA
BXEQ LR
ADD R1, R1, #0xE6
CMP R4, R1 @huevo malo es considerado la especie 651
ADD LR, LR, #0xEA
ADDNE LR, LR, #0x66
BX LR
xrpl_02070980:
NOP
CMP R5, R2
BXLE LR
ADD R2, R1, #0xE5
CMP R5, R2 @coodenadas Y del huevo
ADDEQ LR, LR, #0x7C
BXEQ LR
ADD R1, R1, #0xE6
CMP R5, R1 @Coordenadas Y del huevo malo
ADD LR, LR, #0x84
ADDNE LR, LR, #0x36
BX LR
@Pokédex carga 649 entradas:
xrpl_021F7B8A_ov_12:
xrpl_021F7BA8_ov_12:
NOP
LDR R1, =0x512
MOV R0, #0x25
BX LR
xrpl_021F7B9A_ov_12:
NOP
MOV R0, R6
B .Read649
xrpl_021F7BB8_ov_12:
NOP
MOV R0, R4
.Read649:
LDR R2, =0x512
BX LR
@Otros:
xrpl_02029908:
NOP
SUB R2, R4, #2
ADD R5, R5, #0x64
BX LR
xrpl_0202A032:
NOP
LDRB R1, [R2, #0x64]
BX LR
xrpl_0202A078:
NOP
LDRB R1, [R1, #0x64]
BX LR
xrpl_0202A0E6:
NOP
ADD R2, R2, #0x64
MOV R1, #1
BX LR
@escribir Pokédex:
xrpl_021F7E94_ov_12:
NOP
LDRB R0, [R4]
STRB R0, [R5]
LDRB R0, [R4, #1]
STRB R0, [R5, #1]
BX LR
xrpl_021F7EA4_ov_12:
NOP
MOV R0, #2
B .SeenCaught
xrpl_021F7EB0_ov_12:
NOP
MOV R0, #1
.SeenCaught:
STRB R0, [R5, #2]
BX LR
xrpl_021F7EB8_ov_12:
NOP
ADD R4, R4, #2
ADD R5, R5, #3
BX LR
@leed el ultimo pokemon visto:
xrpl_021F85D8_ov_12:
NOP
MOV R3, #3
MUL R1, R3, R1
ADD R2, R2, R1
BX LR
xrpl_021F85DE_ov_12:
NOP
ADD R3, R2, #0x870
LDRB R1, [R3]
LDRB R3, [R3, #1]
MOV R3, R3, LSL #8
ORR R1, R3, R1
BX LR
@leer pokedex (=0x1028 or =0x102A):
xrpl_021E6B62_ov_12:
NOP
MOV R2, R1
ADD R2, R0, R2
BX LR
xrpl_021E6B66_ov_12:
xrpl_021E6C36_ov_12:
xrpl_021F1CFE_ov_12:
xrpl_021F1FB6_ov_12:
NOP
LDR R0, =0x1548
LDRB R0, [R2, R0]
BX LR
xrpl_021E6C1C_ov_12:
NOP
ADD R1, R7, R0
STR R1, [SP, #4]
MOV R0, R0, LSL #1
ADD R1, R7, R0
BX LR
xrpl_021E6C22_ov_12:
NOP
LDRH R1, [R1, R0]
BX LR
xrpl_021EE832_ov_12:
NOP
ADD R1, R6, R0
BX LR
xrpl_021EE836_ov_12:
xrpl_021EE970_ov_12:
xrpl_021EECFC_ov_12:
NOP
LDR R0, =0x1548
LDRB R0, [R1, R0]
BX LR
xrpl_021EE96A_ov_12:
NOP
MOV R0, R2
MOV R7, R1
BX LR
xrpl_021EEAE4_ov_12:
xrpl_021EEB94_ov_12:
NOP
MOV R2, R7
MOV R1, #0
BX LR
xrpl_021EEAF4_ov_12:
xrpl_021EEBA4_ov_12:
NOP
LDR R2, =0x1548
LDR R1, [SP, #0x10]
LDRB R2, [R3, R2]
BX LR
xrpl_021EECF8_ov_12:
NOP
MOV R0, R7
ADD R1, R5, R0
BX LR
xrpl_021F14BA_ov_12:
NOP
ADD R1, R5, R0
STR R1, [SP, #4]
MOV R4, R4, LSL #1
ADD R0, R5, R0
BX LR
xrpl_021F14BE_ov_12:
NOP
LDR R1, =0x512
CMP R4, R1
LDRH R1, [R0, R4]
MOVCS R1, #0
BX LR
xrpl_021F14F8_ov_12:
NOP
LDR R0, =0x1548
MOV R1, R4, LSR #1
ADD R1, R5, R1
LDRB R0, [R1, R0]
BX LR
xrpl_021F1CFA_ov_12:
xrpl_021F1FB2_ov_12:
NOP
MOV R0, R2
ADD R2, R5, R0
BX LR
xrpl_021F2DCA_ov_12:
NOP
ADD R3, R0, R1
BX LR
xrpl_021F2DCE_ov_12:
NOP
LDR R1, =0x1548
LDRB R1, [R3, R1]
BX LR
xrpl_021F84DC_ov_12:
NOP
MOV R0, R0, LSL #1
ADD R1, R4, R0
BX LR
xrpl_021F84E0_ov_12:
NOP
SUB R4, R1, R4
LDR R0, =0x512
CMP R4, R0
LDR R4, =0x1028
LDRH R0, [R1, R4]
MOVCS R0, #0
LDMFD SP!, {R4, LR}
BX LR
@Cursor:
lrpl_021F84FC_ov_12:
NOP
LDR R2, =PseudoStack
STR R8, [R2]
LDRB R8, [R0, #1]
MOV R8, R8, LSL #8
LDRB R2, [R0]
ORR R2, R8, R2
MOVEQ R4, R2 @Primer Pokémon visto en orden Pokédex
LDR R8, =PseudoStack
LDR R8, [R8]
CMP R1, R2
ADD R2, LR, #2
B .SeenPokemon
lrpl_021F850C_ov_12:
NOP
ADD R3, R3, #1
ADD R0, R0, #3
CMP R3, R5
MOV R2, LR
.SeenPokemon:
LDMFD SP!, {LR}
BX R2
xrpl_021F854A_ov_12:
NOP
ADD R1, R4, R1
LDRB R0, [R1]
LDRB R1, [R1, #1]
MOV R1, R1, LSL #8
ORR R1, R0, R1
LDR R0, =0x1850
LDRB R0, [R5, R0]
BX LR
xrpl_021F855A_ov_12:
NOP
ADD R1, R4, R1
LDRB R2, [R1]
LDRB R1, [R1, #1]
MOV R1, R1, LSL #8
ORR R2, R1, R2
MOV R0, R0, LSL #1
LDR R1, =0x1028
ADD R1, R0, R1
STRH R2, [R5, R1]
MOV R0, R0, LSR #1
ADD R0, R5, R0
ADD LR, LR, #4
BX LR
xrpl_021F856A_ov_12:
NOP
LDR R1, =0x872
LDRB R2, [R4, R1]
LDR R1, =0x1548
ADD R4, R4, #3
STRB R2, [R0, R1]
BX LR
@graficos de las formas alternas:
xrpl_020741E2:
NOP
LDR R2, =0x289
CMP R4, #0xC9 @Unown
ADDEQ R4, R2, #2
MOV R1, #0x15C
ADD R1, R1, #3 @Castform
CMP R4, R1
ADDEQ R4, R2, #0x1D
ADD R1, R1, #0x23 @Deoxys
CMP R4, R1
ADDEQ R4, R2, #0x20
CMP R4, #0x19C @Burmy
ADDEQ R4, R2, #0x23
ADD R1, R1, #0x1B @WORmadam
CMP R4, R1
ADDEQ R4, R2, #0x25
ADD R1, R1, #8 @Cherrim
CMP R4, R1
ADDEQ R4, R2, #0x27
ADD R1, R1, #1 @Shellos
CMP R4, R1
ADDEQ R4, R2, #0x28
ADD R1, R1, #1 @Gastrodon
CMP R4, R1
ADDEQ R4, R2, #0x29
ADD R1, R1, #0x38 @Rotom
CMP R4, R1
ADDEQ R4, R2, #0x2A
ADD R1, R1, #8 @Giratina
CMP R4, R1
ADDEQ R4, R2, #0x2F
CMP R4, #0x1EC @Shaymin
ADDEQ R4, R2, #0x30
ADD R1, R1, #0x3F @Basculin
CMP R4, R1
ADDEQ R4, R2, #0x31
ADD R1, R1, #5 @Darmanitan!!!!!!!!!!!!!!
CMP R4, R1
ADDEQ R4, R2, #0x32
ADD R1, R1, #0x1E @Deerling
CMP R4, R1
ADDEQ R4, R2, #0x33
ADD R1, R1, #1 @Sawsbuck
CMP R4, R1
ADDEQ R4, R2, #0x36
ADD R1, R1, #0x37 @Tornadus
CMP R4, R1
ADDEQ R4, R2, #0x39
ADD R1, R1, #1 @Thundurus
CMP R4, R1
ADDEQ R4, R2, #0x3A
ADD R1, R1, #3 @LANdorus
CMP R4, R1
ADDEQ R4, R2, #0x3B
ADD R1, R1, #1 @Kyurem
CMP R4, R1
ADDEQ R4, R2, #0x3C
ADD R1, R1, #1 @Keldeo
CMP R4, R1
ADDEQ R4, R2, #0x3E
CMP R4, #0x288 @Meloetta
ADDEQ R4, R2, #0x3F
ADD R1, R1, #2 @Genesect
CMP R4, R1
ADDEQ R4, R2, #0x40
CMP R4, R2 @Comprueba si esta es una forma alternativa
ADD R4, R0, R4
ADD LR, LR, #0x74
SUBLS R4, R4, R0
ADD R0, R4, #7
LDMHIFD SP!, {R4, LR}
BX LR
@iconos:
xrpl_02074264:
NOP
LDR R4, =GenderBit
LDRB R4, [R4] @Get gender bit
CMP R4, #0
LDRNE R4, =0x2CE
ADDNE R0, R4, R0
LDMFD SP!, {R4, LR}
BX LR
@Castform y Cherrim:
xrpl_02074292:
NOP
LDR R0, =0x2AD
B .GraphicFiles
xrpl_020742AE:
NOP
LDR R0, =0x2B7
.GraphicFiles:
ADD R0, R2, R0
BX LR
@iconos de huevos:
lrpl_0207436A:
NOP
CMP R0, R1
ADDEQ R0, R1, #0xA1 @huevo manaphy
ADDNE R0, R1, #0xA0 @huevo
MOV R1, LR
LDMFD SP!, {LR}
BX R1
@paleta de las formas alternas:
lrpl_02074384:
NOP
CMP R0, #0xC9 @Unown
ADDEQ R0, R2, #2
MOV R3, #0x15C
ADD R3, R3, #3 @Castform
CMP R0, R3
ADDEQ R0, R2, #0x1D
ADD R3, R3, #0x23 @Deoxys
CMP R0, R3
ADDEQ R0, R2, #0x20
CMP R0, #0x19C @Burmy
ADDEQ R0, R2, #0x23
ADD R3, R3, #0x1B @WORmadam
CMP R0, R3
ADDEQ R0, R2, #0x25
ADD R3, R3, #8 @Cherrim
CMP R0, R3
ADDEQ R0, R2, #0x27
ADD R3, R3, #1 @Shellos
CMP R0, R3
ADDEQ R0, R2, #0x28
ADD R3, R3, #1 @Gastrodon
CMP R0, R3
ADDEQ R0, R2, #0x29
ADD R3, R3, #0x38 @Rotom
CMP R0, R3
ADDEQ R0, R2, #0x2A
ADD R3, R3, #8 @Giratina
CMP R0, R3
ADDEQ R0, R2, #0x2F
CMP R0, #0x1EC @Shaymin
ADDEQ R0, R2, #0x30
ADD R3, R3, #0x3F @Basculin
CMP R0, R3
ADDEQ R0, R2, #0x31
ADD R3, R3, #5 @Darmanitan!!!!!!!!!!!!!!
CMP R0, R3
ADDEQ R0, R2, #0x32
ADD R3, R3, #0x1E @Deerling
CMP R0, R3
ADDEQ R0, R2, #0x33
ADD R3, R3, #1 @Sawsbuck
CMP R0, R3
ADDEQ R0, R2, #0x36
ADD R3, R3, #0x37 @Tornadus
CMP R0, R3
ADDEQ R0, R2, #0x39
ADD R3, R3, #1 @Thundurus
CMP R0, R3
ADDEQ R0, R2, #0x3A
ADD R3, R3, #3 @LANdorus
CMP R0, R3
ADDEQ R0, R2, #0x3B
ADD R3, R3, #1 @Kyurem
CMP R0, R3
ADDEQ R0, R2, #0x3C
ADD R3, R3, #1 @Keldeo
CMP R0, R3
ADDEQ R0, R2, #0x3E
CMP R0, #0x288 @Meloetta
ADDEQ R0, R2, #0x3F
ADD R3, R3, #2 @Genesect
CMP R0, R3
ADDEQ R0, R2, #0x40
CMP R0, R2 @Comprueba si esta es una forma alternativa
ADD R0, R1, R0
SUBLS R0, R0, R1
ADD R1, LR, #0x6E
LDMFD SP!, {LR}
BX R1
@La paleta tiene 4 bits (2 para hombres y 2 para mujeres)
lrpl_020743FA:
NOP
ANDS R2, R0, #1 @Comprueba si el número de Pokémon es impar
MOV R0, R0, LSR #1
LDRB R0, [R1, R0]
MOVNE R0, R0, LSR #4
LDR R2, =GenderBit
LDRB R3, [R2] @obtener el bit del genero
CMP R3, #0
MOV R3, #0
STRB R3, [R2] @resetar GenderBit al primer byte
MOVNE R0, R0, LSR #2
AND R0, R0, #3
LDMFD SP!, {LR}
BX LR
@comprueba si el pokemon a sido visto:
xrpl_0202A3C2:
NOP
LDRB R2, [R2, #0x64]
BX LR
xrpl_0202A494:
NOP
LDRB R3, [R3, #0x64]
BX LR
@primera forma de spinda vista:
xrpl_0202A3D2:
xrpl_0202A4A4:
NOP
STR R0, [R5, #0x184]
BX LR
@si el pokemon ya a sido visto:
xrpl_0202A3E8:
NOP
LDRB R2, [R2, #0xC4]
BX LR
xrpl_0202A4BA:
NOP
LDRB R0, [R0, #0xC4]
BX LR
@terminar pokemon vistos:
xrpl_0202A412:
NOP
MOV R1, #7
B .EndPokemonSeen
xrpl_0202A524:
NOP
ORR R2, R3, R2
.EndPokemonSeen:
ADD R5, R5, #0x64
BX LR
@Pokédex
xrpl_021F14C8_ov_12:
NOP
LDR R0, [R0]
LDR R2, =PokedexGender
ADD R0, R0, #0xC4
STR R0, [R2] @offset almacenado
SUB R0, R0, #0xC4
MOV R2, #0
BX LR
xrpl_021F14E4_ov_12:
NOP
LDR R0, =PokedexGender
STR R1, [R0, #4] @Almacena pokemon temporalmente
LDR R3, [R0] @obtienel el offset
SUB R1, R1, #1
MOV R1, R1, LSR #3 @toma el byte del offset
ADD R3, R1, R3
STR R3, [R0] @offset almacenado
LDR R1, [R0, #4]
SUB R1, R1, #1
AND R1, R1, #7
MOV R3, #1
MOV R3, R3, LSL R1
LDR R1, [R0]
LDRB R1, [R1] @obtiene el offset del pokemon
TST R1, R3
LDR R1, [R0, #4] @Recupera al pokemon
LDR R0, =GenderBit
MOVEQ R3, #0 @bit del macho
MOVNE R3, #1 @bit de la hembra
STRB R3, [R0]
MOV R0, R5
MOV R3, R6
BX LR
xrpl_02029C3C:
NOP
ADD R3, R3, #0xC4
LDR R1, =PokedexGender
STR R3, [R1, #8] @Offset
STR R0, [R1, #0xC] @Bit
MOV R1, #1
LDRB R3, [R3]
BX LR
@segundo genero registrado:
xrpl_02029C5C:
NOP
LDRB R2, [R2, #0x124]
BX LR
@Zone tab:
xrpl_021F3A76_ov_12:
NOP
LDR R3, =PokedexGender
LDR R0, [R3, #8] @obtiene el offset
LDRB R0, [R0] @obtiene el byte
LDR R3, [R3, #0xC] @obtiene el bit para comparar
TST R0, R3
LDR R3, =GenderBit
MOVEQ R0, #0 @bit del macho
MOVNE R0, #1 @bit de la hembra
STRB R0, [R3]
MOV R0, R7
MOV R3, #1
BX LR
@pestaña del peso:
xrpl_021F4A26_ov_12:
xrpl_021F4A34_ov_12:
NOP
LDR R3, =PokedexGender
LDR R0, [R3, #8] @obtiene offset
LDRB R0, [R0] @obtiene byte
LDR R3, [R3, #0xC] @obtiene el bit para comparar
LDR R2, =GenderBit
TST R0, R3
MOVEQ R0, #0 @bit del macho
MOVNE R0, #1 @bit de la hembra
STRB R0, [R2]
MOV R0, R5
LDRH R1, [R5, R1]
BX LR
@pestaña de formas:
xrpl_021F5CFE_ov_12:
NOP
LDR R2, =PokedexGender
LDR R0, [R2, #8] @obtiene offset
CMP R7, #0
ADDNE R0, R0, #0x60
LDRB R0, [R0] @obtiene byte
LDR R1, [R2, #0xC] @obtiene el bit para comparar
TST R0, R1
LDR R2, =GenderBit
MOVEQ R0, #0 @bit del macho
MOVNE R0, #1 @bit de la hembra
STRB R0, [R2]
MOV R0, R5
MOV R1, R4
BX LR
@pestaña de comparacion:
xrpl_021F0E00_ov_12:
NOP
MOV R0, R5
LDSB R2, [R5, R2]
LDR R1, =GenderBit
STRB R2, [R1, #1]
BX LR
xrpl_021F63F0_ov_12:
NOP
LDR R1, =GenderBit
LDRB R1, [R1, #1]
CMP R1, #0
LDR R1, =PokedexGender
LDR R0, [R1, #8] @obtiene offset
ADDNE R0, R0, #0x60
B .CompareFiles
xrpl_021F63FC_ov_12:
NOP
LDR R1, =GenderBit
LDRB R1, [R1, #1]
CMP R1, #0
LDR R1, =PokedexGender
LDR R0, [R1, #8] @obtiene offset
ADDEQ R0, R0, #0x60
.CompareFiles:
LDRB R0, [R0] @obtiene byte
LDR R1, [R1, #0xC] @obtiene bit para comparar
TST R0, R1
LDR R1, =GenderBit
MOVEQ R0, #0 @bit del macho
MOVNE R0, #1 @bit de la hembra
STRB R0, [R1]
MOV R0, R4
LDSB R2, [R4, R2]
BX LR
xrpl_021F640A_ov_12:
NOP
LDR R0, =GenderBit
MOV R1, #0
STR R1, [R0] @reinicia GenderBit
MOV R0, R4
MOV R1, #0xE
BX LR
xrpl_0224E830_ov_0C:
NOP
LDR R6, =FormeStack
AND R1, R1, #0x1F
CMP R5, #0
STREQB R1, [R6]
CMP R5, #0x180
STREQB R1, [R6, #1]
MOV R1, #0xC0
MOV R6, R0
BX LR
xrpl_0224D504_ov_0C:
NOP
MOV R1, #1
STRB R1, [R4, R0]
LDR R3, =FormeStack
MOV R4, #0
STR R4, [R3]
BX LR
xrpl_02263DB6_ov_0C:
NOP
MOV R2, R2, LSR #0x1F
STRB R2, [R3, #5]
LDR R5, =FormeStack
ADD R2, R1, #0x26
LDRB R2, [R4, R2]
AND R2, R2, #0x1F
CMP R6, #0
STREQB R2, [R5]
CMP R6, #0x180
STREQB R2, [R5, #1]
BX LR
lrpl_0223BC12_ov_0C:
NOP
STMFD SP!, {R3}
STRB R1, [R0, R2]
LDR R3, =FormeStack
STRB R1, [R3, #2]
LDMFD SP!, {R3}
LDMFD SP!, {LR}
BX LR
xrpl_02074668:
NOP
MUL R0, R4, R0
ADD R0, R5, R0
LDR R3, =FormeStack
LDRB R5, [R3, #2]
CMP R5, #0
MOVEQ R5, R7
MOVNE R5, R4
LDR R3, =OffsetParty
CMP R5, #5
STRLS R0, [R3, R5, LSL #2]
BX LR
xrpl_0226709A_ov_0C:
NOP
CMP R1, #0
MOVNE R1, #1
LDR R0, =FormeStack
STRB R1, [R0, #3]
LDR R0, =0x10203
MOV R1, #0x4D
BX LR
xrpl_020741DE:
NOP
STMFD SP!, {R2-R3}
LDR R2, =FormeStack
LDR R3, =0x15F
CMP R4, R3
BNE .CherrimDarmanitan
LDRB R3, [R2, #2]
CMP R3, #0
LDREQB R3, [R2, #3]
BEQ .SuccessCastform
LDR R2, =OffsetParty
LDR R3, [R2]
CMP R3, R5
MOVEQ R3, #0
BEQ .SuccessCastform
LDR R3, [R2, #4]
CMP R3, R5
MOVEQ R3, #1
BNE .NCGRCalc
.SuccessCastform:
LDR R2, =FormeStack
LDRB R0, [R2, R3]
CMP R0, #3
MOVHI R0, #0
B .NCGRCalc
.CherrimDarmanitan:
ADD R3, R3, #0x46
CMP R4, R3
ADDNE R3, R3, #0x86 @Darmanitan
CMPNE R4, R3
BNE .NCGRCalc
LDRB R3, [R2, #2]
CMP R3, #0
LDREQB R3, [R2, #3]
BEQ .SuccessCherrimDarmanitan
LDR R2, =OffsetParty
LDR R3, [R2]
CMP R3, R5
MOVEQ R3, #0
BEQ .SuccessCherrimDarmanitan
LDR R3, [R2, #4]
CMP R3, R5
MOVEQ R3, #1
BNE .NCGRCalc
.SuccessCherrimDarmanitan:
LDR R2, =FormeStack
LDRB R0, [R2, R3]
CMP R0, #1
MOVHI R0, #0
.NCGRCalc:
LDMFD SP!, {R2-R3}
CMP R0, #0
ADDEQ LR, LR, #0x78
BXEQ LR
LDR R1, =0x15F @Castform
CMP R4, R1
ADDEQ R1, R1, #0xA7
ADDEQ R1, R1, #0xA7
BEQ .NCGR
ADD R1, R1, #0x46 @Cherrim
CMP R4, R1
ADDEQ R1, R1, #0x89
ADDEQ R1, R1, #0x89
BEQ .NCGR
ADD R1, R1, #0x86 @Darmanitan
CMP R4, R1
ADDEQ R1, R1, #0x97
.NCGR:
ADDEQ R0, R0, R1 @Add form index
LDMEQFD SP!, {R4, LR}
BX LR
xrpl_0207447C:
xrpl_02220AEA_ov_08:
NOP
STMFD SP!, {R0, R2-R3}
LDR R2, =FormeStack
LDR R3, =0x15F
CMP R0, R3
BNE .Cherrim3
LDRB R0, [R2, #2]
CMP R0, #0
MOVNE R0, R7
LDREQB R0, [R2, #3]
CMP R0, #1
BHI .DefaultNCLR
LDRB R1, [R2, R0]
CMP R1, #3
MOVHI R1, #0
B .DefaultNCLR
.Cherrim3:
ADD R3, R3, #0x46
CMP R0, R3
ADDNE R3, R3, #0x86 @Darmanitan
CMPNE R0, R3
BNE .DefaultNCLR
LDRB R0, [R2, #2]
CMP R0, #0
MOVNE R0, R7
LDREQB R0, [R2, #3]
CMP R0, #1
BHI .DefaultNCLR
LDRB R1, [R2, R0]
CMP R1, #1
MOVHI R1, #0
.DefaultNCLR:
LDR R0, =PseudoStack
STR LR, [R0]
LDMFD SP!, {R0, R2-R3}
LDR LR, =0x2074365
BLX LR
LDR LR, =PseudoStack
LDR LR, [LR]
BX LR
@Cambios de tipo deCastform y Darmanitan
xrpl_02220BD8_ov_08:
NOP
LDRH R1, [R4, #4]
LDR R3, =0x15F
CMP R1, R3
BNE .TryDarmanitan
MOV R3, #0 @Normal icono
LDR R1, [R0]
LDRB R1, [R1, #0x11]
CMP R1, #1
BHI .FormFirstType
LDR R5, =FormeStack
LDRB R1, [R5, R1]
CMP R1, #1
MOVEQ R3, #0xA @Fuego icono
CMP R1, #2
MOVEQ R3, #0xB @agua icono
CMP R1, #3
MOVEQ R3, #0xF @hielo icono
.FormFirstType:
STRB R3, [R4, #0x14]
B .FormSecondType
.TryDarmanitan:
ADD R3, R3, #0xCC
CMP R1, R3
BNE .ReturnType
MOV R3, #0xA @fuego icono
STRB R3, [R4, #0x14]
LDR R1, [R0]
LDRB R1, [R1, #0x11]
CMP R1, #1
BHI .FormSecondType
LDR R5, =FormeStack
LDRB R1, [R5, R1]
CMP R1, #1
MOVEQ R3, #0xE @psyquico icono
.FormSecondType:
STRB R3, [R4, #0x15]
.ReturnType:
LDR R1, =0x2004
MOV R5, R0
BX LR
.data
.balign 1
FormeStack:
.byte 0x0
.byte 0x0
.byte 0x0
.byte 0x0
GenderBit:
.byte 0x0
.byte 0x0
.byte 0x0
.byte 0x0
.balign 4
OffsetParty:
.word 0x0
.word 0x0
.word 0x0
.word 0x0
.word 0x0
.word 0x0
PseudoStack:
.word 0x0
PokedexGender:
.word 0x0
.word 0x0
.word 0x0
.word 0x0
@Crear salvado:
lrpl_020298CE:
NOP
LDR R4, [R0, #0x5C]
MVN R3, R3
MOV R1, R1, LSL R2
AND R3, R4, R3
ORR R1, R3, R1
STR R1, [R0, #0x5C]
LDMFD SP!, {LR}
LDMFD SP!, {R3-R4}
BX LR
@Genero secundario:
xrpl_0202946C:
NOP
ADD R5, R5, #0xC4
SUB R0, R0, #1
BX LR
@Alternar entre el género primario y secundario:
xrpl_0202947A:
NOP
MOV R0, #0x60
MUL R0, R7, R0
ADD R1, R5, R0
BX LR
@Duplicar pokemon capturados:
xrpl_02029BF0:
NOP
ADD R3, R5, #0x1E4
MOV R1, R4, LSR #3
ADD R3, R1, R3
AND R1, R4, #7
MOV R2, #1
MOV R1, R2, LSL R1
LDRB R2, [R3]
ORR R2, R1, R2
CMP R4, #7
ORRLS R2, R2, #1
STRB R2, [R3]
MOV R1, #1
MOV R1, R1, LSL R0
ADD LR, LR, #0xE
BX LR
@Formas alternas (Unown):
lrpl_0202955C:
NOP
MOVEQ R1, #0x63
MOVNE R1, #0x6A
B .AltUnown
lrpl_0202957E:
NOP
MOVEQ R2, #0x63
MOVNE R2, #0x6A
.AltUnown:
ADD R3, LR, #2
LDMFD SP!, {LR}
BX R3
xrpl_020295A8:
NOP
@ CMP R0, #0
MOVEQ R0, #0x63
MOVNE R0, #0x6A
BX LR
xrpl_02029DB2:
NOP
MOV R0, #0x18C
BX LR
xrpl_02029DBE:
NOP
MOV R0, #0x1A8
BX LR
xrpl_02029DCC:
NOP
MVN R0, #0
STR R0, [R4, #0x188]
MOV R0, #0xFF
ADD LR, LR, #0x16
BX LR
xrpl_0202A132:
NOP
MOV R0, #0x6A
B .SpriteUnown
xrpl_0202A13C:
NOP
MOV R0, #0x63
.SpriteUnown:
ADD R1, R5, R4
BX LR
@Sprite de huevo malo (coodenadas Y):
xrpl_020702BE:
xrpl_020702C4:
xrpl_02070998:
xrpl_0207099E:
NOP
BX LR
xrpl_020702A6:
NOP
CMP R4, R2
BXLE LR
ADD R2, R1, #0xE5
CMP R4, R2 @huevo es considerado la especie 650
ADDEQ LR, LR, #0xDA
BXEQ LR
ADD R1, R1, #0xE6
CMP R4, R1 @huevo malo es considerado la especie 651
ADD LR, LR, #0xEA
ADDNE LR, LR, #0x66
BX LR
xrpl_02070980:
NOP
CMP R5, R2
BXLE LR
ADD R2, R1, #0xE5
CMP R5, R2 @coodenadas Y del huevo
ADDEQ LR, LR, #0x7C
BXEQ LR
ADD R1, R1, #0xE6
CMP R5, R1 @Coordenadas Y del huevo malo
ADD LR, LR, #0x84
ADDNE LR, LR, #0x36
BX LR
@Pokédex carga 649 entradas:
xrpl_021F7B8A_ov_12:
xrpl_021F7BA8_ov_12:
NOP
LDR R1, =0x512
MOV R0, #0x25
BX LR
xrpl_021F7B9A_ov_12:
NOP
MOV R0, R6
B .Read649
xrpl_021F7BB8_ov_12:
NOP
MOV R0, R4
.Read649:
LDR R2, =0x512
BX LR
@Otros:
xrpl_02029908:
NOP
SUB R2, R4, #2
ADD R5, R5, #0x64
BX LR
xrpl_0202A032:
NOP
LDRB R1, [R2, #0x64]
BX LR
xrpl_0202A078:
NOP
LDRB R1, [R1, #0x64]
BX LR
xrpl_0202A0E6:
NOP
ADD R2, R2, #0x64
MOV R1, #1
BX LR
@escribir Pokédex:
xrpl_021F7E94_ov_12:
NOP
LDRB R0, [R4]
STRB R0, [R5]
LDRB R0, [R4, #1]
STRB R0, [R5, #1]
BX LR
xrpl_021F7EA4_ov_12:
NOP
MOV R0, #2
B .SeenCaught
xrpl_021F7EB0_ov_12:
NOP
MOV R0, #1
.SeenCaught:
STRB R0, [R5, #2]
BX LR
xrpl_021F7EB8_ov_12:
NOP
ADD R4, R4, #2
ADD R5, R5, #3
BX LR
@leed el ultimo pokemon visto:
xrpl_021F85D8_ov_12:
NOP
MOV R3, #3
MUL R1, R3, R1
ADD R2, R2, R1
BX LR
xrpl_021F85DE_ov_12:
NOP
ADD R3, R2, #0x870
LDRB R1, [R3]
LDRB R3, [R3, #1]
MOV R3, R3, LSL #8
ORR R1, R3, R1
BX LR
@leer pokedex (=0x1028 or =0x102A):
xrpl_021E6B62_ov_12:
NOP
MOV R2, R1
ADD R2, R0, R2
BX LR
xrpl_021E6B66_ov_12:
xrpl_021E6C36_ov_12:
xrpl_021F1CFE_ov_12:
xrpl_021F1FB6_ov_12:
NOP
LDR R0, =0x1548
LDRB R0, [R2, R0]
BX LR
xrpl_021E6C1C_ov_12:
NOP
ADD R1, R7, R0
STR R1, [SP, #4]
MOV R0, R0, LSL #1
ADD R1, R7, R0
BX LR
xrpl_021E6C22_ov_12:
NOP
LDRH R1, [R1, R0]
BX LR
xrpl_021EE832_ov_12:
NOP
ADD R1, R6, R0
BX LR
xrpl_021EE836_ov_12:
xrpl_021EE970_ov_12:
xrpl_021EECFC_ov_12:
NOP
LDR R0, =0x1548
LDRB R0, [R1, R0]
BX LR
xrpl_021EE96A_ov_12:
NOP
MOV R0, R2
MOV R7, R1
BX LR
xrpl_021EEAE4_ov_12:
xrpl_021EEB94_ov_12:
NOP
MOV R2, R7
MOV R1, #0
BX LR
xrpl_021EEAF4_ov_12:
xrpl_021EEBA4_ov_12:
NOP
LDR R2, =0x1548
LDR R1, [SP, #0x10]
LDRB R2, [R3, R2]
BX LR
xrpl_021EECF8_ov_12:
NOP
MOV R0, R7
ADD R1, R5, R0
BX LR
xrpl_021F14BA_ov_12:
NOP
ADD R1, R5, R0
STR R1, [SP, #4]
MOV R4, R4, LSL #1
ADD R0, R5, R0
BX LR
xrpl_021F14BE_ov_12:
NOP
LDR R1, =0x512
CMP R4, R1
LDRH R1, [R0, R4]
MOVCS R1, #0
BX LR
xrpl_021F14F8_ov_12:
NOP
LDR R0, =0x1548
MOV R1, R4, LSR #1
ADD R1, R5, R1
LDRB R0, [R1, R0]
BX LR
xrpl_021F1CFA_ov_12:
xrpl_021F1FB2_ov_12:
NOP
MOV R0, R2
ADD R2, R5, R0
BX LR
xrpl_021F2DCA_ov_12:
NOP
ADD R3, R0, R1
BX LR
xrpl_021F2DCE_ov_12:
NOP
LDR R1, =0x1548
LDRB R1, [R3, R1]
BX LR
xrpl_021F84DC_ov_12:
NOP
MOV R0, R0, LSL #1
ADD R1, R4, R0
BX LR
xrpl_021F84E0_ov_12:
NOP
SUB R4, R1, R4
LDR R0, =0x512
CMP R4, R0
LDR R4, =0x1028
LDRH R0, [R1, R4]
MOVCS R0, #0
LDMFD SP!, {R4, LR}
BX LR
@Cursor:
lrpl_021F84FC_ov_12:
NOP
LDR R2, =PseudoStack
STR R8, [R2]
LDRB R8, [R0, #1]
MOV R8, R8, LSL #8
LDRB R2, [R0]
ORR R2, R8, R2
MOVEQ R4, R2 @Primer Pokémon visto en orden Pokédex
LDR R8, =PseudoStack
LDR R8, [R8]
CMP R1, R2
ADD R2, LR, #2
B .SeenPokemon
lrpl_021F850C_ov_12:
NOP
ADD R3, R3, #1
ADD R0, R0, #3
CMP R3, R5
MOV R2, LR
.SeenPokemon:
LDMFD SP!, {LR}
BX R2
xrpl_021F854A_ov_12:
NOP
ADD R1, R4, R1
LDRB R0, [R1]
LDRB R1, [R1, #1]
MOV R1, R1, LSL #8
ORR R1, R0, R1
LDR R0, =0x1850
LDRB R0, [R5, R0]
BX LR
xrpl_021F855A_ov_12:
NOP
ADD R1, R4, R1
LDRB R2, [R1]
LDRB R1, [R1, #1]
MOV R1, R1, LSL #8
ORR R2, R1, R2
MOV R0, R0, LSL #1
LDR R1, =0x1028
ADD R1, R0, R1
STRH R2, [R5, R1]
MOV R0, R0, LSR #1
ADD R0, R5, R0
ADD LR, LR, #4
BX LR
xrpl_021F856A_ov_12:
NOP
LDR R1, =0x872
LDRB R2, [R4, R1]
LDR R1, =0x1548
ADD R4, R4, #3
STRB R2, [R0, R1]
BX LR
@graficos de las formas alternas:
xrpl_020741E2:
NOP
LDR R2, =0x289
CMP R4, #0xC9 @Unown
ADDEQ R4, R2, #2
MOV R1, #0x15C
ADD R1, R1, #3 @Castform
CMP R4, R1
ADDEQ R4, R2, #0x1D
ADD R1, R1, #0x23 @Deoxys
CMP R4, R1
ADDEQ R4, R2, #0x20
CMP R4, #0x19C @Burmy
ADDEQ R4, R2, #0x23
ADD R1, R1, #0x1B @WORmadam
CMP R4, R1
ADDEQ R4, R2, #0x25
ADD R1, R1, #8 @Cherrim
CMP R4, R1
ADDEQ R4, R2, #0x27
ADD R1, R1, #1 @Shellos
CMP R4, R1
ADDEQ R4, R2, #0x28
ADD R1, R1, #1 @Gastrodon
CMP R4, R1
ADDEQ R4, R2, #0x29
ADD R1, R1, #0x38 @Rotom
CMP R4, R1
ADDEQ R4, R2, #0x2A
ADD R1, R1, #8 @Giratina
CMP R4, R1
ADDEQ R4, R2, #0x2F
CMP R4, #0x1EC @Shaymin
ADDEQ R4, R2, #0x30
ADD R1, R1, #0x3F @Basculin
CMP R4, R1
ADDEQ R4, R2, #0x31
ADD R1, R1, #5 @Darmanitan!!!!!!!!!!!!!!
CMP R4, R1
ADDEQ R4, R2, #0x32
ADD R1, R1, #0x1E @Deerling
CMP R4, R1
ADDEQ R4, R2, #0x33
ADD R1, R1, #1 @Sawsbuck
CMP R4, R1
ADDEQ R4, R2, #0x36
ADD R1, R1, #0x37 @Tornadus
CMP R4, R1
ADDEQ R4, R2, #0x39
ADD R1, R1, #1 @Thundurus
CMP R4, R1
ADDEQ R4, R2, #0x3A
ADD R1, R1, #3 @LANdorus
CMP R4, R1
ADDEQ R4, R2, #0x3B
ADD R1, R1, #1 @Kyurem
CMP R4, R1
ADDEQ R4, R2, #0x3C
ADD R1, R1, #1 @Keldeo
CMP R4, R1
ADDEQ R4, R2, #0x3E
CMP R4, #0x288 @Meloetta
ADDEQ R4, R2, #0x3F
ADD R1, R1, #2 @Genesect
CMP R4, R1
ADDEQ R4, R2, #0x40
CMP R4, R2 @Comprueba si esta es una forma alternativa
ADD R4, R0, R4
ADD LR, LR, #0x74
SUBLS R4, R4, R0
ADD R0, R4, #7
LDMHIFD SP!, {R4, LR}
BX LR
@iconos:
xrpl_02074264:
NOP
LDR R4, =GenderBit
LDRB R4, [R4] @Get gender bit
CMP R4, #0
LDRNE R4, =0x2CE
ADDNE R0, R4, R0
LDMFD SP!, {R4, LR}
BX LR
@Castform y Cherrim:
xrpl_02074292:
NOP
LDR R0, =0x2AD
B .GraphicFiles
xrpl_020742AE:
NOP
LDR R0, =0x2B7
.GraphicFiles:
ADD R0, R2, R0
BX LR
@iconos de huevos:
lrpl_0207436A:
NOP
CMP R0, R1
ADDEQ R0, R1, #0xA1 @huevo manaphy
ADDNE R0, R1, #0xA0 @huevo
MOV R1, LR
LDMFD SP!, {LR}
BX R1
@paleta de las formas alternas:
lrpl_02074384:
NOP
CMP R0, #0xC9 @Unown
ADDEQ R0, R2, #2
MOV R3, #0x15C
ADD R3, R3, #3 @Castform
CMP R0, R3
ADDEQ R0, R2, #0x1D
ADD R3, R3, #0x23 @Deoxys
CMP R0, R3
ADDEQ R0, R2, #0x20
CMP R0, #0x19C @Burmy
ADDEQ R0, R2, #0x23
ADD R3, R3, #0x1B @WORmadam
CMP R0, R3
ADDEQ R0, R2, #0x25
ADD R3, R3, #8 @Cherrim
CMP R0, R3
ADDEQ R0, R2, #0x27
ADD R3, R3, #1 @Shellos
CMP R0, R3
ADDEQ R0, R2, #0x28
ADD R3, R3, #1 @Gastrodon
CMP R0, R3
ADDEQ R0, R2, #0x29
ADD R3, R3, #0x38 @Rotom
CMP R0, R3
ADDEQ R0, R2, #0x2A
ADD R3, R3, #8 @Giratina
CMP R0, R3
ADDEQ R0, R2, #0x2F
CMP R0, #0x1EC @Shaymin
ADDEQ R0, R2, #0x30
ADD R3, R3, #0x3F @Basculin
CMP R0, R3
ADDEQ R0, R2, #0x31
ADD R3, R3, #5 @Darmanitan!!!!!!!!!!!!!!
CMP R0, R3
ADDEQ R0, R2, #0x32
ADD R3, R3, #0x1E @Deerling
CMP R0, R3
ADDEQ R0, R2, #0x33
ADD R3, R3, #1 @Sawsbuck
CMP R0, R3
ADDEQ R0, R2, #0x36
ADD R3, R3, #0x37 @Tornadus
CMP R0, R3
ADDEQ R0, R2, #0x39
ADD R3, R3, #1 @Thundurus
CMP R0, R3
ADDEQ R0, R2, #0x3A
ADD R3, R3, #3 @LANdorus
CMP R0, R3
ADDEQ R0, R2, #0x3B
ADD R3, R3, #1 @Kyurem
CMP R0, R3
ADDEQ R0, R2, #0x3C
ADD R3, R3, #1 @Keldeo
CMP R0, R3
ADDEQ R0, R2, #0x3E
CMP R0, #0x288 @Meloetta
ADDEQ R0, R2, #0x3F
ADD R3, R3, #2 @Genesect
CMP R0, R3
ADDEQ R0, R2, #0x40
CMP R0, R2 @Comprueba si esta es una forma alternativa
ADD R0, R1, R0
SUBLS R0, R0, R1
ADD R1, LR, #0x6E
LDMFD SP!, {LR}
BX R1
@La paleta tiene 4 bits (2 para hombres y 2 para mujeres)
lrpl_020743FA:
NOP
ANDS R2, R0, #1 @Comprueba si el número de Pokémon es impar
MOV R0, R0, LSR #1
LDRB R0, [R1, R0]
MOVNE R0, R0, LSR #4
LDR R2, =GenderBit
LDRB R3, [R2] @obtener el bit del genero
CMP R3, #0
MOV R3, #0
STRB R3, [R2] @resetar GenderBit al primer byte
MOVNE R0, R0, LSR #2
AND R0, R0, #3
LDMFD SP!, {LR}
BX LR
@comprueba si el pokemon a sido visto:
xrpl_0202A3C2:
NOP
LDRB R2, [R2, #0x64]
BX LR
xrpl_0202A494:
NOP
LDRB R3, [R3, #0x64]
BX LR
@primera forma de spinda vista:
xrpl_0202A3D2:
xrpl_0202A4A4:
NOP
STR R0, [R5, #0x184]
BX LR
@si el pokemon ya a sido visto:
xrpl_0202A3E8:
NOP
LDRB R2, [R2, #0xC4]
BX LR
xrpl_0202A4BA:
NOP
LDRB R0, [R0, #0xC4]
BX LR
@terminar pokemon vistos:
xrpl_0202A412:
NOP
MOV R1, #7
B .EndPokemonSeen
xrpl_0202A524:
NOP
ORR R2, R3, R2
.EndPokemonSeen:
ADD R5, R5, #0x64
BX LR
@Pokédex
xrpl_021F14C8_ov_12:
NOP
LDR R0, [R0]
LDR R2, =PokedexGender
ADD R0, R0, #0xC4
STR R0, [R2] @offset almacenado
SUB R0, R0, #0xC4
MOV R2, #0
BX LR
xrpl_021F14E4_ov_12:
NOP
LDR R0, =PokedexGender
STR R1, [R0, #4] @Almacena pokemon temporalmente
LDR R3, [R0] @obtienel el offset
SUB R1, R1, #1
MOV R1, R1, LSR #3 @toma el byte del offset
ADD R3, R1, R3
STR R3, [R0] @offset almacenado
LDR R1, [R0, #4]
SUB R1, R1, #1
AND R1, R1, #7
MOV R3, #1
MOV R3, R3, LSL R1
LDR R1, [R0]
LDRB R1, [R1] @obtiene el offset del pokemon
TST R1, R3
LDR R1, [R0, #4] @Recupera al pokemon
LDR R0, =GenderBit
MOVEQ R3, #0 @bit del macho
MOVNE R3, #1 @bit de la hembra
STRB R3, [R0]
MOV R0, R5
MOV R3, R6
BX LR
xrpl_02029C3C:
NOP
ADD R3, R3, #0xC4
LDR R1, =PokedexGender
STR R3, [R1, #8] @Offset
STR R0, [R1, #0xC] @Bit
MOV R1, #1
LDRB R3, [R3]
BX LR
@segundo genero registrado:
xrpl_02029C5C:
NOP
LDRB R2, [R2, #0x124]
BX LR
@Zone tab:
xrpl_021F3A76_ov_12:
NOP
LDR R3, =PokedexGender
LDR R0, [R3, #8] @obtiene el offset
LDRB R0, [R0] @obtiene el byte
LDR R3, [R3, #0xC] @obtiene el bit para comparar
TST R0, R3
LDR R3, =GenderBit
MOVEQ R0, #0 @bit del macho
MOVNE R0, #1 @bit de la hembra
STRB R0, [R3]
MOV R0, R7
MOV R3, #1
BX LR
@pestaña del peso:
xrpl_021F4A26_ov_12:
xrpl_021F4A34_ov_12:
NOP
LDR R3, =PokedexGender
LDR R0, [R3, #8] @obtiene offset
LDRB R0, [R0] @obtiene byte
LDR R3, [R3, #0xC] @obtiene el bit para comparar
LDR R2, =GenderBit
TST R0, R3
MOVEQ R0, #0 @bit del macho
MOVNE R0, #1 @bit de la hembra
STRB R0, [R2]
MOV R0, R5
LDRH R1, [R5, R1]
BX LR
@pestaña de formas:
xrpl_021F5CFE_ov_12:
NOP
LDR R2, =PokedexGender
LDR R0, [R2, #8] @obtiene offset
CMP R7, #0
ADDNE R0, R0, #0x60
LDRB R0, [R0] @obtiene byte
LDR R1, [R2, #0xC] @obtiene el bit para comparar
TST R0, R1
LDR R2, =GenderBit
MOVEQ R0, #0 @bit del macho
MOVNE R0, #1 @bit de la hembra
STRB R0, [R2]
MOV R0, R5
MOV R1, R4
BX LR
@pestaña de comparacion:
xrpl_021F0E00_ov_12:
NOP
MOV R0, R5
LDSB R2, [R5, R2]
LDR R1, =GenderBit
STRB R2, [R1, #1]
BX LR
xrpl_021F63F0_ov_12:
NOP
LDR R1, =GenderBit
LDRB R1, [R1, #1]
CMP R1, #0
LDR R1, =PokedexGender
LDR R0, [R1, #8] @obtiene offset
ADDNE R0, R0, #0x60
B .CompareFiles
xrpl_021F63FC_ov_12:
NOP
LDR R1, =GenderBit
LDRB R1, [R1, #1]
CMP R1, #0
LDR R1, =PokedexGender
LDR R0, [R1, #8] @obtiene offset
ADDEQ R0, R0, #0x60
.CompareFiles:
LDRB R0, [R0] @obtiene byte
LDR R1, [R1, #0xC] @obtiene bit para comparar
TST R0, R1
LDR R1, =GenderBit
MOVEQ R0, #0 @bit del macho
MOVNE R0, #1 @bit de la hembra
STRB R0, [R1]
MOV R0, R4
LDSB R2, [R4, R2]
BX LR
xrpl_021F640A_ov_12:
NOP
LDR R0, =GenderBit
MOV R1, #0
STR R1, [R0] @reinicia GenderBit
MOV R0, R4
MOV R1, #0xE
BX LR
xrpl_0224E830_ov_0C:
NOP
LDR R6, =FormeStack
AND R1, R1, #0x1F
CMP R5, #0
STREQB R1, [R6]
CMP R5, #0x180
STREQB R1, [R6, #1]
MOV R1, #0xC0
MOV R6, R0
BX LR
xrpl_0224D504_ov_0C:
NOP
MOV R1, #1
STRB R1, [R4, R0]
LDR R3, =FormeStack
MOV R4, #0
STR R4, [R3]
BX LR
xrpl_02263DB6_ov_0C:
NOP
MOV R2, R2, LSR #0x1F
STRB R2, [R3, #5]
LDR R5, =FormeStack
ADD R2, R1, #0x26
LDRB R2, [R4, R2]
AND R2, R2, #0x1F
CMP R6, #0
STREQB R2, [R5]
CMP R6, #0x180
STREQB R2, [R5, #1]
BX LR
lrpl_0223BC12_ov_0C:
NOP
STMFD SP!, {R3}
STRB R1, [R0, R2]
LDR R3, =FormeStack
STRB R1, [R3, #2]
LDMFD SP!, {R3}
LDMFD SP!, {LR}
BX LR
xrpl_02074668:
NOP
MUL R0, R4, R0
ADD R0, R5, R0
LDR R3, =FormeStack
LDRB R5, [R3, #2]
CMP R5, #0
MOVEQ R5, R7
MOVNE R5, R4
LDR R3, =OffsetParty
CMP R5, #5
STRLS R0, [R3, R5, LSL #2]
BX LR
xrpl_0226709A_ov_0C:
NOP
CMP R1, #0
MOVNE R1, #1
LDR R0, =FormeStack
STRB R1, [R0, #3]
LDR R0, =0x10203
MOV R1, #0x4D
BX LR
xrpl_020741DE:
NOP
STMFD SP!, {R2-R3}
LDR R2, =FormeStack
LDR R3, =0x15F
CMP R4, R3
BNE .CherrimDarmanitan
LDRB R3, [R2, #2]
CMP R3, #0
LDREQB R3, [R2, #3]
BEQ .SuccessCastform
LDR R2, =OffsetParty
LDR R3, [R2]
CMP R3, R5
MOVEQ R3, #0
BEQ .SuccessCastform
LDR R3, [R2, #4]
CMP R3, R5
MOVEQ R3, #1
BNE .NCGRCalc
.SuccessCastform:
LDR R2, =FormeStack
LDRB R0, [R2, R3]
CMP R0, #3
MOVHI R0, #0
B .NCGRCalc
.CherrimDarmanitan:
ADD R3, R3, #0x46
CMP R4, R3
ADDNE R3, R3, #0x86 @Darmanitan
CMPNE R4, R3
BNE .NCGRCalc
LDRB R3, [R2, #2]
CMP R3, #0
LDREQB R3, [R2, #3]
BEQ .SuccessCherrimDarmanitan
LDR R2, =OffsetParty
LDR R3, [R2]
CMP R3, R5
MOVEQ R3, #0
BEQ .SuccessCherrimDarmanitan
LDR R3, [R2, #4]
CMP R3, R5
MOVEQ R3, #1
BNE .NCGRCalc
.SuccessCherrimDarmanitan:
LDR R2, =FormeStack
LDRB R0, [R2, R3]
CMP R0, #1
MOVHI R0, #0
.NCGRCalc:
LDMFD SP!, {R2-R3}
CMP R0, #0
ADDEQ LR, LR, #0x78
BXEQ LR
LDR R1, =0x15F @Castform
CMP R4, R1
ADDEQ R1, R1, #0xA7
ADDEQ R1, R1, #0xA7
BEQ .NCGR
ADD R1, R1, #0x46 @Cherrim
CMP R4, R1
ADDEQ R1, R1, #0x89
ADDEQ R1, R1, #0x89
BEQ .NCGR
ADD R1, R1, #0x86 @Darmanitan
CMP R4, R1
ADDEQ R1, R1, #0x97
.NCGR:
ADDEQ R0, R0, R1 @Add form index
LDMEQFD SP!, {R4, LR}
BX LR
xrpl_0207447C:
xrpl_02220AEA_ov_08:
NOP
STMFD SP!, {R0, R2-R3}
LDR R2, =FormeStack
LDR R3, =0x15F
CMP R0, R3
BNE .Cherrim3
LDRB R0, [R2, #2]
CMP R0, #0
MOVNE R0, R7
LDREQB R0, [R2, #3]
CMP R0, #1
BHI .DefaultNCLR
LDRB R1, [R2, R0]
CMP R1, #3
MOVHI R1, #0
B .DefaultNCLR
.Cherrim3:
ADD R3, R3, #0x46
CMP R0, R3
ADDNE R3, R3, #0x86 @Darmanitan
CMPNE R0, R3
BNE .DefaultNCLR
LDRB R0, [R2, #2]
CMP R0, #0
MOVNE R0, R7
LDREQB R0, [R2, #3]
CMP R0, #1
BHI .DefaultNCLR
LDRB R1, [R2, R0]
CMP R1, #1
MOVHI R1, #0
.DefaultNCLR:
LDR R0, =PseudoStack
STR LR, [R0]
LDMFD SP!, {R0, R2-R3}
LDR LR, =0x2074365
BLX LR
LDR LR, =PseudoStack
LDR LR, [LR]
BX LR
@Cambios de tipo deCastform y Darmanitan
xrpl_02220BD8_ov_08:
NOP
LDRH R1, [R4, #4]
LDR R3, =0x15F
CMP R1, R3
BNE .TryDarmanitan
MOV R3, #0 @Normal icono
LDR R1, [R0]
LDRB R1, [R1, #0x11]
CMP R1, #1
BHI .FormFirstType
LDR R5, =FormeStack
LDRB R1, [R5, R1]
CMP R1, #1
MOVEQ R3, #0xA @Fuego icono
CMP R1, #2
MOVEQ R3, #0xB @agua icono
CMP R1, #3
MOVEQ R3, #0xF @hielo icono
.FormFirstType:
STRB R3, [R4, #0x14]
B .FormSecondType
.TryDarmanitan:
ADD R3, R3, #0xCC
CMP R1, R3
BNE .ReturnType
MOV R3, #0xA @fuego icono
STRB R3, [R4, #0x14]
LDR R1, [R0]
LDRB R1, [R1, #0x11]
CMP R1, #1
BHI .FormSecondType
LDR R5, =FormeStack
LDRB R1, [R5, R1]
CMP R1, #1
MOVEQ R3, #0xE @psyquico icono
.FormSecondType:
STRB R3, [R4, #0x15]
.ReturnType:
LDR R1, =0x2004
MOV R5, R0
BX LR
.data
.balign 1
FormeStack:
.byte 0x0
.byte 0x0
.byte 0x0
.byte 0x0
GenderBit:
.byte 0x0
.byte 0x0
.byte 0x0
.byte 0x0
.balign 4
OffsetParty:
.word 0x0
.word 0x0
.word 0x0
.word 0x0
.word 0x0
.word 0x0
PseudoStack:
.word 0x0
PokedexGender:
.word 0x0
.word 0x0
.word 0x0
.word 0x0
Alguien con conocimiento de esto podria modificarlo para la cantidad de pokemon actuales o mas?
Última edición por un moderador: