Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/azahar-emu/azahar/llms.txt

Use this file to discover all available pages before exploring further.

Azahar supports Gateway-format cheat codes, the same format used by the physical Gateway 3DS flashcart. Cheats are applied per game and stored on disk so they persist across sessions. You can enable or disable individual cheats at any time without restarting the emulator.

Opening the cheats dialog

With a game running, select EmulationCheats from the menu bar. The Cheats window lists every cheat currently saved for the running title. If no cheats have been added yet, the list is empty.
The Cheats option is only available while a game is running. It is grayed out on the main menu.

Gateway cheat code format

Each cheat entry consists of a name and one or more lines of hex code in the following structure:
[Cheat Name]
XXXXXXXX YYYYYYYY
XXXXXXXX YYYYYYYY
  • The name is placed inside square brackets.
  • Each code line is a pair of 32-bit hexadecimal values separated by a space.
  • Comment lines begin with * and are ignored by the engine.
  • A single cheat entry can contain multiple code lines.
The first nibble (most significant 4 bits) of the left-hand value determines the operation type. Common types from core/cheats/gateway_cheat.h include:
Type prefixOperation
0Write32 — write a 32-bit value to address
1Write16 — write a 16-bit value to address
2Write8 — write an 8-bit value to address
3GreaterThan32 — skip next line if memory value is greater than operand (32-bit)
4LessThan32 — skip next line if memory value is less than operand (32-bit)
5EqualTo32 — skip next line if memory value equals operand (32-bit)
6NotEqualTo32 — skip next line if memory value is not equal to operand (32-bit)
BLoadOffset — load value from memory address into offset register
CLoop — repeat the following lines a specified number of times
D3SetOffset — set offset register to specified value
D4AddValue — add a value to the offset register
D5SetValue — set the value register to a specified value
DDJoker — button-activated code (only executes when specified buttons are held)

Example: max money code

[Max Money]
*Sets in-game currency to 999999
005E6E14 000F423F
Here 00 indicates a 32-bit write, 5E6E14 is the target memory address, and 000F423F (999999 decimal) is the value to write.

Adding a cheat

1

Open the Cheats dialog

Launch your game, then select EmulationCheats.
2

Click Add

Click the Add button at the bottom of the dialog. A new blank entry appears in the list.
3

Enter the cheat name

Type a descriptive name in the Name field.
4

Enter the code

Paste or type the Gateway-format code lines into the Code text area. Each line must follow the XXXXXXXX YYYYYYYY pattern.
5

Save and enable

Click Save to write the cheat to disk. Check the checkbox next to the cheat name to activate it immediately.

Enabling and disabling cheats

Each cheat has a checkbox in the list. Checking the box enables the cheat for the current session; unchecking it disables it. Changes take effect at the next execution cycle without requiring a restart or save-state reload. You can enable multiple cheats simultaneously. The cheat engine runs all enabled cheats on a periodic timing callback.

Removing a cheat

Select the cheat you want to remove in the list, then click Delete. You will be asked to confirm before the cheat is permanently removed from disk.
Some cheats write directly to game memory and can produce invalid game states. This may corrupt your save data if the game writes corrupted values back to the save file. Always back up your save before using cheats in a game you care about.
Many community cheat databases publish codes in Gateway format. Make sure the code you are using targets the correct region of the game (JP/US/EU), as memory addresses differ between regional releases.

Build docs developers (and LLMs) love