NitroHax: Difference between revisions
From GameBrew
More actions
No edit summary |
No edit summary |
||
| Line 3: | Line 3: | ||
| image = [[File:Nitrohaxds.png]] | | image = [[File:Nitrohaxds.png]] | ||
| type = Other | | type = Other | ||
| version = 0.94 | | version = 0.94 | ||
| licence = | | licence = GPLv3 | ||
| author = Chishm | | author = Chishm | ||
| website = https://www.chishm.com/NitroHax/index.html | | website = https://www.chishm.com/NitroHax/index.html | ||
| Line 24: | Line 24: | ||
==User guide== | ==User guide== | ||
Start NitroHax.nds from your media device. One of the following will be loaded automatically if it is found (in order of preference): | Start NitroHax.nds from your media device. One of the following will be loaded automatically if it is found (in order of preference): | ||
* | * cheats.xml in the current directory | ||
* | * /NitroHax/cheats.xml | ||
* | * /data/NitroHax/cheats.xml | ||
* | * /cheats.xml | ||
If no file is found, browse for and select a file to open. Remove your media device if you want to. Remove any card that is in Slot-1. | If no file is found, browse for and select a file to open. Remove your media device if you want to. Remove any card that is in Slot-1. | ||
| Line 38: | Line 38: | ||
In addition to the standard Action Replay DS code types described on [http://doc.kodewerx.org/hacking_nds.html#arcodetypes EnHacklopedia's Action Replay DS page], Nitro Hax supports the following custom codes. | In addition to the standard Action Replay DS code types described on [http://doc.kodewerx.org/hacking_nds.html#arcodetypes EnHacklopedia's Action Replay DS page], Nitro Hax supports the following custom codes. | ||
CF000000 00000000 (Code list end) | |||
Code used internally to specify the end of the cheat code list. It does not need to be specified manually. | |||
CF000001 xxxxxxxx (Relocate cheat engine) | |||
Relocate the cheat engine to address xxxxxxxx. The cheat engine and all data are moved to the given address, which should be accessible from the ARM7. | |||
CF000002 xxxxxxxx (Hook address) | |||
Change the hook address to xxxxxxxx. The hook should be a function pointer that is called regularly. | |||
By default the ARM7's VBlank interrupt handler is hooked. This code overrides the default. | |||
C100000x yyyyyyyy (Call function with arguments) | |||
Call a function with between 0 and 4 arguments. The argument list follows this code, which has the parameters: | |||
* x - | * x - Number of arguments (0 - 4) | ||
* yyyyyyyy - Address of function | * yyyyyyyy - Address of function | ||
For example, to call a function at 0x02049A48 | For example, to call a function at 0x02049A48 with the three arguments r0 = 0x00000010, r1 = 0x134CBA9C, and r2 = 0x12345678, you would use: | ||
C1000003 02049A48 | C1000003 02049A48 | ||
00000010 134CBA9C | 00000010 134CBA9C | ||
12345678 00000000 | 12345678 00000000 | ||
C200000x yyyyyyyy (Run ARM/THUMB code) | |||
Run ARM or THUMB code stored in the cheat list: | |||
* x - 0 = ARM mode, 1 = THUMB mode | * x - 0 = ARM mode, 1 = THUMB mode | ||
* yyyyyyyy - | * yyyyyyyy - Length of function in bytes | ||
For example: | For example: | ||
| Line 66: | Line 68: | ||
AAAAAAAA BBBBBBBB | AAAAAAAA BBBBBBBB | ||
CCCCCCCC E12FFF1E | CCCCCCCC E12FFF1E | ||
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. | |||
C4000000 xxxxxxxx (Scratch space) | |||
Provide 4 bytes of scratch space to safely store data. 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) | |||
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. Based on Trainer Toolkit code. | |||
C6000000 xxxxxxxx (Store offset) | |||
Stores the offset register to the address xxxxxxxx. Based on Trainer Toolkit code | |||
D400000x yyyyyyyy (Dx Data operation) | |||
Performs the operation Data = Data ? yyyyyyyy where ? is determined by x as follows: | |||
C6000000 xxxxxxxx | * 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 | |||
For codes begining with 3-9 or A (if-type codes), the offset register can be used for address calculations. If the lowest bit of the code's address is set then the offset is added to the address. If the address is 0x00000000 then the offset is used instead. | |||
==Controls== | ==Controls== | ||
| Line 121: | Line 118: | ||
==Media== | ==Media== | ||
'''DS Homebrew: Installing/Using NitroHax''' ([https://www.youtube.com/watch?v=4R6WDgSTIb8 CalcProgrammer1]) <br> | |||
<youtube>4R6WDgSTIb8</youtube> | <youtube>4R6WDgSTIb8</youtube> | ||
Revision as of 11:29, 8 September 2021
| Nitro Hax | |
| File:Nitrohaxds.png | |
| General | |
|---|---|
| Author(s) | Chishm |
| Type | Other |
| Version | 0.94 |
| Licence | GPLv3 |
| Links | |
| Download | |
| Website | |
| Source | |
<htmlet>adsense</htmlet>