• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

SoulSilver hack: Pokémon MindCrystal

7
Posts
12
Years
  • Seen Aug 20, 2021
Sorry i'm new to Hex Editing so excuse me if i don't know exactly how to find it lol

i used this
pS3IBts.png
, then searched 25 63 (yes like that, with spaces and anything) until it found D20 something like here
fFefyb6.png
 
41
Posts
9
Years
  • Age 29
  • Seen Mar 3, 2021
i used this
pS3IBts.png
, then searched 25 63 (yes like that, with spaces and anything) until it found D20 something like here
fFefyb6.png

i got it dude. thanks so much for your help :) i got the 60 fps on platinum and sacred gold.
 
50
Posts
8
Years
  • Age 30
  • Seen Mar 3, 2019
Is there anywhere I can find a full list of the changes made to pokemon? Also, is there a location guide for pokemon?
 
53
Posts
9
Years
  • Seen Aug 26, 2022
Since nowadays everyone and their brother's hack seems to feature the Items chaining, as well as Repels chaining by default, those are going to be implemented in the next revision:

Script:
Code:
===scr_65
Fanfare 0x5dc
Lockall
Message 0x75
0031
Closemsgonkeypress
Releaseall
End

===scr_66
Fanfare 0x5dc
Lockall
Message 0x76
0031
Closemsgonkeypress
Releaseall
End

===scr_67
Fanfare 0x5dc
Lockall
Message 0x77
0031
Closemsgonkeypress
Releaseall
End

===scr_68
Fanfare 0x5dc
Lockall
Message 0x78
OpenLowScreen
OpenLowYesNoBox 0x800c
CloseLowScreen
If 0x800c 0x1
COMPARELASTRESULT 0x1 func_153
Setvar 0x8004 0x4f
Setvar 0x8005 0x1
TakeItem 0x8004 0x8005 0x800c
SetvarHero 0x0
Message 0x7b
Fanfare 0x5ff
0031
Closemsgonkeypress
Releaseall
End

===scr_69
Fanfare 0x5dc
Lockall
Message 0x79
OpenLowScreen
OpenLowYesNoBox 0x800c
CloseLowScreen
If 0x800c 0x1
COMPARELASTRESULT 0x1 func_153
Setvar 0x8004 0x4c
Setvar 0x8005 0x1
TakeItem 0x8004 0x8005 0x800c
SetvarHero 0x0
Message 0x7c
Fanfare 0x5ff
0031
Closemsgonkeypress
Releaseall
End

===scr_70
Fanfare 0x5dc
Lockall
Message 0x7a
OpenLowScreen
OpenLowYesNoBox 0x800c
CloseLowScreen
If 0x800c 0x1
COMPARELASTRESULT 0x1 func_153
Setvar 0x8004 0x4d
Setvar 0x8005 0x1
TakeItem 0x8004 0x8005 0x800c
SetvarHero 0x0
Message 0x7d
Fanfare 0x5ff
0031
Closemsgonkeypress
Releaseall
End

==func_153
Closemsgonkeypress
Releaseall
End
ASM:
Code:
@Use selected item:
xrpl_02078456:
    NOP
    LDR     R0, =ItemQuantity
    STRH    R1, [R0]
    CMP     R1, #0
    MOVNE   R1, #1
    STRH    R1, [R0, #2]
    MOV     R1, #0
    STR     R1, [R0, #4]
    LDR     R1, [SP, #8]
    LDRH    R0, [R1, #2]
    BX      LR


@Chain items:
xrpl_0207903C:
    NOP
    LDR     R5, =ItemQuantity
    LDRH    R1, [R5, #4]
    CMP     R1, #0
    LDR     R1, [R4]
    BNE     .Return
    LDRH    R1, [R5, #6]
    CMP     R1, #0
    LDR     R1, [R4]
    BNE     .Return
    CMP     R1, #5              @Use item
    CMPNE   R1, #0x18           @Use move-related items
    BEQ     .Check
    CMP     R1, #0x20
    BNE     .Return
    LDRH    R1, [R5, #2]
    CMP     R1, #5
    CMPNE   R1, #0x18
    MOV     R1, #0
    STR     R1, [R5]
    LDR     R1, [R4]
    MOVEQ   R1, #4
    CMP     R1, #0x20
    BEQ     .Return
    STRH    R1, [R5, #2]
    MOV     R5, R0
    ADD     LR, LR, #0xBC
    STMFD   SP!, {R4, LR}
    LDR     LR, =0x207C6BF
    BX      LR
.Check:
    MOV     R1, #1
    STRH    R1, [R5, #8]
    LDRH    R1, [R5, #2]
    CMP     R1, #1
    LDR     R1, [R4]
    STREQH  R1, [R5, #2]
.Return:
    MOV     R5, R0
    BX      LR
    
xrpl_0207C8BA:
    NOP
    LDR     R1, [R4, R0]
    LDR     R0, =ItemQuantity
    LDRH    R0, [R0, #2]
    CMP     R0, #0
    BEQ     .End
    LDR     R0, =ItemQuantity
    LDRH    R0, [R0]
    CMP     R0, #0
    MOVEQ   R0, #0xA
    STREQB  R0, [R1, #0x24]
.End:
    MOV     R0, R1
    BX      LR
    
xrpl_0207C8D4:
    NOP
    MOV     R1, #0x1D
    LDR     R2, =ItemQuantity
    LDRH    R0, [R2, #2]
    CMP     R0, #0
    BEQ     .End2
    LDRH    R0, [R2]
    CMP     R0, #0
    MOVEQ   R1, #0x21
.End2:
    MOV     R0, R4
    MOV     R2, #1
    BX      LR
    
xrpl_0207C8F0:
    NOP
    LDR     R4, =ItemQuantity
    LDRH    R1, [R4, #8]
    CMP     R1, #1
    MOVEQ   R1, #5
    STREQB  R1, [R0]
    MOV     R1, #0
    STR     R1, [R4, #8]
    MOV     R0, #1
    LDRH    R1, [R4, #2]
    CMP     R1, #0
    BEQ     .End3
    LDRH    R1, [R4]
    CMP     R1, #0
    LDREQH  R0, [R4, #2]
    STREQ   R1, [R4]
.End3:
    LDMFD   SP!, {R4, LR}
    BX      LR

@Teach level-up moves properly:
xrpl_02081F90:
    NOP
    MOV     R1, #1
    B       .FadeScreen
    
@Teach TM/HM moves properly:
xrpl_020823F8:
    NOP
    MOV     R1, #2
.FadeScreen:
    LDR     R0, =ItemQuantity
    STRH    R1, [R0, #4]
    B       .ResetScreen
    
@Move was not taught:
xrpl_0208203C:
xrpl_020824A4:
@Move was taught:
xrpl_02081E0E:
xrpl_020821AA:
xrpl_02082392:
    NOP
    LDR     R0, =ItemQuantity
    LDRH    R1, [R0, #4]
    CMP     R1, #2
    MOV     R1, #0
    STREQ   R1, [R0]
.ResetScreen:
    MOV     R0, #0x1F
    MOV     R0, R0, LSL #6
    BX      LR
    
@Check for Evolution:
xrpl_02071236:
    NOP
    MOV     R0, R6
    LDR     R6, =ItemQuantity
    STRH    R0, [R6, #6]
    ADD     SP, SP, #0x44
    BX      LR


@Chain repels:
xrpl_021F9968_ov_0F:
    NOP
    STRB    R4, [R0]
    LDR     R1, =0xC08
    ADD     R1, R2, R1
    STRH    R5, [R1]            @Store Repel type into the .SAV
    LDMFD   SP!, {R4, LR}
    BX      LR

xrpl_0224BB10_ov_02:
    NOP
    LDR     R1, =PseudoStack
    STR     R0, [R1, #8]
    LDRB    R1, [R0]
    CMP     R1, #0
    BX      LR

xrpl_0224BB20_ov_02:
    NOP
    LDR     R1, =0xC08
    LDRH    R0, [R2, R1]
    CMP     R0, #0x4F           @Check for Repel
    CMPNE   R0, #0x4C           @Else check for Super Repel
    CMPNE   R0, #0x4D           @Else check for Max Repel
    BEQ     .Repel
    MOV     R0, #0
    STR     R0, [R2, R1]
    LDR     R1, =0x818          @Default Script
    B       .Return2
.Repel:
    LDR     R1, =PseudoStack
    STR     R3, [R1]
    STR     R4, [R1, #4]
    LDR     R1, =0x644
    MOV     R3, #0
    ADD     R4, R2, R1
.LoopRepel:
    LDRH    R1, [R4]
    CMP     R1, #0
    BEQ     .NoMatch
    CMP     R1, R0
    BEQ     .Script
    ADD     R3, R3, #1
    ADD     R4, R4, #4
    CMP     R3, #0x50           @Number of item slots in the Items Pocket
    BCC     .LoopRepel
.NoMatch:
    LDR     R1, =0x818          @No Repel Script
    LDR     R3, =0xC08
    CMP     R0, #0x4F
    MOVEQ   R0, #0x4B
    SUB     R0, R0, #0x4B
    ADD     R1, R0, R1          @Final no Repel Script
    MOV     R0, #0
    STR     R0, [R2, R3]
    B       .ResetStack
.Script:
    LDR     R1, =0x81B          @Repel Script
    CMP     R0, #0x4F
    MOVEQ   R0, #0x4B
    SUB     R0, R0, #0x4B
    ADD     R1, R0, R1          @Final Repel Script
.ResetStack:
    MOV     R0, #0
    LDR     R2, =PseudoStack
    LDR     R4, [R2, #4]
    LDR     R3, [R2]
    STR     R0, [R2]
    STR     R0, [R2, #4]
.Return2:
    MOV     R0, R4
    BX      LR
    
lrpl_0203FE32:
    NOP
    LDRB    R2, [R1]
    ADD     R1, R3, #1
    STR     R1, [R0, #8]
    CMP     R2, #0x4F           @Check for Repel
    CMPNE   R2, #0x4C           @Else check for Super Repel
    CMPNE   R2, #0x4D           @Else check for Max Repel
    BEQ     .RepelUse
    B       .Return3
.RepelUse:
    SUB     R1, R1, #6
    LDRB    R0, [R1]            @Check if it is script instruction SetVar 0x8004 "Repel type"
    CMP     R0, #0x29
    BNE     .RepelUsed
    LDRB    R0, [R1, #1]
    CMP     R0, #0
    BNE     .RepelUsed
    LDRB    R0, [R1, #2]
    CMP     R0, #4
    BNE     .RepelUsed
    LDRB    R0, [R1, #3]
    CMP     R0, #0x80
    BNE     .RepelUsed
    LDR     R1, =PseudoStack
    LDR     R0, [R1, #8]
    CMP     R0, #0
    BEQ     .RepelUsed
    CMP     R2, #0x4F           @If Repel
    MOVEQ   R1, #0x64           @Store 100 steps
    CMP     R2, #0x4C           @If Super Repel
    MOVEQ   R1, #0xC8           @Store 200 steps
    CMP     R2, #0x4D           @If Max Repel
    MOVEQ   R1, #0xFA           @Store 250 steps
    STRB    R1, [R0]            @Store number of steps for Repel
.RepelUsed:
    ADD     R1, R3, #1
.Return3:
    MOV     R0, LR
    LDMFD   SP!, {LR}
    BX      R0


.data
.balign 2
ItemQuantity:
    .hword  0x0
    .hword  0x0
    .hword  0x0
    .hword  0x0
    .hword  0x0
    .hword  0x0
    
.balign 4
PseudoStack:
    .word   0x0
    .word   0x0
    .word   0x0
Is there anywhere I can find a full list of the changes made to pokemon? Also, is there a location guide for pokemon?
https://www.pokecommunity.com/showpost.php?p=9662501&postcount=23
As said in my post, I'm working on a far more detailed documentation.
 
50
Posts
8
Years
  • Age 30
  • Seen Mar 3, 2019
I think I may have found a game-breaking bug: when I enter the room with the electrodes, in Rocket's hideout, and I walk back to fight the Admin and Rocket Grunt with Lance, the game crashes as the battle starts...
 
53
Posts
9
Years
  • Seen Aug 26, 2022
I think I may have found a game-breaking bug: when I enter the room with the electrodes, in Rocket's hideout, and I walk back to fight the Admin and Rocket Grunt with Lance, the game crashes as the battle starts...
1°) Emulator and/or flashcard?
2°) Do you have any cheat code enabled, regardless of the medium you're using?

And, well, this is kind of surprising because I didn't change that map nor the event file associated to it.
But I remember playtesting v2.0 on flashcard and that part of the storyline was fine, this might something to do with an ASM hack then.
 
50
Posts
8
Years
  • Age 30
  • Seen Mar 3, 2019
1°) Emulator and/or flashcard?
2°) Do you have any cheat code enabled, regardless of the medium you're using?

And, well, this is kind of surprising because I didn't change that map nor the event file associated to it.
But I remember playtesting v2.0 on flashcard and that part of the storyline was fine, this might something to do with an ASM hack then.

Emulator (Drastic). I don't have any cheats enabled (I'm not actually sure how to add them to be honest which is probably an issue for another day).

I also tried taking off the fast foward option and taking my phone off of power saver in case it was because my phone wasn't able to handle the game (in case this is a thing? Is this a thing?) but it didn't help either

EDIT: I transfered my save to my computer and used Desmume. I got a little futher into the battle, but then it froze just as my pokemon and Lance's pokemon are released.

EDIT 2: I tried using an old version of the game and it worked (but its giving me issues when I try to change back to the intitial rom)
 
Last edited:
53
Posts
9
Years
  • Seen Aug 26, 2022
Emulator (Drastic). I don't have any cheats enabled (I'm not actually sure how to add them to be honest which is probably an issue for another day).

I also tried taking off the fast foward option and taking my phone off of power saver in case it was because my phone wasn't able to handle the game (in case this is a thing? Is this a thing?) but it didn't help either

EDIT: I transfered my save to my computer and used Desmume. I got a little futher into the battle, but then it froze just as my pokemon and Lance's pokemon are released.

EDIT 2: I tried using an old version of the game and it worked (but its giving me issues when I try to change back to the intitial rom)

Sorry for the late reply.

The source of the problem is narc a/0/0/8, which contains most of the battle HUD including the battle HP templates.
Something went wrong as I modified this narc since restoring the unmodified narc fixes the issue.

I'll edit this post once I find something new.

EDIT: The problem has been fixed, it was because the new HP templates were 8230 bytes uncompressed when they should cap at 4144 bytes, causing the graphics to overflow and subsequently causing the crash.
I'll update the OP with an emergency update ASAP.
 
Last edited:
50
Posts
8
Years
  • Age 30
  • Seen Mar 3, 2019
Sorry for the late reply.

The source of the problem is narc a/0/0/8, which contains most of the battle HUD including the battle HP templates.
Something went wrong as I modified this narc since restoring the unmodified narc fixes the issue.

I'll edit this post once I find something new.

EDIT: The problem has been fixed, it was because the new HP templates were 8230 bytes uncompressed when they should cap at 4144 bytes, causing the graphics to overflow and subsequently causing the crash.
I'll update the OP with an emergency update ASAP.

Thanks so much! You're the best. I just found an adamant absol so I'm hoping not to have to start a new game.
 
53
Posts
9
Years
  • Seen Aug 26, 2022
OP updated with a link to v3.0.1.

Thanks so much! You're the best. I just found an adamant absol so I'm hoping not to have to start a new game.
You won't have to, no worries.
Also since you're already at Mahogany Town, it means that you already defeated 6 Gym Leaders.
Out of curiosity which one did you find the hardest to fight against?
 
50
Posts
8
Years
  • Age 30
  • Seen Mar 3, 2019
OP updated with a link to v3.0.1.


You won't have to, no worries.
Also since you're already at Mahogany Town, it means that you already defeated 6 Gym Leaders.
Out of curiosity which one did you find the hardest to fight against?

I'm trying to build a team with the new abilities, with the exception of togetic who I've included for the fairy type. So basically, I have beaten every gym leader with just togetic which, given the moves it learns, meant that Morty has given me the most trouble so far. That sableye with willo-wisp (and the ability that allows non-attacking moves to go first) gave me some trouble.
 
53
Posts
9
Years
  • Seen Aug 26, 2022
I am playing the updated rom and the bug is still persisting: the game still crashes after the intro to the battle with the admin and the rocket grunt...
Weird…

I patched a ROM from the download link just to make sure that I did upload the right patch, and here are the results:
_DeSmuMe: works
_No$GBA Debugger: works
_NDS* via R4i: works
I'm not able to test for DraStic, however.

*The ability to work on a NDS is by far the most important criterion for me because of its ability to act as a deal-breaker should the hack fail that test.
 
50
Posts
8
Years
  • Age 30
  • Seen Mar 3, 2019
Weird…

I patched a ROM from the download link just to make sure that I did upload the right patch, and here are the results:
_DeSmuMe: works
_No$GBA Debugger: works
_NDS* via R4i: works
I'm not able to test for DraStic, however.

*The ability to work on a NDS is by far the most important criterion for me because of its ability to act as a deal-breaker should the hack fail that test.

I moved my save to Desmume, got passed the admin then moved my save back to Drastic. Everything is working again now. Thank you for the help!
 
53
Posts
9
Years
  • Seen Aug 26, 2022
Its now telling me that my bag is full when I try to pick up a TM (TM 54)
If you already have the TM54 in your bag, then it's normal, since it's part of the re-usable TMs feature.
I take it you're in the Dark Cave, right? If that's the case then it's just that I didn't update the item yet.
I do have a list of TMs that appear multiple times, those were relocated accordingly but somehow TM54 escaped my notice.
 
50
Posts
8
Years
  • Age 30
  • Seen Mar 3, 2019
If you already have the TM54 in your bag, then it's normal, since it's part of the re-usable TMs feature.
I take it you're in the Dark Cave, right? If that's the case then it's just that I didn't update the item yet.
I do have a list of TMs that appear multiple times, those were relocated accordingly but somehow TM54 escaped my notice.

Yup, this was in the dark cave. Ok, perfect!
 
66
Posts
7
Years
  • Age 32
  • Seen Oct 18, 2023
Morty has given me the most trouble so far. That sableye with willo-wisp (and the ability that allows non-attacking moves to go first) gave me some trouble.

Morty has a Prankster Sableye? I'm not looking forward to that. ;-;
 
53
Posts
9
Years
  • Seen Aug 26, 2022
Morty has a Prankster Sableye? I'm not looking forward to that. ;-;
Morty's Sableye in detail for the first match:
Code:
Level: 24
Gender: ♂
Ball: Poké Ball
Item: Focus Sash
Ability: Prankster
Nature: Careful
Move 1: Will-O-Wisp
Move 2: Sucker Punch
Move 3: Metal Burst
Move 4: Recover
There are ways to completely shut him down or at the very least put him at a disadvantage:
_a Pokémon with the Ability Magic Bounce will severely cripple him as he burns himself with Will-O-Wisp (Espeon evolved from a Adaptability Eevee if you grind like crazy, most likely Natu* or Xatu at this stage of the story)
_a Fire-type Pokémon will do well,
_so does a Pokémon with the Ability Water Veil or Magic Guard**,
_a Pokémon with the Ability Flash Fire works too (Cyndaquil's line, for example)

*some Headbutt Trees in the Ruins of Alph hide Natu; since you can get Headbutt as soon as you catch a Ponyta on Route 46 you can try your luck and wait for a Magic Bounce Natu to appear.
While Natu is part Psychic, it fares really well against Sableye (as long as you can play around Sucker Punch), even more so as a Xatu since it gets Air Slash as soon as it evolves plus you can buy the TM04 Calm Mind at Celadon Game Corner to teach Natu/Xatu the move.

**The Odd Egg may hatch into a Magic Guard Cleffa (who has a 49.9904% at being shiny), you can soft-reset as many times as you want since the species and the PID is determined the moment you take the Odd Egg.
 
Back
Top