Difference between revisions of "Play Club/Modding/Savegame Hacking"

From Hgames Wiki
Jump to: navigation, search
(simple cheats)
 
(This page was missing the navigation template)
Line 1: Line 1:
 +
{{Play Club}}
 
== Foreword ==
 
== Foreword ==
 
Save files are stored as
 
Save files are stored as
Line 11: Line 12:
  
 
HF patch also comes with a 100% save, so you could just use that if that's what you're looking for. If you don't want to download the whole 300MB of it, have something against heavily used (by someone else) waifus or simply want to mess with your own save file because reasons, read on.
 
HF patch also comes with a 100% save, so you could just use that if that's what you're looking for. If you don't want to download the whole 300MB of it, have something against heavily used (by someone else) waifus or simply want to mess with your own save file because reasons, read on.
 
  
 
== Save version ==
 
== Save version ==
 
Save formats are slightly different in a vanilla PlayClub and a game with DLC installed (as confirmed by bald and naked girls appearing in a vanilla game if they come from the DLC-enabled game). In practice, this means that you'll have to use more null bytes in a DLC-enabled save. As a rule, if nothing is happening when you're trying to load the modified save in your DLC-enabled game, append more null bytes and try again.
 
Save formats are slightly different in a vanilla PlayClub and a game with DLC installed (as confirmed by bald and naked girls appearing in a vanilla game if they come from the DLC-enabled game). In practice, this means that you'll have to use more null bytes in a DLC-enabled save. As a rule, if nothing is happening when you're trying to load the modified save in your DLC-enabled game, append more null bytes and try again.
 
  
 
== Cheats ==
 
== Cheats ==
Line 21: Line 20:
  
 
If the number stored in 4 bytes is not an integer, it's most likely a float(ing point value). Floats 1.0 and 5.0 from the previous example in a hex editor will look like "00 00 80 3F" and "00 00 A0 40". Not too intuitive, obviously, so having your hex editor automatically interpret them for you can be very useful, at least until a proper save editor shows up. Which may or may not happen since there's not  much to edit anyway, so let's get to business already.
 
If the number stored in 4 bytes is not an integer, it's most likely a float(ing point value). Floats 1.0 and 5.0 from the previous example in a hex editor will look like "00 00 80 3F" and "00 00 A0 40". Not too intuitive, obviously, so having your hex editor automatically interpret them for you can be very useful, at least until a proper save editor shows up. Which may or may not happen since there's not  much to edit anyway, so let's get to business already.
 
  
 
=== Skip intro H-scenes ===
 
=== Skip intro H-scenes ===
Line 29: Line 27:
 
  "END" 7B C9 06 00 00 00 00 00 00 00 00 00 00 <- no-intro in vanilla game (9 null bytes after the DWORD)
 
  "END" 7B C9 06 00 00 00 00 00 00 00 00 00 00 <- no-intro in vanilla game (9 null bytes after the DWORD)
 
The remainder of the save doesn't matter, it can be cut off after at least 9 (or 19 if using DLC) null bytes. "END", "Event01_00" and other non-hexadecimal text strings don't appear in a hex view area of a hex editor, naturally. Your hex editor will display them to the right of the hex view area, they're only shown here for easier navigation.
 
The remainder of the save doesn't matter, it can be cut off after at least 9 (or 19 if using DLC) null bytes. "END", "Event01_00" and other non-hexadecimal text strings don't appear in a hex view area of a hex editor, naturally. Your hex editor will display them to the right of the hex view area, they're only shown here for easier navigation.
 
  
 
=== Unlock free H ===
 
=== Unlock free H ===
Line 37: Line 34:
 
  "END" 7B C9 06 00 01 00 00 00 05 "Map09" 00 00 80 3F <- "Map09" followed by float(1.0) here
 
  "END" 7B C9 06 00 01 00 00 00 05 "Map09" 00 00 80 3F <- "Map09" followed by float(1.0) here
 
  "END" 7B C9 06 00 01 00 00 00 05 "Map09" 00 00 80 3F FF FF FF FF 00 <- adding max DWORD and a null byte
 
  "END" 7B C9 06 00 01 00 00 00 05 "Map09" 00 00 80 3F FF FF FF FF 00 <- adding max DWORD and a null byte
 
  
 
=== Custom hearts levels ===
 
=== Custom hearts levels ===

Revision as of 19:34, 3 May 2015

Illusion

all characters are at least 18


Play Club [edit]

Gameplay

Story

FAQ & Technical Help

Modding

  • Savegame Hacking


Foreword

Save files are stored as

PlayClub\UserData\save\Game\*.gsd


Backup your saves and arm yourself with a hex editor of your choice.

If you have none, something as simple as HxD or XVI32 will be enough for our needs, because we'll be doing basic editing only.

This also applies to save files - start a new game and immediately save it if you don't have any save files at all or don't want to use existing ones.

HF patch also comes with a 100% save, so you could just use that if that's what you're looking for. If you don't want to download the whole 300MB of it, have something against heavily used (by someone else) waifus or simply want to mess with your own save file because reasons, read on.

Save version

Save formats are slightly different in a vanilla PlayClub and a game with DLC installed (as confirmed by bald and naked girls appearing in a vanilla game if they come from the DLC-enabled game). In practice, this means that you'll have to use more null bytes in a DLC-enabled save. As a rule, if nothing is happening when you're trying to load the modified save in your DLC-enabled game, append more null bytes and try again.

Cheats

From here on, "Double word" or a "DWORD" for short is a name of 4 consecutive bytes that store an unsigned integer, often human-readable in a hex editor as is. For example, "01 00 00 00" means 1 and "05 00 00 00" means "5". Note the null bytes on the right, this is how numbers with least significant byte first look like (aka LSF, little endian or Intel byte order).

If the number stored in 4 bytes is not an integer, it's most likely a float(ing point value). Floats 1.0 and 5.0 from the previous example in a hex editor will look like "00 00 80 3F" and "00 00 A0 40". Not too intuitive, obviously, so having your hex editor automatically interpret them for you can be very useful, at least until a proper save editor shows up. Which may or may not happen since there's not much to edit anyway, so let's get to business already.

Skip intro H-scenes

Zero out the end of the save file, only leaving DWORD after the END marker intact. Vanilla save needs at least 9 null bytes after the DWORD, save with DLC needs at least 19.

"END" 7B C9 06 00 00 00 00 00 00 00 00 00 01 00 0A "Event01_00" <- end of a legit new game save file
"END" 7B C9 06 00 00 00 00 00 00 00 00 00 00 <- no-intro in vanilla game (9 null bytes after the DWORD)

The remainder of the save doesn't matter, it can be cut off after at least 9 (or 19 if using DLC) null bytes. "END", "Event01_00" and other non-hexadecimal text strings don't appear in a hex view area of a hex editor, naturally. Your hex editor will display them to the right of the hex view area, they're only shown here for easier navigation.

Unlock free H

Insert DWORD >32768 immediately after the last float of the last "Map##" entry at the end of the file, then add at least 1 null byte.

If you haven't had any H-scenes after the intro yet (or simply skipped it using the hack above), enter any post-intro H-scene, do something (or nothing), leave it and save the game. This will give you at least one "Map##" entry at the end of your save file. You could manually type it in yourself in a hex editor if you wanted, of course. For example:

"END" 7B C9 06 00 01 00 00 00 05 "Map09" 00 00 80 3F <- "Map09" followed by float(1.0) here
"END" 7B C9 06 00 01 00 00 00 05 "Map09" 00 00 80 3F FF FF FF FF 00 <- adding max DWORD and a null byte

Custom hearts levels

Hearts levels are stored in 12-byte groups immediately after the timestamp at the very beginning of the save file. The first byte (actually a DWORD) of every group is the important one:
values 1 to 5 are legit levels (from empty heart to filled heart),
0 is the same as / gets reset to 1 on a next save,
6 is a maximum horniness (of a free H mode),
higher values glitch out the girl's face animation (locking it in a neutral state thus muting her).


Said 12-byte groups belong to (respectively):
Asae, Yayoi, Akane, Momiji, Rinko

So the beginning of your save file starts with two DWORDs (indicating the save version - either (0,0) of vanilla or (0,1) of DLC for now), then something like:

08 "New Game" 13 "2015/04/30 12:34:56" 01 00 00 00 00 ... <- Asae hates sex
08 "Cheater!" 13 "2015/16/17 18:19:20" 06 00 00 00 00 ... <- Asae wants sex

Note that values higher than 1 unlock controls in intro H-scenes (where you aren't supposed to have any). If you finish the intro scene in an unexpected way, the UI will become unresponsive and/or inaccessible, forcing you to exit and reload. Don't improvise too much or, better yet, skip the intro as above if you haven't completed it yet.

Also note that Kiryuu sisters can be deflowered during scripted intro H-scenes ONLY. There will be no blood even if you skip the intro using the save file made immediately after starting the new game.