ROM Hack [Release] Pokémon SuMoCheatMenu [supports o3DS]

Sonansune

Well-Known Member
Member
Joined
Jul 2, 2015
Messages
3,734
Trophies
1
XP
2,142
Country
Canada
Thank you. Did you test the EXP code too? I tried it but it gave a ridiculously high amount even using 1x EXP.
oh....

I only tried x100 at the time, seems i need to redo the code....

and here is another goodies.

confirmed working, unless I'm really really lucky.... 5 attempts with Cherish ball.
[100%Catch]
D3000000 00000000
580350BC 0A000004
50597678 00000000
00597678 00000010
D0000000 00000000
D0000000 00000000
60597678 00000000
D9000000 00597678
D4000000 FFFFFFFF
D6000000 00597678
D0000000 00000000
D3000000 00000000
50597678 00000001
080350BC EA000004
D0000000 00000000

--------------------- MERGED ---------------------------

there are six memregion dumps.
https://filetrip.net/dl?WQgXx6WWgt

you can use them if you need to. (could save you some time;))

normal: walking on the road.

catch: battle phase.

V1: v1.0

V2: v1.1
 
Last edited by Sonansune,

DocKlokMan

Plugin Dev
OP
Member
Joined
Apr 20, 2007
Messages
3,008
Trophies
2
Age
36
XP
4,570
Country
United States
I appreciate the assistance with finding these codes. Unfortunately the Instant Hatch and 100% Catch makes use of region 0x08000000 memory regions which NTR does not play nicely with (crashes the game). @ymyn managed to find alternate ways that did not make use of the 0x08000000 regions. I've implemented the ones you've posted so far and testing them out now though.
 
  • Like
Reactions: RustInPeace

Sonansune

Well-Known Member
Member
Joined
Jul 2, 2015
Messages
3,734
Trophies
1
XP
2,142
Country
Canada
I appreciate the assistance with finding these codes. Unfortunately the Instant Hatch and 100% Catch makes use of region 0x08000000 memory regions which NTR does not play nicely with (crashes the game). @ymyn managed to find alternate ways that did not make use of the 0x08000000 regions. I've implemented the ones you've posted so far and testing them out now though.
i know that.
but idk how to implement it without using the 8000000 region mem
 

DocKlokMan

Plugin Dev
OP
Member
Joined
Apr 20, 2007
Messages
3,008
Trophies
2
Age
36
XP
4,570
Country
United States
would you mind share with me? The method?
What do you mean? I'm just testing that the codes you posted for Instant Egg works in NTR. It does and I'll be pushing an update with it soon.

As for the method that @ymyn uses, he hooks the function for calculating capture rate and redirects it to a custom function in the 0x00050000 region. That's how the EXP and Pokémon spawner code works.
 

Sonansune

Well-Known Member
Member
Joined
Jul 2, 2015
Messages
3,734
Trophies
1
XP
2,142
Country
Canada
What do you mean? I'm just testing that the codes you posted for Instant Egg works in NTR. It does and I'll be pushing an update with it soon.

As for the method that @ymyn uses, he hooks the function for calculating capture rate and redirects it to a custom function in the 0x00050000 region. That's how the EXP and Pokémon spawner code works.
oh... I see..
that's why the gateshark2ntr version cannot be simply modified to use on v1.1.
 
Last edited by Sonansune,

DocKlokMan

Plugin Dev
OP
Member
Joined
Apr 20, 2007
Messages
3,008
Trophies
2
Age
36
XP
4,570
Country
United States
oh... I see..
that's why the gateshark version cannot be simply modified to use on v1.1.
It makes it harder. Adjusting the hooked address is easy. Adjusting the exit address is easy. Adjusting where the custom function is being stored (0x00500000) is easy. However the actual ASM code may need minor adjustments to the new addresses too which are lot harder without decompiling the new v1.1 code.bin or @ymyn's input.
 

Sonansune

Well-Known Member
Member
Joined
Jul 2, 2015
Messages
3,734
Trophies
1
XP
2,142
Country
Canada
It makes it harder. Adjusting the hooked address is easy. Adjusting the exit address is easy. Adjusting where the custom function is being stored (0x00500000) is easy. However the actual ASM code may need minor adjustments to the new addresses too which are lot harder without decompiling the new v1.1 code.bin or @ymyn's input.
decompile the code.bin?..... that's insane:wacko:
 

DocKlokMan

Plugin Dev
OP
Member
Joined
Apr 20, 2007
Messages
3,008
Trophies
2
Age
36
XP
4,570
Country
United States
This is so odd. The 100% catch code is set up basically the same as the EXP code and yet altering it in a similar fashion is not working.

To break it down:

Code:
[EXP 5x]
D3000000 00000000
005970D8 E1D002B2
005970DC E92D4002
005970E0 E3A01005
005970E4 E0000190
005970E8 E8BD8002
00490E4C EB041983
This code does the following:
Code:
Writes the following bytes to code.bin starting at address 0x005970D8:
B2 02 D0 E1 02 40 2D E9 05 10 A0 E3 90 01 00 E0 02 80 BD E8

This is assembly code which translate to this:
0x5970D8:    LDRH    R0, [R0, #0x22]
0x5970DC:    PUSH    {R1, LR}
0x5970E0:    MOV    R1, #5
0x5970E4:    MUL    R0, R0, R1
0x5970E8:    POP    {R1, PC}

This code basically multiplies your EXP by the amount at 0x005970E0.
The final line of the code takes place at 0x00490E4C. This is the part of code.bin that handles exp. Your non-working EXP code from before was this:
Code:
00490E4C EB041983

This is more assembly code that translates to this:
0x490E4C:    BL    #0x597460

Which points the code to the address 0x00597460 instead of using the built-in 
function for calculating EXP. You can see why this does not work as the 
address we actually need it to jump to is 0x005970D8.
Introduce the new code you posted:
Code:
00490E4C EB0418A1

This assembly code translates to:
0x490E4C:    BL    #0x5970D8
This is what we actually needed and this is why it fixed the issue.

Applying the same logic to the 100% Catch rate code should yield similar results, however it does not. And I'm having trouble figuring out why. I apologize for the delay but I'll have the EXP Multiplier code released in another update soon.
 

Deathbot64

Well-Known Member
Member
Joined
Dec 15, 2014
Messages
336
Trophies
0
Age
31
XP
1,359
Country
Canada
so the instant egg hatch egg crashes my game when i turn it on, everything else seems to work (including Instant egg receive, Thank you so much for that)
 

Sonansune

Well-Known Member
Member
Joined
Jul 2, 2015
Messages
3,734
Trophies
1
XP
2,142
Country
Canada
This is so odd. The 100% catch code is set up basically the same as the EXP code and yet altering it in a similar fashion is not working.

To break it down:

Code:
[EXP 5x]
D3000000 00000000
005970D8 E1D002B2
005970DC E92D4002
005970E0 E3A01005
005970E4 E0000190
005970E8 E8BD8002
00490E4C EB041983
This code does the following:
Code:
Writes the following bytes to code.bin starting at address 0x005970D8:
B2 02 D0 E1 02 40 2D E9 05 10 A0 E3 90 01 00 E0 02 80 BD E8

This is assembly code which translate to this:
0x5970D8:    LDRH    R0, [R0, #0x22]
0x5970DC:    PUSH    {R1, LR}
0x5970E0:    MOV    R1, #5
0x5970E4:    MUL    R0, R0, R1
0x5970E8:    POP    {R1, PC}

This code basically multiplies your EXP by the amount at 0x005970E0.
The final line of the code takes place at 0x00490E4C. This is the part of code.bin that handles exp. Your non-working EXP code from before was this:
Code:
00490E4C EB041983

This is more assembly code that translates to this:
0x490E4C:    BL    #0x597460

Which points the code to the address 0x00597460 instead of using the built-in 
function for calculating EXP. You can see why this does not work as the 
address we actually need it to jump to is 0x005970D8.
Introduce the new code you posted:
Code:
00490E4C EB0418A1

This assembly code translates to:
0x490E4C:    BL    #0x5970D8
This is what we actually needed and this is why it fixed the issue.

Applying the same logic to the 100% Catch rate code should yield similar results, however it does not. And I'm having trouble figuring out why. I apologize for the delay but I'll have the EXP Multiplier code released in another update soon.
Thank you so much the break down! It helps me understand the code much better.
 

Site & Scene News

Popular threads in this forum

Recent Content

General chit-chat
Help Users
  • No one is chatting at the moment.
    Xdqwerty @ Xdqwerty: good night