ROM Hack Anybody know any good Programs/ Apps. to hack NDS games with?

Lockon Stratos

Well-Known Member
OP
Member
Joined
Apr 1, 2008
Messages
262
Trophies
1
Age
28
Location
Sylvarant - Tales of Symphonia
Website
Visit site
XP
240
Country
Hi, does anyone know what's the best programs to use to hack a NDS game. Just the recommended ones will do.

Thanks.
yaynds.gif
 

Lockon Stratos

Well-Known Member
OP
Member
Joined
Apr 1, 2008
Messages
262
Trophies
1
Age
28
Location
Sylvarant - Tales of Symphonia
Website
Visit site
XP
240
Country
Noitora said:
Ameer10 said:
Hi, does anyone know what's the best programs to use to hack a NDS game. Just the recommended ones will do.

Thanks.
yaynds.gif
Umm...A hex editor for starters....
and better read this tutorial: http://www.romhacking.net/start
Thanks I understand most of it except some bits like -
1- To figure out the binary representation is of a decimal number, we're going to have
to devide by 2 until we hit 0, paying particular attention to remainders and
ignoring any numbers after the decimal place that result from our division


- What if it's a even number? Which wouldn't have remainders.

2- What? You don't believe me that 1E is 30
(even if you do, please play along. It makes this so much more fun)? Lets convert 1E
to decimal and find out. Converting hexadecimal to decimal is done pretty much the
same way converting binary to hexadecimal was done.

1E

The digit on the far right is said to be in the "0's place" and the digit to the
left of the 0 is in the "1's place". Just like we did with the binary conversion,
we're going to be multiplying by a power of some number. What would that number be
here? In the case of binary (base 2) it was 2. So in the case of hexadecimal (base
16), I suppose it would be 16, ne?

E * 16^0

1 * 16^1

E is the hexadecimal equivalent of 14. (A=10, B=11, C=12, ...) Keep in mind the
lessons from your highschool math lessons. Anything to the 0 power is 1. And
anything to the 1st power is itself. Therefore 16 raised to the 0 power is equal to
1, and 16 rased to the first power is 16.


- How did he get the 16 if he just made it up? How would you originally find that out? and is the hexadecimal system thing used to replace double digits? And what if used "D" which is 36? and you need to go over?
 

nicman000

Well-Known Member
Newcomer
Joined
Sep 27, 2007
Messages
67
Trophies
1
XP
88
Country
Short answer is if you don't get it from simple guides don't bother asking stupid questions.

Alternatively you could learn how to work in hexadecimal.
Also if I remember correctly there was already a topic on "hacking" "NDS" games today.

biggrin.gif
 

Evilmaster1985

Well-Known Member
Member
Joined
Nov 23, 2008
Messages
456
Trophies
1
Location
Middle of nowhere
XP
109
Country
United States
Hmmm maybe it would be better if I explained in my own way:

00000001 = 2^0 = 1
00000010 = 2^1 = 2
00000100 = 2^2 = 4
00001000 = 2^3 = 8
00010000 = 2^4 = 16
00100000 = 2^5 = 32
01000000 = 2^6 = 64
10000000 = 2^7 = 128

Alright so like you noted before: Anything to the 0 power is 1.
The formulla you need to calculate from binary to decimal is: 2^ (position -1)
(Everything between ( )`s has priority as you know)
(So infact what you do is: Position minus 1 by the power of 2.)

So lets pick a random number: 4
4 is in the 3rth position 3 - 1 = 2^2 = 4

So now lets say you wanted to make the number 5?
00000001 = 2^0 = 1
00000100 = 2^2 = 4
-------------------------+
00000101 = 2^0 = 1 | 2^2 = 4 | 1 + 4 = 5

I hope by putting these 2 near eachother you found a way to make 5:
1 + 4 = 5 so 5 in binary will look like: 00000101

Now thats only to convert from binary to decimal.
If you wanted to convert decimal to hex decimal:
You would need to understand how the system counts.
I hope by posting the following list of digits you may understand it.
Code:
--------------------------------------
DecimalÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Hexadecimal
--------------------------------------
1ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ 01
2ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ 02
3ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ 03
4ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ 04
5ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ 05
6ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ 06
7ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ 07
8ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ 08
9ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ 09
10ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ0A
11ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ0B
12ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ0C
13ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ0D
14ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ0E
15ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ0F
16ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ10
17ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ11
18ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ12
19ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ13
20ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ14
21ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ15
22ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ16
23ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ17
24ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ18
25ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ19
26ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ1A
27ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ1B
28ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ1C
29ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ1D
30ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ1E
31ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ1F
32ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ20
33ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ21
34ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ22
35ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ23
36ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ24
37ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ25
38ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ26
39ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ27
40ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ28
41ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ29
42ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ2A
43ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ2B
44ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ2C
45ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ2D
46ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ2E
47ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ2F
48ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ30
49ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ31
50ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ32
51ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ33
52ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ34
53ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ35
54ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ36
55ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ37
56ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ38
57ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ39
58ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ3A
59ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ3B
60ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ3C
61ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ3D
62ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ3E
63ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ3F
64ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ40
65ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ41
66ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ42
67ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ43
68ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ44
69ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ45
70ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ46
71ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ47
72ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ48
73ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ49
74ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ4A
75ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ4B
76ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ4C
77ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ4D
78ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ4E
79ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ4F
80ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ50
81ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ51
82ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ52
83ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ53
84ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ54
85ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ55
86ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ56
87ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ57
88ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ58
89ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ59
90ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ5A
91ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ5B
92ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ5C
93ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ5D
94ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ5E
95ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ5F
96ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ60
97ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ61
98ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ62
99ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ63
100ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ 64
255ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ FF
9999ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ270F
65,535ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂFF FF
99,999,999ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂFF E0 F5 05
--------------------------------------

Think that with this info you could figure out your questions
smile.gif


Greetz, Vistabuser.
 

Lockon Stratos

Well-Known Member
OP
Member
Joined
Apr 1, 2008
Messages
262
Trophies
1
Age
28
Location
Sylvarant - Tales of Symphonia
Website
Visit site
XP
240
Country
Yeah thanks I'll try hacking a random game on my comp later. So is that all you need to know about hackign or is there more?

Posts merged

nicman000 said:
Short answer is if you don't get it from simple guides don't bother asking stupid questions.

Alternatively you could learn how to work in hexadecimal.
Also if I remember correctly there was already a topic on "hacking" "NDS" games today.

biggrin.gif
I do understand it It's just that I need to get it clear before I try myself.
unsure.gif
 

psycoblaster

Divine
Member
Joined
Jan 26, 2008
Messages
2,131
Trophies
1
Age
34
Location
Seoul.. (in Korea)
Website
Visit site
XP
211
Country
Ameer10 said:
Noitora said:
Ameer10 said:
Hi, does anyone know what's the best programs to use to hack a NDS game. Just the recommended ones will do.

Thanks.
yaynds.gif
Umm...A hex editor for starters....
and better read this tutorial: http://www.romhacking.net/start
Thanks I understand most of it except some bits like -
1- To figure out the binary representation is of a decimal number, we're going to have
to devide by 2 until we hit 0, paying particular attention to remainders and
ignoring any numbers after the decimal place that result from our division


- What if it's a even number? Which wouldn't have remainders.

2- What? You don't believe me that 1E is 30
(even if you do, please play along. It makes this so much more fun)? Lets convert 1E
to decimal and find out. Converting hexadecimal to decimal is done pretty much the
same way converting binary to hexadecimal was done.

1E

The digit on the far right is said to be in the "0's place" and the digit to the
left of the 0 is in the "1's place". Just like we did with the binary conversion,
we're going to be multiplying by a power of some number. What would that number be
here? In the case of binary (base 2) it was 2. So in the case of hexadecimal (base
16), I suppose it would be 16, ne?

E * 16^0

1 * 16^1

E is the hexadecimal equivalent of 14. (A=10, B=11, C=12, ...) Keep in mind the
lessons from your highschool math lessons. Anything to the 0 power is 1. And
anything to the 1st power is itself. Therefore 16 raised to the 0 power is equal to
1, and 16 rased to the first power is 16.


- How did he get the 16 if he just made it up? How would you originally find that out? and is the hexadecimal system thing used to replace double digits? And what if used "D" which is 36? and you need to go over?
Well I've been using calc.exe in windows XD

if you want to start hacking for fun, I recommend something easy like gundam 00.
 

psycoblaster

Divine
Member
Joined
Jan 26, 2008
Messages
2,131
Trophies
1
Age
34
Location
Seoul.. (in Korea)
Website
Visit site
XP
211
Country
Vistabuser said:
Lal yes you can use calc.
However its sometimes smart to understand how something works before you put your brain aside and bash calculator buttons
tongue.gif


Greetz, Vistabuser.
You get used to if you try coding a hex -> dec / dec -> hex on any programming language, because that way, you fully understand how it works. However, when you actually open up a ROM, you don't want to be mentally converting 0x1E69 to decimal values XD
 

Lockon Stratos

Well-Known Member
OP
Member
Joined
Apr 1, 2008
Messages
262
Trophies
1
Age
28
Location
Sylvarant - Tales of Symphonia
Website
Visit site
XP
240
Country
psycoblaster said:
Ameer10 said:
Noitora said:
Ameer10 said:
Hi, does anyone know what's the best programs to use to hack a NDS game. Just the recommended ones will do.

Thanks.
yaynds.gif
Umm...A hex editor for starters....
and better read this tutorial: http://www.romhacking.net/start
Thanks I understand most of it except some bits like -
1- To figure out the binary representation is of a decimal number, we're going to have
to devide by 2 until we hit 0, paying particular attention to remainders and
ignoring any numbers after the decimal place that result from our division


- What if it's a even number? Which wouldn't have remainders.

2- What? You don't believe me that 1E is 30
(even if you do, please play along. It makes this so much more fun)? Lets convert 1E
to decimal and find out. Converting hexadecimal to decimal is done pretty much the
same way converting binary to hexadecimal was done.

1E

The digit on the far right is said to be in the "0's place" and the digit to the
left of the 0 is in the "1's place". Just like we did with the binary conversion,
we're going to be multiplying by a power of some number. What would that number be
here? In the case of binary (base 2) it was 2. So in the case of hexadecimal (base
16), I suppose it would be 16, ne?

E * 16^0

1 * 16^1

E is the hexadecimal equivalent of 14. (A=10, B=11, C=12, ...) Keep in mind the
lessons from your highschool math lessons. Anything to the 0 power is 1. And
anything to the 1st power is itself. Therefore 16 raised to the 0 power is equal to
1, and 16 rased to the first power is 16.


- How did he get the 16 if he just made it up? How would you originally find that out? and is the hexadecimal system thing used to replace double digits? And what if used "D" which is 36? and you need to go over?
Well I've been using calc.exe in windows XD

if you want to start hacking for fun, I recommend something easy like gundam 00.
Yeah I'm gonna attempt to patch PS0 but I need to understand the program frist + what does the "^" mean in the E * 16^0 thing?
 

psycoblaster

Divine
Member
Joined
Jan 26, 2008
Messages
2,131
Trophies
1
Age
34
Location
Seoul.. (in Korea)
Website
Visit site
XP
211
Country
CODEimport java.util.ArrayList;
/**
* Converts Hexadecimals to Decimals.
*
* By Psycoblaster
*/
public class hexdec
{
ÂÂÂÂprivate ArrayList table;
ÂÂÂÂpublic hexdec()
ÂÂÂÂ{
ÂÂÂÂÂÂÂÂtable = new ArrayList();
ÂÂÂÂÂÂÂÂfor(int i = 0; i
 

Lockon Stratos

Well-Known Member
OP
Member
Joined
Apr 1, 2008
Messages
262
Trophies
1
Age
28
Location
Sylvarant - Tales of Symphonia
Website
Visit site
XP
240
Country
psycoblaster said:
His username is KiC here in gbatemp.
however, arm ASM is not elementary.
Try with something easier, like the SNES.
Or you can try Z80 if you have a TI graphing calc
tongue.gif
Thanks again would GBA do as a good substitute instead of SNES for practice?
Also what are the main things hexadecimals used for?

So I'm using a Hex Editor called CrystalTile2 and on the left it shows the interpretation of the binary codes. But which part of it the kanji?

Okay so I've learnt the basics and I've unpacked my .nds file using DSLazy and there're .bin files. Is there any specific apps. to use for .bin files?
 

psycoblaster

Divine
Member
Joined
Jan 26, 2008
Messages
2,131
Trophies
1
Age
34
Location
Seoul.. (in Korea)
Website
Visit site
XP
211
Country
Ameer10 said:
psycoblaster said:
His username is KiC here in gbatemp.
however, arm ASM is not elementary.
Try with something easier, like the SNES.
Or you can try Z80 if you have a TI graphing calc
tongue.gif
Thanks again would GBA do as a good substitute instead of SNES for practice?
Also what are the main things hexadecimals used for?

So I'm using a Hex Editor called CrystalTile2 and on the left it shows the interpretation of the binary codes. But which part of it the kanji?

Okay so I've learnt the basics and I've unpacked my .nds file using DSLazy and there're .bin files. Is there any specific apps. to use for .bin files?
no, gba is also arm
hexadecimals are ways to represent binary in a more user friendly way.
would you want to edit stuff like 1000000101011011 or just edit hexadecimals like 815B?
you don't want to stare at binary editors with only 1's and zeros.
but what's it actually used for? everything.
You can't JUST find text by opening up a ROM with a hex editor.
You need to load a codepage for it. you can load your own, or you can use crystaltile's - crystaltile2 has several inbuilt tables, including s-jis and unicode UTF-8, 16, etc
Load whichever the game uses, and you have to find the area where the text actually is. NDS ROMS are divided into many files, which can be viewed by clicking the DS icon or just ctrl+n (I think)
Look for directories like "script" or "text" or "chat"/"dialog" etc, or files with extensions like "mes", "text", "txt", etc
but I told you before - phantasy star 0 has a custom compression so you won't be able to find the text just by staring at a hex editor.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: Diddy is filming the room