Kwurdi! Isn't that a great name? It's almost cute! This is the successor to "GCNrd" and will eventually even replace it.
Here's what my readme has to say about Kwurdi:
Quote:
--------
Kwurdi v0.1 (02-09-07)
----------
--------
About Kwurdi
----------
Kwurdi is the "Kodewerx Universal Remote Debugger Interactive"
Just a silly acronym similar to "QWERTY"
The current build only supports Windows NT/2K/XP and Nintendo DS via Xport, and contains no user interface. The PC-side program is driven from the command line using the following list of options:
-ram <file>: Dump RAM to file
-p: Pause NDS
-c: Continue running from paused state
To dump RAM while a game is running, open a console (go to Start -> Run, type "cmd" without quotes) navigate to the directory where kwurdi has been installed, and type the command:
kwurdi -ram dumps\ramdump.bin
This will create a RAM dump named "ramdump.bin" in the "dumps\" subdirectory.
--------
Installation
----------
Extract the contents of the rar file to a directory of your choice, I suggest something like C:\kwurdi\
To install the .bit file (FPGA configuration) and .nds file (NDS executable) on your Xport, open an xport console and use the following command:
xpcomm /kwurdi/comms.bit && xpcomm /kwurdi/kwurdi.nds
Make sure you are using the modified xpcomm.exe that allows .nds files to be written!
Then switch the LPT cable to the 8-bit comms port you built. Insert your "PassMe"-type device into the NDS slot and turn the NDS on. When it says to remove the card, remove the "PassMe"-type device and replace it with the game you wish to hack. The game will automatically start up, and you will be on your way to finding new codes.
--------
Using Kwurdi
----------
Using Kwurdi at this early stage is difficult, but works. You will want to create as many dumps as you need, using a specific naming scheme. For example, I use a naming scheme like this:
gamename_codename_dumpnumber_value.bin
Example:
mario64_inflives_1_3.bin
Which tells me the dump was taken for Super Mario 64 DS, while I was looking for an Infinite Lives code, and it was the first dump I grabbed in the code search, with a value of 3. Create a few of these dumps before beginning your search, and it will be a bit easier to do your searching:
mario64_inflives_1_3.bin
mario64_inflives_2_2.bin
mario64_inflives_3_1.bin
mario64_inflives_4_1.bin
mario64_inflives_5_1.bin
Now you will want to open Renegade64 and go to Cheating -> Code Search. In the code search window, set your search size, based on what you think it might be (I suggest using 32-bit first, because it will help avoid confusion later...) and set the "Byte Order" to 32-Bit Little Endian (PJ64)" and the Header to "None."
Work your search down as normal, using the files dumped with Kwurdi. Click the Show Results button when you have it down to an acceptable amount of possibilities. This window gives you a list of offsets, not RAM addresses. This is nice because it's platform-independant. However, because NDS is a little endian machine, Renegade64 causes a few address problems as it's expecting a big endian machine.
If you chose an 8-bit search, you will have to BITWISE XOR (exclusive or) the offset with 3 to get the proper offset.
If you chose a 16-bit search, you will have to BITWISE XOR (exclusive or) the offset with 2 to get the proper offset.
If you chose a 32-bit search, the offset is perfect. (See? I told you it would help to avoid confusion.)
The other thing about these offsets (after you have fixed them, as just described) is that you will always have to add 0x02000000 to come up with your final NDS address. Then just format the codes according to the code type docs available on the kodewerx.net forums and test the codes.
--------
History
----------
v0.1 (02-09-07)
* Initial Release
--------
Known Bugs
----------
* May not work with every game.
* Some games may be unstable/crash often.
* Audio may 'glitch' after a game is unpaused. It can usually be "fixed" by pausing (-p option) and then unpausing (-c option)
A few notes before public release:
* A "PassMe"-type device is required to run this program.
* An Xport is also required (~$200 US
http://www.charmedlabs.com)
* A special "8-bit comms cable adapter" is also required, and it must be built on your own (or have someone else build it).
Building the comms cable adapter is very easy. You will need an old floppy drive ribbon cable, a female DB-25 connector, and a male-male printer port extension cable (IEEE-1284 compliant). Cut off one end of the ribbon cable, leaving the pin header connector on one end, and strip the ends of each wire on the other. This piece should only be a few inches long (only as much as you need to do the soldering). Solder the wires to the female DB-25 connector using the following chart:
Code:
Kwurdi / Xport comms cable
LPT NDS
Data: I/O I/O
Clock: O I
Master: O I
Reset: O I
Master = 1: PC is master, 0: NDS is master
Wiring:
XPORT <-> LPT
1,3 --- 18 (GND)
5,7 --- 19
9,11 --- 20
13,15 --- 21
17,19 --- 22
21,23 --- 23
25,27 --- 24
29,31 --- 25
6 <-> 2 (DATA)
10 <-> 3
14 <-> 4
18 <-> 5
20 <-> 6
22 <-> 7
24 <-> 8
26 <-> 9
33 <-- 1 (CONTROL) Clock
4 <-- 14
12 <-- 16
16 <-- 17
8 --> 15 (STATUS)
32 --> 13
30 --> 12
28 --> 10
2 --> 11
XPORT 34 (VCC) is unused.
You may use diodes on the control and status lines if you wish. Pull-up/pull-down resistors are not necessary.
With that, it's ready for beta testing. If you meet the hardware requirements, send me a private message and we'll get you set up with the beta software.