Homebrew RELEASE Introducing SX Save Manager v1.1

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,635
Trophies
2
XP
6,201
Country
I was just given a build today that stays signed in. There's a couple of bugs with it but I've reported them so hopefully they'll be fixed before release. I also asked them to add the option to update all SX apps from inside of SXOS but I don't know if they will. If anyone has any feature requests they have a channel for it on their rocket chat server. The SX Devs (at least the ones I talk to) don't like GBAtemp for some reason so it's probably best to ask on Rocket chat but I don't mind passing along requests if anyone has any.
not about save manager, but please ask them to update their cheat engine to add support for the extra codetypes from Atmosphere cfw, cheats made using those codetypes will freeze the Switch on sx os when enabled. It is best to make the cheat engine universal.
### 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 (used for 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: !=
 
  • Like
Reactions: CompSciOrBust

lvlonkii

New Member
Newbie
Joined
Jun 19, 2020
Messages
4
Trophies
0
Age
36
XP
59
Country
United States
I have a question. I saved backups on the cloud and sold the switch awhile back. Bought a new one and have sxos. I downloaded the save backup through ofw and want to use it in my cfw. Problem is it won't show in botw. Anyway to transfer it from ofw to cfw within the same switch?
 

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,635
Trophies
2
XP
6,201
Country
I was just given a build today that stays signed in. There's a couple of bugs with it but I've reported them so hopefully they'll be fixed before release. I also asked them to add the option to update all SX apps from inside of SXOS but I don't know if they will. If anyone has any feature requests they have a channel for it on their rocket chat server. The SX Devs (at least the ones I talk to) don't like GBAtemp for some reason so it's probably best to ask on Rocket chat but I don't mind passing along requests if anyone has any.
could you sent this to them and ask them again to add the extra cheat codetypes that atmosphere already have? It is unfair that some cheats could not be use on sx os lol

ACA Neogeo Samurai Shodown base game v1.0
tid: 01005c9002b42000
bid: A980C9A9AA329EE2

[ZL Player1 Recover 255 HP AMS CFW only]
80000100
580F0000 012adfa0
520E0000 01221904
980FF0E0
780F0000 000000A6
610F0000 00000000 000000ff
20000000

[Test code example]
580F0000 XXXXXXXX //load address1 value 64bit
520E0000 YYYYYYYY //load address2 value 16bit
980FF0E0 //now address1a == address1 value + address2 value
780F0000 WWWWWWWW //now address1a + ×× offset
6X0F0000 VVVVVVVV VVVVVVVV //the code's value

extra codetypes
### 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 (used for 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: !=
 
Last edited by dsrules,
Joined
Sep 9, 2019
Messages
904
Trophies
1
Location
Switch scene
Website
github.com
XP
2,663
Country
Korea, North
could you sent this to them and ask them again to add the extra cheat codetypes that atmosphere already have? It is unfair that some cheats could not be use on sx os lol

ACA Neogeo Samurai Shodown base game v1.0
tid: 01005c9002b42000
bid: A980C9A9AA329EE2

[ZL Player1 Recover 255 HP AMS CFW only]
80000100
580F0000 012adfa0
520E0000 01221904
980FF0E0
780F0000 000000A6
610F0000 00000000 000000ff
20000000

[Test code example]
580F0000 XXXXXXXX //load address1 value 64bit
520E0000 YYYYYYYY //load address2 value 16bit
980FF0E0 //now address1a == address1 value + address2 value
780F0000 WWWWWWWW //now address1a + ×× offset
6X0F0000 VVVVVVVV VVVVVVVV //the code's value

extra codetypes
### 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 (used for 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: !=
I asked them and they said they might but they don't really care about maintaning compatability with Atmosphere unless it's critical because their cheat implementation is different to dmnt
 

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,635
Trophies
2
XP
6,201
Country
I asked them and they said they might but they don't really care about maintaning compatability with Atmosphere unless it's critical because their cheat implementation is different to dmnt
it doesn't has to be 1:1 , but if they could add some more codetypes to do the same functions then it would be great, because some cheats could no be made or crashes the game without those functions
 
Last edited by dsrules,
Joined
Sep 9, 2019
Messages
904
Trophies
1
Location
Switch scene
Website
github.com
XP
2,663
Country
Korea, North
@Muxi Just informed me over Discord that version 1.2 was leaked to him. It can be downloaded on his forum. The hash doesn't match the version I was given so I don't know if it's newer or older.

Edit: Changlog
  • Added persistent login token support
  • Added option to back up all data to Google Drive
  • Fixed bug that would cause crash if the SXOS folder was not present on the SD Card
  • Under the hood changes to lay groundwork for future updates
  • Fixed off by one bug in file names
 
Last edited by CompSciOrBust,

livinitwarrior

Well-Known Member
Member
Joined
Apr 10, 2020
Messages
218
Trophies
0
Age
35
XP
1,321
Country
United States
@Muxi Just informed me over Discord that version 1.2 was leaked to him. It can be downloaded on his forum. The hash doesn't match the version I was given so I don't know if it's newer or older.

Edit: Changlog
  • Added persistent login token support
  • Added option to back up all data to Google Drive
  • Fixed bug that would cause crash if the SXOS folder was not present on the SD Card
  • Under the hood changes to lay groundwork for future updates
  • Fixed off by one bug in file names

what is his forum? not familiar with him
 
Joined
Sep 9, 2019
Messages
904
Trophies
1
Location
Switch scene
Website
github.com
XP
2,663
Country
Korea, North
Anybody know how to get the persistant login to work on v1.2?
Is some cache or something preventing from auto connecting?
The dev says something changed on google's end that broke it but there's an update now. 1.2B. Not sure where the leak originated but it is linked in the official unofficial TX community discord.

Edit: The change broke all versions of SX Save Manager so if you're not on the leaked version yet I'd start using it now.
 
Last edited by CompSciOrBust,

Cylent1

Community Smart Ass!
Member
Joined
Oct 5, 2015
Messages
914
Trophies
0
Location
The most communist country in the world!
XP
2,430
Country
United States
The dev says something changed on google's end that broke it but there's an update now. 1.2B. Not sure where the leak originated but it is linked in the official unofficial TX community discord.

Edit: The change broke all versions of SX Save Manager so if you're not on the leaked version yet I'd start using it now.
How Ironic! I forget all about it for a few days and low and behold you post this and it made me check my discord real quick, and he was actually sending it to me in his direct messages!
Thanks for the reminder?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    LeoTCK @ LeoTCK: sometimes to the point of thanking me for my quick actions etc against spam and other stuff, but... +1