ROM Hack DS Auto Trainer Maker (DSATM)

Fermosi

Member
Newcomer
Joined
Jun 30, 2008
Messages
7
Trophies
1
Website
Visit site
XP
34
Country
Italy
Okay, i already put the files in the system32 folder...too bad it still doesn't work...tried to use both arm 7 and arm 9 methods with the reccommended addresses i got by adding the ffta2 ram dump...
There's an assembly code error...

Here there are the cheat codes used and the trainer...
By the way, i'm new to these things, dunno anything about hacking or coding as you can see...

CODEAll Jobs Mastered (All Characters) (Press Select)
94000130 FFFB0000
C0000000 00000017
0212C0E8 FFFFFFFF
0212C0EC FFFFFFFF
0212C0F0 FFFFFFFF
0212C0F4 FFFFFFFF
0212C0F8 FFFFFFFF
0212C0FC FFFFFFFF
0212C100 FFFFFFFF
0212C104 FFFFFFFF
0212C108 FFFFFFFF
0212C10C FFFFFFFF
0212C110 FFFFFFFF
0212C114 FFFFFFFF
0212C118 FFFFFFFF
0212C11C FFFFFFFF
0212C120 FFFFFFFF
0212C124 FFFFFFFF
0212C128 FFFFFFFF
0212C12C FFFFFFFF
0212C130 FFFFFFFF
0212C134 FFFFFFFF
0212C138 FFFFFFFF
0212C13C FFFFFFFF
0212C140 FFFFFFFF
0212C144 FFFFFFFF
0212C148 FFFFFFFF
0212C14C FFFFFFFF
0212C150 FFFFFFFF
0212C154 FFFFFFFF
0212C158 FFFFFFFF
0212C15C FFFFFFFF
0212C160 FFFFFFFF
0212C164 FFFFFFFF
0212C168 FFFFFFFF
0212C16C FFFFFFFF
0212C170 FFFFFFFF
0212C174 FFFFFFFF
0212C178 FFFFFFFF
DC000000 0000011C
D2000000 00000000


Press Select for all Weapons, Armor, Accessories, and Items
94000130 FFFB0000
D3000000 0212CCDC
D5000000 63000000
C0000000 000001AF
D6000000 00000000
D4000000 00000001
D2000000 00000000


Max MP (All Characters) (Press Select)
94000130 FFFB0000
C0000000 00000017
0212B158 03E703E7
DC000000 0000011C
D2000000 00000000


Infinite Gil
0212E63C 05F5E0FF


Infinite CP
1212E640 0000270F


Hold L When Choosing Directions To Move Again
0206942C e1c011b2
94000130 fdff0000
0206942c E3A01000
D2000000 00000000



CODEldr r3,numbytes
ldr r2,realtraineraddress
add r1,r15,#0x18
trainercopyloop:
ldr r0,[r1],#0x4
str r0,[r2],#0x4
subs r3,r3,#0x1
bne trainercopyloop
ldr r15,armstart
realtraineraddress: .long 0x23FE000
armstart: .long 0x2380000

trainerstart:
str r0,swap
ldr r0,irqjump0
stmdb r13!,{r0}
ldr r0,swap
b start
str r0,swap
ldr r0,irqjump1
stmdb r13!,{r0}
ldr r0,swap
start:
stmdb r13!,{r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r14}
ldr r5,address0
ldrh r5,[r5]
mov r2,#0x4
mov r0,#0x0
and r5,r5,r2
cmp r5,r0
bne label0

mov r3,#0x17
ldr r0,lval0

ldr r1,address1
str r0,[r1]
ldr r0,lval0

ldr r1,address2
str r0,[r1]
ldr r0,lval0

ldr r1,address3
str r0,[r1]
ldr r0,lval0

ldr r1,address4
str r0,[r1]
ldr r0,lval0

ldr r1,address5
str r0,[r1]
ldr r0,lval0

ldr r1,address6
str r0,[r1]
ldr r0,lval0

ldr r1,address7
str r0,[r1]
ldr r0,lval0

ldr r1,address8
str r0,[r1]
ldr r0,lval0

ldr r1,address9
str r0,[r1]
ldr r0,lval0

ldr r1,address10
str r0,[r1]
ldr r0,lval0

ldr r1,address11
str r0,[r1]
ldr r0,lval0

ldr r1,address12
str r0,[r1]
ldr r0,lval0

ldr r1,address13
str r0,[r1]
ldr r0,lval0

ldr r1,address14
str r0,[r1]
ldr r0,lval0

ldr r1,address15
str r0,[r1]
ldr r0,lval0

ldr r1,address16
str r0,[r1]
ldr r0,lval0

ldr r1,address17
str r0,[r1]
ldr r0,lval0

ldr r1,address18
str r0,[r1]
ldr r0,lval0

ldr r1,address19
str r0,[r1]
ldr r0,lval0

ldr r1,address20
str r0,[r1]
ldr r0,lval0

ldr r1,address21
str r0,[r1]
ldr r0,lval0

ldr r1,address22
str r0,[r1]
ldr r0,lval0

ldr r1,address23
str r0,[r1]
ldr r0,lval0

ldr r1,address24
str r0,[r1]
ldr r0,lval0

ldr r1,address25
str r0,[r1]
ldr r0,lval0

ldr r1,address26
str r0,[r1]
ldr r0,lval0

ldr r1,address27
str r0,[r1]
ldr r0,lval0

ldr r1,address28
str r0,[r1]
ldr r0,lval0

ldr r1,address29
str r0,[r1]
ldr r0,lval0

ldr r1,address30
str r0,[r1]
ldr r0,lval0

ldr r1,address31
str r0,[r1]
ldr r0,lval0

ldr r1,address32
str r0,[r1]
ldr r0,lval0

ldr r1,address33
str r0,[r1]
ldr r0,lval0

ldr r1,address34
str r0,[r1]
ldr r0,lval0

ldr r1,address35
str r0,[r1]
ldr r0,lval0

ldr r1,address36
str r0,[r1]
ldr r0,lval0

ldr r1,address37
str r0,[r1]
ldr r3,lval1
add r1,r1,r3


label0:
ldr r5,address0
ldrh r5,[r5]
mov r2,#0x4
mov r0,#0x0
and r5,r5,r2
cmp r5,r0
bne label1

ldr r6,lval2
ldr r6,lval3
ldr r3,lval4
mov r2,#0x0
mov r1,#0x0
str r6,[r1,+r2]
add r1,r1,#0x4
mov r3,#0x1
add r6,r6,r3


label1:
ldr r5,address0
ldrh r5,[r5]
mov r2,#0x4
mov r0,#0x0
and r5,r5,r2
cmp r5,r0
bne label2

mov r3,#0x17
ldr r0,lval5

ldr r1,address38
str r0,[r1]
ldr r3,lval1
add r1,r1,r3


label2:
ldr r0,lval6

ldr r1,address39
str r0,[r1]
ldr r0,lval7

ldr r1,address40
strh r0,[r1]
ldr r0,lval8

ldr r1,address41
str r0,[r1]
ldr r5,address0
ldrh r5,[r5]
ldr r2,lval9
mov r0,#0x0
and r5,r5,r2
cmp r5,r0
bne label3

ldr r0,lval10

ldr r1,address41
str r0,[r1]


label3:

ldmia r13!,{r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r14}
ldmia r13!,{r15}

address0: .long 0x4000130
address1: .long 0x212C0E8
address2: .long 0x212C0EC
address3: .long 0x212C0F0
address4: .long 0x212C0F4
address5: .long 0x212C0F8
address6: .long 0x212C0FC
address7: .long 0x212C100
address8: .long 0x212C104
address9: .long 0x212C108
address10: .long 0x212C10C
address11: .long 0x212C110
address12: .long 0x212C114
address13: .long 0x212C118
address14: .long 0x212C11C
address15: .long 0x212C120
address16: .long 0x212C124
address17: .long 0x212C128
address18: .long 0x212C12C
address19: .long 0x212C130
address20: .long 0x212C134
address21: .long 0x212C138
address22: .long 0x212C13C
address23: .long 0x212C140
address24: .long 0x212C144
address25: .long 0x212C148
address26: .long 0x212C14C
address27: .long 0x212C150
address28: .long 0x212C154
address29: .long 0x212C158
address30: .long 0x212C15C
address31: .long 0x212C160
address32: .long 0x212C164
address33: .long 0x212C168
address34: .long 0x212C16C
address35: .long 0x212C170
address36: .long 0x212C174
address37: .long 0x212C178
address38: .long 0x212B158
address39: .long 0x212E63C
address40: .long 0x212E640
address41: .long 0x206942C
lval0: .long 0xFFFFFFFF
lval1: .long 0x11C
lval2: .long 0x212CCDC
lval3: .long 0x63000000
lval4: .long 0x1AF
lval5: .long 0x3E703E7
lval6: .long 0x5F5E0FF
lval7: .long 0x270F
lval8: .long 0xE1C011B2
lval9: .long 0x200
lval10: .long 0xE3A01000
g 0x212E640

address41: .long 0x206942C

lval0: .long 0xFFFFFFFF

lval1: .loswap: .long 0x0
irqjump0: .long 0x37FB488
irqjump1: .long 0x3805BE0
trainerend:
numbytes: .long (trainerend-trainerstart)/4
 

Tempus35

Well-Known Member
Newcomer
Joined
Jun 29, 2008
Messages
57
Trophies
0
XP
71
Country
United States
The only codes I have been able to get to work without errors are ones that start with 1 and 2 and 0 and dont have D, C, or 9 in the front.
 

cracker

Nyah!
OP
Member
Joined
Aug 24, 2005
Messages
3,619
Trophies
1
XP
2,213
Country
United States
Updated to 2.8. The C/DC combo codes should be fixed now I tested the infinite health code and the assembly it produced looked good.. I also stepped through it with the debugger but I don't have a savegame and don't feel like getting to a point where I can test it right now.
rolleyes.gif
 

Tempus35

Well-Known Member
Newcomer
Joined
Jun 29, 2008
Messages
57
Trophies
0
XP
71
Country
United States
Hmm I can send a save file(though most likely not in the right format), might be able to convert it. What is the extension of the save you need.
 

cracker

Nyah!
OP
Member
Joined
Aug 24, 2005
Messages
3,619
Trophies
1
XP
2,213
Country
United States
Hmm it doesn't seem to be liking the save even after it is properly converted. Oh well... I can see that it is doing what it is supposed to be doing...

Yeah there weren't any problems with type 5,7,9,D2 codes. It was just type C and DC codes since I hadn't seen them used in that way before and the documentation of some of the code types isn't totally complete (mostly Dx codes) so I just have to update it as necessary.
tongue.gif
 

cracker

Nyah!
OP
Member
Joined
Aug 24, 2005
Messages
3,619
Trophies
1
XP
2,213
Country
United States
Updated to 2.9. I saw that the buffers were running out when I was using the codes for FFTA2 so I made them bigger. I also saw that D4 codes weren't working properly so I fixed that.

@Tempus35: DSATM looks like it is converting all of the codes you posted fine now -- that is the assembly code looks like what I would use if I made it by hand. It seems the job code was an old one that was buggy. I used the one below and it worked correctly:

Code:
Have All Jobs Mastered
94000130 FFFB0000
C0000000 00000017
1212B172 0000FFFF
0212B174 FFFFFFFF
0212B178 FFFFFFFF
0212B17C FFFFFFFF
0212B180 FFFFFFFF
0212B184 FFFFFFFF
0212B188 FFFFFFFF
0212B18C FFFFFFFF
0212B190 FFFFFFFF
0212B194 FFFFFFFF
0212B198 FFFFFFFF
0212B19C FFFFFFFF
0212B1A0 FFFFFFFF
0212B1A4 FFFFFFFF
0212B1A8 FFFFFFFF
0212B1AC FFFFFFFF
0212B1B0 FFFFFFFF
0212B1B4 FFFFFFFF
0212B1B8 FFFFFFFF
0212B1BC FFFFFFFF
0212B1C0 FFFFFFFF
0212B1C4 FFFFFFFF
0212B1C8 FFFFFFFF
0212B1CC FFFFFFFF
0212B1D0 FFFFFFFF
0212B1D4 FFFFFFFF
0212B1D8 FFFFFFFF
0212B1DC FFFFFFFF
0212B1E0 FFFFFFFF
0212B1E4 FFFFFFFF
0212B1E8 FFFFFFFF
0212B1EC FFFFFFFF
0212B1F0 FFFFFFFF
0212B1F4 FFFFFFFF
0212B1F8 FFFFFFFF
0212B1FC FFFFFFFF
0212B200 FFFFFFFF
0212B204 FFFFFFFF
0212B208 FFFFFFFF
0212B20C FFFFFFFF
0212B210 FFFFFFFF
0212B214 FFFFFFFF
0212B218 FFFFFFFF
0212B21C FFFFFFFF
0212B220 FFFFFFFF
0212B224 FFFFFFFF
0212B228 FFFFFFFF
0212B22C FFFFFFFF
0212B230 FFFFFFFF
0212B234 FFFFFFFF
0212B238 FFFFFFFF
DC000000 0000011C
D2000000 00000000


Updated to 3.0 before I even posted the reply. Totally forgot about it when I went to double check FFTA2...
rolleyes.gif
 

ZilvaX

Member
Newcomer
Joined
Jan 14, 2008
Messages
11
Trophies
0
XP
17
Country
Switzerland
Sorry i have now another problem with a game. Well its a game we are familiar with FFTA2, yeah i wanted to use these cheats
FFTA2
Items
520EE8C0 A3A04000
020EE8C0 E3A00063
D2000000 00000000
Gil
0212E63C 05F5E0FF
Hold L When Choosing Directions To Move Again
0206942C e1c011b2
94000130 fdff0000
0206942c E3A01000
D2000000 00000000
Control Enemy
020c37d8 e3a00000
520b9270 e1a04001
020b9270 e1a04181
D2000000 00000000

but when i add it into the game it says its successful but when i play it, it goes to a blank white screen and freeze.
 

cracker

Nyah!
OP
Member
Joined
Aug 24, 2005
Messages
3,619
Trophies
1
XP
2,213
Country
United States
Updated to fix some stupid bugs that occurred from Windows 'features'. Didn't realize that the common dialogs changed the working directory to where the last file is located. So there shouldn't be any more 'Can't open...' errors (assuming you have enough disk space).

ZilvaX said:
Sorry i have now another problem with a game. Well its a game we are familiar with FFTA2, yeah i wanted to use these cheats

*snip*

but when i add it into the game it says its successful but when i play it, it goes to a blank white screen and freeze.

Get 3.1 and it will work -- just tested it.
 

Syzero

Well-Known Member
Newcomer
Joined
Oct 12, 2007
Messages
68
Trophies
0
Website
Visit site
XP
97
Country
im having problems with making a trainer for Pokemon mystery dungeon 2 (Time) cuz after i auto patch it i load it on an emulator to test it and it had an error 'ROM IMAGE HAS CRASHED'. DEADBEEF padding makes the game work perfectly but when i want to add the cheats, it stuffs up.
nds.gif


This is the txt im using:
Code:
Max/Infinite Money In Bank
0229c128 3b9ac9ff

Restore HP (Press Y)
9237211c f7ff0800
121acc52 000003e7
d2000000 00000000

Restore Move Points (L+A)
9237211c 00000201
221acd66 00000063
221acd6e 00000063
221acd76 00000063
221acd7e 00000063
d2000000 00000000

Max IQ (Press Y)
9237211c f7ff0800
221acc51 00000004
d2000000 00000000

(Partner)ÂÂRestore HP (Press Y)
9237211c f7ff0800
121ace82 000003e7
d2000000 00000000

(Partner)ÂÂRestore Move Points (L+A)
9237211c 00000201
221acf96 00000063
221acf9e 00000063
221acfa6 00000063
221acfae 00000063
d2000000 00000000

(Partner)ÂÂMax IQ (Press Y)
9237211c f7ff0800
221ace81 00000004
d2000000 00000000

and the trainer.asm file:
Code:
ldr r3,numbytes
ldr r2,realtraineraddress
add r1,r15,#0x18
trainercopyloop:
ldr r0,[r1],#0x4
str r0,[r2],#0x4
subs r3,r3,#0x1
bne trainercopyloop
ldr r15,armstart
realtraineraddress: .long 0x225AA00
armstart: .long 0x2380000

trainerstart:
str r0,swap
ldr r0,irqjump0
stmdb r13!,{r0}
ldr r0,swap
b start
str r0,swap
ldr r0,irqjump1
stmdb r13!,{r0}
ldr r0,swap
start:
stmdb r13!,{r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r14}
ldr r1,enableflag
ldr r2,enablekey
ldr r3,disablekey
mov r0,#0x4000000
ldr r0,[r0,#0x130]
cmp r0,r2
moveq r1,#0x1
cmp r0,r3
moveq r1,#0x0
str r1,enableflag
cmp r1,#0x0
bne turnedon
ldmia r13!,{r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r14}
ldmia r13!,{r15}

turnedon:

ldr r4,slowdownkey
ldr r5,speedupkey
mov r1,#0x4000000
ldr r1,[r1,#+0x130]
ldr r0,slowmolevel
cmp r1,r4
addeq r0,#0x1
cmp r0,#0x1500
movgt r0,#0x1500
cmp r1,r5
subeqs r0,#0x1
movlt r0,#0x0
str r0,slowmolevel
slowmoloop:
mov r1,#0x1
slowmoinnerloop:
subs r1,r1,#0x1
bne slowmoinnerloop
subs r0,r0,#0x1
bcc slowmodone
b slowmoloop
slowmolevel: .long 0x0
slowmodone:
ldr r0,lval0

ldr r1,address0
str r0,[r1]
ldr r5,address1
ldrh r5,[r5]
ldr r2,lval1
ldr r0,lval1
and r5,r5,r2
cmp r5,r0
bne label0

ldr r0,lval2

ldr r1,address2
strh r0,[r1]


label0:
ldr r5,address1
ldrh r5,[r5]
ldr r2,lval3
ldr r0,lval4
and r5,r5,r2
cmp r5,r0
bne label1

mov r0,#0x63

ldr r1,address3
strb r0,[r1]
mov r0,#0x63

ldr r1,address4
strb r0,[r1]
mov r0,#0x63

ldr r1,address5
strb r0,[r1]
mov r0,#0x63

ldr r1,address6
strb r0,[r1]


label1:
ldr r5,address1
ldrh r5,[r5]
ldr r2,lval1
ldr r0,lval1
and r5,r5,r2
cmp r5,r0
bne label2

mov r0,#0x4

ldr r1,address7
strb r0,[r1]


label2:
ldr r5,address1
ldrh r5,[r5]
ldr r2,lval1
ldr r0,lval1
and r5,r5,r2
cmp r5,r0
bne label3

ldr r0,lval2

ldr r1,address8
strh r0,[r1]


label3:
ldr r5,address1
ldrh r5,[r5]
ldr r2,lval3
ldr r0,lval4
and r5,r5,r2
cmp r5,r0
bne label4

mov r0,#0x63

ldr r1,address9
strb r0,[r1]
mov r0,#0x63

ldr r1,address10
strb r0,[r1]
mov r0,#0x63

ldr r1,address11
strb r0,[r1]
mov r0,#0x63

ldr r1,address12
strb r0,[r1]


label4:
ldr r5,address1
ldrh r5,[r5]
ldr r2,lval1
ldr r0,lval1
and r5,r5,r2
cmp r5,r0
bne label5

mov r0,#0x4

ldr r1,address13
strb r0,[r1]


label5:

ldmia r13!,{r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r14}
ldmia r13!,{r15}

address0: .long 0x229C128
address1: .long 0x237211C
address2: .long 0x21ACC52
address3: .long 0x21ACD66
address4: .long 0x21ACD6E
address5: .long 0x21ACD76
address6: .long 0x21ACD7E
address7: .long 0x21ACC51
address8: .long 0x21ACE82
address9: .long 0x21ACF96
address10: .long 0x21ACF9E
address11: .long 0x21ACFA6
address12: .long 0x21ACFAE
address13: .long 0x21ACE81
lval0: .long 0x3B9AC9FF
lval1: .long 0x800
lval2: .long 0x3E7
lval3: .long 0xFFFF
lval4: .long 0x201
enableflag: .long 0x0
enablekey: .long 0x2FE;@R+A
disablekey: .long 0x2FD;@R+B

slowdownkey: .long 0x1FE;@L+A
speedupkey: .long 0x1FD;@L+B

swap: .long 0x0
irqjump0: .long 0x37FB9D4
irqjump1: .long 0x3806BE0
trainerend:
numbytes: .long (trainerend-trainerstart)/4

Also, is it ok to put slow-mo and cheat codes in the patch cuz thats what i did and is the RAM dump required? Because i tried auto patching with and without RAM dump, patch still works but has same error. Whats making this happen?
 

cracker

Nyah!
OP
Member
Joined
Aug 24, 2005
Messages
3,619
Trophies
1
XP
2,213
Country
United States
You are corrupting RAM at 0x225AA00 (or rather the Pokemon game is corrupting the trainer function). Use 0x23fe000 and it works fine.
 

Syzero

Well-Known Member
Newcomer
Joined
Oct 12, 2007
Messages
68
Trophies
0
Website
Visit site
XP
97
Country
cracker said:
You are corrupting RAM at 0x225AA00 (or rather the Pokemon game is corrupting the trainer function). Use 0x23fe000 and it works fine.
do i need to make the 'fe' lower case or does that not matter?
 

Syzero

Well-Known Member
Newcomer
Joined
Oct 12, 2007
Messages
68
Trophies
0
Website
Visit site
XP
97
Country
thats odd, cuz i still hav that same error. oh, and what do i do with the RAM dump thing?

(i noticed that the patched game is smaller than the original and is deadbeef pading required?)
 

cracker

Nyah!
OP
Member
Joined
Aug 24, 2005
Messages
3,619
Trophies
1
XP
2,213
Country
United States
RAM dumps are only to find a safe spot in RAM to place the trainer at. It isn't needed for 99% of the games when using autopatching since 0x23fe000 isn't used by most games.

No it doesn't need to be DEADBEEF padded. Patched games will always be smaller since when the games are rebuilt they aren't padded back to an even number of megs. There is nothing wrong with them.
smile.gif
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    SylverReZ @ SylverReZ: @Psionic Roshambo, https://youtu.be/9FcXxqthgUM?feature=shared&t=169