Kodewerx
https://www.kodewerx.org/forum/

Introducing: Kwurdi!
https://www.kodewerx.org/forum/viewtopic.php?f=11&t=698
Page 1 of 2

Author:  Parasyte [ Fri Feb 09, 2007 12:43 pm ]
Post subject:  Introducing: Kwurdi!

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.

Author:  Baphomet [ Fri Feb 09, 2007 12:45 pm ]
Post subject: 

Very nice Para! Too bad I don't have Xport.

Author:  npcguy:P [ Fri Feb 09, 2007 12:46 pm ]
Post subject: 

Win!

Author:  Dualscreenman [ Fri Feb 09, 2007 12:50 pm ]
Post subject: 

Awsomeness!

Author:  kickenchicken57 [ Fri Feb 09, 2007 1:15 pm ]
Post subject: 

If datel does not release their crap soon, I may have to drop $200 to do this.

Author:  Baphomet [ Fri Feb 09, 2007 1:19 pm ]
Post subject: 

I'm not paying $200 to hack.

Author:  Link2999 [ Fri Feb 09, 2007 1:42 pm ]
Post subject: 

This looks great para! Although as you said it is pretty confusing to use. In future versions of Kwurdi I hope to see a small bit of improvement.

Author:  lemmayoshi [ Fri Feb 09, 2007 2:31 pm ]
Post subject: 

I love you.

Author:  Dualscreenman [ Fri Feb 09, 2007 2:36 pm ]
Post subject: 

lemmayoshi wrote:
I love you.
Funnily enough I was contemplating posting that. :P

Author:  marsh [ Sat Feb 10, 2007 7:15 am ]
Post subject: 

Who'd pay $200 just to hack codes?

Author:  James0x57 [ Sat Feb 10, 2007 11:07 am ]
Post subject: 

Me... :( If it were all donated..

Author:  macrox [ Sat Feb 10, 2007 12:37 pm ]
Post subject: 

Actually, I am testing Kwurdi now with an XPORT, custom built 8 bit cable for high speed transfer of ram dumping, and parallel port adapter. XPORT also comes with a cable for connecting to the parallel port of a PC thru what is called a CPORT (10 pin mini connector that looks like a HD or Floppy ribbon cable only smaller). You use the CPORT to program the flash area of the XPORT. You use the CPORT to upload the Kwurdi program. The XPORT itself is a marvelous FPGA device that can be anything you want it to be. Anyway, as you know Para has demonstrated the ram dump process using his original DS and he has generously made time to adapt Kwurdi for my DS Lite and additionally allowes me to use a Super Key Card (similiar to Pass Key) so that I did not have to flash my DSL firmware...as I elected not to do that. I am now in deep review of Kenobi's notes on AR DS code types and running some tests to get my hacking skills back up to speed. I hope to bring KW and indeed the gaming world codes similiar to what I did back in the SNES, N64 and GBA days. For those that know me and remember those days...nuff said. For those younger guys and gals...watch this space. A big round of accolades for my friend Para and his more than humanly possible hacking skills and programming knowledge. Hey...it isn't everyday you see an ancient sage resurrected now is it? LOL

ciao

Author:  Dualscreenman [ Sat Feb 10, 2007 12:52 pm ]
Post subject: 

I've heard about you.
OH SHI-, Watch out world! :D

Author:  DimondEdge [ Thu Feb 15, 2007 1:22 pm ]
Post subject: 

Kwurdi = Win.

I've already hacked a couple of codes with it, and it works really well. When do you think we'll be getting new hacking tutorial videos? I'd like to see some other ways to hack codes, so far mine have been pretty baisic.

Author:  smk [ Thu Feb 15, 2007 1:34 pm ]
Post subject: 

Well, I don't have an Xport but I'm just going to ask my question anyway. In any future release, will it be compatidble with Macs? In any future releases, not soon, but future releases...:?

Author:  DimondEdge [ Thu Feb 15, 2007 1:39 pm ]
Post subject: 

I remember Para saying that he plans on making it system-independant, so it is possible.

Author:  Parasyte [ Thu Feb 15, 2007 4:21 pm ]
Post subject: 

Yes, OS X support is going to happen, but only after I get USB support sorted.

Author:  Modman [ Fri Feb 16, 2007 12:43 pm ]
Post subject: 

Welcome back, Mac.

Author:  Yoster [ Sun Feb 18, 2007 9:32 pm ]
Post subject: 

Thats a little expensive to hack codes for. But it seems somewhat reasonable that the USB port on the Lite might be hacked to send RAM dumps, but that would leave out the original DS owner including me, plus it would be difficult.

Author:  punani [ Wed Feb 21, 2007 1:36 am ]
Post subject: 

Cool initiative, too bad about the expensive equipment that is required though. I've done a memdumper routine myself too, which dumps to the FAT of some slot-2 flashcard device. Unfortunately I was not able to get it to resume the game .. in the first build the music/gfx would just hang after dumping. Then I thought maybe disabling the IRQ's prior to dumping, and enabling them again _after_ dumping would help, this worked, the music continued to play .. but the game itself didn't resume :/

I was running this routine from the ARM9 .. I somehow get the impression the arm9/arm7 need to stay in "sync" and that's the reason the game didn't resume for me. But then again, I burried this source somewhere in the dark corners of my harddisks and can't be fucked to play with them anymore. Perhaps some evil haxors (read: Parasyte) can shed some light on this?

Author:  Parasyte [ Wed Feb 21, 2007 10:04 am ]
Post subject: 

There is no "USB port on the Lite" ... I'm not sure who fed you this misinformation, but it is simply not true. For USB support, some additional hardware (with a USB port) will be required, regardless of which NDS hardware revision you own.

Dumping RAM is nothing impressive, you just pause both CPUs at the same time within their VBlank interrupt handlers and resume them afterward. If the two are slightly out of sync, you will get an 'echo' or choppiness in the music. That's all. This project will be open source at some point, so you can see how it works.

It should also have support for Trainer Toolkit hardware and other USB kits like Neoflash MK5 by the time it goes open.

Author:  Yoster [ Sun Feb 25, 2007 4:26 pm ]
Post subject: 

Really? On a lite review the people clearly said there was a USB port on the bottom of the lite, and my friend got it hooked up to the Wii's port for charging. Are you sure, or do you even have a Lite?

Author:  lemmayoshi [ Sun Feb 25, 2007 4:36 pm ]
Post subject: 

DS lite does not have a fucking USB port.

Author:  dexter0 [ Sun Feb 25, 2007 5:35 pm ]
Post subject: 

Your friend modified a DSLite charging cable to draw power from the the USB on his/her wii.

Author:  Parasyte [ Sun Feb 25, 2007 6:41 pm ]
Post subject: 

Of course I own a DS Lite. I have owned one for at least 6 months. The only ports on the bottom are the GBA port (slot-2), and headphone/microphone jacks; exactly like on the original DS.

Author:  Parasyte [ Thu Mar 29, 2007 7:34 am ]
Post subject: 

OK, good news! I was able to get Kwurdi booting game again. However, the new comms protocol does not appear to be working correctly. Hmm, on second thought, it may just be a stupid mistake I made in changing my LPT switch to the wrong port. Oh well.

I'm hoping to clean up the source code so I can release the first public sources and binaries. Kwurdi will be made available under the GPL. I'm adamant in making the sources easy to follow and work with, so that will be the biggest part of my time in getting it ready. I'll also write up a priority list for anyone willing to help with the project.

For the most part, I use C. The client program is written entirely in console mode C. The NDS server is written in C (menu) and ARM assembly (debugger). I will be developing a graphical user interface eventually. I am currently considering SDL for the job, because it will make cross-platform custom widgets extremely simple to create and maintain. Another option may be GTK+, but I am unfamiliar with it, and I don't know if it can do custom controls. (wxWidgets was a previous option, but I dropped it when I discovered it cannot do custom controls at all.)

One of the main needs for custom controls will be the disassembler interface I want to use. It will look similar to the IDA Pro disassembly interface, with syntax coloring and branch/jump reference arrows. The arrows cannot be done with a standard rich edit control, as far as I know.

That's all for now.

Author:  kickenchicken57 [ Thu Mar 29, 2007 12:17 pm ]
Post subject: 

looking forward to this :) I cant wait to ditch the trainer toolkit software.

Author:  HyperHacker [ Fri Mar 30, 2007 11:50 pm ]
Post subject: 

Will it ever support debugging over wifi or the ARDS' USB port?

Author:  kickenchicken57 [ Sat Mar 31, 2007 4:03 am ]
Post subject: 

why would it "support the ARDS USB port"? if you mean trainer toolkit support it would be the trainrt toolkit USB port.

Author:  Parasyte [ Sat Mar 31, 2007 7:05 am ]
Post subject: 

Yes, eventually I want to see it compatible with the trainer toolkit hardware, as well as another custom port built on Xport (with USB connectivity instead of LPT, this time). Since it will be open source as soon as I can squash the remaining big bugs, maybe you will see additional hardware support and functionality from the community rather quickly.

I believe WiFi will be strictly impossible unless the game already has WiFi libs built in. The code for it would have a footprint that is far too big to be universal on NDS. I was able to get away with a UDP network driver on GameCube because I had 32KB allocated for the program and another 12KB for the packet buffer. On NDS, I only have 0.5KB - 12KB of memory available, depending on the game.

Page 1 of 2 All times are UTC - 8 hours [ DST ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/