OK i tried the guides on here but i just dont get it could someone help me out please?
Printable View
OK i tried the guides on here but i just dont get it could someone help me out please?
I could help ^_^, but do you understand any of it?
Nope...
Well, first lets start with simple ARDS Codetypes:
And before we go any further try reading this: http://siestacat.wordpress.com/Code:Ram Write Codes:
Type 0: 32 bit write (str)
0XXXXXXX YYYYYYYY: writes word YYYYYYYY to [XXXXXXXX+offset]
Type 1: 16 bit write (strh)
1XXXXXXX 0000YYYY: writes half-word YYYY to [XXXXXXXX+offset]
Type 2: 8 bit write (strb)
2XXXXXXX 000000YY: writes byte YY to [XXXXXXXX+offset]
If Codes (32 bits):
(These rules apply for all conditionals [conditionals are codetypes 3-A])
If these conditions are not met, the code(s) following this are not executed
(i.e execution status is set to false) until a code type "D0" or "D2" is
encountered, or until the end of the code list is reached.
Type 3: 32 bit If Less Than (code value)>(data at address)(bhi, "unsigned higher")
3XXXXXXX YYYYYYYY: checks if YYYYYYYY>(word at [XXXXXXXX]).
Type 4: 32 bit If Greater Than (code value)<(data at address)(bcc, "unsigned lower")
4XXXXXXX YYYYYYYY: checks if YYYYYYYY<(word at [XXXXXXXX]).
Type 5: 32 bit If Equal to
5XXXXXXX YYYYYYYY: checks if YYYYYYYY ==(word at [XXXXXXXX]).
Type 6: 32 bit If Not Equal to
6XXXXXXX YYYYYYYY: checks if YYYYYYYY !=(word at [XXXXXXXX]).
Codetypes 7, 8, 9 and A are perfect for any "joker" code (to check
the pad status, try them on register 04000130). They should also be used for event flag check.
Type 7: 16 bit If Less Than (code value) > (mask & data at address)(unsigned)
7XXXXXXX ZZZZYYYY: checks if YYYY > (not ZZZZ) & half-word at [XXXX]).
Type 8: 16 bit If Greater Than (code value) < (mask & data at address)(unsigned)
8XXXXXXX ZZZZYYYY: checks if YYYY < (not ZZZZ) & half-word at [XXXX]).
Type 9: 16 bit If Equal to (code value) == (mask & data at address)(unsigned)
9XXXXXXX ZZZZYYYY: checks if YYYY == (not ZZZZ) & half-word at [XXXX]).
Type A: 16 bit If Not Equal to (code value) != (mask & data at address)(unsigned)
AXXXXXXX ZZZZYYYY: checks if YYYY != (not ZZZZ) & half-word at [XXXX]).
Offset Load Code:
Type B: Loads the 32bit value into the 'offset'.
BXXXXXXX 00000000: offset = word at [0XXXXXXX+offset].
Loop Start Code:
Type C: Defines the start of the loop code.
C0000000 YYYYYYYY: set the 'Dx repeat value' to YYYYYYYY, saves the 'Dx next code to be executed'
and the 'Dx execution status'. Repeat will be executed when a D1/D2 code is encountered.
When repeat is executed, the AR reloads the 'next code to be executed' and the 'execution status'
from the Dx registers.
Special Codes:
The D0-D2 codetypes are always executed (even if the 'execution status' is set off).
Type D0: End Iff
D0000000 00000000: Loads the previous execution status (if none exists, the execution status stays
at 'execution codes').
Type D1: Used to execute the loop set by the code type C (executes the code(s) after the type C code n times
(n being the 'Dx repeat value'), but does not clear the Dx registers upon finishing).
D1000000 00000000 : if the 'Dx repeat value', set by code type C, is different than 0, it is decremented and
then the AR loads the 'Dx next code to be executed' and the 'execution status' (=jumps back to the code following
the type C code). When the repeat value is 0, this code will load the saved code status value.
Type D2 : Used to apply the code type C setting (executes the code(s) after the type C code n times, n being the
Dx repeat value). Also acts as a 'Full terminator' (clears all temporary data, ie. execution status, offsets,
code C settings...).
D2000000 00000000 : if the 'Dx repeat value', set by code type C, is different than 0, it is decremented and then the
AR loads the 'Dx next code to be executed' and the 'execution status' (=jumps back to the code following the type C code).
When the repeat value is 0, this code will clear the code status, the offset value, and the Dx data value (which can be set
by codes DA, DB and DC).
Offset Set Code:
Type D3 : set the 'offset' to the value of the code.
D3000000 XXXXXXXX : set the offset value to XXXXXXXX.
Add a value to the Dx Data Register:
Type D4 : adds the value of the code to the data register used by D6~DB.
D4000000 XXXXXXXX : adds XXXXXXXX to the 'Dx data'.
More arithmetical/logical operations can be set using the 'NDS AR HACK #2'.
Set the value of the Dx Data Register:
Type D5 : sets the data register used by D6~D8 to the value of the code.
D5000000 XXXXXXXX : sets the 'Dx data' to XXXXXXXX.
Incrementive write of the Dx Data Register (32/16/8bits):
Type D6 : 32-bits incrementive write of the data register (str).
D6000000 XXXXXXXX : writes the 'Dx data' word to [XXXXXXXX+offset], and
increments the offset by 4.
Type D7 : 16-bits incrementive write of the data register (strh).
D7000000 XXXXXXXX : writes the 'Dx data' halfword to [XXXXXXXX+offset], and
increments the offset by 2.
Type D8 : 8-bits incrementive write of the data register (strb).
D8000000 XXXXXXXX : writes the 'Dx data' byte to [XXXXXXXX+offset], and
increments the offset by 1.
Dx Data Register (32/16/8bits) Load Codes:
Type D9 : 32-bits read to the data register (ldr).
D9000000 XXXXXXXX : loads the word at [XXXXXXXX+offset] and stores it in the
'Dx data'.
Type DA : 16-bits read to the data register (ldrh).
DA000000 XXXXXXXX : loads the halfword at [XXXXXXXX+offset] and stores it in
the 'Dx data'.
Type DB : 8-bits read to the data register (ldrb).
DB000000 XXXXXXXX : loads the byte at [XXXXXXXX+offset] and stores it in the
'Dx data'.
Add to Offset Code :
Type DC : adds the offset 'data' to the current offset (some kind of dual offset)
DC000000 XXXXXXXX : offset = (offset + XXXXXXXX).
Patch Code:
Type E: 'patch' code. Copies YYYYYYYY bytes from (curent code location + 8)
to [XXXXXXXX + offset].
EXXXXXXX YYYYYYYY
Example:
EXXXXXXX 00000010
AAAAAAAA BBBBBBBB
CCCCCCCC DDDDDDDD
writes AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDD to XXXXXXXX
If the execution status if set off, the AR skips all the line of the patch code
(skips (YYYYYYYY+7)>>2 codes).
Memory Copy Code:
Type F : memory copy code. It seems you have to use the code type D3, DC or B
before, to set the offset (which is then an address). Then D2 should be needed
to clear the offset (else it will affect all the next codes).
D3000000 XXXXXXXX
FYYYYYYY ZZZZZZZZ
should copy ZZZZZZZZ bytes from offset (=XXXXXXXX in this case) to YYYYYYYY
(YYYYYYYY if fixed, ie. no offset are added to it).
* The E and F type work as follow :
If the number of data to write/copy if >3, it is done with a ldr/str, and then 4
is removed from the number of data to copy.
Else, if the number of data to copy if <3, it's done with a ldrb/strb and then 1
is removed from the number of data to copy and it loops until the number of data
to copy is eqal to zero. That means that the first address to write to must be aligned
in case of the number of bytes to copy is superior to 3 (else there will be a 'bug' if the
number of code to write is > 3 and not a multiple of 4), and that the number of
bytes to write doesn't not have to be a multiple of 4 (can be any number).
Edit: It also explains the simple 0, 1, and 2 Codetypes into depth.
It says i need to donload a tool thing but i cant find the tool...
For ASM codes you would need to use the ASM to ARDS (by Virus)
For Standard ARDS Codes you wouldn't need to use that.
http://game-hackers.com/threads/738-...ols-Collection
Can you put the donload link on here plz because when i donload it on there it dosent work.
This is the Link:
http://game-hackers.com/threads/738-...ols-Collection
I know but when i go there and hit donload and i donload it i cant open it.
Extract the files. Use a program like Bitzipper, 7-zip or something familiar.
Can you put the donload link 4 that?
You just have to google either one of them.
(first result on google (or you could download WinRar))
http://www.bitzipper.com/
But you have to pay can you give me something 4 free?
It's a free trial.
Yea but....
OK i donloaded the free trial.
OK now what do i do?
Did you extract the file?
yes
Did reading siestacat's tutorial help clear a few things up?
Ahhh yes and no At some points i got lost and didn't know wat 2 do.
Lets start with this:
Edit: Reading that should take you back to the ARDS CodeTypes I posted on the previous page. When using the ARDS Codetypes:Quote:
Basically, there are three main types of data writes. There are 32 bit writes, 16 bit writes, and 8 bit writes. The only difference between these is the amount of data they hold.
A 32 bit write contains 8 characters of data (which looks like XXXXXXXX). All addresses are 32 bit writes (at least for the DS).
A 16 bit write contains 4 characters of data, or half as much as a 32 bit write (the 16 bit looks like XXXX). Things like items in the game Animal Crossing: Wild World are all 16 bit data writes.
An 8 bit write contains 2 characters of data (half as much as a 16 bit write, and a fourth as much as a 32 bit write)(8 bit writes look like XX). Acres in the game Animal Crossing: Wild World are 8 bit pieces of data.
After reading that, you might think, "why certain codetypes have different values written to them" or something familiar..and thats when the quote above comes in handy. See if you can understand this first before moving on.Code:0XXXXXXX YYYYYYYY @0 is the codetype (32Bit), X is the address, and Y is the value
1XXXXXXX 0000YYYY @1 is the codetype (16Bit), X is the address, and Y is the value
2XXXXXXX 000000YY @2 is the codetype (8Bit), X is the address, and Y is the value
So what your saying is theres always 8 numbers at the 2nd part of the code and for the 16bit you put 4 zeros and that is used for items and 8 bits you put 6 zeros and that is for land correct???Quote:
0XXXXXXX YYYYYYYY @0 is the codetype (32Bit), X is the address, and Y is the value
1XXXXXXX 0000YYYY @1 is the codetype (16Bit), X is the address, and Y is the value
2XXXXXXX 000000YY @2 is the codetype (8Bit), X is the address, and Y is the value
Demonic i have to go to bed could you teach me the rest tommaro or you can just PM me but i would rather have you on so you can teach me tommaro.
What I'm saying is that different "Bit-writes" hold different amount of data.
The "0 Codetype" is a 32-Bit and can hold as many as 8 characters of data.
The 1 codetype can hold as many as 4 and the 2 codetype can hold as many as 2.
Example of Codetype 0:
Example of Codetype 1:Code:021D891C 0001869F
Example of Codetype 2:Code:121D88FE 000013FF
32-Bits hold twice as much as 16-Bits and 4 times as much as 8-bits.Code:221D8FC8 00000001
16-Bits hold twice as much as 8-Bits.
You have to keep re-reading it to fully understand the basics first..
Edit: Its really late where I am so I'll be back on tomorrow, but while I'm gone you should re-read
the tutorial a few times so you can fully understand it.
This could help right now:
You could also use this as a tutorial (one I made a long time ago once your ready for ASM):Code:Bit Writes:
•8-bit writes=2XXXXXXX 000000YY
•16-bit writes=1XXXXXXX 0000YYYY
•32-bit writes=0XXXXXXX YYYYYYYY
•8-bit= writes up to 0-2 digits
•16-bit= writes up to 3-4 digits
•32-bit= writes up to 5-8 digits
I must've read this incorrectly the first time, but there are 16 numbers/letters total on one line of an AR Code.
8 on the first half, and 8 on the second half. The reason why 4 zeros are added because a 16bit can only write up to
4digits therefore, the zeros are there and the Item and the land are not the only things in the game that are 16 and 8bits though.
The emotion slots are 8bits as well since they only write up to 2 digits. Technically speaking, you can use codetype 0 for codetype 1
and codetype 2 since the 0 codetype holds alot more data than both of them. But, its best to use the data-write that corresponds to the
amount you need because if you used the 0 codetype for an emotion code and say if you only wanted to edit one emotion, since the 0 codetype
is 4 times as much as the 2 codetype your technically editting more than just that slot.
Should i really learn how to make codes or should i just quit because im really confused.
I think thats up to you XD. If you're really interested in making codes, you're gonna have to be determined and put a lot of effort into it.
hmm...
Do it man, do it!
In my experience it's difficult to teach this kind of material. Instead accwman if you want to know how to do it read the guides that are out their, start with other peoples code and make minor edits - these minor edits will require you to understand how the code is actually working,
Make use of Vash's code analyser... I don't actually know where that is any more Vash?
I may sound kinda foolish for saying this, but I kinda found ARDS Code types harder to learn than just learning basic ASM XD. I mean, the basic one-line codes (or ones with an attached activator on it) were easy to make, but learning all those other Complex Code types were a pain. I did however use Vash's Code Analyzer to finish learning the rest of the code types and learning from examples/sources also helped. ^_^
ok...
Vash's code analyzer doesn't work with ASM.
I don't know if that was a general statement, but I was referring to learning the rest of the ARDS Codetypes with
Vash's code analyzer.
Quote:
I did however use Vash's Code Analyzer
to finish learning the rest of the code types though and learning from examples/sources also helped. ^_^
I never knew that. Pretty red notifications are always nice.