User:Afker/Sexy Beach 3 Modding

This is still rather disorganized. I will slowly oranize it better. Anyone is welcome to add information or structure it better.

Tools

 * IlluPak.exe
 * lst toolset
 * xx toolset

Common codes

 * There are three body types:
 * small = 0 (occasionally "A")
 * medium = 1 (occasionally "B")
 * large = 2 (occasionally "C")
 * There are 5+2 characters:
 * Manami = 1
 * Maya (expansion) = 2
 * Esk = 3
 * Eo = 4
 * Reiko = 5
 * Maria = 6
 * Bael = 11
 * There are 6 swimsuit meshes:
 * Normal = 1
 * High waistline = 2
 * Tight around the breast = 3
 * Liftable bra = 4
 * Suspenders = 5
 * Unkown = 6

File overviews

 * sb3_0000 - contains textual information, including info on where certain data are located, and properties of various in-game objects/interactions.

sb3_0000
The lst files stored in sb3_0000.pp tells the game where certain assets are stored and what properties to give them. Thus, by manipulating the .lst files, it is possible change things in the game (clothing, meshes, animations) without modifing the original files contain those assets. It is even possible to add new clothing instead of replacing existing ones.

In order to view or edit the lst files, you must decrypt it via the lst tool. After you are done editing, you must reencrypt it using the tool found the that same post again, before repacking the .pp file.

lb??_00_00_00_00.lst
The lb files are all swimsuit information. Each lb file contain information on the same swimsuit, and most of the data are similar. The question mark corresponding to the character code. For example, lb03_00_00_00_00.lst is the swimsuit information for Esk.

Because of the size of the file, it's best to manage it inside a spreadsheet. Thus for the rest of this section we will use letters to denote the "columns" in the file, with A being the first column, and BI being the last column.

A~H
The first column is a serial number. Modifyng this number doesn't seem to affect anything (does not have to go from 0~250, can skip around, multiple swimsuits can share the same number). Most likely serves as a comment system to help quickly locating a line. Note that this is different from the "line number", which is the actual ordering of lines in the file. The default serial number is one less than the line number (line number starts from 1, serial number starts with 0). I will be using # to denote the default serial number, and explicitly say "line number" when I mean actual line numer.


 * 1) 124 is Bael's Original swimsuit.
 * 2) 141 is Maya's Default swimsuit.
 * 3) 15 is Maya's Original swimsuit.
 * 4) 62 is unnamed and unavaiilabe in regular gameplay. It might be Bael's default swimsuit.

The M-key addon, "Mufufu Glasses", is counted as a costume. It's #241.

And by the way, the tga files of the format "sb0x_0y_*" and "sn0x_0y_*" are of the convention: Of course if you are going modify the lst file anyways, then you don't have to worry about how to name your stuff.
 * x=0 for general purpose (not specific to any girl)
 * x=1 for Manami
 * x=3 for Esk
 * x=4 for I-o
 * x=5 for Reiko
 * x=6 for Maria
 * y=1 for small breasts (Manami)
 * y=2 for medium breasts (Esk & I-o)
 * y=3 for large breasts (Reiko & Maria)

The game keeps track of which swimsuit have been unlocked via the line number, not serial number. Thus if you swap two lines, one is for a locked swimsuit and theother is an unlocked swimsuit, their lock status will be reversed even if you keep all the data the same.

The line number also affects the mesh used for the swimsuit: 1~80 standard mesh 81~120 = high waist mesh 121~200 = round breasts mesh (for most bikinis and some of the other swimsuits) 201~220 = liftable bra mesh (for bikinies whose bra can be lifted) 231~240 = suspender mesh These ranges are estimations based on available swimsuits in the game, on the assumption that all meshes use a continuous range.

The mesh types are adjustable via the file pointed to in ld01_01~ld01_11, lines 21~26.

The second column is the internal name of the swimsuit. Most of them correspond exactly to the Dressup menu. But not all (such as the school swimsuit with character's name on it). This is just a label for internal identification purposes, changing it doesn't affect anything.

I~Z - Interactions
Column in I~Z specify what interactions you may perform during oil and H mode. The numbers refers to the interactions listed in lf01_00_00_00_00.lst By changing the numbers, you change the interaction available. the oil and h mode share the numbers, but the number may mean different things in the different modes.

Upper body:
 * Columns I, J are the outer area of the breasts (Left, Right)
 * Columns K, L are the lower third area of the breasts (Left, Right)
 * Columns M, N are the upper third of the breasts (Left, Right)
 * Column O, P are the middle third area of the breasts (Left, Right)
 * Column Q is between the breasts

Lower body:
 * Column Y and Z are the left and right waists respectively.
 * Columns R, S are the left and right hips respectively
 * Columns T, W are from the front
 * Column U, X are from behind
 * Column V is from below

Thus it is possible to set up an interaction by mousing over the left breast that actually affects the right breast.

AB~AL - See-through when wet
Columns AB~AL controls see-through of swimsuit when wet. 0 means won't get wet at all. 1 means it'll get wet, but won't become transparent (for white clothing, it turns silverish grey). 2 turns transparent.
 * AB = left breast
 * AC = right breast
 * AD = stomach
 * AE = left half of back
 * AF = right half of back
 * AG = pubic hair area
 * AH = front hole
 * AI = left hip
 * AJ = right hip
 * AK = back hole, left half
 * AL = back hole, right half

AN ~ AX
Column AN control upper half swimsuit brightness. 1=normal, 2= gossy, 3 = a little dark, 4 = darkish glossy, 5 = slightly bright gossy. Column AT is for lower half swimsuit brightness.

AZ ~ BI
The column AZ controls the global glossing effect of the swimsuit. if it is set to 1, it will have glossing. if 2, then not.

The BA column is used to hide the top mesh of the swimsuit by setting it to 0, such as the Blacktopless swimsuit. For normal swimsuits, put in 1.

The BB column is used to hide the bottom mesh of the swimsuit by setting it to 0, such as the bathtowel. For normal swimsuits, put in 1.

The BC column controls whether to display the little knots found on some of the liftable bra bikinies. Setting it to 0 will hide those knots. Setting it to 1 for other meshes does nothing.

The swimsuits without a real bra (leaf, bandaid, and suspenders are NOT real bra) all have 10 in column BD. All other swimsuits have 0 in column BD. It's unkown what this really do.

Column BH is the heart requirement.

Column BF corresponds to the swimsuit category (0 = One-piece; 1 = Separate; 2 = Bikini; 3 = Special).

Column BE is the order of the item wthin the category. It determines which outfit the girl wears when you click on the nth button. however the button graphic is not related to this entry.

The category and order combned determines which swimsuits are the "default" swimsuits that you can only obtain by talking to the respective girls and cannot be obtained via regular dating with other girls. Additionally, the category and order combned determine's which button to use for selecting the swimsuit. In the dressup screen, the swimsuits will be sortedby order in each category. If multiple swimsuits in teh same category have teh same order, they will use the same button, and the actual order between them is undefined (not in line number or serial number order).

The very last number goes from 1~15 (0 being used as a NULL value), and has a correlation with the heart requirement. It is NOT related to the order of swimsuit unlocking.

lc00_00_00_00_00.lst
The lc files are for accessories. there are 11 tabs, corresponding in order (didn't check each one, but the few I sampled mtches) with lc01~lc11. lc00 itself has info about the 15 locations (some tabs have left/right).

lc file is relatively straight forward. Line number, internal name, pp file name for the asset, xx filename for the asset inside the pp file, then order.

For order, 1 is reserved for the "remove" box. Most accessory starts from 2 and go up one by one. But the types that have left/right, they start from 3 and jump up odd numbers (left use the odd numbers, right automatically uses odd+1). If the order is 255 then it is not available.

I'm notsure what teh o01_N_*_AC are for. AC standsfor accessory, the * part corresponds to the accessory tab, what I don't understand is why only face and head need the two columns, why two columns are needed when the values are identical, as well as why different head accessories have different "Atama0?" for the * part.

For skirt, I see no place for mesh information. It might be they all just use the same mesh and have very different alpha channels, or mesh info is stored elsewhere.

ld00_00_00_00_00.lst
ld00_00_00_00_00.lst contains some misc image inormation.

Lines 1~8 are the basic skin texture, light head texture, and tanned head texture. For the two hidden characters 2 (Maya) and 11 (Bael?), only the tanned head texture assets actually exist (in sb3_0310.pp as opposed to sb3_1310.pp).

Line8 is the first time there is a hint that there may be a third hidden character. None of its three assets specifiedon that line can be found.

Not sure what lines 11,12,15 are.

Lines 21~28 lists the files used for pubic hair and its censoring. It works by constantly rotating the 4 listed files. This does not include the mosic censoring of the private parts. this is pubic hair only.

Line 31 specifies the files used for the player's hands. Line 32 specifies the files for the various lotions Line 33 specifies the graphic for the center of camera

Lines 41~62 covers in-game buttons.

Line 71 specifies the file name format for various background music. The "%20d" part is a variable, so when different situations need a different background music, a different number is plugged in for the variable to obtain the actual file name for the background music.

Line 72 specifies the file name format for the environtmental sounds of diffeerent dating locations.

Line 73 specifies the file name format for sound effects (when clicking on buttons, cancelng actions, etc etc). Of those, 29~35 are the "Sexy Beach 3" uttered by different girls at the Title screen. Note there are 7 voices.

Line 74 specifies the sample sound played in the system config screen (the speaker icon to the right of volumn adjustment). The last item, sm04_%02d_00_00_00.ogg, again has a variable from 1~7.

ld01_??_00_00_00.lst
the ld01_01~ld01_11 files specify body part related information for each of the girls. Kao = face, Kami = hair, Bura = Bra (though it might be generically used to mean breats in this context).

Lines 11 and 14 are for hair style 2 (mesh and texture) Lines 12 and 15 are for hair style 2 Lines 13 and 16 are for hair style 3 whose assets don't exist for any of the girls. If you plan on swapping hair between girls, make sure you swap the pair of lines or the game might crash.

The body parts mesh as well as hair texture are specified in these files, but not the skin/face textures. So only replacing the mesh and not the textures might result in weird stuff (giving Mamami the head of Esk will cause Manami's ears to go all black).

Lines 21~26 each specify a file containing the swimsuit & skirt mesh information, mosiac textures, how swimsuit texture applies to the mesh. The file also has information on breast shape (and thus differs between girls). Each of the six lines corresponds to a different mesh type, in the order of: normal, high-waist, highlighted breasts, liftable bra, suspenders, and unknown.

Lines 151~171 specify the animation files for the various activities the girl does on a date, as well as model & texture for any extra props.
 * Line 155 = book reading
 * Line 156 = taking shower
 * Line 158 = mini-fireworks
 * Line 159 = using oil
 * Line 160 = jump rope
 * Line 161 = playing volleyball
 * Line 162 = eating popstickle
 * Line 163 = limbo
 * Line 165 = playing on the swing
 * Line 167 = balancing on a flating board
 * Line 169 = cooking stew

lf01_00_00_00_00.lst
lf01_00_00_00_00.lst contains informatin on the interactions you can perform with your hand. However, besides the name of the interaction I can't figure out much else. For the namge, if you see A, B, or C in it, it refers to diferent body types. A = small breasts. B = normal breasts. C = large breasts.

--- the lp files specify file name formats for certan wave files.