ROM Hack [WIP]USUMCheatMenu - Old3DS compatible NTR plugin for Ultra Sun/Moon

maron2000

New Member
Newbie
Joined
Sep 26, 2010
Messages
3
Trophies
0
XP
159
Country
United States
I just simply converted someone else's 100% catch, and seems to work so far.
void catch100(void) {
WRITEU32(0x005B9EA0, 0xE5D00008);
WRITEU32(0x005B9EA4, 0xE92D4003);
WRITEU32(0x005B9EA8, 0xE59D0010);
WRITEU32(0x005B9EAC, 0xE59F100C);
WRITEU32(0x005B9EB0, 0xE1510000);
WRITEU32(0x005B9EB4, 0x024000F8);
WRITEU32(0x005B9EB8, 0x058D0010);
WRITEU32(0x005B9EBC, 0xE8BD8003);
WRITEU32(0x005B9EC0, 0x0070A824);
WRITEU32(0x004AB184, 0xEB043B45);
}
 

unipablojorge

Totally not an FBI agent.
OP
Member
Joined
May 25, 2017
Messages
161
Trophies
0
Age
29
Location
Navarre
XP
146
Country
Spain
I have found two codes for instant egg haching. But the last line differs

[Egg Instant Hatch v1.0]
005B9E40 E59D000C
005B9E44 E59F500C
005B9E48 E1500005
005B9E4C 03A00000
005B9E50 11A00004
005B9E54 E12FFF1E
005B9E58 007024B4
004ADA5C EB0430F7

[Egg Instant Hatch]
005B9E40 E59D000C
005B9E44 E59F500C
005B9E48 E1500005
005B9E4C 03A00000
005B9E50 11A00004
005B9E54 E12FFF1E
005B9E58 007024B4
004ADA54 EB0430F9
Instant hatching should work on Ultra Moon (don't know in Ultra Sun) in current version. For me it does.
You are awesome dude seriously I honestly don't know what else to say but thank you for this for all us O3DS bros :)
I am a old3DS user myself, so I wanted to have a plugin that I can use. Old3DS users are still a thing. Hope you like it
I just simply converted someone else's 100% catch, and seems to work so far.
void catch100(void) {
WRITEU32(0x005B9EA0, 0xE5D00008);
WRITEU32(0x005B9EA4, 0xE92D4003);
WRITEU32(0x005B9EA8, 0xE59D0010);
WRITEU32(0x005B9EAC, 0xE59F100C);
WRITEU32(0x005B9EB0, 0xE1510000);
WRITEU32(0x005B9EB4, 0x024000F8);
WRITEU32(0x005B9EB8, 0x058D0010);
WRITEU32(0x005B9EBC, 0xE8BD8003);
WRITEU32(0x005B9EC0, 0x0070A824);
WRITEU32(0x004AB184, 0xEB043B45);
}
As son as I have my computer I will try it. Thanks a lot dude!

Fast egg haching does not work on O3ds
It just worked for me. Make sure you have the latest version of the plugin and it's in its respective folder. Also, if you are playing in Ultra Sun it may not work. I don't have Ultra Sun installed so I can't try. As soon as I have good internet I will download it and change the codes
 
Last edited by unipablojorge,

unipablojorge

Totally not an FBI agent.
OP
Member
Joined
May 25, 2017
Messages
161
Trophies
0
Age
29
Location
Navarre
XP
146
Country
Spain
.
Is there a guide on how to instal Gate Shark? Can't seem to find a thread atm. I have CFW and everything intalled from the 3ds.guide website
Gateshark is the engine the game cart Gateway used to handle the cheats. There is no way to install it. Someone made a fork of ntr that supported GateShark codes, but the most complicated ones won't work there. If you want to be able to use the Gateshark codes, buy a GateWay 3DS.
 

domanhhp

Active Member
Newcomer
Joined
Oct 25, 2015
Messages
32
Trophies
0
Age
33
XP
106
Country
.

Gateshark is the engine the game cart Gateway used to handle the cheats. There is no way to install it. Someone made a fork of ntr that supported GateShark codes, but the most complicated ones won't work there. If you want to be able to use the Gateshark codes, buy a GateWay 3DS.
Please build ver 1.9.0 as soon as possible :D . I have a question , what's tool do you use convert compressed files to .plg format ?
 

unipablojorge

Totally not an FBI agent.
OP
Member
Joined
May 25, 2017
Messages
161
Trophies
0
Age
29
Location
Navarre
XP
146
Country
Spain
Please build ver 1.9.0 as soon as possible :D . I have a question , what's tool do you use convert compressed files to .plg format ?
I program the codes in C, then build them using DevkitARM and python 2.7. Just run the .bat basically. I don't have my computer currently, but I'll do the new version as soon as possible
 

unipablojorge

Totally not an FBI agent.
OP
Member
Joined
May 25, 2017
Messages
161
Trophies
0
Age
29
Location
Navarre
XP
146
Country
Spain
2017-11-18 12:39:04 : Compiling C files
./Sources/items.c: In function 'itemMenu':
./Sources/items.c:35:126: error: 'allClothesM' undeclared (first use in this function)
new_entry_managed_note("All Clothes MALE", "Don't activate it if you are female. You will receive the clothes immediatly", allClothesM, ALLCLOTHESM, EXECUTE_ONCE);
^
./Sources/items.c:35:126: note: each undeclared identifier is reported only once for each function it appears in
./Sources/items.c:35:139: error: 'ALLCLOTHESM' undeclared (first use in this function)
new_entry_managed_note("All Clothes MALE", "Don't activate it if you are female. You will receive the clothes immediatly", allClothesM, ALLCLOTHESM, EXECUTE_ONCE);
i have gotten this error wheni tried to buid the cheats so i can test it

by looking at your cheat item.c and analogman one i can see that clothes item was made diffrently
It just built fine for me. Make sure you have the latest cheats.h from my github and try again.
 

Pkm collector1

Well-Known Member
Member
Joined
Apr 16, 2014
Messages
206
Trophies
1
Age
42
XP
434
Country
United States
tested codes from me

*med codes works
*berry codes works
*outline codes works
*catch rate 100% works with using pokeballs
clothes some but not all color strip tee not shown baught in the game for male though

*money works

in hit hp left one hit codes works it dont show in their bar but it does kill them fast tried it with level 6 ledya with a wild froufrou level 9
*wild shinny work for wild mons

codes to be added would be nice is the pp for the mons
 
Last edited by Pkm collector1,

Sonansune

Well-Known Member
Member
Joined
Jul 2, 2015
Messages
3,734
Trophies
1
XP
2,142
Country
Canada
ok. let's do this again.
take this cheat as example.
[Raises the all Status of a Pokemon by 6 stage]
E05B9D60 00000058
E92D401F E59F0018
E150000E 18BD801F
E59F0010 FA000005
E59F000C FA000003
E8BD801F 0071A77C
30000404 300073EC
220CB50F 33181C03
29006801 31F5D008
700A31F5 708A704A
710A70CA 718A714A
42833004 BD0FD1F0

0029B74C EA0C7983


the first line basically means start from address 5B9D60, we write 0x58 bytes that right after this line of command.
so 0x58 / 8 = 0xB (dec: 11 rows). red parts

the cheat in an intuitive way could be.
005B9D60 E92D401F
005B9D64 E59F0018
...
...
...
005B9DB8 BD0FD1F0
0029B74C EA0C7983



similarly,
[(Hold START and Open OPTIONS menu)Access the PC from anywhere]
E05B9EE0 00000088
E92D400E E59F1074
E5912000 E3A03000
E5813000 E3A03C13
E2833093 E1520003
03A04000 11A04000
E8BD800E E350000X ---> for different entry. E: options, D: battle replay, etc.
EAF711CB E92D400F
E24DD010 E3A00000
E58D0000 E58D0004
E58D0008 E58D000C
E1A03000 E1A02000
E3A01C13 E2811093
E59F0018 E5801000
E59F0014 E5900000
EBF7803B E3A00002
E28DD010 E8BD800F
00667000 006A3984

0037CB10 EB08F4FD
00389F88 EB08BFD4
DD000000 00000008 ---> if start button is pressed
005B9F10 1AF711CB
D0000000 00000000




[Always critical hit] same color as a section
58087E30 E59D0000
50667018 00000000
00667018 00000010
D0000000 00000000
D0000000 00000000
60667018 00000000
D9000000 00667018
D4000000 FFFFFFFF
D6000000 00667018
D0000000 00000000
D3000000 00000000
50667018 00000001

08105F50 E59D0000
08105F54 E92D401E
08105F58 E59A1008
08105F5C E2813004
08105F60 E281401C
08105F64 E4932004
08105F68 E1500002
08105F6C 03A01001
08105F70 058D1018
08105F74 E1530004
08105F78 1AFFFFF9
08105F7C E8BD801E
08087E30 EB01F846

D0000000 00000000

if 8087E30 to 33 is E59D0000, execute:
50667018 00000000
00667018 00000010
D0000000 00000000

if 667018 to 1B is 00000000, execute:
D9000000 00667018 ---> load 4 bytes start at 667018 into a data holder.
D4000000 FFFFFFFF ---> add FFFFFFFF to the data holder.
D6000000 00667018 ---> store value in data holder back to 667018

codes above D3000000 is actually a countdown code to slow down the core code execution


iif 667018 equal to 00000001, execute:
the purple bold section. a bunch of value writing

similarly,
this cheat has exactly same structure.
[PP Not Decrease]
5808F868 E1A04000
50667020 00000000
00667020 00000010
D0000000 00000000
D0000000 00000000
60667020 00000000
D9000000 00667020
D4000000 FFFFFFFF
D6000000 00667020
D0000000 00000000
D3000000 00000000
50667020 00000001
08105FD4 E1A04000
08105FD8 E92D4007
08105FDC E59F0018
08105FE0 E2801018
08105FE4 E4902004
08105FE8 E1560002
08105FEC 03A04000
08105FF0 E1510000
08105FF4 1AFFFFFA
08105FF8 E8BD8007
08105FFC 300073EC
0808F868 EB01D9D9
D0000000 00000000
 
Last edited by Sonansune,
  • Like
Reactions: unipablojorge

unipablojorge

Totally not an FBI agent.
OP
Member
Joined
May 25, 2017
Messages
161
Trophies
0
Age
29
Location
Navarre
XP
146
Country
Spain
I just simply converted someone else's 100% catch, and seems to work so far.
void catch100(void) {
WRITEU32(0x005B9EA0, 0xE5D00008);
WRITEU32(0x005B9EA4, 0xE92D4003);
WRITEU32(0x005B9EA8, 0xE59D0010);
WRITEU32(0x005B9EAC, 0xE59F100C);
WRITEU32(0x005B9EB0, 0xE1510000);
WRITEU32(0x005B9EB4, 0x024000F8);
WRITEU32(0x005B9EB8, 0x058D0010);
WRITEU32(0x005B9EBC, 0xE8BD8003);
WRITEU32(0x005B9EC0, 0x0070A824);
WRITEU32(0x004AB184, 0xEB043B45);
}
Added to the plugin, now it works!
Thank you, I'll add your name to the contributors :D

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

58087E30 E59D0000
50667018 00000000
00667018 00000010
D0000000 00000000
D0000000 00000000
60667018 00000000
D9000000 00667018
D4000000 FFFFFFFF
D6000000 00667018
D0000000 00000000
D3000000 00000000
50667018 00000001

08105F50 E59D0000
08105F54 E92D401E
08105F58 E59A1008
08105F5C E2813004
08105F60 E281401C
08105F64 E4932004
08105F68 E1500002
08105F6C 03A01001
08105F70 058D1018
08105F74 E1530004
08105F78 1AFFFFF9
08105F7C E8BD801E
08087E30 EB01F846

D0000000 00000000

if 8087E30 to 33 is E59D0000, execute:
50667018 00000000
00667018 00000010
D0000000 00000000

if 667018 to 1B is 00000000, execute:
D9000000 00667018 ---> load 4 bytes start at 667018 into a data holder.
D4000000 FFFFFFFF ---> add FFFFFFFF to the data holder.
D6000000 00667018 ---> store value in data holder back to 667018

iif 667018 equal to 00000001, execute:
the purple bold section. a bunch of value writing

I understand that part, sad thing it crashes the game (@ymyn said it was gateway only)

[Raises the all Status of a Pokemon by 6 stage]
E05B9D60 00000058
E92D401F E59F0018
E150000E 18BD801F
E59F0010 FA000005
E59F000C FA000003
E8BD801F 0071A77C
30000404 300073EC
220CB50F 33181C03
29006801 31F5D008
700A31F5 708A704A
710A70CA 718A714A
42833004 BD0FD1F0

0029B74C EA0C7983


the first line basically means start from address 5B9D60, we write 0x58 bytes that right after this line of command.
so 0x58 / 8 = 0xB (dec: 11 rows). red parts

the cheat in an intuitive way could be.
005B9D60 E92D401F
005B9D64 E59F0018
...
...
...
005B9DB8 BD0FD1F0
0029B74C EA0C7983
Ok, that was a great explanation. I only have one question:
How does the code say that you have to add 0x04 to the next address? Here:
Code:
005B9D60 E92D401F
005B9D64 E59F0018

From the first address that gets written (005B9D60) to the second (005B9D64) there is 0x04 of difference. Is this always like that? If not, where does the code specify to add 4 between addresses?
 

Sonansune

Well-Known Member
Member
Joined
Jul 2, 2015
Messages
3,734
Trophies
1
XP
2,142
Country
Canada
Added to the plugin, now it works!
Thank you, I'll add your name to the contributors :D

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



I understand that part, sad thing it crashes the game (@ymyn said it was gateway only)


Ok, that was a great explanation. I only have one question:
How does the code say that you have to add 0x04 to the next address? Here:
Code:
005B9D60 E92D401F
005B9D64 E59F0018

From the first address that gets written (005B9D60) to the second (005B9D64) there is 0x04 of difference. Is this always like that? If not, where does the code specify to add 4 between addresses?
cuz you write a 4 bytes start from 5b9d60:
5b9d60 : 1F
61: 40
62: 2D
63: E9
thus, next 4 bytes goes to 64.
remember you coding with big endian for gateshark and ntr. but, code actually write into ram as liittle endian (like the reverse order in above example)
 

unipablojorge

Totally not an FBI agent.
OP
Member
Joined
May 25, 2017
Messages
161
Trophies
0
Age
29
Location
Navarre
XP
146
Country
Spain
cuz you write a 4 bytes start from 5b9d60:
5b9d60 : 1F
61: 40
62: 2D
63: E9
thus, next 4 bytes goes to 64.
remember you coding with big endian for gateshark and ntr. but, code actually write into ram as liittle endian (like the reverse order in above example)
Thank you very much! I think I understand now! Let's see if I can get this to work!
 

Sonansune

Well-Known Member
Member
Joined
Jul 2, 2015
Messages
3,734
Trophies
1
XP
2,142
Country
Canada
for the coutdown codes. you have to use other mem region instead of 667000 section. iirc, ntr does not have acess to that section. (could be wrong on this one)

it also could be the 8000000 section code, since you need a work around for 8000000 to get it works on ntr. (this one im quite sure about it)
 
Last edited by Sonansune,

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,717
Trophies
2
XP
6,284
Country
for the coutdown codes. you have to use other mem region instead of 667000 section. iirc, ntr does not have acess to that section. (could be wrong on this one)

it also could be the 8000000 section code, since you need a work around for 8000000 to get it works on ntr. (this one im quite sure about it)
it doesn't need the countdown code, all it needs is an inbattle check and check 080000000 address (checkAddress) is safe to write to
check the source code for reference
 
  • Like
Reactions: Sonansune

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    ZeroT21 @ ZeroT21: :lol: