ROM Hack Cheat Codes AMS and Sx Os, Add and Request

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,699
Trophies
2
XP
6,262
Country
Hello, I want to make a code for walk through the wall in Zelda

[heap+4a573630]+18 = ID
[[main+251B618]+138 + IDx8 ]+29

e.g. [heap+4a573630]+18 = 6F
6F x 8 = 378
the value I want to change [[main+0251B618]+138+378]+29 to 10 (i.e. 16 in dec)

As I know SXOS cannot operate for it.
And the atmosphere Code 9 may work.

I've tried the following:
[for Atmosphere]
581E0000 4A573630
520E1000 00000018
780E2000 00000008
580F0000 0251B618
980FF0E0
580F1000 00000138
780F0000 00000029
610F0000 00000000 00000010
This code did not work

Could anyone help to fix it?
I thought Zit already made a walk through wall for Zelda, his cheat doesn't work?
 

Eiffel2018

Well-Known Member
Member
Joined
Aug 23, 2020
Messages
1,582
Trophies
3
Age
24
XP
10,203
Country
Hong Kong
I thought Zit already made a walk through wall for Zelda, his cheat doesn't work?
Yes. I work with him. His code will fail after switching characters.
And I've already made the ASM code for this, but we want to learn how atmosphere works

Today he found the HP address of Sniper Elite 4, we are testing now
 
Last edited by Eiffel2018,

Eiffel2018

Well-Known Member
Member
Joined
Aug 23, 2020
Messages
1,582
Trophies
3
Age
24
XP
10,203
Country
Hong Kong
upload_2020-11-30_2-13-20.png

something strange if you enable the code #13
 
  • Like
Reactions: xtatu and dsrules
D

Deleted User

Guest
@Eiffel2018
Is there a possibility that he still reveals his cheats here. Unfortunately I don't have the necessary authorization with my 91wii account to load cheats from there.
 

Jericoss

Well-Known Member
Member
Joined
Sep 24, 2019
Messages
1,640
Trophies
1
XP
4,947
Country
Mexico
Hello, I want to make a code for walk through the wall in Zelda

[heap+4a573630]+18 = ID
[[main+251B618]+138 + IDx8 ]+29

e.g. [heap+4a573630]+18 = 6F
6F x 8 = 378
the value I want to change [[main+0251B618]+138+378]+29 to 10 (i.e. 16 in dec)

As I know SXOS cannot operate for it.
And the atmosphere Code 9 may work.

I've tried the following:
[for Atmosphere]
581E0000 4A573630
520E1000 00000018
780E2000 00000008
580F0000 0251B618
980FF0E0
580F1000 00000138
780F0000 00000029
610F0000 00000000 00000010
This code did not work

Could anyone help to fix it?
I use atmosphere.
Do you want to try that Cheat, what version is it for?
I only have 1.0.0
 

arismendy64

Well-Known Member
Member
Joined
Dec 1, 2013
Messages
1,052
Trophies
2
Age
44
XP
4,310
Country
Dominican Republic
huntdown 1.0.4
0100EBA004726000
393170fd23f89e46
Code:
[inf hp ary64]
580F0000 035D71F0
580F1000 00000988
580F1000 00000038
580F1000 00000068
780F0000 00000298
610F0000 00000000 00000009

[Moon Jump zit]
80000002
580F0000 035D71F0
580F1000 00000988
580F1000 00000038
580F1000 00000068
780F0000 000000AC
640F0000 00000000 C0800000
20000000

[Invincible zit]
580F0000 035D71F0
580F1000 00000988
580F1000 00000038
580F1000 00000068
780F0000 00000368
640F0000 00000000 000000FF

[Inf Dash zit]
580F0000 035D71F0
580F1000 00000988
580F1000 00000038
580F1000 00000068
780F0000 00000438
640F0000 00000000 00000000

[One Hit Kill zit(Early Weapons)]
580F0000 035D71F0
580F1000 00000988
580F1000 00000038
580F1000 00000068
780F0000 00000314
640F0000 00000000 000000FF

[inf granade ary64]
580F0000 035D71F0
580F1000 00000988
580F1000 00000038
580F1000 00000068
780F0000 00000304
640F0000 00000000 00000099

[inf ammo ary64]
580F0000 035D71F0
580F1000 00000988
580F1000 00000038
580F1000 00000068
780F0000 000002F4
640F0000 00000000 000003E7

[no reload ary64]
580F0000 035D71F0
580F1000 00000988
580F1000 00000038
580F1000 00000068
780F0000 0000032C
640F0000 00000000 00000000

[auto shootgun ary64]
580F0000 035D71F0
580F1000 00000988
580F1000 00000038
580F1000 00000068
780F0000 000002F0
640F0000 00000000 00000015
580F0000 035D71F0
580F1000 00000988
580F1000 00000038
580F1000 00000068
780F0000 00000310
640F0000 00000000 00000001
 

Eiffel2018

Well-Known Member
Member
Joined
Aug 23, 2020
Messages
1,582
Trophies
3
Age
24
XP
10,203
Country
Hong Kong
I use atmosphere.
Do you want to try that Cheat, what version is it for?
I only have 1.0.0
Thankyou. that is 1.01
or you can try

[TW for Atmosphere]
581E0000 4A573630
520E1000 00000018
780E2000 00000008
580F1000 4C09DEC8
980FF0E0
780F0000 00000029
610F0000 00000000 00000010

or

[TW for Atmosphere]
581E0000 4A573630
520E1000 00000018
780E2000 00000008
581F0000 4C09DEC8
980FF0E0
400E0000 00000000 00000029
610F01E0 00000000 00000010


something like this since the heap memory is the same in both version

HEAP+4C09DEC8 = [MAIN+251B618]+138

not sure how to make the CODE 9 work properly

If it works, you can walk pass through the wall/hill, and it would works after switching characters

thanks a lot
 

Jericoss

Well-Known Member
Member
Joined
Sep 24, 2019
Messages
1,640
Trophies
1
XP
4,947
Country
Mexico
Thankyou. that is 1.01
or you can try

[TW for Atmosphere]
581E0000 4A573630
520E1000 00000018
780E2000 00000008
580F1000 4C09DEC8
980FF0E0
780F0000 00000029
610F0000 00000000 00000010

or

[TW for Atmosphere]
581E0000 4A573630
520E1000 00000018
780E2000 00000008
581F0000 4C09DEC8
980FF0E0
400E0000 00000000 00000029
610F01E0 00000000 00000010


something like this since the heap memory is the same in both version

HEAP+4C09DEC8 = [MAIN+251B618]+138

not sure how to make the CODE 9 work properly

If it works, you can walk pass through the wall/hill, and it would works after switching characters

thanks a lot
I don't need to press any button right?
I already have v 1.0.1 I try it there too.
 

Jericoss

Well-Known Member
Member
Joined
Sep 24, 2019
Messages
1,640
Trophies
1
XP
4,947
Country
Mexico
OMG, had you ever saw any examples on atmosphere cheat code 9?


this @Eiffel2018 will serve you

Code Type 9: Perform Arithmetic

Code type 9 allows performing arithmetic on registers.

Register Arithmetic Encoding
9TCRS0s0

  • T: Width of arithmetic operation (1, 2, 4, or 8 bytes).
  • C: Arithmetic operation to apply, see below.
  • R: Register to store result in.
  • S: Register to use as left-hand operand.
  • s: Register to use as right-hand operand.
Immediate Value Arithmetic Encoding
9TCRS100 VVVVVVVV (VVVVVVVV)

  • T: Width of arithmetic operation (1, 2, 4, or 8 bytes).
  • C: Arithmetic operation to apply, see below.
  • R: Register to store result in.
  • S: Register to use as left-hand operand.
  • V: Value to use as right-hand operand.
Arithmetic Types
  • 0: Addition
  • 1: Subtraction
  • 2: Multiplication
  • 3: Left Shift
  • 4: Right Shift
  • 5: Logical And
  • 6: Logical Or
  • 7: Logical Not (discards right-hand operand)
  • 8: Logical Xor
  • 9: None/Move (discards right-hand operand)

Cheats
Atmosphère supports Action-Replay style cheat codes, with cheats loaded off of the SD card.

Cheat Loading Process
By default, Atmosphère will do the following when deciding whether to attach to a new application process:

  • Retrieve information about the new application process from pm and loader.
  • Check whether a user-defined key combination is held, and stop if not.
    • This defaults to "L is not held", but can be configured with override keys.
    • The ini key to configure this is cheat_enable_key.
  • Check whether the process is a real application, and stop if not.
    • This guards against applying cheat codes to the Homebrew Loader.
  • Attempt to load cheats from /atmosphere/contents/<program_id>/cheats/<build_id>.txt, where build_id is the hexadecimal representation of the first 8 bytes of the application's main executable's build id.
    • If no cheats are found, then the cheat manager will stop.
  • Open a kernel debug session for the new application process.
  • Signal to a system event that a new cheat process has been attached to.
This behavior ensures that cheat codes are only loaded when the user would want them to.

In cases where dmnt has not activated the cheat manager, but the user wants to make it do so anyway, the cheat manager's service API provides a ForceOpenCheatProcess command that homebrew can use. This command will cause the cheat manager to try to force itself to attach to the process.

By default, all cheat codes listed in the loaded .txt file will be toggled on. This is configurable by the user by editing the atmosphere!dmnt_cheats_enabled_by_default system setting.

Users may use homebrew programs to toggle cheats on and off at runtime via the cheat manager's service API.

Cheat Code Compatibility
Atmosphère manages cheat code through the execution of a small, custom virtual machine. Care has been taken to ensure that Atmosphère's cheat code format is fully backwards compatible with the pre-existing cheat code format, though new features have been added and bugs in the pre-existing cheat code applier have been fixed. Here is a short summary of the changes from the pre-existing format:

  • A number of bugs were fixed in the processing of conditional instructions.
    • The pre-existing implementation was fundamentally broken, and checked for the wrong value when detecting the end of a conditional block.
    • The pre-existing implementation also did not properly decode instructions, and instead linearly scanned for the terminator value. This caused problems if an instruction happened to encode a terminator inside its immediate values.
    • The pre-existing implementation did not bounds check, and thus certain conditional cheat codes could cause it to read out-of-bounds memory, and potentially crash due to a data abort.
  • Support was added for nesting conditional blocks.
  • An instruction was added to perform much more complex arbitrary arithmetic on two registers.
  • An instruction was added to allow writing the contents of register to a memory address specified by another register.
  • The pre-existing implementation did not correctly synchronize with the application process, and thus would cause heavy lag under certain circumstances (especially around loading screens). This has been fixed in Atmosphère's implementation.
Cheat Code Format
The following provides documentation of the instruction format for the virtual machine used to manage cheat codes.

Typically, instruction type is encoded in the upper nybble of the first instruction u32.

Code Type 0: Store Static Value to Memory
Code type 0 allows writing a static value to a memory address.

Encoding
0TMR00AA AAAAAAAA VVVVVVVV (VVVVVVVV)

  • T: Width of memory write (1, 2, 4, or 8 bytes).
  • M: Memory region to write to (0 = Main NSO, 1 = Heap).
  • R: Register to use as an offset from memory region base.
  • A: Immediate offset to use from memory region base.
  • V: Value to write.
Code Type 1: Begin Conditional Block
Code type 1 performs a comparison of the contents of memory to a static value.

If the condition is not met, all instructions until the appropriate conditional block terminator are skipped.

Encoding
1TMC00AA AAAAAAAA VVVVVVVV (VVVVVVVV)

  • T: Width of memory write (1, 2, 4, or 8 bytes).
  • M: Memory region to write to (0 = Main NSO, 1 = Heap).
  • C: Condition to use, see below.
  • A: Immediate offset to use from memory region base.
  • V: Value to compare to.
Conditions
  • 1: >
  • 2: >=
  • 3: <
  • 4: <=
  • 5: ==
  • 6: !=
Code Type 2: End Conditional Block
Code type 2 marks the end of a conditional block (started by Code Type 1 or Code Type 8).

Encoding
20000000

Code Type 3: Start/End Loop
Code type 3 allows for iterating in a loop a fixed number of times.

Start Loop Encoding
300R0000 VVVVVVVV

  • R: Register to use as loop counter.
  • V: Number of iterations to loop.
End Loop Encoding
310R0000

  • R: Register to use as loop counter.
Code Type 4: Load Register with Static Value
Code type 4 allows setting a register to a constant value.

Encoding
400R0000 VVVVVVVV VVVVVVVV

  • R: Register to use.
  • V: Value to load.
Code Type 5: Load Register with Memory Value
Code type 5 allows loading a value from memory into a register, either using a fixed address or by dereferencing the destination register.

Load From Fixed Address Encoding
5TMR00AA AAAAAAAA

  • T: Width of memory read (1, 2, 4, or 8 bytes).
  • M: Memory region to write to (0 = Main NSO, 1 = Heap).
  • R: Register to load value into.
  • A: Immediate offset to use from memory region base.
Load from Register Address Encoding
5TMR10AA AAAAAAAA

  • T: Width of memory read (1, 2, 4, or 8 bytes).
  • M: Memory region to write to (0 = Main NSO, 1 = Heap).
  • R: Register to load value into.
  • A: Immediate offset to use from register R.
Code Type 6: Store Static Value to Register Memory Address
Code type 6 allows writing a fixed value to a memory address specified by a register.

Encoding
6T0RIor0 VVVVVVVV VVVVVVVV

  • T: Width of memory write (1, 2, 4, or 8 bytes).
  • R: Register used as base memory address.
  • I: Increment register flag (0 = do not increment R, 1 = increment R by T).
  • o: Offset register enable flag (0 = do not add r to address, 1 = add r to address).
  • r: Register used as offset when o is 1.
  • V: Value to write to memory.
Code Type 7: Legacy Arithmetic
Code type 7 allows performing arithmetic on registers.

However, it has been deprecated by Code type 9, and is only kept for backwards compatibility.

Encoding
7T0RC000 VVVVVVVV

  • T: Width of arithmetic operation (1, 2, 4, or 8 bytes).
  • R: Register to apply arithmetic to.
  • C: Arithmetic operation to apply, see below.
  • V: Value to use for arithmetic operation.
Arithmetic Types
  • 0: Addition
  • 1: Subtraction
  • 2: Multiplication
  • 3: Left Shift
  • 4: Right Shift
Code Type 8: Begin Keypress Conditional Block
Code type 8 enters or skips a conditional block based on whether a key combination is pressed.

Encoding
8kkkkkkk

  • k: Keypad mask to check against, see below.
Note that for multiple button combinations, the bitmasks should be ORd together.

Keypad Values
Note: This is the direct output of hidKeysDown().

  • 0000001: A
  • 0000002: B
  • 0000004: X
  • 0000008: Y
  • 0000010: Left Stick Pressed
  • 0000020: Right Stick Pressed
  • 0000040: L
  • 0000080: R
  • 0000100: ZL
  • 0000200: ZR
  • 0000400: Plus
  • 0000800: Minus
  • 0001000: Left
  • 0002000: Up
  • 0004000: Right
  • 0008000: Down
  • 0010000: Left Stick Left
  • 0020000: Left Stick Up
  • 0040000: Left Stick Right
  • 0080000: Left Stick Down
  • 0100000: Right Stick Left
  • 0200000: Right Stick Up
  • 0400000: Right Stick Right
  • 0800000: Right Stick Down
  • 1000000: SL
  • 2000000: SR
Code Type 9: Perform Arithmetic
Code type 9 allows performing arithmetic on registers.

Register Arithmetic Encoding
9TCRS0s0

  • T: Width of arithmetic operation (1, 2, 4, or 8 bytes).
  • C: Arithmetic operation to apply, see below.
  • R: Register to store result in.
  • S: Register to use as left-hand operand.
  • s: Register to use as right-hand operand.
Immediate Value Arithmetic Encoding
9TCRS100 VVVVVVVV (VVVVVVVV)

  • T: Width of arithmetic operation (1, 2, 4, or 8 bytes).
  • C: Arithmetic operation to apply, see below.
  • R: Register to store result in.
  • S: Register to use as left-hand operand.
  • V: Value to use as right-hand operand.
Arithmetic Types
  • 0: Addition
  • 1: Subtraction
  • 2: Multiplication
  • 3: Left Shift
  • 4: Right Shift
  • 5: Logical And
  • 6: Logical Or
  • 7: Logical Not (discards right-hand operand)
  • 8: Logical Xor
  • 9: None/Move (discards right-hand operand)
Code Type 10: Store Register to Memory Address
Code type 10 allows writing a register to memory.

Encoding
ATSRIOxa (aaaaaaaa)

  • T: Width of memory write (1, 2, 4, or 8 bytes).
  • S: Register to write to memory.
  • R: Register to use as base address.
  • I: Increment register flag (0 = do not increment R, 1 = increment R by T).
  • O: Offset type, see below.
  • x: Register used as offset when O is 1, Memory type when O is 3, 4 or 5.
  • a: Value used as offset when O is 2, 4 or 5.
Offset Types
  • 0: No Offset
  • 1: Use Offset Register
  • 2: Use Fixed Offset
  • 3: Memory Region + Base Register
  • 4: Memory Region + Relative Address (ignore address register)
  • 5: Memory Region + Relative Address + Offset Register
Code Type 11: Reserved
Code Type 11 is currently reserved for future use.

Code Type 12-15: Extended-Width Instruction
Code Types 12-15 signal to the VM to treat the upper two nybbles of the first dword as instruction type, instead of just the upper nybble.

This reserves an additional 64 opcodes for future use.

Code Type 0xC0: Begin Register Conditional Block
Code type 0xC0 performs a comparison of the contents of a register and another value. This code support multiple operand types, see below.

If the condition is not met, all instructions until the appropriate conditional block terminator are skipped.

Encoding
C0TcSX##
C0TcS0Ma aaaaaaaa
C0TcS1Mr
C0TcS2Ra aaaaaaaa
C0TcS3Rr
C0TcS400 VVVVVVVV (VVVVVVVV)
C0TcS5X0

  • T: Width of memory write (1, 2, 4, or 8 bytes).
  • c: Condition to use, see below.
  • S: Source Register.
  • X: Operand Type, see below.
  • M: Memory Type (operand types 0 and 1).
  • R: Address Register (operand types 2 and 3).
  • a: Relative Address (operand types 0 and 2).
  • r: Offset Register (operand types 1 and 3).
  • X: Other Register (operand type 5).
  • V: Value to compare to (operand type 4).
Operand Type
  • 0: Memory Base + Relative Offset
  • 1: Memory Base + Offset Register
  • 2: Register + Relative Offset
  • 3: Register + Offset Register
  • 4: Static Value
  • 5: Other Register
Conditions
  • 1: >
  • 2: >=
  • 3: <
  • 4: <=
  • 5: ==
  • 6: !=
Code Type 0xC1: Save or Restore Register
Code type 0xC1 performs saving or restoring of registers.

Encoding
C10D0Sx0

  • D: Destination index.
  • S: Source index.
  • x: Operand Type, see below.
Operand Type
  • 0: Restore register
  • 1: Save register
  • 2: Clear saved value
  • 3: Clear register
Code Type 0xC2: Save or Restore Register with Mask
Code type 0xC2 performs saving or restoring of multiple registers using a bitmask.

Encoding
C2x0XXXX

  • x: Operand Type, see below.
  • X: 16-bit bitmask, bit i == save or restore register i.
Operand Type
  • 0: Restore register
  • 1: Save register
  • 2: Clear saved value
  • 3: Clear register
Code Type 0xC3: Read or Write Static Register
Code type 0xC3 reads or writes a static register with a given register.

Encoding
C3000XXx

  • XX: Static register index, 0x00 to 0x7F for reading or 0x80 to 0xFF for writing.
  • x: Register index.
Code Type 0xF0: Double Extended-Width Instruction
Code Type 0xF0 signals to the VM to treat the upper three nybbles of the first dword as instruction type, instead of just the upper nybble.

This reserves an additional 16 opcodes for future use.

Code Type 0xFF0: Pause Process
Code type 0xFF0 pauses the current process.

Encoding
FF0?????

Code Type 0xFF1: Resume Process
Code type 0xFF1 resumes the current process.

Encoding
FF1?????

Code Type 0xFFF: Debug Log
Code type 0xFFF writes a debug log to the SD card under the folder /atmosphere/cheat_vm_logs/.

Encoding
FFFTIX##
FFFTI0Ma aaaaaaaa
FFFTI1Mr
FFFTI2Ra aaaaaaaa
FFFTI3Rr
FFFTI4X0

  • T: Width of memory write (1, 2, 4, or 8 bytes).
  • I: Log id.
  • X: Operand Type, see below.
  • M: Memory Type (operand types 0 and 1).
  • R: Address Register (operand types 2 and 3).
  • a: Relative Address (operand types 0 and 2).
  • r: Offset Register (operand types 1 and 3).
  • X: Value Register (operand type 4).
Operand Type
  • 0: Memory Base + Relative Offset
  • 1: Memory Base + Offset Register
  • 2: Register + Relative Offset
  • 3: Register + Offset Register
  • 4: Register Value
 
Last edited by Jericoss,

Spider_Man

Well-Known Member
Member
Joined
May 28, 2015
Messages
3,924
Trophies
0
Age
38
XP
5,164
Country
United States
@merlin555 Okay, I didn't know the YT channel. But what happened? Did he leave the Switch scene?
no, a website that has subscriptions had users stealing codes off here and posting on that website.

even when told to remove them the idiot behind the site kept insisting they were not making money, sorry but a subscription service regardless if optional, is a means of making money off others work.

then he left as his codes were always getting taken from here and posted to the site without crediting and against his wishes, even ive reported to the site owner and he is ignorant and refuses to remove them.

the site owner then puts a bs form to report codes stolen and theyll be removed, yet ones ive reported still remain.
 

Carefree_dude

Well-Known Member
Newcomer
Joined
May 17, 2017
Messages
54
Trophies
0
Age
36
XP
216
Country
United States
@CJB Some of my characters were already level 100 when I used mega damage for Zelda AoC, and I couldn't find a way to get the damage back to normal. It would be nice if you could make a cheat to lower a character's level or set them to level 99.

Doing meditative training seems to restore character stats back to normal even at level 100

--------------------- MERGED ---------------------------

I think Amiibo is for now not neccessary fore this game. Why I say that because there's cheat codes that give the same thing the Amiibo does.
Unless you don't want to cheat than your request cheat would be nice.

The purpose for the amiibo code would be to farm weapons; I don't think there are any codes currently that will let you get high stat weapons, or farm a large number of weapons so you can level up what you currently have.
 

piek50

Well-Known Member
Member
Joined
Jun 24, 2019
Messages
683
Trophies
0
XP
2,209
Country
Suriname
Doing meditative training seems to restore character stats back to normal even at level 100

--------------------- MERGED ---------------------------



The purpose for the amiibo code would be to farm weapons; I don't think there are any codes currently that will let you get high stat weapons, or farm a large number of weapons so you can level up what you currently have.
There is a code from @CJB to level up your current selected weapon to high stat for every character.
Look for it in the main cheat file on page 1.
 
Last edited by piek50,

Carefree_dude

Well-Known Member
Newcomer
Joined
May 17, 2017
Messages
54
Trophies
0
Age
36
XP
216
Country
United States
There is a code from @CJB to level up your current selected weapon to high stat for every character.
Look for it in the main cheat file on page 1.

I've been looking at the cheats and I don't see anything in regards to weapon stats or levels; i only see ones that make it so you have a really high attack. Ideally right now I am trying to build weapons in the game that are legitimate, but want to try and skip most of the grind to do so.
 
  • Like
Reactions: piek50

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: The mutated Axolotl was awesome