Post: Save Wizard Custom Quick Code Formats
09-20-2017, 10:25 PM #1
Dynamite
Vault dweller
(adsbygoogle = window.adsbygoogle || []).push({}); Notes:
Because the majority of PS4 saves use Little Endian, Save Wizard will automatically swap the values for those specific games. Therefore, writing "000039FE" in a code will post as "FE390000". This is true for all codes except for the Search Value in the Pointer Codes (Code Types 8/B/C) and the Bytes Written in the Mass Write Code (Code Type A). These values will be pasted exactly how they're written in the code.

I prefer to use Bytes instead of Bits but for a quick translation:
8-bits = 1 Byte, 16-bits = 2 Bytes, 32-bits = 4 Bytes.
I also know some veterans like to use bitwise operators when writing codes but I'm not here to confuse anyone so I'm not going to do that :P

These are not all of the codes nor are they complete translations for each code. Save Wizard / Game Genie has never really publicly posted anything about the code formats so the majority have been discovered over the course of the past decade. Shout out to every single code hunter and community! (There are way too many to name and if I start I know I'll forget some)

Code Type 0: Standard 8-bit (1 Byte) Write:
0BYYYYYY 000000XX

B = Offset Type
​0 = Default
8 = Offset from Pointer

Y = Address
X = Bytes to Write

Example:

00000456 00000063

00000456 00000063 - Normal Offset
00000456 00000063 - Writes to this Address
00000456 00000063 - Writes these Bytes

You must login or register to view this content.

Code Type 1: Standard 16-bit (2 Byte) Write:
1BYYYYYY 0000XXXX

B = Offset Type
0 = Default
8 = Offset from Pointer

Y = Address
X = Bytes to Write

Example:

10001E24 000003E7

10001E24 000003E7 - Normal Offset
10001E24 000003E7 - Writes to this Address
10001E24 000003E7- Writes these Bytes

You must login or register to view this content.

Code Type 2: Standard 32-bit (4 Byte) Write:
2BYYYYYY XXXXXXXX

B = Offset Type
0 = Default
8 = Offset from Pointer

Y = Address
X = Bytes to Write

Example:

20000250 3B9AC9FF

20000250 3B9AC9FF - Normal Offset
20000250 3B9AC9FF - Writes to this Address
20000250 3B9AC9FF - Writes these Bytes

You must login or register to view this content.

Code Type 3: Increase / Decrease Code:
3BYYYYYY XXXXXXXX

B = Byte Value & Offset Type
0 = Add 1 Byte (000000XX)
1 = Add 2 Bytes (0000XXXX)
2 = Add 4 Bytes
3 = Add 8 Bytes
4 = Sub 1 Byte (000000XX)
5 = Sub 2 Bytes (0000XXXX)
6 = Sub 4 Bytes
7 = Sub 8 Bytes
8 = Offset from Pointer; Add 1 Byte (000000XX)
9 = Offset from Pointer; Add 2 Bytes (0000XXXX)
A = Offset from Pointer; Add 4 Bytes
B = Offset from Pointer; Add 8 Bytes
C = Offset from Pointer; Sub 1 Byte (000000XX)
D = Offset from Pointer; Sub 2 Bytes (0000XXXX)
E = Offset from Pointer; Sub 4 Bytes
F = Offset from Pointer; Sub 8 Bytes

Y = Address
X = Bytes to Add/Sub

Example:

31003E3D 0000112A

31003E3D 0000112A - Add 2 Bytes Worth
31003E3D 0000112A - Add to this Address
31003E3D 0000112A - Add These Bytes

Before:
You must login or register to view this content.
After:
You must login or register to view this content.

For the 8 Byte Value Type, it will write 4 Bytes of data but will continue to write the bytes afterwards if it cannot write any more.

Code Type 4: Multi-Write Code (Repeater):
4BYYYYYY XXXXXXXX
4CCCDDDD ZZZZZZZZ

B = Byte Value & Offset Type
0 = 1 Byte (Only Writes 000000XX)
1 = 2 Bytes (Only Writes 0000XXXX)
2 = 4 Bytes
8 = Offset from Pointer; 1 Byte (Only Writes 000000XX)
9 = Offset from Pointer; 2 Bytes (Only Writes 0000XXXX)
A = Offset from Pointer; 4 Bytes

Y = Address
X = Bytes to Write
C = Amount of times to repeat Write
D = Increases Address by per Write
Z = Increases Value by per Write

Example:

41004500 00000100
4004000C 00000002
​
41004500 00000100 - Writes 2 Bytes Worth
4004000C 00000002 - Writes Four Times

41004500 00000100 - Writes to this Address
4004000C 00000002 - Distance Between Writes

41004500 00000100 - Writes these Bytes
4004000C 00000002 - Increases By 2 Per Write

You must login or register to view this content.

Code Type 5: Copy and Paste Code:
5BYYYYYY XXXXXXXX
5BZZZZZZ 00000000

B = Offset Type
0 = Default
8 = Offset from Pointer

Y = Address to Copy Bytes
X = Amount of Bytes to Copy
1 = 1 Bytes
2 = 2 Bytes
So on...

Z = Address to Paste Bytes

Example:

500000A2 00000004
500000B4 00000000

500000A2 00000004 - Normal Offset
500000B4 00000000 - Normal Offset

500000A2 00000004 - Copies the Bytes from this Address
500000B4 00000000 - Pastes Bytes to this Address

500000A2 00000004 - Copies Four Bytes Worth
500000B4 00000000

You must login or register to view this content.

Code Type 7: No More / No Less than Code:
7BYYYYYY XXXXXXXX

B = Byte Value & Offset Type
0 = No Less Than: 1 Byte (000000XX)
1 = No Less Than: 2 Bytes (0000XXXX)
2 = No Less Than: 4 Bytes
4 = No More Than: 1 Byte (000000XX)
5 = No More Than: 2 Bytes (0000XXXX)
6 = No More Than: 4 Bytes
8 = Offset from Pointer; No Less Than: 1 Byte (000000XX)
9 = Offset from Pointer; No Less Than: 2 Bytes (0000XXXX)
A = Offset from Pointer; No Less Than: 4 Bytes
C = Offset from Pointer; No More Than: 1 Byte (000000XX)
D = Offset from Pointer; No More Than: 2 Bytes (0000XXXX)
E = Offset from Pointer; No More Than: 4 Bytes

Y = Address
X = Bytes to Write
This code is the same as a standard write code however it will only write the bytes if the current value at the address is no more or no less than X.
For example, you can use a no less than value to make sure the address has more than X but will take no effect if it already has more than the value on the code.

Code Type 8: Forward Byte Search (Set Pointer):
8BCCYYYY XXXXXXXX
*Other Code Here, Use Specific Offset Type*

B = Offset Type
0 = Default
8 = Offset from Pointer

C = Amount of Times to Find until Pointer Set
Y = Amount of Bytes to Search
1 = 1 Byte
2 = 2 Bytes
and so on...

X = Bytes to Search, use Multiple Lines if Needed

Example:

80010002 01B00117 - Searches for two bytes of "01B00117" Once using Default Offset
28000010 7FFFFFFF - Standard Write code using the "8" Offset Type (Refer to Code Type 2) and offsets by 0x10

You must login or register to view this content.

Code Type 9: Pointer Manipulator:
9Y000000 XXXXXXXX

Y = Operator
0 = Set Pointer to Big Endian value at XXXXXXXX
1 = Set Pointer to Little Endian value at XXXXXXXX
2 = Add X to Pointer
3 = Sub X to Pointer
4 = Set Pointer to the end of file and subtract X
5 = Set Pointer to X

X = Value to set / change

This code is commonly used to offset the Pointer after a search or before a write.

Code Type A: Mass Write Code:
ABYYYYYY XXXXXXXX
ZZZZZZZZ ZZZZZZZZ

B = Offset Type
0 = Normal
8 = Offset from Pointer

Y = Writes to this Address
X = Amount of Bytes to Write
Z = Bytes to Write, use Multiple Lines if Needed

Example:

A0004510 00000010
11223344 55667788
99AABBCC DDEEFF00


A0004510 0000000F - Writes to this Address
11223344 55667788
99AABBCC DDEEFF00

A0004510 0000000F - Writes this many Bytes
11223344 55667788 - Bytes to Write (1)
99AABBCC DDEEFF00 - Bytes to Write (2)

You must login or register to view this content.

Code Type B: Backward Byte Search (Set Pointer):
BBCCYYYY XXXXXXXX
*Other Code Here, Use Specific Offset Type*

B = Offset Type
0 = Default
8 = Offset from Pointer

C = Amount of Times to Find until Pointer Set
Y = Amount of Bytes to Search
1 = 1 Byte
2 = 2 Bytes
and so on...

X = Bytes to Search, use Multiple Lines if Needed

This code works exactly the same as Code Type 8, however it instead searches backwards from the end of the file (or pointer)

Code Type C: Offset Byte Search (Set Pointer):
CBFFYYYY XXXXXXXX
*Other Code Here, Use Specific Offset Type*

B = Offset Type
0 = Search Forwards from Address Given
4 = Search Backwards from Address Given
8 = Offset from Pointer; Search Forwards from Address Given
C = Offset from Pointer; Search Backwards from Address Given

F = Amount of Times to Find until Pointer Set
Y = Amount of Bytes to Search from Address
1 = 1 Byte
2 = 2 Bytes
and so on...

X = Address of Bytes to Search with

Rather than searching for bytes already given such as codes 8 and B, this code will instead search using the bytes at a specific Address.

The following 97 users say thank you to Dynamite for this useful post:

18095092219, aeneax, akyuusan, alcomplus, Alexsandr194, Andrey-Shapenkov, Apo, aroun33000, axsabrzpa, barsko27, belga, billyxota, britosousa, CaptainReha, Confucius_Senpai, Cooper-Wong, coritanos, Cylas-Vidrine, d3adwalker, D4rk_0_light, danilo_BR, darkprince13, demonquenn, Dojima, doomsday400, edossari, eownddl23, ersin350, FiiZx, Frosty, GelsonSilva, gogeta62, gotexan8, guhjorn, hancoolboy, hassanxx, heather1988, hoanghieptrans, Horben, HorrorX, Idolize, iMoDzF4N4TiK, indysgill77, Izimaru, jhonny040977, juniorsp01, kensusflow, kenx, kok2009, ktp11445, Leel347, Leomoreira28, Leytonsroom, Libido, luciferous31, luix, Luiz77, LUNATIK SAINT, macflay59, mano154, mazebacebas, MOONOMAN, Mozzeyy8989, MrLibido, mroshaw, neka174, nenyko12, nono__wlm, nozomibb22, owendswang, patbz, paulolucas, ProbablyRaging, raito_kun, redmouf, revfunk28, reynaldo, Rico93, seb88230, SHAkA, shz_hossein, skylar-4me, Snake88, Suly, Tatshu Chabal, TheBlackPec, themikado, timebound, tobyrahmat, tw467, v1510n4ry, Wildarms, Wirezendee, wuhao, Xomination, yared124358, zero1986313
09-21-2017, 01:59 AM #2
MrLibido
Do a barrel roll!
This is perfect, thank you and very detailed too with pic and colored code, i it possible to write codes to the left instead to the right?

Value i want to modify is 90 lenght from search result, do i need to use negative value instead? Like -90 or something FF FF FF 70


4A000000 7F7F7F7F
4002FFFFFF70 ? 00000000 Loes

Thanks

The following user thanked MrLibido for this useful post:

heather1988
09-21-2017, 02:36 AM #3
Dynamite
Vault dweller
Originally posted by engagex View Post
This is perfect, thank you and very detailed too with pic and colored code, i it possible to write codes to the left instead to the right?

Value i want to modify is 90 lenght from search result, do i need to use negative value instead? Like -90 or something FF FF FF 70


4A000000 7F7F7F7F
4002FFFFFF70 ? 00000000 Loes

Thanks


I'm actually not sure - I tried looking for a way but couldn't find one. My guess is that it only supports positive values for the offsets.
09-21-2017, 03:03 AM #4
MrLibido
Do a barrel roll!
Originally posted by 7429
I'm actually not sure - I tried looking for a way but couldn't find one. My guess is that it only supports positive values for the offsets.


Thanks, hopefully sw team reveal it secret sauce if it's possible
09-21-2017, 04:01 AM #5
Dynamite
Vault dweller
Added Copy Bytes Format and Fill Format Smile
09-21-2017, 05:38 AM #6
SkillerCMP
Do a barrel roll!
Some of your formats are off this is from a post i pout on GG way back

what is ( Auto Swaps) the ps4 SW/SE seem to have some code types setup to Auto swap so the code types are readable example 9999 is 270F but when u look in advanced mode it will show as 0F27 so your Quick code would not use the value 0F27 it use 270F, then there are ones that dont swap like the search u put values in them ones as seen in Advanced mode

Code Types

0TXXXXXX 000000YY = 8Bit Write
1TXXXXXX 0000YYYY = 16Bit Write ( Auto Swaps)
2TXXXXXX YYYYYYYY = 32Bit Write ( Auto Swaps)

X= Address/Offset
Y= Value to write
T=Address/Offset type (0 = Normal / 8 = Offset From Pointer

Multi Write ( Auto Swaps)
4TXXXXXX YYYYYYYY
4NNNWWWW VVVVVVVV

X= Address/Offset
Y= Value to write (Starting)
N=Times to Write
W=Increase Address By
V=Increase Value By
T=Address/Offset type
Normal/Pointer
0 / 8 = 8bit
1 / 9 = 16bit
2 / A = 32bit

Search Type
8ZZZXXXX YYYYYYYY

Z= Amount of times to find before Write
X= Amount of data to Match
Y= Seach For (note can be xtended for more just continue it like YYYYYYYY YYYYYYYY under it)
Once u have your Seach type done then place one of the standerd code types under it with setting T to the Pointer type

Fill Type
ATXXXXXX 0000YYYY
VVVVVVVV VVVVVVVV

T = type 0 = Normal Address 8 = Pointer Style
X = Address/Offset
Y = Amount to Fill
V = Value to write note this is not in reversed format Note that this can extend how ever long your code is

A0000000 0000000C
99999999 99999999
99999999 00000000
would write 99 From 00 to 0B
Last edited by SkillerCMP ; 09-21-2017 at 05:43 AM.

The following 3 users say thank you to SkillerCMP for this useful post:

Dynamite, danilo_BR, Horben
09-21-2017, 06:11 AM #7
Dynamite
Vault dweller
Originally posted by SkillerCMP View Post
Some of your formats are off this is from a post i pout on GG way back

what is ( Auto Swaps) the ps4 SW/SE seem to have some code types setup to Auto swap so the code types are readable example 9999 is 270F but when u look in advanced mode it will show as 0F27 so your Quick code would not use the value 0F27 it use 270F, then there are ones that dont swap like the search u put values in them ones as seen in Advanced mode

Code Types

0TXXXXXX 000000YY = 8Bit Write
1TXXXXXX 0000YYYY = 16Bit Write ( Auto Swaps)
2TXXXXXX YYYYYYYY = 32Bit Write ( Auto Swaps)

X= Address/Offset
Y= Value to write
T=Address/Offset type (0 = Normal / 8 = Offset From Pointer

Multi Write ( Auto Swaps)
4TXXXXXX YYYYYYYY
4NNNWWWW VVVVVVVV

X= Address/Offset
Y= Value to write (Starting)
N=Times to Write
W=Increase Address By
V=Increase Value By
T=Address/Offset type
Normal/Pointer
0 / 8 = 8bit
1 / 9 = 16bit
2 / A = 32bit

Search Type
8ZZZXXXX YYYYYYYY

Z= Amount of times to find before Write
X= Amount of data to Match
Y= Seach For (note can be xtended for more just continue it like YYYYYYYY YYYYYYYY under it)
Once u have your Seach type done then place one of the standerd code types under it with setting T to the Pointer type

Fill Type
ATXXXXXX 0000YYYY
VVVVVVVV VVVVVVVV

T = type 0 = Normal Address 8 = Pointer Style
X = Address/Offset
Y = Amount to Fill
V = Value to write note this is not in reversed format Note that this can extend how ever long your code is

A0000000 0000000C
99999999 99999999
99999999 00000000
would write 99 From 00 to 0B


That's due to most PS4 saves being in big endian. If you wanted a value to be 9999 it would still be 270F for the quick code though.

I see what you mean about the Seach code though, I tried to mention it but using "FFFF" as an example probably isn't the best thing to do lol. I'll edit it once I get back on my computer Smile
Last edited by Dynamite ; 09-21-2017 at 06:25 AM.
09-21-2017, 06:39 AM #8
Thank you very much for the detailed tutorial. I will use it to understand what the quickcodes I use actually do and maybe to alter them (like instead of getting max xp, just getting 10k more or stuff like this)
09-25-2017, 02:33 PM #9
SkillerCMP
Do a barrel roll!
Originally posted by 7429
That's due to most PS4 saves being in big endian. If you wanted a value to be 9999 it would still be 270F for the quick code though.

I see what you mean about the Seach code though, I tried to mention it but using "FFFF" as an example probably isn't the best thing to do lol. I'll edit it once I get back on my computer Smile


i left the endian information out because it will just confuse people . reality SW code types auto swap between the 2 so you can write your codes how you would see them in a calculator

i would not be me if i was to fill your head with wrong information Winky Winky

Also code types for every Generation have always used Bit not Byte . so might be better to keep using the same language.
Last edited by SkillerCMP ; 09-25-2017 at 02:41 PM.

The following 2 users say thank you to SkillerCMP for this useful post:

danilo_BR, mano154
09-25-2017, 04:10 PM #10
Dynamite
Vault dweller
Originally posted by SkillerCMP View Post
i left the endian information out because it will just confuse people . reality SW code types auto swap between the 2 so you can write your codes how you would see them in a calculator

i would not be me if i was to fill your head with wrong information Winky Winky

Also code types for every Generation have always used Bit not Byte . so might be better to keep using the same language.


In my eyes, bytes are more accurate when it comes to these codes - I can see what you mean though Smile

Copyright © 2024, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo