Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Gateshark2NTR 3DS: Difference between revisions

From GameBrew
No edit summary
No edit summary
Line 8: Line 8:
|version=1.1
|version=1.1
|license=Mixed
|license=Mixed
|download=https://dlhb.gamebrew.org/3dshomebrew/Gateshark2NTR.rar
|download=https://dlhb.gamebrew.org/3dshomebrews/sharkgate2ntr.7z
|website=https://gbatemp.net/threads/release-gateshark2ntr.436504/
|website=https://gbatemp.net/threads/release-gateshark2ntr.436504
}}
}}
<youtube>Oe4lmMqt3AI</youtube>
{{Obsolete}}


<span style="font-size: 18px"><span style="color: #ff0000">This is no longer supported, consider using [[CTRPluginFramework 3DS]] with Action Replay support instead of using a converter.
Gateshark2NTR is a program that will allow you to convert a Gateshark's cheats text file in a plugin usable with NTR.


With it you can simply load your text files with cheats.
'''Note:''' This is no longer supported, consider using [[CTRPluginFramework 3DS]] with Action Replay support instead of using a converter. With it you can simply load your text files with cheats.


Hi guys !
==User guide==
Requirements:
# [https://sourceforge.net/projects/devkitpro/ DevKitPRO]. Install this and be sure to add "c:\devkitPro\msys\bin" to the PATH Environment Variable
* You also need to have the [https://www.microsoft.com/en-US/download/details.aspx?id=48145 VCRedist 2015] installed.


Today I present to you the '''Gateshark2NTR'''.
There are 3 ways to pass the file:
* Drag & Drop the file on the soft's icon.
* Launch the soft and a window will appear to select the file.
* Pass the file as an argument through a shell.


<span style="font-size: 18px"><span style="color: #00ff00">Prefer using the [[NTR Plugin Manager 3DS]] to convert your codes, it's easier to use.
==What is this ?==
Well as the name say it this little piece of soft will allows you to &quot;convert&quot; a Gateshark's cheats text file in a plugin usable with NTR.
==How to use it ?==
This soft is almost full automatic so it should be easy to use.
You just need to give the file to the soft and it'll start the plugin creation.
3 ways to pass the file:
# Drag &amp; Drop the file on the soft's icon
# Launch the soft and a window will appear to select the file
# Pass the file as an argument through a shell
'''<span style="text-decoration: underline"><span style="font-size: 18px"><span style="color: #ffa64d">What do I need to use this ?</span></span></span>'''
# [https://sourceforge.net/projects/devkitpro/ <span style="font-size: 15px">DevKitPRO</span>]<span style="font-size: 15px">, Install this and be sure to add &quot;</span>''<span style="font-size: 15px">c:\devkitPro\msys\bin</span>''<span style="font-size: 15px">&quot; to the </span>'''<span style="font-size: 15px">PATH Environment Variable</span>'''
# You also need to have the [https://www.microsoft.com/en-US/download/details.aspx?id=48145 <span style="font-size: 15px">VCRedist 2015</span>]<span style="font-size: 15px"> installed.</span>
<div class="toccolours mw-collapsible mw-collapsed">
This soft support all the codes used by gateway and even more.
This soft support all the codes used by gateway and even more.
===The complete STD AR / Gateway codes===
<div class="mw-collapsible-content">
0 Type
Format: 0XXXXXXX YYYYYYYY
Description: 32bit write of YYYYYYYY to 0XXXXXXX.
Simple: Makes the value at address 0XXXXXXX equal the value YYYYYYYY.
Example:
023D6B28 3B9ACA00
1 Type
Format: 1XXXXXXX 0000YYYY
Description: 16bit write of YYYY to 0XXXXXXX.
Simple: Makes the value at address 0XXXXXXX equal the value YYYY.
Example:
023D6B28 00002710
2 Type
Format: 2XXXXXXX 000000YY
Description: 8bit write of YY to 0XXXXXXX.
Simple: Makes the value at address 0XXXXXXX equal the value YY.
Example:
023D6B28 00000032
3 Type
Format: 3XXXXXXXX YYYYYYYY
Description: 32bit if less than.
Simple: If the value at address 0XXXXXXX is less than the value YYYYYYYY.
Example:
323D6B28 10000000
4 Type
Format: 4XXXXXXXX YYYYYYYY
Description: 32bit if greater than.
Simple: If the value at address 0XXXXXXX is greater than the value YYYYYYYY.
Example:
423D6B28 10000000
5 Type
Format: 5XXXXXXXX YYYYYYYY
Description: 32bit if equal to.
Simple: If the value at address 0XXXXXXX is equal to the value YYYYYYYY.
Example:
523D6B28 10000000
6 Type
Format: 3XXXXXXXX YYYYYYYY
Description: 32bit if not equal to.
Simple: If the value at address 0XXXXXXX is not equal to the value YYYYYYYY.
Example:


623D6B28 10000000
===Complete STD AR/Gateway codes===
 
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" style="width:800px;"
 
!colspan="2"|0 Type
7 Type
|-
Format: 7XXXXXXXX 0000YYYY
|style="width: 10%;"|Format
Description: 16bit if less than.
|0XXXXXXX YYYYYYYY
Simple: If the value at address 0XXXXXXX is less than the value YYYY.
|-
Example:
|Description||32bit write of YYYYYYYY to 0XXXXXXX.
 
|-
723D6B28 00005400
|Simple||Makes the value at address 0XXXXXXX equal the value YYYYYYYY.
 
|-
 
|Example||023D6B28 3B9ACA00
8 Type
|-
Format: 8XXXXXXXX 0000YYYY
!colspan="2"|1 Type
Description: 16bit if greater than.
|-
Simple: If the value at address 0XXXXXXX is greater than the value YYYY.
|Format||1XXXXXXX 0000YYYY
Example:
|-
 
|Description||16bit write of YYYY to 0XXXXXXX.
823D6B28 00005400
|-
 
|Simple||Makes the value at address 0XXXXXXX equal the value YYYY.
 
|-
9 Type
|Example||023D6B28 00002710
Format: 9XXXXXXXX 0000YYYY
|-
Description: 16bit if equal to.
!colspan="2"|2 Type
Simple: If the value at address 0XXXXXXX is equal to the value YYYY.
|-
Example:
|Format||2XXXXXXX 000000YY
 
|-
923D6B28 00005400
|Description||8bit write of YY to 0XXXXXXX.
 
|-
 
|Simple||Makes the value at address 0XXXXXXX equal the value YY.
A Type
|-
Format: AXXXXXXXX 0000YYYY
|Example||023D6B28 00000032
Description: 16bit if not equal to.
|-
Simple: If the value at address 0XXXXXXX is not equal to the value YYYY.
!colspan="2"|3 Type
Example:
|-
 
|Format||3XXXXXXXX YYYYYYYY
A23D6B28 00005400
|-
 
|Description||32bit if less than.
 
|-
B Type
|Simple||If the value at address 0XXXXXXX is less than the value YYYYYYYY.
Format: BXXXXXXX 00000000
|-
Description: Loads offset register.
|Example||323D6B28 10000000
Simple: Used for pointers, the address at 0XXXXXXX is the offset for all of the following lines.
|-
Example:
!colspan="2"|4 Type
 
|-
B23D6B28 00000000
|Format||4XXXXXXXX YYYYYYYY
00002000 0001869F
|-
|Description||32bit if greater than.
|-
|Simple||If the value at address 0XXXXXXX is greater than the value YYYYYYYY.
|-
|Example||423D6B28 10000000
|-
!colspan="2"|5 Type
|-
|Format||5XXXXXXXX YYYYYYYY
|-
|Description||32bit if equal to.
|-
|Simple||If the value at address 0XXXXXXX is equal to the value YYYYYYYY.
|-
|Example||523D6B28 10000000
|-
!colspan="2"|6 Type
|-
|Format||3XXXXXXXX YYYYYYYY
|-
|Description||32bit if not equal to.
|-
|Simple||If the value at address 0XXXXXXX is not equal to the value YYYYYYYY.
|-
|Example||623D6B28 10000000
|-
!colspan="2"|7 Type
|-
|Format||7XXXXXXXX 0000YYYY
|-
|Description||16bit if less than.
|-
|Simple||If the value at address 0XXXXXXX is less than the value YYYY.
|-
|Example||723D6B28 00005400
|-
!colspan="2"|8 Type
|-
|Format||8XXXXXXXX 0000YYYY
|-
|Description||16bit if greater than.
|-
|Simple||If the value at address 0XXXXXXX is greater than the value YYYY.
|-
|Example||823D6B28 00005400
|-
!colspan="2"|9 Type
|-
|Format||9XXXXXXXX 0000YYYY
|-
|Description||16bit if equal to.
|-
|Simple||If the value at address 0XXXXXXX is equal to the value YYYY.
|-
|Example||923D6B28 00005400
|-
!colspan="2"|A Type
|-
|Format||AXXXXXXXX 0000YYYY
|-
|Description||16bit if not equal to.
|-
|Simple||If the value at address 0XXXXXXX is not equal to the value YYYY.
|-
|Example||A23D6B28 00005400
|-
!colspan="2"|B Type
|-
|Format||BXXXXXXX 00000000
|-
|Description||Loads offset register.
|-
|Simple||Used for pointers, the address at 0XXXXXXX is the offset for all of the following lines.
|-
|Example||
B23D6B28 00000000 <br>
00002000 0001869F <br>
D2000000 00000000
D2000000 00000000
 
|-
 
!colspan="2"|C Type
C Type
|-
Format: C0000000 ZZZZZZZZ
|Format||C0000000 ZZZZZZZZ
Description: Repeat following lines at specified offset.
|-
Simple: used to write a value to an address, and then continues to write that value Z number of times to all addresses at an offset determined by the (D6, D7, D8, or DC) type following it.
|Description||Repeat following lines at specified offset.
Note: used with the D6, D7, D8, and DC types. C types can not be nested.
|-
Example:
|Simple||Used to write a value to an address, and then continues to write that value Z number of times to all addresses at an offset determined by the (D6, D7, D8, or DC) type following it.
 
|-
C0000000 00000005
|Note||Used with the D6, D7, D8, and DC types. C types can not be nested.
023D6B28 0009896C
|-
DC000000 00000010
|Example||
C0000000 00000005 <br>
023D6B28 0009896C <br>
DC000000 00000010 <br>
D2000000 00000000
D2000000 00000000
 
|-
 
!colspan="2"|D0 Type
D0 Type
|-
Format: D0000000 00000000
|Format||D0000000 00000000
Description: ends most recent conditional.
|-
Simple: type 3 through A are all "conditionals," the conditional most recently executed before this line will be terminated by it.
|Description||Ends most recent conditional.
Example:
|-
 
|Simple||Type 3 through A are all "conditionals," the conditional most recently executed before this line will be terminated by it.
94000130 FFFB0000
|-
74000100 FF00000C
|Example||
023D6B28 0009896C
94000130 FFFB0000 <br>
D0000000 00000000
74000100 FF00000C <br>
 
023D6B28 0009896C <br>
 
D0000000 00000000 <br><br>
The 7 type line would be terminated.
The 7 type line would be terminated.<br>
 
|-
 
!colspan="2"|D1 Type
D1 Type
|-
Format: D1000000 00000000
|Format||D1000000 00000000
Description: ends repeat block.
|-
Simple: will end all conditionals within a C type code, along with the C type itself.
|Description||Ends repeat block.
Example:
|-
 
|Simple||Will end all conditionals within a C type code, along with the C type itself.
94000130 FFFB0000
|-
C0000000 00000010
|Example||
8453DA0C 00000200
94000130 FFFB0000 <br>
023D6B28 0009896C
C0000000 00000010 <br>
D6000000 00000005
8453DA0C 00000200 <br>
D1000000 00000000
023D6B28 0009896C <br>
 
D6000000 00000005 <br>
 
D1000000 00000000 <br><br>
The C line, 8 line, 0 line, and D6 line would be terminated.
The C line, 8 line, 0 line, and D6 line would be terminated.
 
|-
 
!colspan="2"|D2 Type
D2 Type
|-
Format: D2000000 00000000
|Format||D2000000 00000000
Description: ends all conditionals/repeats before it and sets offset and stored to zero.
|-
Simple: ends all lines.
|Description||Ends all conditionals/repeats before it and sets offset and stored to zero.
Example:
|-
 
|Simple||Ends all lines.
94000130 FEEF0000
|-
C0000000 00000010
|Example||
8453DA0C 00000200
94000130 FEEF0000 <br>
023D6B28 0009896C
C0000000 00000010 <br>
D6000000 00000005
8453DA0C 00000200 <br>
D2000000 00000000
023D6B28 0009896C <br>
 
D6000000 00000005 <br>
 
D2000000 00000000 <br><br>
All lines would terminate.
All lines would terminate.
 
|-
 
!colspan="2"|D3 Type
D3 Type
|-
Format: D3000000 XXXXXXXX
|Format||D3000000 XXXXXXXX
Description: sets offset.
|-
Simple: loads the address X so that lines after can modify the value at address X.
|Description||Sets offset.
Note: used with the D4, D5, D6, D7, D8, and DC types.
|-
Example:
|Simple||Loads the address X so that lines after can modify the value at address X.
 
|-
D3000000 023D6B28
|Note||Used with the D4, D5, D6, D7, D8, and DC types.
 
|-
 
|Example||D3000000 023D6B28
D4 Type
|-
Format: D4000000 YYYYYYYY
!colspan="2"|D4 Type
Description: adds to the stored address' value.
|-
Simple: adds to the value at the address defined by lines D3, D9, DA, and DB.
|Format||D4000000 YYYYYYYY
Note: used with the D3, D9, DA, DB, DC types.
|-
Example:
|Description||adds to the stored address' value.
 
|-
D4000000 00000025
|Simple||adds to the value at the address defined by lines D3, D9, DA, and DB.
 
|-
 
|Note||used with the D3, D9, DA, DB, DC types.
D5 Type
|-
Format: D5000000 YYYYYYYY
|Example||D4000000 00000025
Description: sets the stored address' value.
|-
Simple: makes the value at the address defined by lines D3, D9, DA, and DB to YYYYYYYY.
!colspan="2"|D5 Type
Note: used with the D3, D9, DA, DB, and DC types.
|-
Example:
|Format||D5000000 YYYYYYYY
 
|-
D5000000 34540099
|Description||Sets the stored address' value.
 
|-
 
|Simple||Makes the value at the address defined by lines D3, D9, DA, and DB to YYYYYYYY.
D6 Type
|-
Format: D6000000 XXXXXXXX
|Note||Used with the D3, D9, DA, DB, and DC types.
Description: 32bit store and increment by 4.
|-
Simple: stores the value at address XXXXXXXX and to addresses in increments of 4.
|Example||D5000000 34540099
Note: used with the C, D3, and D9 types.
|-
Example:
!colspan="2"|D6 Type
 
|-
D3000000 023D6B28
|Format||D6000000 XXXXXXXX
 
|-
 
|Description||32bit store and increment by 4.
D7 Type
|-
Format: D7000000 XXXXXXXX
|Simple||Stores the value at address XXXXXXXX and to addresses in increments of 4.
Description: 16bit store and increment by 2.
|-
Simple: stores 2 bytes of the value at address XXXXXXXX and to addresses in increments of 2.
|Note||Used with the C, D3, and D9 types.
Note: used with the C, D3, and DA types.
|-
Example:
|Example||D3000000 023D6B28
 
|-
D7000000 023D6B28
!colspan="2"|D7 Type
 
|-
 
|Format||D7000000 XXXXXXXX
D8 Type
|-
Format: D8000000 XXXXXXXX
|Description||16bit store and increment by 2.
Description: 8bit store and increment by 1.
|-
Simple: stores 1 byte of the value at address XXXXXXXX and to addresses in increments of 1.
|Simple||Stores 2 bytes of the value at address XXXXXXXX and to addresses in increments of 2.
Note: used with the C, D3, and DB types.
|-
Example:
|Note||Used with the C, D3, and DA types.
 
|-
D8000000 023D6B28
|Example||D7000000 023D6B28
 
|-
 
!colspan="2"|D8 Type
D9 Type
|-
Format: D9000000 XXXXXXXX
|Format||D8000000 XXXXXXXX
Description: 32bit load.
|-
Simple: loads the value from address X.
|Description||8bit store and increment by 1.
Note: used with the D5 and D6 types.
|-
Example:
|Simple||Stores 1 byte of the value at address XXXXXXXX and to addresses in increments of 1.
 
|-
D9000000 023D6B28
|Note||Used with the C, D3, and DB types.
 
|-
 
|Example||D8000000 023D6B28
DA Type
|-
Format: DA000000 XXXXXXXX
!colspan="2"|D9 Type
Description: 16bit load.
|-
Simple: loads 2 bytes from address X.
|Format||D9000000 XXXXXXXX
Note: used with the D5 and D7 types.
|-
Example:
|Description||32bit load.
 
|-
DA000000 023D6B28
|Simple||Loads the value from address X.
 
|-
 
|Note||Used with the D5 and D6 types.
DB Type
|-
Format: DB000000 XXXXXXXX
|Example||D9000000 023D6B28
Description: 8bit load.
|-
Simple: loads 1 byte from address X.
!colspan="2"|DA Type
Note: used with the D5 and D8 types.
|-
Example:
|Format||DA000000 XXXXXXXX
 
|-
DB000000 023D6B28
|Description||16bit load.
 
|-
 
|Simple||Loads 2 bytes from address X.
DC Type
|-
Format: DC000000 VVVVVVVV
|Note||Used with the D5 and D7 types.
Description: 32bit store and increment by V.
|-
Simple: stores the value at address(es) before it and to addresses in increments of V.
|Example||DA000000 023D6B28
Note: used with the C, D3, D5, D9, D8, DB types.
|-
Example:
!colspan="2"|DB Type
 
|-
DC000000 00000100
|Format||DB000000 XXXXXXXX
 
|-
 
|Description||8bit load.
E Type
|-
Format:
|Simple||Loads 1 byte from address X.
EXXXXXXX UUUUUUUU
|-
|Note||Used with the D5 and D8 types.
|-
|Example||DB000000 023D6B28
|-
!colspan="2"|DC Type
|-
|Format||DC000000 VVVVVVVV
|-
|Description||32bit store and increment by V.
|-
|Simple||Stores the value at address(es) before it and to addresses in increments of V.
|-
|Note||Used with the C, D3, D5, D9, D8, DB types.
|-
|Example||DC000000 00000100
|-
!colspan="2"|E Type
|-
|Format||
EXXXXXXX UUUUUUUU <br>
YYYYYYYY YYYYYYYY
YYYYYYYY YYYYYYYY
Description: writes Y to X for U bytes.
|-
Simple: writes the values at Y (Y can be any length) to addresses starting at X, for U. number of bytes.
|Description||Writes Y to X for U bytes.
Example:
|-
 
|Simple||Writes the values at Y (Y can be any length) to addresses starting at X, for U. number of bytes.
E23D6B28 00000010
|-
1244F2F2 02354653
|Example||
23FEDA20 542FEBC0
E23D6B28 00000010 <br>
D2000000 00000000
1244F2F2 02354653 <br>
 
23FEDA20 542FEBC0 <br>
 
D2000000 00000000 <br><br>
Special Codes: Built outsite the ARCode format, The Gateway Team have given us a little bonus.
Special Codes: Built outsite the ARCode format, The Gateway Team have given us a little bonus.
 
|-
 
!colspan="2"|DD Type
DD Type
|-
Format: DD000000 XXXXXXXX
|Format||DD000000 XXXXXXXX
Description: triggers the following code on single or combined keypress. Keypress code stops when terminated with D0 Type code. These can be stacked, i.e. A(01)+Left(20) would be 00000021
|-
 
|Description||triggers the following code on single or combined keypress. Keypress code stops when terminated with D0 Type code. These can be stacked, i.e. A(01)+Left(20) would be 00000021
Keys:
|-
0x00000001=A
|Keys||
0x00000002=B
0x00000001=A <br>
0x00000004=Select
0x00000002=B <br>
0x00000008=Start
0x00000004=Select <br>
0x00000010=Right
0x00000008=Start <br>
0x00000020=Left
0x00000010=Right <br>
0x00000040=Up
0x00000020=Left <br>
0x00000080=Down
0x00000040=Up <br>
0x00000100=R
0x00000080=Down <br>
0x00000200=L
0x00000100=R <br>
0x00000400=X
0x00000200=L <br>
0x00000400=X <br>
0x00000800=Y
0x00000800=Y
 
|-
Example:
|Example||
 
DD000000 00000021 <br>
DD000000 00000021
1AE40233 000000FF <br>
1AE40233 000000FF
D0000000 00000000 <br><br>
D0000000 00000000
 
Not Implemented: These codes are part of the ARCode format but have not been confirmed built by the Gateway Team.
Not Implemented: These codes are part of the ARCode format but have not been confirmed built by the Gateway Team.
 
|-
 
!colspan="2"|F Type
F Type
|-
Format: FXXXXXXX UUUUUUUU
|Format||FXXXXXXX UUUUUUUU
Description: writes from the offset to address at X for U bytes.
|-
Simple: writes from the offset (D3 type) to the address at X for U bytes.
|Description||Writes from the offset to address at X for U bytes.
Example:
|-
 
|Simple||Writes from the offset (D3 type) to the address at X for U bytes.
D3000000 023D6B28
|-
F23D6B2C 00000004
|Example||
D3000000 023D6B28 <br>
F23D6B2C 00000004 <br>
D2000000 00000000
D2000000 00000000
</div>
|-
</div>
|}


<div class="toccolours mw-collapsible mw-collapsed">
===Custom Codes===
==Custom Codes==
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" style="width:800px;"
<div class="mw-collapsible-content">
!colspan="2"|S Type
S Type
|-
Format: S0000000 UUUUUUUU
|style="width: 10%;"|Format
Description: Put the cheats thread in sleep for U milliseconds.
|S0000000 UUUUUUUU
 
|-
KR Type
|Description||Put the cheats thread in sleep for U milliseconds.
Format: KR000000 UUUUUUUU
|-
Description: Wait for the U keys to be released. Use the same values as the DD code
!colspan="2"|KR Type
 
|-
DIS Type
|Format||KR000000 UUUUUUUU
Format: DIS00000 00000000
|-
Description: This will disable the cheat. With this the cheat will only be executed once.
|Description||Wait for the U keys to be released. Use the same values as the DD code
|-
!colspan="2"|DIS Type
|-
|Format||DIS00000 00000000
|-
|Description||This will disable the cheat. With this the cheat will only be executed once.
As the execution is really fast, you might be unable to see the ON on the menu before it goes to OFF. Still the code have been executed.
As the execution is really fast, you might be unable to see the ON on the menu before it goes to OFF. Still the code have been executed.
|-
!colspan="2"|LOG Type
|-
|Format||LOG0X00Y ZZZZZZZZ
|-
|Description||This code will create an entry in the logger. See below for further details.
|-
|}


LOG Type
===Config===
Format: LOG0X00Y ZZZZZZZZ
The soft can use a config file in order to set some preference:
Description: This code will create an entry in the logger. See below for further details.
#builder_name: Nanquitas;
</div>
#name_auto: 1;
</div>
#folder_auto: 1;
 
#log: 0;
 
#debug: 1;
 
<div class="toccolours mw-collapsible mw-collapsed">
==Config==
<div class="mw-collapsible-content">
The soft can use a config file in order to set some preference:
 
#builder_name: Nanquitas;
#name_auto: 1;
#folder_auto: 1;
#log: 0;
#debug: 1;


List of options and their meaning:
List of options and their meaning:
* builder_name - Will permit you to enter the name that will be used by the converter automatically for the splash menu.
* name_auto - Set to 1 by default. If disabled the soft will ask you to enter a name for the resulting file.
* folder_auto - Set to 1 by default, if the name of the input file is recognized as a titleID, the program will automatically create the folder tree like: plugin > ID folder > plugin.plg.
* log - Set to 0 by default. Create a traceback file with various info. Mainly used to debug the program.
* debug - Set to 0 by default. If activated, the plugin will have the Debug Menu enabled. This menu can be shown with L + Start and shows various infos. This menu also have a logger.


#builder_name: Will permit you to enter the name that will be used by the converter automatically for the splash menu;
===Creating a spoiler===
#name_auto: Set to 1 by default. If disabled the soft will ask you to enter a name for the resulting file;
You can organize the menu with some spoiler.
#folder_auto: Set to 1 by default, if the name of the input file is recognized as a titleID, the program will automatically create the folder tree like: plugin --> ID folder --> plugin.plg.
[++Spoiler text++]//<-- Will open a spoiler
#log: Set to 0 by default. Create a traceback file with various info. Mainly used to debug the program.
[--]//<-- Will close a spoiler
#debug: Set to 0 by default. If activated, the plugin will have the Debug Menu enabled. This menu can be shown with L + Start and shows various infos. This menu also have a logger.
</div>
</div>
 
 
 
<div class="toccolours mw-collapsible mw-collapsed">
==Log infos:==
<div class="mw-collapsible-content">
 
This code can only be effective if you compiled the plugin in a debug mode. Else it'll have no effect.
More infos on the logger and the log code:
 
    LOG0X00Y ZZZZZZZZ
    X = Type
    Y = Mode
    ZZZZZZZZZ = Value
 
    Type:
 
    INFO -> Color green
    WARNING -> Color orange
    DEBUG -> Color grey
    ERROR -> Color red
 
 
The ERROR type also have the particularity to shows the debug Menu on it's own right when an error's log is thrown. Basically that's mean that if you set an error log, every time that the log is thrown, the debug menu will pause the game and be shown.
 
 
Mode:
 
    Print value as text
    Print the value stocked at ZZZZZZZZ: "*(0x12345678): 11111111"
    Print the address and value stocked as Z: "*(0x12345678): *(11111111): 22222222"
    Print the value stocked in offset register
    Print the value stocked in data register
    Print the sum of offset + Z
 
</div>
</div>
 
 
 
<div class="toccolours mw-collapsible mw-collapsed">
As you know my menu can have spoiler to tidy up the menu.
So you can organize the menu with some spoiler.
==How to create a spoiler==
<div class="mw-collapsible-content">
 
 
    [++Spoiler text++]//<-- Will open a spoiler
    [--]//<-- Will close a spoiler


You can open a spoiler inside another spoiler but only for "two level":
You can open a spoiler inside another spoiler but only for "two level":
 
[cheats]
    [cheats]
[+Spoiler+]
    [+Spoiler+]
->cheats
    ->cheats
->[+Spoiler inside Spoiler+]
    ->[+Spoiler inside Spoiler+]
--->[cheats]
    --->[cheats]
->[+a second spoiler inside the first one+]
    ->[+a second spoiler inside the first one+]
--->[cheats]
    --->[cheats]


You can't do:
You can't do:
[cheats]
[+Spoiler+]
->cheats
->[+Spoiler inside Spoiler+]
--->[cheats]
--->[+a spoiler inside the second one which is himself in the first one+]
----->[cheats]


    [cheats]
Doing the second option will only create another spoiler below the second.
    [+Spoiler+]
    ->cheats
    ->[+Spoiler inside Spoiler+]
    --->[cheats]
    --->[+a spoiler inside the second one which is himself in the first one+]
    ----->[cheats]
    Doing the second option will only create another spoiler below the second.
</div>
</div>


{| role="presentation" class="wikitable mw-collapsible mw-collapsed" style="width:800px;"
!Example
|-
|style="width:800px;"|
[++Monsters codes++] <br>
<br>
[Monster3 Infinite Health] <br>
DD000000 00000010 <br>
980D2436 F7FF0800 <br>
B80D2434 00000000 <br>
50000000 006DEA60 <br>
00000088 0001869F <br>
KR000000 00000010 <br>
S0000000 00010000 <br>
D2000000 00000000 <br>
<br>
[Monster2 Infinite Health] <br>
980D242E F7FF0800 <br>
B80D242C 00000000 <br>
50000000 006DEA60 <br>
00000088 0001869F <br>
D2000000 00000000 <br>
<br>
[Monster1 Infinite Health] <br>
980D2426 F7FF0800 <br>
B80D2424 00000000 <br>
50000000 006DEA60 <br>
00000088 0001869F <br>
D2000000 00000000 <br>
<br>
[--] <br>
[++Player codes++] <br>
[++AP++] <br>
[Infinite AP] <br>
980D2406 F7FF0800 <br>
B80D2404 00000000 <br>
50000000 006DDEEC <br>
0000008C 0000270F <br>
D2000000 00000000 <br>
[++HEALTH++] <br>
[Infinite Health] <br>
980D2406 F7FF0800 <br>
B80D2404 00000000 <br>
50000000 006DDEEC <br>
00000088 0000270F <br>
D2000000 00000000 <br>
[--] <br>
[--] <br>
[++ Inventory codes ++] <br>
[9,999,999 CP] <br>
6072E168 00000000 <br>
B072E168 00000000 <br>
DC000000 FFFFFFC4 <br>
00000000 0098967F <br>
D2000000 00000000 <br>
<br>
[9,999,999 gil] <br>
6072E168 00000000 <br>
B072E168 00000000 <br>
DC000000 FFFFFFBC <br>
00000000 0098967F <br>
D2000000 00000000 <br>
<br>
[99 of all consumables] <br>
6072E168 00000000 <br>
B072E168 00000000 <br>
DC000000 FFFF1CD8 <br>
C0000000 0000001D <br>
20000000 00000063 <br>
DC000000 00000001 <br>
D2000000 00000000 <br>
<br>
[99 of all Atmaliths and Magicites] <br>
6072E168 00000000 <br>
B072E168 00000000 <br>
DC000000 FFFFECC0 <br>
C0000000 00000037 <br>
20000000 00000063 <br>
DC000000 00000001 <br>
D2000000 00000000 <br>
<br>
[Materials] <br>
6072E168 00000000 <br>
B072E168 00000000 <br>
DC000000 FFFFEC7A <br>
C0000000 0000000C <br>
20000000 00000063 <br>
DC000000 00000001 <br>
D2000000 00000000 <br>
[--] <br>
<br>
[No skill's cooldown] <br>
004491E8 A0E10000 <br>
<br>
[Unlock DLC Quests] <br>
6072E168 00000000 <br>
B072E168 00000000 <br>
DC000000 FFFF2828 <br>
00000000 000001E0 <br>
D2000000 00000000 <br>
|-
|}


===Creating a note===
You can also create a note for a cheat, which can be shown by pressing Y in the menu.


<div class="toccolours mw-collapsible mw-collapsed">
You can declare a note with: {This is a note}
==Cheats Example==
<div class="mw-collapsible-content">
[++Monsters codes++]


[Monster3 Infinite Health]
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" style="width:800px;"
DD000000 00000010
|-
980D2436 F7FF0800
!Example
B80D2434 00000000
|-
50000000 006DEA60
|style="width:800px;"|[++Monsters codes++] <br>
00000088 0001869F
<br>
KR000000 00000010
[Monster3 Infinite Health] <br>
S0000000 00010000
DD000000 00000010 <br>
D2000000 00000000
980D2436 F7FF0800 <br>
B80D2434 00000000 <br>
50000000 006DEA60 <br>
00000088 0001869F <br>
KR000000 00000010 <br>
S0000000 00010000 <br>
D2000000 00000000 <br>
{Monster #3 Infinite Health:\n\nWith this your third monster will be invicible !!!} <br>
<br>
[Monster2 Infinite Health] <br>
980D242E F7FF0800 <br>
B80D242C 00000000 <br>
50000000 006DEA60 <br>
00000088 0001869F <br>
D2000000 00000000 <br>
<br>
[Monster1 Infinite Health] <br>
980D2426 F7FF0800 <br>
B80D2424 00000000 <br>
50000000 006DEA60 <br>
00000088 0001869F <br>
D2000000 00000000 <br>
<br>
[--] <br>
[++Player codes++] <br>
[++AP++] <br>
[Infinite AP] <br>
980D2406 F7FF0800 <br>
B80D2404 00000000 <br>
50000000 006DDEEC <br>
0000008C 0000270F <br>
D2000000 00000000 <br>
{I like to have a lot of AP !!!\nWith that I can beat the crap out of those beasts as long as I want !!!} <br>
[++HEALTH++] <br>
[Infinite Health] <br>
980D2406 F7FF0800 <br>
B80D2404 00000000 <br>
50000000 006DDEEC <br>
00000088 0000270F <br>
D2000000 00000000 <br>
{Mouahahahah !!!!\n\nFear me you ants !\n\nNothing can beat me, I'm god on earth!!!} <br>
[--] <br>
[--] <br>
|-
|}


[Monster2 Infinite Health]
Note that the \n means going to the next line. By using it twice, you can jump a line.
980D242E F7FF0800
B80D242C 00000000
50000000 006DEA60
00000088 0001869F
D2000000 00000000


[Monster1 Infinite Health]
It's the only format character this function supports.
980D2426 F7FF0800
B80D2424 00000000
50000000 006DEA60
00000088 0001869F
D2000000 00000000


[--]
===Troubleshoot===
[++Player codes++]
If when you start the program you have this error: The program can't start because VCRUNTIME140.dll is missing from your computer.
[++AP++]
[Infinite AP]
980D2406 F7FF0800
B80D2404 00000000
50000000 006DDEEC
0000008C 0000270F
D2000000 00000000
[++HEALTH++]
[Infinite Health]
980D2406 F7FF0800
B80D2404 00000000
50000000 006DDEEC
00000088 0000270F
D2000000 00000000
[--]
[--]
[++ Inventory codes ++]
[9,999,999 CP]
6072E168 00000000
B072E168 00000000
DC000000 FFFFFFC4
00000000 0098967F
D2000000 00000000
 
[9,999,999 gil]
6072E168 00000000
B072E168 00000000
DC000000 FFFFFFBC
00000000 0098967F
D2000000 00000000
 
[99 of all consumables]
6072E168 00000000
B072E168 00000000
DC000000 FFFF1CD8
C0000000 0000001D
20000000 00000063
DC000000 00000001
D2000000 00000000


[99 of all Atmaliths and Magicites]
Try reinstalling the program to fix this problem.
6072E168 00000000
B072E168 00000000
DC000000 FFFFECC0
C0000000 00000037
20000000 00000063
DC000000 00000001
D2000000 00000000


[Materials]
Then install the VCRedist 2015 I linked higher.
6072E168 00000000
B072E168 00000000
DC000000 FFFFEC7A
C0000000 0000000C
20000000 00000063
DC000000 00000001
D2000000 00000000
[--]


[No skill's cooldown]
===Changelog===
004491E8 A0E10000
'''V1.1 2016/08/07'''
* Add Mask support for 16 bits conditionals codes (thanks to [https://gbatemp.net/members/365052/ @itsRyan] for noticing it).
* Add value truncation for the (wrong) writes codes, avoid warnings on compilation.


[Unlock DLC Quests]
'''V1.0.1 2016/08/03'''
6072E168 00000000
* Bug correction.
B072E168 00000000
DC000000 FFFF2828
00000000 000001E0
D2000000 00000000
</div>
</div>


 
==Credits==
 
* [https://gbatemp.net/members/356222/ @cell9] for the CFW NTR.
<div class="toccolours mw-collapsible mw-collapsed">
===HOw to create a note===
<div class="mw-collapsible-content">
 
 
    [++Monsters codes++]
 
    [Monster3 Infinite Health]
    DD000000 00000010
    980D2436 F7FF0800
    B80D2434 00000000
    50000000 006DEA60
    00000088 0001869F
    KR000000 00000010
    S0000000 00010000
    D2000000 00000000
    {Monster #3 Infinite Health:\n\nWith this your third monster will be invicible !!!}
 
    [Monster2 Infinite Health]
    980D242E F7FF0800
    B80D242C 00000000
    50000000 006DEA60
    00000088 0001869F
    D2000000 00000000
 
    [Monster1 Infinite Health]
    980D2426 F7FF0800
    B80D2424 00000000
    50000000 006DEA60
    00000088 0001869F
    D2000000 00000000
 
    [--]
    [++Player codes++]
    [++AP++]
    [Infinite AP]
    980D2406 F7FF0800
    B80D2404 00000000
    50000000 006DDEEC
    0000008C 0000270F
    D2000000 00000000
    {I like to have a lot of AP !!!\nWith that I can beat the crap out of those beasts as long as I want !!!}
    [++HEALTH++]
    [Infinite Health]
    980D2406 F7FF0800
    B80D2404 00000000
    50000000 006DDEEC
    00000088 0000270F
    D2000000 00000000
    {Mouahahahah !!!!\n\nFear me you ants !\n\nNothing can beat me, I'm god on earth!!!}
    [--]
    [--]
 
I'm sure you got it right ?
As you can see, I used '\n'.
This mean go to the next line. By using it twice, I can jump a line.
It's the only format character supported by my function.
</div>
</div>
 
The plugins made with this soft have a custom menu.
So to show the menu, you don't have to x + y and go in the game plugin section, but just press select ingame.
Then you can change the hotkey by pressing Start.
 
I think I covered all the functions, if I forgot something I'll edit. [[File:styles/default/xenforo/clear.png|class=mceSmilieSprite mceSmilie14|:P]]
 
Oh yeah, a last point: the plugins made with this soft disable the online functionalities but the local multiplayer is still available.
 
==Thanks==
Of course this soft wouldn't exist without a lot of people so I address my sincere thanks to:
 
* [https://gbatemp.net/members/356222/ @cell9] for the CFW NTR
* [https://gbatemp.net/members/366229/ @chronoss] for being the main beta tester. He did a really great job, and many of improvement are here because of him
* [https://gbatemp.net/members/366229/ @chronoss] for being the main beta tester. He did a really great job, and many of improvement are here because of him
* a lot of people all over the web, particularly people helping in the 3DS Scene. Indeed, I'm not a pro programmer, and I learned &quot;on the go&quot; by trying and testing. But I also read a lot of github code, which was really interesting and instructive. It's always good to see how people do things to have as many possibilities as possible. So a big thanks to them.
* A lot of people all over the web, particularly people helping in the 3DS Scene.
* I probably forgot some people, so I add them later. [[File:styles/default/xenforo/clear.png|class=mceSmilieSprite mceSmilie14|:P]]
 
===Troubleshoot===
 
*If when you start the program you have this error:
 
The program can't start because VCRUNTIME140.dll is missing from your computer. Try reinstalling the program to fix this problem.
 
then install the VCRedist 2015 I linked higher.
 
===Update===
 
'''03/08/16 (V. 1.0.1)'''
 
* Bug correction


'''07/08/16 (V. 1.1)'''
==External links==
* GBAtemp - https://gbatemp.net/threads/release-gateshark2ntr.436504


* Add Mask support for 16 bits conditionals codes (thanks to [https://gbatemp.net/members/365052/ @itsRyan] for noticing it)
[[Category:3DS homebrew applications]]
* Add value truncation for the (wrong) writes codes, avoid warnings on compilation
[[Category:PC utilities for 3DS homebrew]]

Revision as of 02:02, 25 February 2022

Gateshark2NTR
File:Gateshark2NTR.jpg
General
AuthorNanquitas
TypePC Utilities
Version1.1
LicenseMixed
Last Updated2016/08/07
Links
Download
Website

Gateshark2NTR is a program that will allow you to convert a Gateshark's cheats text file in a plugin usable with NTR.

Note: This is no longer supported, consider using CTRPluginFramework 3DS with Action Replay support instead of using a converter. With it you can simply load your text files with cheats.

User guide

Requirements:

  1. DevKitPRO. Install this and be sure to add "c:\devkitPro\msys\bin" to the PATH Environment Variable

There are 3 ways to pass the file:

  • Drag & Drop the file on the soft's icon.
  • Launch the soft and a window will appear to select the file.
  • Pass the file as an argument through a shell.

This soft support all the codes used by gateway and even more.

Complete STD AR/Gateway codes

Custom Codes

Config

The soft can use a config file in order to set some preference:

#builder_name: Nanquitas;
#name_auto: 1;
#folder_auto: 1;
#log: 0;
#debug: 1;

List of options and their meaning:

  • builder_name - Will permit you to enter the name that will be used by the converter automatically for the splash menu.
  • name_auto - Set to 1 by default. If disabled the soft will ask you to enter a name for the resulting file.
  • folder_auto - Set to 1 by default, if the name of the input file is recognized as a titleID, the program will automatically create the folder tree like: plugin > ID folder > plugin.plg.
  • log - Set to 0 by default. Create a traceback file with various info. Mainly used to debug the program.
  • debug - Set to 0 by default. If activated, the plugin will have the Debug Menu enabled. This menu can be shown with L + Start and shows various infos. This menu also have a logger.

Creating a spoiler

You can organize the menu with some spoiler.

[++Spoiler text++]//<-- Will open a spoiler
[--]//<-- Will close a spoiler

You can open a spoiler inside another spoiler but only for "two level":

[cheats]
[+Spoiler+]
->cheats
->[+Spoiler inside Spoiler+]
--->[cheats]
->[+a second spoiler inside the first one+]
--->[cheats]

You can't do:

[cheats]
[+Spoiler+]
->cheats
->[+Spoiler inside Spoiler+]
--->[cheats]
--->[+a spoiler inside the second one which is himself in the first one+]
----->[cheats]

Doing the second option will only create another spoiler below the second.

Creating a note

You can also create a note for a cheat, which can be shown by pressing Y in the menu.

You can declare a note with: {This is a note}

Note that the \n means going to the next line. By using it twice, you can jump a line.

It's the only format character this function supports.

Troubleshoot

If when you start the program you have this error: The program can't start because VCRUNTIME140.dll is missing from your computer.

Try reinstalling the program to fix this problem.

Then install the VCRedist 2015 I linked higher.

Changelog

V1.1 2016/08/07

  • Add Mask support for 16 bits conditionals codes (thanks to @itsRyan for noticing it).
  • Add value truncation for the (wrong) writes codes, avoid warnings on compilation.

V1.0.1 2016/08/03

  • Bug correction.

Credits

  • @cell9 for the CFW NTR.
  • @chronoss for being the main beta tester. He did a really great job, and many of improvement are here because of him
  • A lot of people all over the web, particularly people helping in the 3DS Scene.

External links

Advertising: