Nitro Hax

Nintendo DS cheat tool

NitroHax screen shot Nitro Hax is a cheat tool for official games running on the Nintendo DS. It supports any Action Replay DS code type with a few important additions.


The latest version is 0.92. It is available here. Source is available under the GPL v3 license. Code under development is on GitHub.

How to use it

  1. Patch NitroHax.nds with a DLDI file if you need to.
  2. Copy the NitroHax.nds file to your media device.
  3. Place an Action Replay XML file on your media device.
  4. Start NitroHax.nds from your media device.
    One of the following will be loaded automatically if it is found (in order of preference): If no file is found, browse for and select a file to open.
  5. Remove your media device if you want to.
  6. Remove any card that is in Slot-1.
  7. Insert the DS game into Slot-1.
  8. Choose the cheats you want to enable.
    Some cheats are enabled by default and others may be always on. This is specified in the XML file.
    The keys are:
  9. When you are done, exit the cheat menu.
  10. The game will then start with cheats running.

Custom code types

CF000000 00000000 - End of code list
CF000001 xxxxxxxx - Relocate cheat engine to xxxxxxxx 
CF000002 xxxxxxxx - Change hook address to xxxxxxxx

C100000x yyyyyyyy - Call function with arguments
	x - number of arguments (0 - 4)
	yyyyyyyy - Address of function
	The argument list follows this code. To call a function at 0x02049A48, 
	with the arguments r0 = 0x00000010, r1 = 0x134CBA9C, r2 = 0x12345678,
	you would use:
	C1000003 02049A48
	00000010 134CBA9C
	12345678 00000000

C200000x yyyyyyyy - Run code from cheat list
	x - 0 = ARM mode, 1 = THUMB mode
	yyyyyyyy - length of function in bytes
	C2000000 00000010
	This will run the code AAAAAAAA BBBBBBBB CCCCCCCC in ARM mode. 
	The E12FFF1E (bx lr) is needed at the end to return to the cheat engine.
	(These instructions are based on those written by kenobi.)

C4000000 xxxxxxxx - Safe data store (Based on Trainer Toolkit code)
	Sets the offset register to point to the first word of this code. 
	Storing data at [offset+4] will save over the top of xxxxxxxx.

C5000000 xxxxyyyy - Counter (Based on Trainer Toolkit code)
	Each time the cheat engine is executed, the counter is incremented by 1.
	If (counter & yyyy) == xxxx then execution status is set to true.
	Else it is set to false.

C6000000 xxxxxxxx - Store offset (Based on Trainer Toolkit code)
	Stores the offset register to [xxxxxxxx].

D400000x yyyyyyyy - Dx Data operation
	Performs the operation Data = Data ? yyyyyyyy where ? is determined by x as follows:
	0 - add
	1 - or
	2 - and
	3 - xor
	4 - logical shift left
	5 - logical shift right
	6 - rotate right
	7 - arithmetic shift right
	8 - multiply

If type codes
	Adds offset to the address if the lowest bit of the address is set. 
	Sets the address equal to offset if the original address is 0x00000000.